From d0a8c9e7c6cc0312176bea3a4e62c14b508e9acf Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sun, 29 Oct 2023 00:04:26 +0000 Subject: [PATCH 001/112] deprecate egl-wayland, it may not be needed after all. --- packages/emulators/standalone/kronos-sa/package.mk | 2 +- packages/graphics/mesa/package.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/emulators/standalone/kronos-sa/package.mk b/packages/emulators/standalone/kronos-sa/package.mk index 102db817a..f76105774 100644 --- a/packages/emulators/standalone/kronos-sa/package.mk +++ b/packages/emulators/standalone/kronos-sa/package.mk @@ -8,7 +8,7 @@ PKG_ARCH="x86_64" PKG_URL="${PKG_SITE}.git" PKG_VERSION="8e0eade" PKG_GIT_CLONE_BRANCH="extui-align" -PKG_DEPENDS_TARGET="toolchain SDL2 boost openal-soft zlib qt5 egl-wayland" +PKG_DEPENDS_TARGET="toolchain SDL2 boost openal-soft zlib qt5" PKG_LONGDESC="Kronos is a Sega Saturn emulator forked from yabause." PKG_TOOLCHAIN="cmake-make" GET_HANDLER_SUPPORT="git" diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk index c444e450d..3c35618ec 100644 --- a/packages/graphics/mesa/package.mk +++ b/packages/graphics/mesa/package.mk @@ -51,7 +51,7 @@ if [ "${DISPLAYSERVER}" = "x11" ]; then export X11_INCLUDES= PKG_MESON_OPTS_TARGET+=" -Dplatforms=x11 -Ddri3=enabled -Dglx=dri -Dglvnd=true" elif [ "${DISPLAYSERVER}" = "wl" ]; then - PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd glfw egl-wayland" + PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd glfw" PKG_MESON_OPTS_TARGET+=" -Dplatforms=wayland,x11 -Ddri3=enabled -Dglx=dri -Dglvnd=true" PKG_DEPENDS_TARGET+=" xorgproto libXext libXdamage libXfixes libXxf86vm libxcb libX11 libxshmfence libXrandr libglvnd" export X11_INCLUDES= From 6a048553b1d39301f84df4f5d9bd03fb5cc7a1f1 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sun, 29 Oct 2023 10:58:59 -0400 Subject: [PATCH 002/112] Update Art-Book-Next --- packages/themes/es-theme-art-book-next/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 0a381c2e3..9559a3fa4 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="1bbd47382bef153512f66772a37ef38f04d9cef3" +PKG_VERSION="5b4c12489e4c41ec30694ebe6b7f339bb196c151" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From 1b4da7848d78ec2b4c0296093f894459c940b961 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sun, 29 Oct 2023 11:00:45 -0400 Subject: [PATCH 003/112] Remove deprecated theme packages --- packages/themes/es-theme-minielec/package.mk | 18 -------- .../es-theme-minielec/patches/001-fixes.patch | 43 ------------------- packages/themes/es-theme-minimal/package.mk | 18 -------- 3 files changed, 79 deletions(-) delete mode 100644 packages/themes/es-theme-minielec/package.mk delete mode 100644 packages/themes/es-theme-minielec/patches/001-fixes.patch delete mode 100644 packages/themes/es-theme-minimal/package.mk diff --git a/packages/themes/es-theme-minielec/package.mk b/packages/themes/es-theme-minielec/package.mk deleted file mode 100644 index 8f71ced19..000000000 --- a/packages/themes/es-theme-minielec/package.mk +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) - -PKG_NAME="es-theme-minielec" -PKG_VERSION="364173dab15a77190b11a5e36966890468cad67c" -PKG_ARCH="any" -PKG_LICENSE="CC BY-NC-SA 4.0" -PKG_SITE="https://github.com/Rose22/es-theme-minielec" -PKG_URL="${PKG_SITE}.git" -GET_HANDLER_SUPPORT="git" -PKG_SHORTDESC="Minielec" -PKG_LONGDESC="Minielec theme by Rose22" -PKG_TOOLCHAIN="manual" - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/share/themes/${PKG_NAME} - cp -rf * ${INSTALL}/usr/share/themes/${PKG_NAME} -} diff --git a/packages/themes/es-theme-minielec/patches/001-fixes.patch b/packages/themes/es-theme-minielec/patches/001-fixes.patch deleted file mode 100644 index b32cc9eee..000000000 --- a/packages/themes/es-theme-minielec/patches/001-fixes.patch +++ /dev/null @@ -1,43 +0,0 @@ -Binary files es-theme-minielec.orig/backgrounds/amberelec_dark.png and es-theme-minielec/backgrounds/amberelec_dark.png differ -Binary files es-theme-minielec.orig/backgrounds/amberelec_light.png and es-theme-minielec/backgrounds/amberelec_light.png differ -diff -rupN es-theme-minielec.orig/theme.xml es-theme-minielec/theme.xml ---- es-theme-minielec.orig/theme.xml 2022-07-14 17:38:41.518144012 -0400 -+++ es-theme-minielec/theme.xml 2022-07-14 17:48:53.713622441 -0400 -@@ -23,15 +23,16 @@ - ./fontsizes.xml - - -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -105,11 +106,6 @@ - - - -- ./overlays/amberelec_center.xml -- ./overlays/amberelec_topleft.xml -- ./overlays/amberelec_topright.xml -- ./overlays/amberelec_bottomleft.xml -- ./overlays/amberelec_bottomright.xml - ./overlays/clearglass.xml - ./overlays/sparkles.xml - ./overlays/sparkles2.xml diff --git a/packages/themes/es-theme-minimal/package.mk b/packages/themes/es-theme-minimal/package.mk deleted file mode 100644 index 499a6096e..000000000 --- a/packages/themes/es-theme-minimal/package.mk +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) - -PKG_NAME="es-theme-minimal" -PKG_VERSION="b478b0e3986e557b40fcd25a9e48d9956fa11a96" -PKG_ARCH="any" -PKG_LICENSE="creative commons CC-BY-NC-SA" -PKG_SITE="https://github.com/fabricecaruso/es-theme-minimal" -PKG_URL="${PKG_SITE}.git" -GET_HANDLER_SUPPORT="git" -PKG_SHORTDESC="Minimal" -PKG_LONGDESC="Minimal theme by fabricecaruso" -PKG_TOOLCHAIN="manual" - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/share/themes/${PKG_NAME} - cp -rf * ${INSTALL}/usr/share/themes/${PKG_NAME} -} From 282aefa6390c154db8d3e10590a7bcbd8786b06e Mon Sep 17 00:00:00 2001 From: ab0tj Date: Sun, 29 Oct 2023 20:46:15 +0000 Subject: [PATCH 004/112] Add dts for RGB10 as it has different button mapping than the OGA --- projects/Rockchip/devices/RK3326/options | 2 +- .../RK3326/001-powkiddy-rgb10-dts.patch | 315 ++++++++++++++++++ 2 files changed, 316 insertions(+), 1 deletion(-) create mode 100644 projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch diff --git a/projects/Rockchip/devices/RK3326/options b/projects/Rockchip/devices/RK3326/options index 514583930..f1eac71bf 100644 --- a/projects/Rockchip/devices/RK3326/options +++ b/projects/Rockchip/devices/RK3326/options @@ -31,7 +31,7 @@ BOOTLOADER="u-boot" TRUST_LABEL="trust" PARTITION_TABLE="msdos" - DEVICE_DTB=("rk3326-anbernic-rg351m" "rk3326-anbernic-rg351v" "rk3326-odroid-go2" "rk3326-odroid-go2-v11" "rk3326-odroid-go3") + DEVICE_DTB=("rk3326-anbernic-rg351m" "rk3326-anbernic-rg351v" "rk3326-odroid-go2" "rk3326-odroid-go2-v11" "rk3326-odroid-go3" "rk3326-rgb10") UBOOT_DTB="${DEVICE_DTB[0]}" UBOOT_CONFIG="odroidgoa_defconfig" PKG_SOC="px30" diff --git a/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch b/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch new file mode 100644 index 000000000..1faeb8d16 --- /dev/null +++ b/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch @@ -0,0 +1,315 @@ +diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/Makefile linux/arch/arm64/boot/dts/rockchip/Makefile +--- linux.orig/arch/arm64/boot/dts/rockchip/Makefile 2023-10-29 19:29:06.983692813 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/Makefile 2023-10-29 19:30:35.815676699 +0000 +@@ -12,6 +12,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-an + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2-v11.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go3.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-rgb10.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb +diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts linux/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts 1970-01-01 00:00:00.000000000 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts 2023-10-29 19:31:19.751624080 +0000 +@@ -0,0 +1,299 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2019 Hardkernel Co., Ltd ++ * Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH ++ * Copyright (c) 2022 Maya Matuszczyk ++ */ ++ ++/dts-v1/; ++#include "rk3326-odroid-go.dtsi" ++ ++/ { ++ model = "Powkiddy RGB10"; ++ compatible = "hardkernel,rk3326-odroid-go2-v11", "rockchip,rk3326"; ++ ++ aliases { ++ mmc1 = &sdio; ++ }; ++ ++ gpio_keys: volume-keys { ++ compatible = "gpio-keys-polled"; ++ poll-interval = <5>; ++ autorepeat; ++ ++ volume-up-button { ++ label = "VOLUME-UP"; ++ linux,code = ; ++ gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_LOW>; ++ ++ }; ++ volume-down-button { ++ label = "VOLUME-DOWN"; ++ linux,code = ; ++ gpios = <&gpio2 RK_PA1 GPIO_ACTIVE_LOW>; ++ ++ }; ++ }; ++ ++ joypad: odroidgo2-joypad { ++ compatible = "odroidgo2-v11-joypad"; ++ ++ /* ++ - odroidgo2-joypad sysfs list - ++ * for poll device interval(ms) ++ /sys/devices/platform/odroidgo2_joypad/poll_interval [rw] ++ * for button-adc-fuzz ++ /sys/devices/platform/odroidgo2_joypad/adc_fuzz [r] ++ * for button-adc-flat ++ /sys/devices/platform/odroidgo2_joypad/adc_flat [r] ++ ++ * for report control(1:enable, 0:disable) ++ /sys/devices/platform/odroidgo2_joypad/enable [rw] ++ * for adc calibration value setup(1:current adcs value -> cal value) ++ /sys/devices/platform/odroidgo2_joypad/adc_cal [rw] ++ */ ++ ++ /* gpio pincontrol setup */ ++ pinctrl-names = "default"; ++ pinctrl-0 = <&btn_pins>; ++ ++ /* JOY_X, JOY_Y Channel define */ ++ io-channel-names = "joy_x", "joy_y"; ++ io-channels = <&saradc 1>, <&saradc 2>; ++ ++ /* adc channel count */ ++ button-adc-count = <2>; ++ ++ /* adc calculate scale */ ++ button-adc-scale = <2>; ++ ++ /* adc deadzone range */ ++ button-adc-deadzone = <20>; ++ ++ /* ++ joy-stick voltage range ++ /sys/devices/platform/ff288000.saradc/iio:device0 ++ adc-x : in_voltage1_raw ++ adc-y : in_voltage2_raw ++ ++ range calculate. ++ (adc raw max value - adc raw min value) * scale * 1.7515 ++ */ ++ button-adc-x-range = <1800>; ++ button-adc-y-range = <1800>; ++ ++ /* ++ specifies fuzz value that is used to filter noise from ++ the event stream. ++ */ ++ button-adc-fuzz = <32>; ++ button-adc-flat = <32>; ++ ++ /* poll device interval (ms), adc read interval */ ++ poll-interval = <10>; ++ ++ /* gpio button auto repeat set value : default disable */ ++ /* ++ autorepeat; ++ */ ++ ++ /* ++ *** RGB10 Switch layoout *** ++ |------------------------------------------------| ++ | sw15 sw16 | ++ | sw20 sw21 | ++ |------------------------------------------------| ++ | sw1 vol- |-------------------| vol+ sw8 | ++ | sw3 sw4 | | sw7 sw5 | ++ | sw2 | LCD Display | sw6 | ++ | | | | ++ | |-------------------| | ++ |------------------------------------------------| ++ */ ++ /* ++ joypad driver is poll-device driver. ++ poll-device is does not support wakeup-source. ++ */ ++ sw1 { ++ gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>; ++ label = "GPIO DPAD-UP"; ++ linux,code = ; // 0x220 ++ }; ++ sw2 { ++ gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>; ++ label = "GPIO DPAD-DOWN"; ++ linux,code = ; // 0x221 ++ }; ++ sw3 { ++ gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>; ++ label = "GPIO DPAD-LEFT"; ++ linux,code = ; // 0x222 ++ }; ++ sw4 { ++ gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>; ++ label = "GPIO DPAD-RIGHT"; ++ linux,code = ; // 0x223 ++ }; ++ sw5 { ++ gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>; ++ label = "GPIO KEY BTN-A"; ++ linux,code = ; // 0x131 ++ }; ++ sw6 { ++ gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>; ++ label = "GPIO BTN-B"; ++ linux,code = ; // 0x130 ++ }; ++ sw7 { ++ gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_LOW>; ++ label = "GPIO BTN-Y"; ++ linux,code = ; // 0x134 ++ }; ++ sw8 { ++ gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_LOW>; ++ label = "GPIO BTN-X"; ++ linux,code = ; // 0x133 ++ }; ++ sw9 { ++ gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>; ++ label = "GPIO F1"; ++ linux,code = ; // 0x2c0 ++ }; ++ sw10 { ++ gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; ++ label = "GPIO F2"; ++ linux,code = ; // 0x2c1 ++ }; ++ sw13 { ++ gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; ++ label = "GPIO F5"; ++ linux,code = ; // 0x2c4 ++ }; ++ sw14 { ++ gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_LOW>; ++ label = "GPIO F6"; ++ linux,code = ; // 0x13c ++ }; ++ sw15 { ++ gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>; ++ label = "GPIO TOP-LEFT"; ++ linux,code = ; // 0x02 ++ }; ++ sw16 { ++ gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_LOW>; ++ label = "GPIO TOP-RIGHT"; ++ linux,code = ; // 0x05 ++ }; ++ sw20 { ++ gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>; ++ label = "GPIO TOP-LEFT2"; ++ linux,code = ; ++ }; ++ sw21 { ++ gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_LOW>; ++ label = "GPIO TOP-RIGHT2"; ++ linux,code = ; ++ }; ++ }; ++ ++ battery: battery { ++ compatible = "simple-battery"; ++ charge-full-design-microamp-hours = <3000000>; ++ charge-term-current-microamp = <300000>; ++ constant-charge-current-max-microamp = <2000000>; ++ constant-charge-voltage-max-microvolt = <4200000>; ++ factory-internal-resistance-micro-ohms = <180000>; ++ voltage-max-design-microvolt = <4100000>; ++ voltage-min-design-microvolt = <3500000>; ++ ++ ocv-capacity-celsius = <20>; ++ ocv-capacity-table-0 = <4046950 100>, <4001920 95>, <3967900 90>, <3919950 85>, ++ <3888450 80>, <3861850 75>, <3831540 70>, <3799130 65>, ++ <3768190 60>, <3745650 55>, <3726610 50>, <3711630 45>, ++ <3696720 40>, <3685660 35>, <3674950 30>, <3663050 25>, ++ <3649470 20>, <3635260 15>, <3616920 10>, <3592440 5>, ++ <3574170 0>; ++ }; ++ ++ wifi_pwrseq: wifi-pwrseq { ++ compatible = "mmc-pwrseq-simple"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wifi_pwrseq_pins>; ++ /*reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;*/ ++ }; ++}; ++ ++&internal_display { ++ compatible = "elida,kd35t133"; ++ iovcc-supply = <&vcc_lcd>; ++ vdd-supply = <&vcc_lcd>; ++ rotation = <270>; ++}; ++ ++&rk817 { ++ regulators { ++ vcc_wifi: LDO_REG9 { ++ regulator-name = "vcc_wifi"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ regulator-boot-on; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ regulator-suspend-microvolt = <3300000>; ++ }; ++ }; ++ }; ++}; ++ ++&rk817_charger { ++ monitored-battery = <&battery>; ++}; ++ ++&sdio { ++ bus-width = <4>; ++ cap-sd-highspeed; ++ cap-sdio-irq; ++ disable-wp; ++ keep-power-in-suspend; ++ non-removable; ++ vmmc-supply = <&vcc_wifi>; ++ status = "okay"; ++ ++ esp8089: wifi@1 { ++ compatible = "esp,esp8089"; ++ reg = <1>; ++ esp,crystal-26M-en = <2>; ++ }; ++}; ++ ++&pinctrl { ++ btns { ++ btn_pins: btn-pins { ++ rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>, ++ <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>, ++ <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>, ++ <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>, ++ <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>, ++ <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>, ++ <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>, ++ <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>, ++ <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>, ++ <2 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>, ++ <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>, ++ <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>, ++ <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>, ++ <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>, ++ <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>, ++ <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ wifi { ++ wifi_pwrseq_pins: wifi-pwrseq-pins { ++ rockchip,pins = /*<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,*/ ++ <3 RK_PB6 RK_FUNC_GPIO &pcfg_output_high>; ++ }; ++ }; ++}; + From 25f45281b7fa175b531c3d824dbb6122eb8af851 Mon Sep 17 00:00:00 2001 From: ab0tj Date: Sun, 29 Oct 2023 21:59:58 +0000 Subject: [PATCH 005/112] The RGB10 also has a slightly smaller battery than the OGA --- .../linux/patches/RK3326/001-powkiddy-rgb10-dts.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch b/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch index 1faeb8d16..62f270c07 100644 --- a/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch +++ b/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch @@ -213,8 +213,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts linux/arch/a + + battery: battery { + compatible = "simple-battery"; -+ charge-full-design-microamp-hours = <3000000>; -+ charge-term-current-microamp = <300000>; ++ charge-full-design-microamp-hours = <2800000>; ++ charge-term-current-microamp = <280000>; + constant-charge-current-max-microamp = <2000000>; + constant-charge-voltage-max-microvolt = <4200000>; + factory-internal-resistance-micro-ohms = <180000>; From b152eda15c588392de61c00e991085dd191d91e5 Mon Sep 17 00:00:00 2001 From: ab0tj Date: Mon, 30 Oct 2023 01:20:49 +0000 Subject: [PATCH 006/112] Fix dts naming conventions --- projects/Rockchip/devices/RK3326/options | 2 +- .../linux/patches/RK3326/001-powkiddy-rgb10-dts.patch | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/Rockchip/devices/RK3326/options b/projects/Rockchip/devices/RK3326/options index f1eac71bf..a1615330f 100644 --- a/projects/Rockchip/devices/RK3326/options +++ b/projects/Rockchip/devices/RK3326/options @@ -31,7 +31,7 @@ BOOTLOADER="u-boot" TRUST_LABEL="trust" PARTITION_TABLE="msdos" - DEVICE_DTB=("rk3326-anbernic-rg351m" "rk3326-anbernic-rg351v" "rk3326-odroid-go2" "rk3326-odroid-go2-v11" "rk3326-odroid-go3" "rk3326-rgb10") + DEVICE_DTB=("rk3326-anbernic-rg351m" "rk3326-anbernic-rg351v" "rk3326-odroid-go2" "rk3326-odroid-go2-v11" "rk3326-odroid-go3" "rk3326-powkiddy-rgb10") UBOOT_DTB="${DEVICE_DTB[0]}" UBOOT_CONFIG="odroidgoa_defconfig" PKG_SOC="px30" diff --git a/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch b/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch index 62f270c07..60b363452 100644 --- a/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch +++ b/projects/Rockchip/packages/linux/patches/RK3326/001-powkiddy-rgb10-dts.patch @@ -5,13 +5,13 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/Makefile linux/arch/arm64/boo dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2-v11.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go3.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-rgb10.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-powkiddy-rgb10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb -diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts linux/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts ---- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts 1970-01-01 00:00:00.000000000 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts 2023-10-29 19:31:19.751624080 +0000 +diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts linux/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts 1970-01-01 00:00:00.000000000 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts 2023-10-29 19:31:19.751624080 +0000 @@ -0,0 +1,299 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* @@ -25,7 +25,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-rgb10.dts linux/arch/a + +/ { + model = "Powkiddy RGB10"; -+ compatible = "hardkernel,rk3326-odroid-go2-v11", "rockchip,rk3326"; ++ compatible = "powkiddy,rk3326-rgb10", "rockchip,rk3326"; + + aliases { + mmc1 = &sdio; From be629e2b9d7e4d7b49b87102d9edede07e940cb1 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sun, 29 Oct 2023 22:48:49 -0400 Subject: [PATCH 007/112] Update package.mk --- packages/themes/es-theme-art-book-next/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 9559a3fa4..44ad70434 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="5b4c12489e4c41ec30694ebe6b7f339bb196c151" +PKG_VERSION="7dc1f60e72d22c81109457726ad30468717e7bbd" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From 94d0b8b0611b762dda501b538763241bdd73b979 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Mon, 30 Oct 2023 14:56:44 +0000 Subject: [PATCH 008/112] Fix rpcs3-sa build issue. --- packages/emulators/standalone/rpcs3-sa/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/emulators/standalone/rpcs3-sa/package.mk b/packages/emulators/standalone/rpcs3-sa/package.mk index cb3fa0ab9..5cce92066 100644 --- a/packages/emulators/standalone/rpcs3-sa/package.mk +++ b/packages/emulators/standalone/rpcs3-sa/package.mk @@ -16,7 +16,7 @@ PKG_GIT_CLONE_BRANCH="master" PKG_GIT_CLONE_SINGLE="yes" pre_configure_host() { - PKG_CMAKE_SCRIPT="${PKG_BUILD}/llvm/CMakeLists.txt" + PKG_CMAKE_SCRIPT="${PKG_BUILD}/3rdparty/llvm/llvm/llvm/CMakeLists.txt" PKG_CMAKE_OPTS_HOST="-DLLVM_TARGETS_TO_BUILD="X86" \ -DLLVM_BUILD_RUNTIME=OFF \ -DLLVM_BUILD_TOOLS=OFF \ From 094d88f98d69d2e42bea84060b84ac6dc857ea85 Mon Sep 17 00:00:00 2001 From: adamg Date: Mon, 30 Oct 2023 18:18:25 +0000 Subject: [PATCH 009/112] u-boot-Odroid_GOU: boot from SD first if it is present --- .../patches/005-boot-from-sd-first.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 projects/Amlogic/packages/u-boot-Odroid_GOU/patches/005-boot-from-sd-first.patch diff --git a/projects/Amlogic/packages/u-boot-Odroid_GOU/patches/005-boot-from-sd-first.patch b/projects/Amlogic/packages/u-boot-Odroid_GOU/patches/005-boot-from-sd-first.patch new file mode 100644 index 000000000..7b2d3c30d --- /dev/null +++ b/projects/Amlogic/packages/u-boot-Odroid_GOU/patches/005-boot-from-sd-first.patch @@ -0,0 +1,12 @@ +--- a/board/hardkernel/odroidgo4/odroidgo4.c ++++ b/board/hardkernel/odroidgo4/odroidgo4.c +@@ -165,8 +165,8 @@ + } + int board_mmc_init(bd_t *bis) + { +- board_mmc_register(SDIO_PORT_C); // eMMC + board_mmc_register(SDIO_PORT_B); // SD card ++ board_mmc_register(SDIO_PORT_C); // eMMC + + return 0; + } From 5c5fa8d21fee9ec1307791ee028ba88649415c40 Mon Sep 17 00:00:00 2001 From: adamg Date: Tue, 31 Oct 2023 12:56:11 +0000 Subject: [PATCH 010/112] Amlogic: rework which dtbs to build --- projects/Amlogic/devices/S922X/options | 2 +- .../S922X/001.01-device-trees-to-build.patch | 75 ------------------- 2 files changed, 1 insertion(+), 76 deletions(-) delete mode 100644 projects/Amlogic/packages/linux/patches/S922X/001.01-device-trees-to-build.patch diff --git a/projects/Amlogic/devices/S922X/options b/projects/Amlogic/devices/S922X/options index bb46761fb..a87690c77 100644 --- a/projects/Amlogic/devices/S922X/options +++ b/projects/Amlogic/devices/S922X/options @@ -32,7 +32,7 @@ PARTITION_TABLE="msdos" # Additional kernel make parameters (for example to specify the u-boot loadaddress) - KERNEL_MAKE_EXTRACMD+="dtbs" + KERNEL_MAKE_EXTRACMD+="$(while read i; do eval $i; for dtb in ${DTB[@]}; do echo amlogic/${dtb}.dtb; done; done <<< $(grep DTB= ${PROJECT_DIR}/${PROJECT}/bootloader/mkimage))" # Define the CPU HW_CPU="Amlogic S922X" diff --git a/projects/Amlogic/packages/linux/patches/S922X/001.01-device-trees-to-build.patch b/projects/Amlogic/packages/linux/patches/S922X/001.01-device-trees-to-build.patch deleted file mode 100644 index 5d0bf6473..000000000 --- a/projects/Amlogic/packages/linux/patches/S922X/001.01-device-trees-to-build.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/Makefile linux/arch/arm64/boot/dts/amlogic/Makefile ---- linux.orig/arch/arm64/boot/dts/amlogic/Makefile 2023-09-12 12:02:56.937601871 +0000 -+++ linux/arch/arm64/boot/dts/amlogic/Makefile 2023-09-12 12:03:27.490291628 +0000 -@@ -1,69 +1,5 @@ - # SPDX-License-Identifier: GPL-2.0 --dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-3.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-go-ultra.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-hub.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-libretech-ac.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-mecool-kii-pro.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-gt1-ultimate.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air-gbit.dtb --dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-powkiddy-rgb10-max-3.dtb From 920f70b6dda3ae13619ee6c0b659dc2d8ceea956 Mon Sep 17 00:00:00 2001 From: mason Date: Tue, 31 Oct 2023 19:22:37 +0000 Subject: [PATCH 011/112] Fix Audio wake from sleep issue (WIP --- .../Anbernic RG552/sleep.d/post/001-audio | 13 +++++++++++++ .../devices/Anbernic RG552/sleep.d/pre/001-audio | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio create mode 100644 packages/hardware/quirks/devices/Anbernic RG552/sleep.d/pre/001-audio diff --git a/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio b/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio new file mode 100644 index 000000000..c15b439fe --- /dev/null +++ b/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio @@ -0,0 +1,13 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +# Workaround for no audio on wake from sleep. + +. /etc/profile + +HDMI=$(pactl list sinks short | grep hdmi | cut -c 0-2) +SPEAKER=$(pactl list sinks short | grep es8316 | cut -c 0-2) + +#Set sink to one we aren't currently using +pactl set-default-sink ${SPEAKER} diff --git a/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/pre/001-audio b/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/pre/001-audio new file mode 100644 index 000000000..2dc5fd014 --- /dev/null +++ b/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/pre/001-audio @@ -0,0 +1,16 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +# Workaround for no audio on wake from sleep. + +. /etc/profile + +HDMI=$(pactl list sinks short | grep hdmi | cut -c 0-2) +SPEAKER=$(pactl list sinks short | grep es8316 | cut -c 0-2) + +#Set sink to one we aren't currently using +pactl set-default-sink ${HDMI} + +#Suspend the sink we are using +pactl suspend-sink ${SPEAKER} 1 From db3c61645e3095e192781b5e8eecc996b0b765bd Mon Sep 17 00:00:00 2001 From: fewtarius Date: Tue, 31 Oct 2023 22:34:27 +0000 Subject: [PATCH 012/112] Fix hdmi rules. --- packages/sysutils/system-utils/udev.d/099-hdmi | 2 -- packages/sysutils/system-utils/udev.d/99-hdmi.rules | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 packages/sysutils/system-utils/udev.d/099-hdmi diff --git a/packages/sysutils/system-utils/udev.d/099-hdmi b/packages/sysutils/system-utils/udev.d/099-hdmi deleted file mode 100644 index a7c2fd447..000000000 --- a/packages/sysutils/system-utils/udev.d/099-hdmi +++ /dev/null @@ -1,2 +0,0 @@ -### Change FB rotation when hdmi is connected (Powkiddy x55) -ACTION=="change", SUBSYSTEM=="extcon", ATTRS{name}=="*hdmi*", RUN+="/usr/bin/hdmi_sense" diff --git a/packages/sysutils/system-utils/udev.d/99-hdmi.rules b/packages/sysutils/system-utils/udev.d/99-hdmi.rules index 6747ef217..657be8fed 100644 --- a/packages/sysutils/system-utils/udev.d/99-hdmi.rules +++ b/packages/sysutils/system-utils/udev.d/99-hdmi.rules @@ -1 +1,2 @@ -KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="add|change", RUN+="/usr/bin/hdmi_sense" +KERNEL=="card*", SUBSYSTEM=="drm", ACTION=="add|change", RUN+="/usr/bin/hdmi_sense" +ACTION=="change", SUBSYSTEM=="extcon", ATTRS{name}=="*hdmi*", RUN+="/usr/bin/hdmi_sense" From 04c8b615302c1c9a3b483c54c634d780328c65ec Mon Sep 17 00:00:00 2001 From: mason Date: Tue, 31 Oct 2023 22:48:49 +0000 Subject: [PATCH 013/112] Clean up JELOS hmdi audio sensing --- .../sources/devices/RK3399/video_sense | 24 +++++-------------- .../system-utils/sources/scripts/hdmi_sense | 2 +- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/packages/sysutils/system-utils/sources/devices/RK3399/video_sense b/packages/sysutils/system-utils/sources/devices/RK3399/video_sense index 0017b4d07..10b85e050 100644 --- a/packages/sysutils/system-utils/sources/devices/RK3399/video_sense +++ b/packages/sysutils/system-utils/sources/devices/RK3399/video_sense @@ -1,7 +1,7 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) +# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech) . /etc/profile @@ -11,35 +11,23 @@ if [ ! -d "/sys/class/gpio/gpio${DEVICE_HDMI_GPIO}" ]; then echo in > /sys/class/gpio/gpio${DEVICE_HDMI_GPIO}/direction fi +HDMI=$(pactl list sinks short | grep hdmi | cut -c 0-2) +SPEAKER=$(pactl list sinks short | grep es8316 | cut -c 0-2) + # Check HDMI plugged / unplugged, set audio output, restart Emulation Station HDMI_VALUE=$(cat /sys/class/gpio/gpio${DEVICE_HDMI_GPIO}/value) while true do HDMI_NEW_VALUE=$(cat /sys/class/gpio/gpio${DEVICE_HDMI_GPIO}/value) - HP_GPIO=$(cat /sys/class/gpio/gpio${DEVICE_JACK}/value) if test "${HDMI_VALUE}" != "${HDMI_NEW_VALUE}" then case ${HDMI_NEW_VALUE} in "0") #HDMI plugged - sed -i 's/pcm "hw:0,0"/pcm "hw:1,0"/' /storage/.config/asound.conf + pactl set-default-sink ${HDMI} ;; "1") #HDMI unpluagged - sed -i 's/pcm "hw:1,0"/pcm "hw:0,0"/' /storage/.config/asound.conf - case ${HP_GPIO} in - "1") - amixer -c 0 cset name='Speaker Switch' ${DEVICE_PLAYBACK_PATH_HP} - amixer -c 0 set 'Headphone' '67%' - amixer -c 0 set 'Playback Polarity' Normal - set_setting "audio.device" "headphone" - ;; - *) - amixer -c 0 cset name='Speaker Switch' ${DEVICE_PLAYBACK_PATH_SPK} - amixer -c 0 set 'Headphone' '100%' - amixer -c 0 set 'Playback Polarity' 'R Invert' - set_setting "audio.device" "speakers" - ;; - esac + pactl set-default-sink ${SPEAKER} ;; esac systemctl restart weston diff --git a/packages/sysutils/system-utils/sources/scripts/hdmi_sense b/packages/sysutils/system-utils/sources/scripts/hdmi_sense index c718f9211..8c232aea4 100755 --- a/packages/sysutils/system-utils/sources/scripts/hdmi_sense +++ b/packages/sysutils/system-utils/sources/scripts/hdmi_sense @@ -6,7 +6,7 @@ # Source predefined functions and variables . /etc/profile -for HDMI in /sys/class/drm/card0/card0-HDMI-A-[0-9]/status +for HDMI in /sys/class/drm/card*/card*-HDMI-A-[0-9]/status do HDMI_STATE=$(<${HDMI}) case ${HDMI_STATE} in From 0777cf160f500af435577d9ddbd7f9d38bcc6e5e Mon Sep 17 00:00:00 2001 From: mason Date: Tue, 31 Oct 2023 22:50:58 +0000 Subject: [PATCH 014/112] Clean up JELOS hmdi audio sensing --- .../sysutils/system-utils/sources/devices/RK3399/video_sense | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/system-utils/sources/devices/RK3399/video_sense b/packages/sysutils/system-utils/sources/devices/RK3399/video_sense index 10b85e050..f5414ddad 100644 --- a/packages/sysutils/system-utils/sources/devices/RK3399/video_sense +++ b/packages/sysutils/system-utils/sources/devices/RK3399/video_sense @@ -1,7 +1,7 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech) +# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) . /etc/profile From 56b0e0885adf1cc1252c60ee285fed94c53ea9ea Mon Sep 17 00:00:00 2001 From: mason Date: Wed, 1 Nov 2023 05:06:15 +0000 Subject: [PATCH 015/112] Fix RK3399 HDMI sense --- .../quirks/devices/Anbernic RG552/040-hdmi | 20 ------------------- .../Anbernic RG552/sleep.d/post/001-audio | 17 ++++++++++++++++ .../sources/devices/RK3399/video_sense | 2 +- 3 files changed, 18 insertions(+), 21 deletions(-) delete mode 100755 packages/hardware/quirks/devices/Anbernic RG552/040-hdmi diff --git a/packages/hardware/quirks/devices/Anbernic RG552/040-hdmi b/packages/hardware/quirks/devices/Anbernic RG552/040-hdmi deleted file mode 100755 index ce01028ee..000000000 --- a/packages/hardware/quirks/devices/Anbernic RG552/040-hdmi +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) - -. /storage/.config/profile.d/001-device_config - -# Set export GPIO for HDMI -if [ ! -d "/sys/class/gpio/gpio${DEVICE_HDMI_GPIO}" ]; then - echo ${DEVICE_HDMI_GPIO} > /sys/class/gpio/export - echo in > /sys/class/gpio/gpio${DEVICE_HDMI_GPIO}/direction -fi - -# Check HDMI plug state and switch to HDMI audo if true -HDMI_VALUE=$(cat /sys/class/gpio/gpio${DEVICE_HDMI_GPIO}/value) - case ${HDMI_VALUE} in - "0") - sed -i 's/pcm "hw:0,0"/pcm "hw:1,0"'/ /storage/.config/asound.conf - ;; - esac diff --git a/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio b/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio index c15b439fe..cf473483d 100644 --- a/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio +++ b/packages/hardware/quirks/devices/Anbernic RG552/sleep.d/post/001-audio @@ -11,3 +11,20 @@ SPEAKER=$(pactl list sinks short | grep es8316 | cut -c 0-2) #Set sink to one we aren't currently using pactl set-default-sink ${SPEAKER} + +#Then check if HDMI is plugged and switch to HDMI + +# Set export GPIO for HDMI +if [ ! -d "/sys/class/gpio/gpio${DEVICE_HDMI_GPIO}" ]; then + echo ${DEVICE_HDMI_GPIO} > /sys/class/gpio/export + echo in > /sys/class/gpio/gpio${DEVICE_HDMI_GPIO}/direction +fi + +# Check HDMI plug state and switch to HDMI audo if true +HDMI_VALUE=$(cat /sys/class/gpio/gpio${DEVICE_HDMI_GPIO}/value) + case ${HDMI_VALUE} in + "0") + sleep 11 + pactl set-default-sink ${HDMI} + ;; + esac diff --git a/packages/sysutils/system-utils/sources/devices/RK3399/video_sense b/packages/sysutils/system-utils/sources/devices/RK3399/video_sense index f5414ddad..6c5811b77 100644 --- a/packages/sysutils/system-utils/sources/devices/RK3399/video_sense +++ b/packages/sysutils/system-utils/sources/devices/RK3399/video_sense @@ -30,7 +30,7 @@ do pactl set-default-sink ${SPEAKER} ;; esac - systemctl restart weston + killall emulationstation HDMI_VALUE=${HDMI_NEW_VALUE} fi From 91c416df2c43712bfa20aaf9bbdfb83db91bb458 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Wed, 1 Nov 2023 15:45:58 +0000 Subject: [PATCH 016/112] Switch devices back to alsathread for retroarch, pulse seems to affect performance. --- .../emulators/standalone/retroarch/sources/AMD64/retroarch.cfg | 2 +- .../standalone/retroarch/sources/RK3326/retroarch.cfg | 2 +- .../standalone/retroarch/sources/RK3399/retroarch.cfg | 2 +- .../standalone/retroarch/sources/RK3566/retroarch.cfg | 2 +- .../standalone/retroarch/sources/RK3588/retroarch.cfg | 2 +- .../emulators/standalone/retroarch/sources/S922X/retroarch.cfg | 2 +- packages/jelos/sources/post-update | 3 +++ packages/sysutils/system-utils/udev.d/99-hdmi.rules | 1 - 8 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/emulators/standalone/retroarch/sources/AMD64/retroarch.cfg b/packages/emulators/standalone/retroarch/sources/AMD64/retroarch.cfg index 524190bbb..e80f97ae8 100644 --- a/packages/emulators/standalone/retroarch/sources/AMD64/retroarch.cfg +++ b/packages/emulators/standalone/retroarch/sources/AMD64/retroarch.cfg @@ -13,7 +13,7 @@ aspect_ratio_index = "22" assets_directory = "/tmp/assets" audio_block_frames = "0" audio_device = "" -audio_driver = "pulse" +audio_driver = "alsathread" audio_dsp_plugin = "" audio_enable = "true" audio_enable_menu = "false" diff --git a/packages/emulators/standalone/retroarch/sources/RK3326/retroarch.cfg b/packages/emulators/standalone/retroarch/sources/RK3326/retroarch.cfg index 6fcf4eea6..5448eef76 100755 --- a/packages/emulators/standalone/retroarch/sources/RK3326/retroarch.cfg +++ b/packages/emulators/standalone/retroarch/sources/RK3326/retroarch.cfg @@ -13,7 +13,7 @@ aspect_ratio_index = "22" assets_directory = "/tmp/assets" audio_block_frames = "0" audio_device = "" -audio_driver = "pulse" +audio_driver = "alsathread" audio_dsp_plugin = "" audio_enable_menu_bgm = "false" audio_enable_menu_cancel = "false" diff --git a/packages/emulators/standalone/retroarch/sources/RK3399/retroarch.cfg b/packages/emulators/standalone/retroarch/sources/RK3399/retroarch.cfg index e83a497f6..add180195 100644 --- a/packages/emulators/standalone/retroarch/sources/RK3399/retroarch.cfg +++ b/packages/emulators/standalone/retroarch/sources/RK3399/retroarch.cfg @@ -13,7 +13,7 @@ aspect_ratio_index = "22" assets_directory = "/tmp/assets" audio_block_frames = "0" audio_device = "" -audio_driver = "pulse" +audio_driver = "alsathread" audio_dsp_plugin = "" audio_enable_menu_bgm = "false" audio_enable_menu_cancel = "false" diff --git a/packages/emulators/standalone/retroarch/sources/RK3566/retroarch.cfg b/packages/emulators/standalone/retroarch/sources/RK3566/retroarch.cfg index 291b4648a..417156035 100644 --- a/packages/emulators/standalone/retroarch/sources/RK3566/retroarch.cfg +++ b/packages/emulators/standalone/retroarch/sources/RK3566/retroarch.cfg @@ -13,7 +13,7 @@ aspect_ratio_index = "22" assets_directory = "/tmp/assets" audio_block_frames = "0" audio_device = "" -audio_driver = "pulse" +audio_driver = "alsathread" audio_dsp_plugin = "" audio_enable_menu_bgm = "false" audio_enable_menu_cancel = "false" diff --git a/packages/emulators/standalone/retroarch/sources/RK3588/retroarch.cfg b/packages/emulators/standalone/retroarch/sources/RK3588/retroarch.cfg index cdc0d5e70..4cf09f7de 100755 --- a/packages/emulators/standalone/retroarch/sources/RK3588/retroarch.cfg +++ b/packages/emulators/standalone/retroarch/sources/RK3588/retroarch.cfg @@ -13,7 +13,7 @@ aspect_ratio_index = "22" assets_directory = "/tmp/assets" audio_block_frames = "0" audio_device = "" -audio_driver = "pulse" +audio_driver = "alsathread" audio_dsp_plugin = "" audio_enable_menu_bgm = "false" audio_enable_menu_cancel = "false" diff --git a/packages/emulators/standalone/retroarch/sources/S922X/retroarch.cfg b/packages/emulators/standalone/retroarch/sources/S922X/retroarch.cfg index 66c7a11bf..792bc4834 100644 --- a/packages/emulators/standalone/retroarch/sources/S922X/retroarch.cfg +++ b/packages/emulators/standalone/retroarch/sources/S922X/retroarch.cfg @@ -13,7 +13,7 @@ aspect_ratio_index = "22" assets_directory = "/tmp/assets" audio_block_frames = "0" audio_device = "" -audio_driver = "pulse" +audio_driver = "alsathread" audio_dsp_plugin = "" audio_enable_menu_bgm = "false" audio_enable_menu_cancel = "false" diff --git a/packages/jelos/sources/post-update b/packages/jelos/sources/post-update index 93b607bc0..5ac2e24e4 100644 --- a/packages/jelos/sources/post-update +++ b/packages/jelos/sources/post-update @@ -109,3 +109,6 @@ sed -i 's~builtin_imageviewer_enable.*$~builtin_imageviewer_enable = "false"~g' ### 20231010 - Stop setting vram in ES settings. sed -i '/^.* Date: Wed, 1 Nov 2023 15:04:22 +0000 Subject: [PATCH 017/112] Amlogic: add support for ODROID-N2L --- .../quirks/devices/Hardkernel ODROID-N2L | 1 + projects/Amlogic/bootloader/mkimage | 6 ++ projects/Amlogic/bootloader/update.sh | 5 +- projects/Amlogic/devices/S922X/options | 4 +- .../001.01-Add-ODROID-N2L-device-tree.patch | 80 +++++++++++++++++++ .../packages/u-boot-Odroid_N2L/package.mk | 34 ++++++++ .../patches/001-remove-amlogic-prefix.patch | 11 +++ .../patches/002-instant-boot.patch | 10 +++ 8 files changed, 148 insertions(+), 3 deletions(-) create mode 120000 packages/hardware/quirks/devices/Hardkernel ODROID-N2L create mode 100644 projects/Amlogic/packages/linux/patches/S922X/001.01-Add-ODROID-N2L-device-tree.patch create mode 100644 projects/Amlogic/packages/u-boot-Odroid_N2L/package.mk create mode 100644 projects/Amlogic/packages/u-boot-Odroid_N2L/patches/001-remove-amlogic-prefix.patch create mode 100644 projects/Amlogic/packages/u-boot-Odroid_N2L/patches/002-instant-boot.patch diff --git a/packages/hardware/quirks/devices/Hardkernel ODROID-N2L b/packages/hardware/quirks/devices/Hardkernel ODROID-N2L new file mode 120000 index 000000000..0a1ef3988 --- /dev/null +++ b/packages/hardware/quirks/devices/Hardkernel ODROID-N2L @@ -0,0 +1 @@ +Hardkernel ODROID-N2 \ No newline at end of file diff --git a/projects/Amlogic/bootloader/mkimage b/projects/Amlogic/bootloader/mkimage index 08d644410..97015d902 100644 --- a/projects/Amlogic/bootloader/mkimage +++ b/projects/Amlogic/bootloader/mkimage @@ -56,4 +56,10 @@ case "${SUBDEVICE}" in mkimage_extlinux mkimage_uboot ;; + Odroid_N2L) + DTB=("meson-g12b-odroid-n2l") + mkimage_dtb + mkimage_extlinux + mkimage_uboot + ;; esac diff --git a/projects/Amlogic/bootloader/update.sh b/projects/Amlogic/bootloader/update.sh index 44a78113b..5bf0319c3 100755 --- a/projects/Amlogic/bootloader/update.sh +++ b/projects/Amlogic/bootloader/update.sh @@ -60,9 +60,12 @@ if [ -n "$DT_ID" ]; then *odroid_go_ultra*|*rgb10-max-3*) SUBDEVICE="Odroid_GOU" ;; - *odroid-n2*) + *odroid-n2|*odroid-n2-plus) SUBDEVICE="Odroid_N2" ;; + *odroid-n2l) + SUBDEVICE="Odroid_N2L" + ;; esac fi diff --git a/projects/Amlogic/devices/S922X/options b/projects/Amlogic/devices/S922X/options index a87690c77..5fb6e7d30 100644 --- a/projects/Amlogic/devices/S922X/options +++ b/projects/Amlogic/devices/S922X/options @@ -150,5 +150,5 @@ # htop tool (yes / no) HTOP_TOOL="yes" - # JELOS Subdevices - SUBDEVICES="Odroid_GOU Odroid_N2" + # JELOS Subdevices (supported devices: Odroid_GOU Odroid_N2 Odroid_N2L) + SUBDEVICES="Odroid_GOU Odroid_N2 Odroid_N2L" diff --git a/projects/Amlogic/packages/linux/patches/S922X/001.01-Add-ODROID-N2L-device-tree.patch b/projects/Amlogic/packages/linux/patches/S922X/001.01-Add-ODROID-N2L-device-tree.patch new file mode 100644 index 000000000..720c939ef --- /dev/null +++ b/projects/Amlogic/packages/linux/patches/S922X/001.01-Add-ODROID-N2L-device-tree.patch @@ -0,0 +1,80 @@ +--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2l.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2l.dts +@@ -0,0 +1,77 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2023 JELOS (https://github.com/JustEnoughLinuxOS) ++ */ ++ ++/dts-v1/; ++ ++#include "meson-g12b-a311d.dtsi" ++#include "meson-g12b-odroid-n2.dtsi" ++ ++/ { ++ compatible = "hardkernel,odroid-n2l", "amlogic,s922x", "amlogic,g12b"; ++ model = "Hardkernel ODROID-N2L"; ++ ++ sound { ++ compatible = "amlogic,axg-sound-card"; ++ model = "ODROID-N2L"; ++ audio-aux-devs = <&tdmout_b>, <&tdmin_a>, <&tdmin_b>, ++ <&tdmin_c>, <&tdmin_lb>; ++ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", ++ "TDMOUT_B IN 1", "FRDDR_B OUT 1", ++ "TDMOUT_B IN 2", "FRDDR_C OUT 1", ++ "TDM_B Playback", "TDMOUT_B OUT", ++ "TDMIN_A IN 4", "TDM_B Loopback", ++ "TDMIN_B IN 4", "TDM_B Loopback", ++ "TDMIN_C IN 4", "TDM_B Loopback", ++ "TDMIN_LB IN 1", "TDM_B Loopback", ++ "TODDR_A IN 0", "TDMIN_A OUT", ++ "TODDR_B IN 0", "TDMIN_A OUT", ++ "TODDR_C IN 0", "TDMIN_A OUT", ++ "TODDR_A IN 1", "TDMIN_B OUT", ++ "TODDR_B IN 1", "TDMIN_B OUT", ++ "TODDR_C IN 1", "TDMIN_B OUT", ++ "TODDR_A IN 2", "TDMIN_C OUT", ++ "TODDR_B IN 2", "TDMIN_C OUT", ++ "TODDR_C IN 2", "TDMIN_C OUT", ++ "TODDR_A IN 6", "TDMIN_LB OUT", ++ "TODDR_B IN 6", "TDMIN_LB OUT", ++ "TODDR_C IN 6", "TDMIN_LB OUT"; ++ ++ dai-link-6 { ++ /delete-node/ codec-1; ++ }; ++ ++ dai-link-7 { ++ /delete-node/ codec-1; ++ }; ++ ++ /delete-node/ dai-link-9; ++ }; ++}; ++ ++ð_phy { ++ status = "disabled"; ++}; ++ ++&vddcpu_a { ++ regulator-min-microvolt = <680000>; ++ regulator-max-microvolt = <1040000>; ++ ++ pwms = <&pwm_ab 0 1500 0>; ++}; ++ ++&vddcpu_b { ++ regulator-min-microvolt = <680000>; ++ regulator-max-microvolt = <1040000>; ++ ++ pwms = <&pwm_AO_cd 1 1500 0>; ++}; ++ ++&usb2_phy0 { ++ phy-supply = <&usb_pwr_en>; ++}; ++ ++&usb2_phy1 { ++ phy-supply = <&usb_pwr_en>; ++}; diff --git a/projects/Amlogic/packages/u-boot-Odroid_N2L/package.mk b/projects/Amlogic/packages/u-boot-Odroid_N2L/package.mk new file mode 100644 index 000000000..949c41adf --- /dev/null +++ b/projects/Amlogic/packages/u-boot-Odroid_N2L/package.mk @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +PKG_NAME="u-boot-Odroid_N2L" +PKG_VERSION="v2023.10" +PKG_LICENSE="GPL" +PKG_SITE="https://www.denx.de/wiki/U-Boot" +PKG_URL="https://github.com/u-boot/u-boot/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain amlogic-boot-fip" +PKG_DEPENDS_UNPACK="amlogic-boot-fip" +PKG_LONGDESC="Das U-Boot is a cross-platform bootloader for embedded systems." +PKG_TOOLCHAIN="manual" + +configure_package() { + PKG_UBOOT_CONFIG="odroid-n2l_defconfig" + PKG_UBOOT_FIP="odroid-n2l" + FIP_DIR="$(get_build_dir amlogic-boot-fip)" +} + +make_target() { + [ "${BUILD_WITH_DEBUG}" = "yes" ] && PKG_DEBUG=1 || PKG_DEBUG=0 + setup_pkg_config_host + DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm make mrproper + DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm make HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" ${PKG_UBOOT_CONFIG} + DEBUG=${PKG_DEBUG} CROSS_COMPILE="${TARGET_KERNEL_PREFIX}" LDFLAGS="" ARCH=arm _python_sysroot="${TOOLCHAIN}" _python_prefix=/ _python_exec_prefix=/ make HOSTCC="${HOST_CC}" HOSTCFLAGS="-I${TOOLCHAIN}/include" HOSTLDFLAGS="${HOST_LDFLAGS}" HOSTSTRIP="true" CONFIG_MKIMAGE_DTC_PATH="scripts/dtc/dtc" + + cp -av ${PKG_BUILD}/u-boot.bin ${FIP_DIR}/${PKG_UBOOT_FIP} + cd ${FIP_DIR} + ./build-fip.sh ${PKG_UBOOT_FIP} ${FIP_DIR}/${PKG_UBOOT_FIP}/u-boot.bin ${PKG_BUILD} +} + +makeinstall_target() { + : # nothing +} diff --git a/projects/Amlogic/packages/u-boot-Odroid_N2L/patches/001-remove-amlogic-prefix.patch b/projects/Amlogic/packages/u-boot-Odroid_N2L/patches/001-remove-amlogic-prefix.patch new file mode 100644 index 000000000..671fd3df0 --- /dev/null +++ b/projects/Amlogic/packages/u-boot-Odroid_N2L/patches/001-remove-amlogic-prefix.patch @@ -0,0 +1,11 @@ +--- a/include/configs/meson64.h ++++ b/include/configs/meson64.h +@@ -99,7 +99,7 @@ + "pxefile_addr_r=0x01080000\0" \ + "fdtoverlay_addr_r=0x01000000\0" \ + "ramdisk_addr_r=0x13000000\0" \ +- "fdtfile=amlogic/" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ ++ "fdtfile=/" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ + BOOTENV + #endif + diff --git a/projects/Amlogic/packages/u-boot-Odroid_N2L/patches/002-instant-boot.patch b/projects/Amlogic/packages/u-boot-Odroid_N2L/patches/002-instant-boot.patch new file mode 100644 index 000000000..f91a833c5 --- /dev/null +++ b/projects/Amlogic/packages/u-boot-Odroid_N2L/patches/002-instant-boot.patch @@ -0,0 +1,10 @@ +--- a/configs/odroid-n2l_defconfig ++++ b/configs/odroid-n2l_defconfig +@@ -18,6 +18,7 @@ + CONFIG_DEBUG_UART=y + CONFIG_REMAKE_ELF=y + CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + # CONFIG_DISPLAY_CPUINFO is not set + CONFIG_MISC_INIT_R=y + CONFIG_SYS_MAXARGS=32 From 826a0666ab57bb1ff67aacbb796a04eb2b71c348 Mon Sep 17 00:00:00 2001 From: mason Date: Wed, 1 Nov 2023 20:48:37 +0000 Subject: [PATCH 018/112] Increase rk3326 ram voltage - fix devices that wont boot --- .../packages/linux/patches/RK3326/000-rk3326-devices.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch b/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch index be1fec2a0..28e5f9566 100644 --- a/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch +++ b/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch @@ -102,7 +102,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/px30.dtsi linux/arch/arm64/bo + compatible = "operating-points-v2"; + opp-786000000 { + opp-hz = /bits/ 64 <786000000>; -+ opp-microvolt = <1100000>; ++ opp-microvolt = <1125000>; + }; + }; + From 6aeb39d78df770f17e64b5fdb38a7bc4d34ef908 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Wed, 1 Nov 2023 22:13:10 +0000 Subject: [PATCH 019/112] Set the card 0 volume to 100% and then set the system volume. This corrects conditions where the pipewire volume is not the same as the card 0 volume which results in low volume output. --- packages/jelos/autostart/050-audio | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/jelos/autostart/050-audio b/packages/jelos/autostart/050-audio index 8cf7a79de..c9bd0ff9e 100755 --- a/packages/jelos/autostart/050-audio +++ b/packages/jelos/autostart/050-audio @@ -37,5 +37,10 @@ then VOLUME="${DEVICE_VOLUME}" fi +### Set the primary card volume to 100% +### to eliminate low audio on some devices. +amixer -c 0 -q sset "Master" 100% + +### Now set the pipewire mixer volume /usr/bin/volume ${VOLUME} From b432abaed9cec419feb3a59dbbe4b0dcde6af1fc Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 00:08:02 +0000 Subject: [PATCH 020/112] Add ES features for flycast2021. --- packages/ui/emulationstation/config/common/es_features.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ui/emulationstation/config/common/es_features.cfg b/packages/ui/emulationstation/config/common/es_features.cfg index e66cb9135..35858d580 100644 --- a/packages/ui/emulationstation/config/common/es_features.cfg +++ b/packages/ui/emulationstation/config/common/es_features.cfg @@ -793,6 +793,7 @@ + From c5d1e913adfc35c176724d0fd5c3e99500e28946 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 10:17:54 +0000 Subject: [PATCH 021/112] Add Odroid N2L to the README. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 566786136..e14308eb4 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ JELOS supports a variety of ARM and Intel/AMD based devices. | Hardkernel | [Odroid Go Super](http://jelos.org/devices/hardkernel/odroid-go-super) | Rockchip RK3326 (ARM) | Mainline Linux | Panfrost | Weston + Emulation Station | | Hardkernel | [Odroid Go Ultra](http://jelos.org/devices/hardkernel/odroid-go-ultra) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | | Hardkernel | [Odroid N2/N2+](http://jelos.org/devices/hardkernel/odroid-n2) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | +| Hardkernel | [Odroid N2L](http://jelos.org/devices/hardkernel/odroid-n2l) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | | Indiedroid | [Nova](http://jelos.org/devices/indiedroid/nova) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | | Orange Pi | [Orange Pi 5](http://jelos.org/devices/orange-pi/orange-pi-5) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | | Powkiddy | [RGB10 Max 3 Pro](http://jelos.org/devices/powkiddy/rgb10-max-3-pro) | Amlogic A311D / Mali G52 M4 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | From 450d7c53520ea3a498d53df0f0c59ab88d3edc0d Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 10:23:36 +0000 Subject: [PATCH 022/112] Add N2L to readme and release documentation. --- .github/workflows/build-main.yaml | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-main.yaml b/.github/workflows/build-main.yaml index fabd5606a..6c0ac0322 100644 --- a/.github/workflows/build-main.yaml +++ b/.github/workflows/build-main.yaml @@ -106,6 +106,7 @@ jobs: |**Atari VCS, AOKZOE, Ayaneo, Ayn, GPD, and other x86_64 devices**|[JELOS-AMD64.x86_64-${{ steps.version.outputs.version }}.img.gz](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-AMD64.x86_64-${{ steps.version.outputs.version }}.img.gz)|[documentation](/documentation/PER_DEVICE_DOCUMENTATION/AMD64/)| |**Hardkernel ODROID Go Ultra, Powkiddy RGB10 Max 3 Pro**|[JELOS-S922X.aarch64-${{ steps.version.outputs.version }}-Odroid_GOU.img.gz](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-S922X.aarch64-${{ steps.version.outputs.version }}-Odroid_GOU.img.gz)|[documentation](/documentation/PER_DEVICE_DOCUMENTATION/S922X/)| |**Hardkernel ODROID N2/N2+**|[JELOS-S922X.aarch64-${{ steps.version.outputs.version }}-Odroid_N2.img.gz](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-S922X.aarch64-${{ steps.version.outputs.version }}.img.gz)-Odroid_N2.img|[documentation](/documentation/PER_DEVICE_DOCUMENTATION/S922X/)| + |**Hardkernel ODROID N2L**|[JELOS-S922X.aarch64-${{ steps.version.outputs.version }}-Odroid_N2L.img.gz](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-S922X.aarch64-${{ steps.version.outputs.version }}.img.gz)-Odroid_N2L.img|[documentation](/documentation/PER_DEVICE_DOCUMENTATION/S922X/)| |**Orange Pi 5, and Indiedroid Nova**|[JELOS-RK3588.aarch64-${{ steps.version.outputs.version }}.img.gz](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-RK3588.aarch64-${{ steps.version.outputs.version }}.img.gz)|[documentation](/documentation/PER_DEVICE_DOCUMENTATION/RK3588/)| |**Powkiddy x55**|[JELOS-RK3566-X55.aarch64-${{ steps.version.outputs.version }}.img.gz](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-RK3566-X55.aarch64-${{ steps.version.outputs.version }}.img.gz)|[documentation](/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/)| @@ -123,7 +124,7 @@ jobs: |**Anbernic RG353P/M/V/VS, RG503, Powkiddy RK2023, RGB30**|[JELOS-RK3566.aarch64-${{ steps.version.outputs.version }}.tar](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-RK3566.aarch64-${{ steps.version.outputs.version }}.tar)| |**Anbernic RG552**|[JELOS-RK3399.aarch64-${{ steps.version.outputs.version }}.tar](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-RK3399.aarch64-${{ steps.version.outputs.version }}.tar)| |****Atari VCS, AOKZOE, Ayaneo, Ayn, GPD, and other x86_64 devices****|[JELOS-AMD64.x86_64-${{ steps.version.outputs.version }}.tar](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-AMD64.x86_64-${{ steps.version.outputs.version }}.tar)| - |**Hardkernel ODROID Go Ultra, N2/N2+, Powkiddy RGB10 Max 3 Pro**|[JELOS-S922X.aarch64-${{ steps.version.outputs.version }}.tar](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-S922X.aarch64-${{ steps.version.outputs.version }}.tar)| + |**Hardkernel ODROID Go Ultra, N2/N2+/N2L, Powkiddy RGB10 Max 3 Pro**|[JELOS-S922X.aarch64-${{ steps.version.outputs.version }}.tar](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-S922X.aarch64-${{ steps.version.outputs.version }}.tar)| |**Orange Pi 5, and Indiedroid Nova**|[JELOS-RK3588.aarch64-${{ steps.version.outputs.version }}.tar](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-RK3588.aarch64-${{ steps.version.outputs.version }}.tar)| |**Powkiddy x55**|[JELOS-RK3566-X55.aarch64-${{ steps.version.outputs.version }}.tar](https://github.com/JustEnoughLinuxOS/distribution/releases/download/${{ steps.version.outputs.version }}/JELOS-RK3566-X55.aarch64-${{ steps.version.outputs.version }}.tar)| diff --git a/README.md b/README.md index e14308eb4..0e0b68074 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ JELOS supports a variety of ARM and Intel/AMD based devices. | Hardkernel | [Odroid Go Super](http://jelos.org/devices/hardkernel/odroid-go-super) | Rockchip RK3326 (ARM) | Mainline Linux | Panfrost | Weston + Emulation Station | | Hardkernel | [Odroid Go Ultra](http://jelos.org/devices/hardkernel/odroid-go-ultra) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | | Hardkernel | [Odroid N2/N2+](http://jelos.org/devices/hardkernel/odroid-n2) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | -| Hardkernel | [Odroid N2L](http://jelos.org/devices/hardkernel/odroid-n2l) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | +| Hardkernel | [Odroid N2L](http://jelos.org/devices/hardkernel/odroid-n2) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | | Indiedroid | [Nova](http://jelos.org/devices/indiedroid/nova) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | | Orange Pi | [Orange Pi 5](http://jelos.org/devices/orange-pi/orange-pi-5) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | | Powkiddy | [RGB10 Max 3 Pro](http://jelos.org/devices/powkiddy/rgb10-max-3-pro) | Amlogic A311D / Mali G52 M4 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | From 9151627d5ccb31a7c6f6e18f546d06ef8b80a5d5 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 10:48:20 +0000 Subject: [PATCH 023/112] Don't split N2L in README, as we're not splitting it in the jelos.org docs. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0e0b68074..d20517c25 100644 --- a/README.md +++ b/README.md @@ -121,8 +121,7 @@ JELOS supports a variety of ARM and Intel/AMD based devices. | Hardkernel | [Odroid Go Advance](http://jelos.org/devices/hardkernel/odroid-go-advance) | Rockchip RK3326 (ARM) | Mainline Linux | Panfrost | Weston + Emulation Station | | Hardkernel | [Odroid Go Super](http://jelos.org/devices/hardkernel/odroid-go-super) | Rockchip RK3326 (ARM) | Mainline Linux | Panfrost | Weston + Emulation Station | | Hardkernel | [Odroid Go Ultra](http://jelos.org/devices/hardkernel/odroid-go-ultra) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | -| Hardkernel | [Odroid N2/N2+](http://jelos.org/devices/hardkernel/odroid-n2) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | -| Hardkernel | [Odroid N2L](http://jelos.org/devices/hardkernel/odroid-n2) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | +| Hardkernel | [Odroid N2/N2+/N2L](http://jelos.org/devices/hardkernel/odroid-n2) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | | Indiedroid | [Nova](http://jelos.org/devices/indiedroid/nova) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | | Orange Pi | [Orange Pi 5](http://jelos.org/devices/orange-pi/orange-pi-5) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | | Powkiddy | [RGB10 Max 3 Pro](http://jelos.org/devices/powkiddy/rgb10-max-3-pro) | Amlogic A311D / Mali G52 M4 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | From e201006f9fe9d08663270ccdcdbd5a5bef3d58c7 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 11:11:41 +0000 Subject: [PATCH 024/112] Update emulators and cores. --- packages/apps/moonlight/package.mk | 2 +- packages/emulators/libretro/81-lr/package.mk | 2 +- packages/emulators/libretro/atari800-lr/package.mk | 2 +- packages/emulators/libretro/beetle-lynx-lr/package.mk | 2 +- packages/emulators/libretro/beetle-ngp-lr/package.mk | 2 +- packages/emulators/libretro/beetle-pce-lr/package.mk | 2 +- packages/emulators/libretro/beetle-supergrafx-lr/package.mk | 2 +- packages/emulators/libretro/beetle-vb-lr/package.mk | 2 +- packages/emulators/libretro/beetle-wswan-lr/package.mk | 2 +- packages/emulators/libretro/bluemsx-lr/package.mk | 2 +- packages/emulators/libretro/bsnes-lr/package.mk | 2 +- .../emulators/libretro/bsnes-mercury-performance-lr/package.mk | 2 +- packages/emulators/libretro/cannonball-lr/package.mk | 2 +- packages/emulators/libretro/core-info/package.mk | 2 +- packages/emulators/libretro/fbalpha2012-lr/package.mk | 2 +- packages/emulators/libretro/fbneo-lr/package.mk | 2 +- packages/emulators/libretro/libretro-database/package.mk | 2 +- packages/emulators/libretro/mame2000-lr/package.mk | 2 +- packages/emulators/libretro/mame2003-plus-lr/package.mk | 2 +- packages/emulators/libretro/mame2015-lr/package.mk | 2 +- packages/emulators/libretro/neocd_lr/package.mk | 2 +- packages/emulators/libretro/np2kai-lr/package.mk | 2 +- packages/emulators/libretro/ppsspp-lr/package.mk | 2 +- packages/emulators/libretro/quasi88-lr/package.mk | 2 +- packages/emulators/libretro/reminiscence-lr/package.mk | 2 +- packages/emulators/libretro/smsplus-gx-lr/package.mk | 2 +- packages/emulators/libretro/xrick-lr/package.mk | 2 +- packages/emulators/standalone/flycast-sa/package.mk | 2 +- packages/emulators/standalone/hatarisa/package.mk | 2 +- packages/emulators/standalone/openbor/package.mk | 2 +- packages/emulators/standalone/ppsspp-sa/package.mk | 2 +- packages/emulators/standalone/retroarch/package.mk | 2 +- packages/emulators/tools/retroarch-joypads/package.mk | 2 +- packages/themes/es-theme-art-book-next/package.mk | 2 +- 34 files changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/apps/moonlight/package.mk b/packages/apps/moonlight/package.mk index 29537caf9..2173a1fd6 100644 --- a/packages/apps/moonlight/package.mk +++ b/packages/apps/moonlight/package.mk @@ -14,7 +14,7 @@ if [ "${TARGET_ARCH}" = "x86_64" ] then PKG_SITE+="qt" PKG_URL="${PKG_SITE}.git" - PKG_VERSION="413993ab6fc97bbd3650d06ccb1a54a915f58fee" + PKG_VERSION="3cb169ea263c3cf9bb1461af291ab1461244b592" PKG_DEPENDS_TARGET+=" qt5" PKG_TOOLCHAIN="manual" make_target() { diff --git a/packages/emulators/libretro/81-lr/package.mk b/packages/emulators/libretro/81-lr/package.mk index 54a758cce..eb5609a84 100644 --- a/packages/emulators/libretro/81-lr/package.mk +++ b/packages/emulators/libretro/81-lr/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="81-lr" -PKG_VERSION="6d1b4d26aa9870133616fcfb5a763ca138ae25d1" +PKG_VERSION="525d5c18f1ff3fc54c37e083a475225d9179d59d" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv3" diff --git a/packages/emulators/libretro/atari800-lr/package.mk b/packages/emulators/libretro/atari800-lr/package.mk index ad32b658f..4d37ddd2c 100644 --- a/packages/emulators/libretro/atari800-lr/package.mk +++ b/packages/emulators/libretro/atari800-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="atari800-lr" -PKG_VERSION="20d59afb3f19065749549732f20845c3be82e68c" +PKG_VERSION="c50fb61580ca461e3aafcd41172184a840d77e77" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/emulators/libretro/beetle-lynx-lr/package.mk b/packages/emulators/libretro/beetle-lynx-lr/package.mk index aa1798975..df0108bd1 100644 --- a/packages/emulators/libretro/beetle-lynx-lr/package.mk +++ b/packages/emulators/libretro/beetle-lynx-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="beetle-lynx-lr" -PKG_VERSION="fab3ac02d5622eb53a707bd392cc037282e9d8b4" +PKG_VERSION="48909ddd1aba4de034d9c1da70c460b1724daa3b" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/beetle-ngp-lr/package.mk b/packages/emulators/libretro/beetle-ngp-lr/package.mk index a918a5c1d..645d66453 100644 --- a/packages/emulators/libretro/beetle-ngp-lr/package.mk +++ b/packages/emulators/libretro/beetle-ngp-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="beetle-ngp-lr" -PKG_VERSION="65460e3a9ad529f6901caf669abbda11f437ab55" +PKG_VERSION="673c3d924ff33d71c6a342b170eff5359244df1f" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/beetle-pce-lr/package.mk b/packages/emulators/libretro/beetle-pce-lr/package.mk index 5e1d110ad..129bb5fd5 100644 --- a/packages/emulators/libretro/beetle-pce-lr/package.mk +++ b/packages/emulators/libretro/beetle-pce-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="beetle-pce-lr" -PKG_VERSION="b59e34af5383fdfe626af5900bbb231871ece0ea" +PKG_VERSION="d61e6e5740aeeb56427802d8d52b912c1a6422b6" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/beetle-supergrafx-lr/package.mk b/packages/emulators/libretro/beetle-supergrafx-lr/package.mk index 098754433..dfb19b91c 100644 --- a/packages/emulators/libretro/beetle-supergrafx-lr/package.mk +++ b/packages/emulators/libretro/beetle-supergrafx-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="beetle-supergrafx-lr" -PKG_VERSION="733b29460bfa254ccea096d29e8cc566e48aa633" +PKG_VERSION="9eb9dcae1f6e37516d20fdc4a8879c8204ad4045" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/beetle-vb-lr/package.mk b/packages/emulators/libretro/beetle-vb-lr/package.mk index 91b9a0dc6..101743254 100644 --- a/packages/emulators/libretro/beetle-vb-lr/package.mk +++ b/packages/emulators/libretro/beetle-vb-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="beetle-vb-lr" -PKG_VERSION="732a8f701e671bf032165730fdf8bd96fb5ca7bb" +PKG_VERSION="9d1bd03f21dac7897f65269e1095496331efce8b" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/beetle-wswan-lr/package.mk b/packages/emulators/libretro/beetle-wswan-lr/package.mk index 6740e45dd..d082ba0ba 100644 --- a/packages/emulators/libretro/beetle-wswan-lr/package.mk +++ b/packages/emulators/libretro/beetle-wswan-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="beetle-wswan-lr" -PKG_VERSION="a0ddcd3f084f5b4eb06acb6e03b8c4707a2f6123" +PKG_VERSION="32bf70a3032a138baa969c22445f4b7821632c30" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/bluemsx-lr/package.mk b/packages/emulators/libretro/bluemsx-lr/package.mk index 6cd445dfd..57c556777 100644 --- a/packages/emulators/libretro/bluemsx-lr/package.mk +++ b/packages/emulators/libretro/bluemsx-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="bluemsx-lr" -PKG_VERSION="e21bf74bddb79ad1bbe20b4d964e7515269c669b" +PKG_VERSION="ce9b5a8dd1661423226e1099e09cee1a4ae9eb2c" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/bsnes-lr/package.mk b/packages/emulators/libretro/bsnes-lr/package.mk index 49e92198c..0a8539857 100644 --- a/packages/emulators/libretro/bsnes-lr/package.mk +++ b/packages/emulators/libretro/bsnes-lr/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) PKG_NAME="bsnes-lr" -PKG_VERSION="ef4df4e683e1e6a194fd5ae6c9af2dae62df3998" +PKG_VERSION="0685381e42f1c84b88d67f799bf05ecc69e9bc3a" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/bsnes-libretro" PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/emulators/libretro/bsnes-mercury-performance-lr/package.mk b/packages/emulators/libretro/bsnes-mercury-performance-lr/package.mk index ffc7fa03c..07efb2079 100644 --- a/packages/emulators/libretro/bsnes-mercury-performance-lr/package.mk +++ b/packages/emulators/libretro/bsnes-mercury-performance-lr/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) PKG_NAME="bsnes-mercury-performance-lr" -PKG_VERSION="fb9a41fe9bc230a07c4506cad3cbf21d3fa635b4" +PKG_VERSION="60c204ca17941704110885a815a65c740572326f" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/bsnes-mercury" PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/emulators/libretro/cannonball-lr/package.mk b/packages/emulators/libretro/cannonball-lr/package.mk index 445e02171..d94b8f4ee 100644 --- a/packages/emulators/libretro/cannonball-lr/package.mk +++ b/packages/emulators/libretro/cannonball-lr/package.mk @@ -21,7 +21,7 @@ ################################################################################ PKG_NAME="cannonball-lr" -PKG_VERSION="93ca14d7074b400fc3ed9ba8cefe0622f8d76176" +PKG_VERSION="c5487ee342ec2596f733a211b812e338cdba8ad8" PKG_ARCH="any" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/libretro/cannonball" diff --git a/packages/emulators/libretro/core-info/package.mk b/packages/emulators/libretro/core-info/package.mk index 503894f4b..7d131b1f5 100644 --- a/packages/emulators/libretro/core-info/package.mk +++ b/packages/emulators/libretro/core-info/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="core-info" -PKG_VERSION="63fc405d19f64b6559fe6428e719756a7979e596" +PKG_VERSION="2aa595b476569472290c4ff78bbfbd630528ae62" PKG_LICENSE="GPL" PKG_SITE="https://github.com/libretro/libretro-core-info" PKG_URL="https://github.com/libretro/libretro-core-info/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/emulators/libretro/fbalpha2012-lr/package.mk b/packages/emulators/libretro/fbalpha2012-lr/package.mk index eed2031b7..ccd91858f 100644 --- a/packages/emulators/libretro/fbalpha2012-lr/package.mk +++ b/packages/emulators/libretro/fbalpha2012-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="fbalpha2012-lr" -PKG_VERSION="7f8860543a81ba79c0e1ce1aa219af44568c628a" +PKG_VERSION="b7ac554c53561d41640372f23dab15cd6fc4f0c4" PKG_ARCH="any" PKG_LICENSE="Non-commercial" PKG_SITE="https://github.com/libretro/fbalpha2012" diff --git a/packages/emulators/libretro/fbneo-lr/package.mk b/packages/emulators/libretro/fbneo-lr/package.mk index 9d716f00c..1f47371d0 100644 --- a/packages/emulators/libretro/fbneo-lr/package.mk +++ b/packages/emulators/libretro/fbneo-lr/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="fbneo-lr" -PKG_VERSION="6f65c17648bb98217d8ddcdc750505d4ac0916e5" +PKG_VERSION="091431b455303e5e6cea4ad10152034b89ba2f61" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="Non-commercial" diff --git a/packages/emulators/libretro/libretro-database/package.mk b/packages/emulators/libretro/libretro-database/package.mk index 3951f5918..e94e3fcf4 100644 --- a/packages/emulators/libretro/libretro-database/package.mk +++ b/packages/emulators/libretro/libretro-database/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="libretro-database" -PKG_VERSION="809a24e1b480945778f4bf55f8d24df3e33ca0a1" +PKG_VERSION="ebc9c3f715e78be1d44628468648ff8709aaa743" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/emulators/libretro/mame2000-lr/package.mk b/packages/emulators/libretro/mame2000-lr/package.mk index 7bc8ba30d..073b38251 100644 --- a/packages/emulators/libretro/mame2000-lr/package.mk +++ b/packages/emulators/libretro/mame2000-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="mame2000-lr" -PKG_VERSION="720b8ad4cbd76abd57b9aeced9ba541dc8476f7f" +PKG_VERSION="1472da3a39ab14fff8325b1f51a1dfdb8eabb5c8" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MAME" diff --git a/packages/emulators/libretro/mame2003-plus-lr/package.mk b/packages/emulators/libretro/mame2003-plus-lr/package.mk index 2340a3cad..130419c64 100644 --- a/packages/emulators/libretro/mame2003-plus-lr/package.mk +++ b/packages/emulators/libretro/mame2003-plus-lr/package.mk @@ -21,7 +21,7 @@ ################################################################################ PKG_NAME="mame2003-plus-lr" -PKG_VERSION="79aee414b6f5ab70a6eb257f9273550423e11356" +PKG_VERSION="156b3873fbf45a582283f376dd1e410c532b7c88" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MAME" diff --git a/packages/emulators/libretro/mame2015-lr/package.mk b/packages/emulators/libretro/mame2015-lr/package.mk index 79e4a90ba..ffd5c722e 100644 --- a/packages/emulators/libretro/mame2015-lr/package.mk +++ b/packages/emulators/libretro/mame2015-lr/package.mk @@ -18,7 +18,7 @@ ################################################################################ PKG_NAME="mame2015-lr" -PKG_VERSION="2599c8aeaf84f62fe16ea00daa460a19298c121c" +PKG_VERSION="316cd06349f2b34b4719f04f7c0d07569a74c764" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/emulators/libretro/neocd_lr/package.mk b/packages/emulators/libretro/neocd_lr/package.mk index b9a44b439..76cd91f59 100644 --- a/packages/emulators/libretro/neocd_lr/package.mk +++ b/packages/emulators/libretro/neocd_lr/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2019-present Team CoreELEC (https://coreelec.org) PKG_NAME="neocd_lr" -PKG_VERSION="2070f5258c9d3feee15962f9db8c8ef20072ece8" +PKG_VERSION="46d2832747578384ffcd76551c47de17b2f4aaf5" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPLv3.0" diff --git a/packages/emulators/libretro/np2kai-lr/package.mk b/packages/emulators/libretro/np2kai-lr/package.mk index 151c523a2..649907a59 100644 --- a/packages/emulators/libretro/np2kai-lr/package.mk +++ b/packages/emulators/libretro/np2kai-lr/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="np2kai-lr" -PKG_VERSION="9dbeaafa13e666cb7b87ffddb8bc4ad3343eb5cb" +PKG_VERSION="d9501b220ff59279973bdf53e2ae26bbc27ed7fe" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MIT" diff --git a/packages/emulators/libretro/ppsspp-lr/package.mk b/packages/emulators/libretro/ppsspp-lr/package.mk index 9723a90ca..fc5ef1f0a 100644 --- a/packages/emulators/libretro/ppsspp-lr/package.mk +++ b/packages/emulators/libretro/ppsspp-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="ppsspp-lr" -PKG_VERSION="a9d2ff29ea06c709c3cd077eeb720ce9efdc4f6f" +PKG_VERSION="157fabf91b959305af7bde3b124df3a15524fed4" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/hrydgard/ppsspp" PKG_URL="https://github.com/hrydgard/ppsspp.git" diff --git a/packages/emulators/libretro/quasi88-lr/package.mk b/packages/emulators/libretro/quasi88-lr/package.mk index 8a6b4043a..d31deb87a 100644 --- a/packages/emulators/libretro/quasi88-lr/package.mk +++ b/packages/emulators/libretro/quasi88-lr/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2019-present asakous (https://github.com/asakous) PKG_NAME="quasi88-lr" -PKG_VERSION="7980f2484997055a9665837bb4c325d562acb04e" +PKG_VERSION="e3d06c4f34c3643d3ea9248a47cdc6cf60c1e0b1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="BSD3" diff --git a/packages/emulators/libretro/reminiscence-lr/package.mk b/packages/emulators/libretro/reminiscence-lr/package.mk index 4b4ab277d..660b45997 100644 --- a/packages/emulators/libretro/reminiscence-lr/package.mk +++ b/packages/emulators/libretro/reminiscence-lr/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="reminiscence-lr" -PKG_VERSION="c2624c7565bbae441835db80f24902fc40f83dd1" +PKG_VERSION="e0d6d47230fdf22d468afd46cfb01f9315aff2bd" PKG_ARCH="any" PKG_SITE="https://github.com/libretro/REminiscence" PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/emulators/libretro/smsplus-gx-lr/package.mk b/packages/emulators/libretro/smsplus-gx-lr/package.mk index 9bec88ec2..5c4e89bad 100644 --- a/packages/emulators/libretro/smsplus-gx-lr/package.mk +++ b/packages/emulators/libretro/smsplus-gx-lr/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="smsplus-gx-lr" -PKG_VERSION="60af17ddb2231ba98f4ed1203e2a2f58d08ea088" +PKG_VERSION="96fa9bc65aa27a5ab2779f9f2ff0439fec7cf513" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="Non-commercial" diff --git a/packages/emulators/libretro/xrick-lr/package.mk b/packages/emulators/libretro/xrick-lr/package.mk index d374d64d9..d9aaf0e10 100644 --- a/packages/emulators/libretro/xrick-lr/package.mk +++ b/packages/emulators/libretro/xrick-lr/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xrick-lr" -PKG_VERSION="c433c1080409fefcfb69d66dc6416967ff5f6735" +PKG_VERSION="58e544ee8de08ca8421e97c064d52ef6cdd73bd2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv3" diff --git a/packages/emulators/standalone/flycast-sa/package.mk b/packages/emulators/standalone/flycast-sa/package.mk index a108b51b1..db8092863 100644 --- a/packages/emulators/standalone/flycast-sa/package.mk +++ b/packages/emulators/standalone/flycast-sa/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) PKG_NAME="flycast-sa" -PKG_VERSION="8fb3def2d5cdd6adea00171ed720afb390cafd78" +PKG_VERSION="3e047a6e0364273fe08f1f7025640fcced0be176" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/flyinghead/flycast" PKG_URL="${PKG_SITE}.git" diff --git a/packages/emulators/standalone/hatarisa/package.mk b/packages/emulators/standalone/hatarisa/package.mk index 7f0866d49..6bd8d2a2e 100644 --- a/packages/emulators/standalone/hatarisa/package.mk +++ b/packages/emulators/standalone/hatarisa/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2018-present 5schatten (https://github.com/5schatten) PKG_NAME="hatarisa" -PKG_VERSION="5cf9518e7a07a3b35f8fc953725930810f035c4e" +PKG_VERSION="69ce09390824a29c9708ae41290d6df28a5f766e" PKG_LICENSE="GPL" PKG_SITE="https://github.com/hatari/hatari" PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/emulators/standalone/openbor/package.mk b/packages/emulators/standalone/openbor/package.mk index c8f48da29..34527afff 100644 --- a/packages/emulators/standalone/openbor/package.mk +++ b/packages/emulators/standalone/openbor/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="openbor" -PKG_VERSION="7f6f17507078848be625e6d1c1b4f41823151387" +PKG_VERSION="b8303cce992a0db93c3a465df3c943942fe322f8" PKG_ARCH="any" PKG_SITE="https://github.com/DCurrent/openbor" PKG_URL="${PKG_SITE}.git" diff --git a/packages/emulators/standalone/ppsspp-sa/package.mk b/packages/emulators/standalone/ppsspp-sa/package.mk index 2369daa26..599bd0a27 100644 --- a/packages/emulators/standalone/ppsspp-sa/package.mk +++ b/packages/emulators/standalone/ppsspp-sa/package.mk @@ -7,7 +7,7 @@ PKG_REV="1" PKG_ARCH="any" PKG_SITE="https://github.com/hrydgard/ppsspp" PKG_URL="${PKG_SITE}.git" -PKG_VERSION="a9d2ff29ea06c709c3cd077eeb720ce9efdc4f6f" +PKG_VERSION="157fabf91b959305af7bde3b124df3a15524fed4" PKG_LICENSE="GPLv2" PKG_DEPENDS_TARGET="toolchain ffmpeg libzip SDL2 zlib zip" PKG_SHORTDESC="PPSSPPDL" diff --git a/packages/emulators/standalone/retroarch/package.mk b/packages/emulators/standalone/retroarch/package.mk index 70bef01c1..7f48c9b00 100644 --- a/packages/emulators/standalone/retroarch/package.mk +++ b/packages/emulators/standalone/retroarch/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="retroarch" -PKG_VERSION="54805a182789cb5a76516884aebedfa3c6bf7e9f" +PKG_VERSION="636a6e9d55e6f83613d470bdaee9a1e21945c330" PKG_SITE="https://github.com/libretro/RetroArch" PKG_URL="${PKG_SITE}.git" PKG_LICENSE="GPLv3" diff --git a/packages/emulators/tools/retroarch-joypads/package.mk b/packages/emulators/tools/retroarch-joypads/package.mk index 4adde255a..f0fb48678 100644 --- a/packages/emulators/tools/retroarch-joypads/package.mk +++ b/packages/emulators/tools/retroarch-joypads/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="retroarch-joypads" -PKG_VERSION="0ce2aa145e7ac3ae552bfb15d2c6730e8ceefd56" +PKG_VERSION="59f2fe78cc5c84c9c914a6503bb9c66ece4e9317" PKG_LICENSE="GPL" PKG_SITE="https://github.com/libretro/retroarch-joypad-autoconfig" PKG_URL="${PKG_SITE}.git" diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 44ad70434..741eb7c7b 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="7dc1f60e72d22c81109457726ad30468717e7bbd" +PKG_VERSION="2684b4f017366c9b86e0f045671953843db0e143" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From 5f3d1ae477a84f67ac1b7e632267945638067ec3 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 11:59:23 +0000 Subject: [PATCH 025/112] Enable debug tools by default across builds. --- distributions/JELOS/options | 3 +++ packages/virtual/image/package.mk | 8 -------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/distributions/JELOS/options b/distributions/JELOS/options index 21e8431a2..f8f9facf1 100644 --- a/distributions/JELOS/options +++ b/distributions/JELOS/options @@ -103,6 +103,9 @@ # Add support for containers CONTAINER_SUPPORT="${CONTAINER_SUPPORT:-no}" +# Support for debug tools such as strace + DEBUG_SUPPORT="${DEBUG_SUPPORT:-yes}" + # Windowmanager to use (fluxbox / none) WINDOWMANAGER="none" diff --git a/packages/virtual/image/package.mk b/packages/virtual/image/package.mk index 55d11f701..56cb6ced2 100644 --- a/packages/virtual/image/package.mk +++ b/packages/virtual/image/package.mk @@ -55,14 +55,6 @@ fi # Add support for containers [ "${CONTAINER_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" ${PKG_TOOLS} docker" -### Unless we're building the release branch, build the debug tools. -BUILD_BRANCH="$(git branch --show-current)" -if [ ! "${BUILD_BRANCH}" = "main" ] && \ - [ -z "${DEBUG_SUPPORT}" ] -then - DEBUG_SUPPORT=yes -fi - [ "${DEBUG_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" ${PKG_DEBUG}" # 32Bit package support From 028a98930a6df2e2c0070f9e4059d69b7324d592 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 14:00:04 +0000 Subject: [PATCH 026/112] Load config/options early so variables in ~/.JELOS/options are visible during docker configuration. --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index ea2c32eb9..ecd8ede12 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ BUILD_DIRS=build.* +-include $(pwd)/config/options all: world From 0dddefbdf91ce9b9d267ac0675f613b2ffbef7f8 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 15:07:27 +0000 Subject: [PATCH 027/112] Works correctly now. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ecd8ede12..450d465c9 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ BUILD_DIRS=build.* --include $(pwd)/config/options +-include $(HOME)/.JELOS/options all: world From 129d292f979b720c2f0899c8f460c646cf19ad2f Mon Sep 17 00:00:00 2001 From: mason Date: Thu, 2 Nov 2023 17:06:10 +0000 Subject: [PATCH 028/112] Update Kernel to 6.1.61 on supported devices --- projects/Amlogic/packages/linux/package.mk | 2 +- projects/Rockchip/packages/linux/package.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/Amlogic/packages/linux/package.mk b/projects/Amlogic/packages/linux/package.mk index 7db58e566..77a96f847 100644 --- a/projects/Amlogic/packages/linux/package.mk +++ b/projects/Amlogic/packages/linux/package.mk @@ -18,7 +18,7 @@ PKG_PATCH_DIRS+="${DEVICE}" case ${DEVICE} in S922X*) - PKG_VERSION="6.1.60" + PKG_VERSION="6.1.61" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" ;; esac diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 1391f58be..3f280d0e5 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -36,7 +36,7 @@ case ${DEVICE} in PKG_GIT_CLONE_BRANCH="main" ;; RK33*) - PKG_VERSION="6.1.60" + PKG_VERSION="6.1.61" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" ;; esac From 4fae103d7c629a8a61064dbaf94d0b7d9bcbb0e9 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 18:16:09 +0000 Subject: [PATCH 029/112] Don't apply a default es_systems when we build all emulators. --- .../sysutils/autostart/system.d/jelos-autostart.service | 4 ++-- packages/ui/emulationstation/package.mk | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/sysutils/autostart/system.d/jelos-autostart.service b/packages/sysutils/autostart/system.d/jelos-autostart.service index 04d118805..440a4276d 100644 --- a/packages/sysutils/autostart/system.d/jelos-autostart.service +++ b/packages/sysutils/autostart/system.d/jelos-autostart.service @@ -1,7 +1,7 @@ [Unit] Description=JELOS user autostart script -Before=emulationstation.service -After=network-base.service graphical.target +Before=emustation.service weston.service +After=network-base.service graphical.target userconfig.service [Service] Type=oneshot diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index 52032dd84..bc40c05b6 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -117,7 +117,12 @@ makeinstall_target() { ln -sf /storage/.config/emulationstation/themes ${INSTALL}/etc/emulationstation/ cp -rf ${PKG_DIR}/config/common/*.cfg ${INSTALL}/usr/config/emulationstation - ln -sf /usr/config/emulationstation/es_systems.cfg ${INSTALL}/etc/emulationstation/es_systems.cfg + + if [ "${EMULATION_DEVICE}" = "no" ] || \ + [ "${BASE_ONLY}" = "true" ] + then + ln -sf /usr/config/emulationstation/es_systems.cfg ${INSTALL}/etc/emulationstation/es_systems.cfg + fi if [ -d "${PKG_DIR}/config/device/${DEVICE}" ]; then cp -rf ${PKG_DIR}/config/device/${DEVICE}/*.cfg ${INSTALL}/usr/config/emulationstation From f6e40e9d0ae237e1374fdfff105ec38961533264 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 2 Nov 2023 18:32:50 +0000 Subject: [PATCH 030/112] Fix - don't push es_systems if we're not an emulator free device. --- .../config/common/es_systems.cfg | 15 -------------- packages/ui/emulationstation/package.mk | 20 ++++++++++++++++++- 2 files changed, 19 insertions(+), 16 deletions(-) delete mode 100644 packages/ui/emulationstation/config/common/es_systems.cfg diff --git a/packages/ui/emulationstation/config/common/es_systems.cfg b/packages/ui/emulationstation/config/common/es_systems.cfg deleted file mode 100644 index d4832eee7..000000000 --- a/packages/ui/emulationstation/config/common/es_systems.cfg +++ /dev/null @@ -1,15 +0,0 @@ - - - - tools - Tools - JELOS - 2021 - system - /storage/.config/modules - .sh - /usr/bin/run %ROM% - tools - tools - - diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index bc40c05b6..f8ac9cd0f 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -118,12 +118,30 @@ makeinstall_target() { cp -rf ${PKG_DIR}/config/common/*.cfg ${INSTALL}/usr/config/emulationstation + # If we're not an emulation device, ES may still be installed so we need a default config. if [ "${EMULATION_DEVICE}" = "no" ] || \ [ "${BASE_ONLY}" = "true" ] then - ln -sf /usr/config/emulationstation/es_systems.cfg ${INSTALL}/etc/emulationstation/es_systems.cfg + cat <${INSTALL}/etc/emulationstation/es_systems.cfg + + + + tools + Tools + JELOS + 2021 + system + /storage/.config/modules + .sh + /usr/bin/run %ROM% + tools + tools + + +EOF fi + ln -sf /usr/config/emulationstation/es_systems.cfg ${INSTALL}/etc/emulationstation/es_systems.cfg if [ -d "${PKG_DIR}/config/device/${DEVICE}" ]; then cp -rf ${PKG_DIR}/config/device/${DEVICE}/*.cfg ${INSTALL}/usr/config/emulationstation fi From ec9d8231d017d06726fdfb372ca03bd33b2383ba Mon Sep 17 00:00:00 2001 From: ab0tj Date: Thu, 2 Nov 2023 19:44:02 +0000 Subject: [PATCH 031/112] Add autodetection for RGB10 --- projects/Rockchip/bootloader/install | 6 +++++- projects/Rockchip/bootloader/mkimage | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/projects/Rockchip/bootloader/install b/projects/Rockchip/bootloader/install index 142554ace..b9e5e0d25 100755 --- a/projects/Rockchip/bootloader/install +++ b/projects/Rockchip/bootloader/install @@ -101,7 +101,11 @@ load mmc 1:1 \${loadaddr} KERNEL if test \${hwrev} = 'v11'; then if gpio input c22; then - load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + if gpio input d9; then + load mmc 1:1 \${dtb_loadaddr} rk3326-powkiddy-rgb10.dtb + else + load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + fi else load mmc 1:1 \${dtb_loadaddr} rk3326-anbernic-rg351m.dtb fi diff --git a/projects/Rockchip/bootloader/mkimage b/projects/Rockchip/bootloader/mkimage index 02af545a4..a63e087f4 100755 --- a/projects/Rockchip/bootloader/mkimage +++ b/projects/Rockchip/bootloader/mkimage @@ -62,7 +62,11 @@ load mmc 1:1 \${loadaddr} KERNEL if test \${hwrev} = 'v11'; then if gpio input c22; then - load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + if gpio input d9; then + load mmc 1:1 \${dtb_loadaddr} rk3326-powkiddy-rgb10.dtb + else + load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + fi else load mmc 1:1 \${dtb_loadaddr} rk3326-anbernic-rg351m.dtb fi From ae0d19763b706e6674d1ff6298c11ae5308beb38 Mon Sep 17 00:00:00 2001 From: adamg Date: Thu, 2 Nov 2023 18:47:47 +0000 Subject: [PATCH 032/112] packages: cleanup unused amlogic related packages --- packages/devel/libcec/package.mk | 17 +--- packages/multimedia/libamcodec/package.mk | 22 ----- packages/sysutils/amremote/package.mk | 34 -------- .../sysutils/amremote/scripts/remote-config | 84 ------------------- .../amremote/system.d/remote-config.service | 13 --- .../sysutils/inject_bl301/config/bl301.conf | 25 ------ packages/sysutils/inject_bl301/package.mk | 40 --------- .../inject_bl301/scripts/check-bl301.sh | 36 -------- .../inject_bl301/scripts/update-bl301.sh | 54 ------------ .../system.d/update-bl301.service | 10 --- packages/tools/aml-dtbtools/package.mk | 18 ---- packages/tools/bl301/package.mk | 47 ----------- packages/tools/ceemmc/package.mk | 17 ---- 13 files changed, 2 insertions(+), 415 deletions(-) delete mode 100644 packages/multimedia/libamcodec/package.mk delete mode 100644 packages/sysutils/amremote/package.mk delete mode 100755 packages/sysutils/amremote/scripts/remote-config delete mode 100644 packages/sysutils/amremote/system.d/remote-config.service delete mode 100644 packages/sysutils/inject_bl301/config/bl301.conf delete mode 100644 packages/sysutils/inject_bl301/package.mk delete mode 100755 packages/sysutils/inject_bl301/scripts/check-bl301.sh delete mode 100755 packages/sysutils/inject_bl301/scripts/update-bl301.sh delete mode 100644 packages/sysutils/inject_bl301/system.d/update-bl301.service delete mode 100644 packages/tools/aml-dtbtools/package.mk delete mode 100644 packages/tools/bl301/package.mk delete mode 100644 packages/tools/ceemmc/package.mk diff --git a/packages/devel/libcec/package.mk b/packages/devel/libcec/package.mk index 807d7a676..f328614a4 100644 --- a/packages/devel/libcec/package.mk +++ b/packages/devel/libcec/package.mk @@ -16,19 +16,10 @@ PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=1 \ -DCMAKE_INSTALL_LIBDIR_NOARCH:STRING=lib \ -DSKIP_PYTHON_WRAPPER=1 \ -DHAVE_IMX_API=0 \ + -DHAVE_AOCEC_API=0 -DHAVE_AMLOGIC_API=0 \ -DHAVE_GIT_BIN=0 \ -DHAVE_RPI_LIB=0" -if [ "${KODIPLAYER_DRIVER}" = "libamcodec" ]; then - if [ "${TARGET_KERNEL_ARCH}" = "arm64" ]; then - PKG_CMAKE_OPTS_TARGET="${PKG_CMAKE_OPTS_TARGET} -DHAVE_AOCEC_API=1" - else - PKG_CMAKE_OPTS_TARGET="${PKG_CMAKE_OPTS_TARGET} -DHAVE_AMLOGIC_API=1" - fi -else - PKG_CMAKE_OPTS_TARGET="${PKG_CMAKE_OPTS_TARGET} -DHAVE_AOCEC_API=0 -DHAVE_AMLOGIC_API=0" -fi - # libX11 and xrandr to read the sink's EDID, used to determine the PC's HDMI physical address if [ "${DISPLAYSERVER}" = "x11" ]; then PKG_DEPENDS_TARGET+=" libX11 libXrandr" @@ -44,11 +35,7 @@ post_makeinstall_target() { # Remove the Python3 demo - useless for us rm -f ${INSTALL}/usr/bin/pyCecClient - # Remove the sysmlink and redirect to /var/lib so that we can change libcec versions at run time - rm -f ${INSTALL}/usr/lib/libcec.so.6 - ln -sf /var/lib/libcec.so.6 ${INSTALL}/usr/lib/libcec.so.6 - - PYTHON_DIR=${INSTALL}/usr/lib/${PKG_PYTHON_VERSION} + PYTHON_DIR=${INSTALL}/usr/lib/${PKG_PYTHON_VERSION} if [ -d ${PYTHON_DIR}/dist-packages ]; then mv ${PYTHON_DIR}/dist-packages ${PYTHON_DIR}/site-packages fi diff --git a/packages/multimedia/libamcodec/package.mk b/packages/multimedia/libamcodec/package.mk deleted file mode 100644 index 1f887853a..000000000 --- a/packages/multimedia/libamcodec/package.mk +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="libamcodec" -PKG_VERSION="31cd6eceaa1402b9f4ff5cc349e53899860fe9b9" -PKG_SHA256="9052aaa00c827d3bfef7de83f55678aa1674368f06911a003b138953409f4d7c" -PKG_LICENSE="proprietary" -PKG_SITE="http://openlinux.amlogic.com" -PKG_URL="https://sources.coreelec.org/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain" -PKG_LONGDESC="libamplayer: Interface library for Amlogic media codecs" -PKG_TOOLCHAIN="manual" - -make_target() { - cp -PR * ${SYSROOT_PREFIX} -} - -makeinstall_target() { - mkdir -p ${INSTALL}/usr - cp -PR usr/lib ${INSTALL}/usr -} diff --git a/packages/sysutils/amremote/package.mk b/packages/sysutils/amremote/package.mk deleted file mode 100644 index a83572763..000000000 --- a/packages/sysutils/amremote/package.mk +++ /dev/null @@ -1,34 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="amremote" -PKG_LICENSE="other" -PKG_SITE="http://www.amlogic.com" -PKG_DEPENDS_TARGET="toolchain usbutils" -PKG_LONGDESC="amremote - IR remote configuration utility for Amlogic-based devices" - -case "$LINUX" in - amlogic-3.14) - PKG_VERSION="05b85d1f9821ae65dca250ba87b369327dd71df3" - PKG_SHA256="895a64efc05cee3148b4c33f5acbffb87da095d8b8f289f78e0cec26d2ed6f9d" - PKG_URL="https://github.com/CoreELEC/amremote/archive/${PKG_VERSION}.tar.gz" - ;; - amlogic-4.9) - PKG_VERSION="1db130a0ccd47f6b5c3d1dffab1e89613b796a8c" - PKG_SHA256="5b96f2a1dd03200909eed749f5d97d1d02ee7fc8ac92d8fce6b5d6772ee642dc" - PKG_URL="https://github.com/CoreELEC/amremote/archive/${PKG_VERSION}.tar.gz" - ;; -esac - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/bin - cp remotecfg ${INSTALL}/usr/bin - - mkdir -p ${INSTALL}/usr/lib/coreelec - cp ${PKG_DIR}/scripts/* ${INSTALL}/usr/lib/coreelec -} - -post_install() { - enable_service remote-config.service -} diff --git a/packages/sysutils/amremote/scripts/remote-config b/packages/sysutils/amremote/scripts/remote-config deleted file mode 100755 index 9529f0adf..000000000 --- a/packages/sysutils/amremote/scripts/remote-config +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh - -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -remap_keys () { - [ ! -f "$1" ] && return - - sed -i 's/ 15[^0-9]*$/ 1/ - s/ 63[^0-9]*$/ 90/ - s/ 97[^0-9]*$/ 28/ - s/ 102[^0-9]*$/ 172/ - s/ 125[^0-9]*$/ 46/ - s/ 128[^0-9]*$/ 45/ - s/ 139[^0-9]*$/ 46/ - s/ 142[^0-9]*$/ 116/ - s/ 143[^0-9]*$/ 116/ - s/ 158[^0-9]*$/ 1/ - s/ 183[^0-9]*$/ 59/ - s/ 184[^0-9]*$/ 399/ - s/ 185[^0-9]*$/ 400/ - s/ 186[^0-9]*$/ 60/ - s/ 232[^0-9]*$/ 28/ - s/ 240[^0-9]*$/ 164/ - s/ 241[^0-9]*$/ 163/ - s/ 242[^0-9]*$/ 165/ - s/ 244[^0-9]*$/ 208/ - s/ 245[^0-9]*$/ 168/ - s/ 264[^0-9]*$/ 63/ - s/ 704[^0-9]*$/ 116/' \ - "$1" -} - -[ ! -e "/proc/device-tree/meson-ir/compatible" -o ! -e "/proc/device-tree/meson-remote/compatible" ] && exit - -if [ -f "/flash/remote.disable" -o -f "/storage/.config/remote.disable" ]; then - echo "remote control disabled by user" - exit 0 -fi - -if [ -f "/flash/remote.force_meson_ir" -o -f "/storage/.config/remote.force_meson_ir" ]; then - force_meson_ir="yes" -else - force_meson_ir="no" -fi - -if [ -f "/flash/remote.conf" ]; then - REMOTE_CONF_DIR="/flash" -elif [ -f "/storage/.config/remote.conf" ]; then - REMOTE_CONF_DIR="/storage/.config" -else - REMOTE_CONF_DIR="" - - if [ -d "/proc/device-tree/custom_maps" -a "$force_meson_ir" = "no" ]; then - MAP_NAME=$(cat /proc/device-tree/custom_maps/map_0/mapname 2>/dev/null) - echo "using meson-remote, with pre-defined map '$MAP_NAME' from dtb" - modprobe meson-remote - exit 0 - fi -fi - -if [ -d "$REMOTE_CONF_DIR" ]; then - echo "using meson-remote, conf from $REMOTE_CONF_DIR" - - if [ -d "/proc/device-tree/custom_maps" ]; then - MAP_NAME=$(cat /proc/device-tree/custom_maps/map_0/mapname 2>/dev/null) - echo "also using pre-defined map '$MAP_NAME' from dtb" - fi - - modprobe meson-remote - - for f in $REMOTE_CONF_DIR/remote*.conf; do - echo "configuring remote with $f" - cp "$f" /tmp/remote.conf - remap_keys /tmp/remote.conf - remotecfg /tmp/remote.conf - rm -f /tmp/remote.conf - done -else - echo "using meson-ir" - modprobe meson-ir -fi - -exit 0 diff --git a/packages/sysutils/amremote/system.d/remote-config.service b/packages/sysutils/amremote/system.d/remote-config.service deleted file mode 100644 index 3527bca12..000000000 --- a/packages/sysutils/amremote/system.d/remote-config.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=IR remote control support -Before=graphical.target kodi.service -After=multi-user.target -ConditionPathExists=/proc/device-tree/meson-ir/compatible -ConditionPathExists=/proc/device-tree/meson-remote/compatible - -[Service] -Type=oneshot -ExecStart=/usr/lib/coreelec/remote-config - -[Install] -WantedBy=graphical.target diff --git a/packages/sysutils/inject_bl301/config/bl301.conf b/packages/sysutils/inject_bl301/config/bl301.conf deleted file mode 100644 index 6bbe3ce2c..000000000 --- a/packages/sysutils/inject_bl301/config/bl301.conf +++ /dev/null @@ -1,25 +0,0 @@ -#################################################################### -# CoreELEC inject_bl301 config # -# # -# coreelec-dt-id blob definition: # -# # -# [substring coreelec-dt-id] = [substring BL301 blob binary] # -# # -# [substring coreelec-dt-id] = [] -> "Not supported" # -# # -# config.ini parameter are auto generated from package bl301: # -# # -# [config variable name] # -# config_id = [unique unsigned int ID for variable] # -# config_name = [unique matching config.ini key name] # -# # -# This config parameter value is filled automatic by package.mk. # -# Multiple sections are possible. Do not edit! # -#################################################################### - -[BL301] -odroid= -lepotato= -lafrite= -gxl_p212_2g_kvim=Khadas_VIM1 -khadas_vim3=Khadas_VIM3 diff --git a/packages/sysutils/inject_bl301/package.mk b/packages/sysutils/inject_bl301/package.mk deleted file mode 100644 index 28666df41..000000000 --- a/packages/sysutils/inject_bl301/package.mk +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2019-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="inject_bl301" -PKG_VERSION="6af46f6a7defbbba360a6bbcd5db2b11925f7315" -PKG_SHA256="bb02545eb80c0a1372f91990cb21572b201251d47523c9f4424fea72a16426ab" -PKG_LICENSE="proprietary" -PKG_SITE="https://coreelec.org" -PKG_URL="https://sources.coreelec.org/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain bl301" -PKG_LONGDESC="Tool to inject bootloader blob BL301.bin on internal eMMC" -PKG_TOOLCHAIN="manual" - -pre_make_target() { - cp -av ${PKG_DIR}/config/bl301.conf ${PKG_BUILD}/bl301.conf - for f in $(find $(get_build_dir bl301) -mindepth 1 -name 'coreelec_config.c'); do - cat ${f} | awk -F'[(),"]' '/.config_id_a\s*=\s*HASH/ {printf("%s %s\n", $2, $3)}' | \ - while read id name; do - if ! grep -Fwq "${id}" ${PKG_BUILD}/bl301.conf; then - echo -e '\n['${id}']' >> ${PKG_BUILD}/bl301.conf; - cat ${f%.*}.h | awk -v id="HASHSTR_${id} " '$0 ~ id {printf("config_id=%s\n", $3)}' >> ${PKG_BUILD}/bl301.conf; - echo -e "config_name=${name}" >> ${PKG_BUILD}/bl301.conf; - fi - done - done -} - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/sbin - mkdir -p ${INSTALL}/usr/lib/coreelec - mkdir -p ${INSTALL}/etc/inject_bl301 - install -m 0755 inject_bl301 ${INSTALL}/usr/sbin/inject_bl301 - install -m 0755 ${PKG_DIR}/scripts/check-bl301.sh ${INSTALL}/usr/lib/coreelec/check-bl301 - install -m 0755 ${PKG_DIR}/scripts/update-bl301.sh ${INSTALL}/usr/lib/coreelec/update-bl301 - install -m 0644 ${PKG_BUILD}/bl301.conf ${INSTALL}/etc/inject_bl301/bl301.conf -} - -post_install() { - enable_service update-bl301.service -} diff --git a/packages/sysutils/inject_bl301/scripts/check-bl301.sh b/packages/sysutils/inject_bl301/scripts/check-bl301.sh deleted file mode 100755 index d227cf303..000000000 --- a/packages/sysutils/inject_bl301/scripts/check-bl301.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# SPDX-License-Identifier: GPL-3.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) -# -# Detect BL301 injection -# -##################################################### -# -# Comand Line Arguments -# -v = Show verbose output -# -##################################################### - -VERBOSE=0 -INSTALLED=0 - -if [ "$1" = "-v" ]; then - VERBOSE=1 -fi - -if [ -e /usr/sbin/inject_bl301 ]; then - inject_bl301 -i - if [ ${?} = 1 ]; then - INSTALLED=1 - fi -fi - -if [ "$VERBOSE" = 1 ]; then - if [ "${INSTALLED}" = 1 ]; then - echo "CoreELEC BL301 Installed" - else - echo "CoreELEC BL301 Not found" - fi -fi -exit ${INSTALLED} diff --git a/packages/sysutils/inject_bl301/scripts/update-bl301.sh b/packages/sysutils/inject_bl301/scripts/update-bl301.sh deleted file mode 100755 index 9619f30de..000000000 --- a/packages/sysutils/inject_bl301/scripts/update-bl301.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# -# SPDX-License-Identifier: GPL-3.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) -# -# Update BL301 injection -# -##################################################### -# -# Comand Line Arguments -# -v = Show verbose output -# -##################################################### - -VERBOSE=0 -INSTALLED=0 -UPDATE=1 -RET=0 - -if [ "$1" = "-v" ]; then - VERBOSE=1 -fi - -if [ -e /usr/lib/coreelec/check-bl301 ]; then - /usr/lib/coreelec/check-bl301 - INSTALLED=${?} - if [ "${INSTALLED}" = 1 ]; then - touch /run/bl301_injected - fi -fi - -if [ -e /usr/sbin/inject_bl301 ] && [ "${INSTALLED}" = 1 ]; then - inject_bl301 -Y > /storage/update-bl301.log - UPDATE=${?} -fi - -if [ "$VERBOSE" = 1 ]; then - if [ "${INSTALLED}" = 1 ] && [ "$UPDATE" = 0 ]; then - echo "CoreELEC BL301 got updated" - elif [ "${INSTALLED}" = 1 ] && [ "$UPDATE" = 1 ]; then - echo "CoreELEC BL301 installed but no update needed" - elif [ "${INSTALLED}" = 1 ]; then - echo "CoreELEC BL301 installed but error on update: " $UPDATE - RET=$UPDATE - elif [ "${INSTALLED}" = 0 ]; then - echo "CoreELEC BL301 not installed" - fi -fi - -if [ "${INSTALLED}" = 1 ] && [ "$UPDATE" = 0 ]; then - sync && reboot -fi - -exit $RET diff --git a/packages/sysutils/inject_bl301/system.d/update-bl301.service b/packages/sysutils/inject_bl301/system.d/update-bl301.service deleted file mode 100644 index 61033aa30..000000000 --- a/packages/sysutils/inject_bl301/system.d/update-bl301.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=CoreELEC BL301 Update Service - -[Service] -Type=oneshot -ExecStart=/usr/lib/coreelec/update-bl301 -v -RemainAfterExit=no - -[Install] -WantedBy=basic.target diff --git a/packages/tools/aml-dtbtools/package.mk b/packages/tools/aml-dtbtools/package.mk deleted file mode 100644 index 1512dfde2..000000000 --- a/packages/tools/aml-dtbtools/package.mk +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) - -PKG_NAME="aml-dtbtools" -PKG_VERSION="cce100f" -PKG_SHA256="8bcaa83fcc9e85c9c04930e7411447d96a97da0809c5ecd9af91c8b554133c41" -PKG_LICENSE="free" -PKG_SITE="https://github.com/Wilhansen/aml-dtbtools" -PKG_URL="https://github.com/Wilhansen/aml-dtbtools/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_HOST="gcc:host" -PKG_LONGDESC="AML DTB Tools" - -PKG_MAKE_OPTS_HOST="dtbTool" - -makeinstall_host() { - mkdir -p ${TOOLCHAIN}/bin - cp dtbTool ${TOOLCHAIN}/bin -} diff --git a/packages/tools/bl301/package.mk b/packages/tools/bl301/package.mk deleted file mode 100644 index 410e7651d..000000000 --- a/packages/tools/bl301/package.mk +++ /dev/null @@ -1,47 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="bl301" -PKG_VERSION="85f483db84c1482ee632bf34e6765c92486fc9d0" -PKG_SHA256="526d10570add92e737782cf1b7faae8e329e565d2163fdf5d014d22096291841" -PKG_LICENSE="GPL" -PKG_SITE="https://coreelec.org" -PKG_URL="https://github.com/CoreELEC/bl301/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain gcc-linaro-aarch64-elf:host gcc-linaro-arm-eabi:host" -PKG_LONGDESC="Das U-Boot is a cross-platform bootloader for embedded systems." -PKG_TOOLCHAIN="manual" - -pre_make_target() { - sed -i "s|arm-none-eabi-|arm-eabi-|g" ${PKG_BUILD}/Makefile ${PKG_BUILD}/arch/arm/cpu/armv8/*/firmware/scp_task/Makefile 2>/dev/null || true -} - -make_target() { - [ "${BUILD_WITH_DEBUG}" = "yes" ] && PKG_DEBUG=1 || PKG_DEBUG=0 - export PATH=${TOOLCHAIN}/lib/gcc-linaro-aarch64-elf/bin/:${TOOLCHAIN}/lib/gcc-linaro-arm-eabi/bin/:$PATH - DEBUG=${PKG_DEBUG} CROSS_COMPILE=aarch64-elf- ARCH=arm CFLAGS="" LDFLAGS="" make mrproper - - for f in $(find ${PKG_BUILD}/configs -mindepth 1); do - PKG_UBOOT_CONFIG=$(basename -- "$f") - PKG_BL301_SUBDEVICE=${PKG_UBOOT_CONFIG%_defconfig} - echo Building bl301 for ${PKG_BL301_SUBDEVICE} - DEBUG=${PKG_DEBUG} CROSS_COMPILE=aarch64-elf- ARCH=arm CFLAGS="" LDFLAGS="" make ${PKG_UBOOT_CONFIG} - DEBUG=${PKG_DEBUG} CROSS_COMPILE=aarch64-elf- ARCH=arm CFLAGS="" LDFLAGS="" make HOSTCC="${HOST_CC}" HOSTSTRIP="true" bl301.bin - mv ${PKG_BUILD}/build/scp_task/bl301.bin ${PKG_BUILD}/build/${PKG_BL301_SUBDEVICE}_bl301.bin - echo "moved blob to: " ${PKG_BUILD}/build/${PKG_BL301_SUBDEVICE}_bl301.bin - rm -rf ${PKG_BUILD}/build/scp_task - done -} - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/share/bootloader/bl301 - - for f in $(find ${PKG_BUILD}/configs -mindepth 1); do - PKG_UBOOT_CONFIG=$(basename -- "$f") - PKG_BL301_SUBDEVICE=${PKG_UBOOT_CONFIG%_defconfig} - PKG_BIN=${PKG_BUILD}/build/${PKG_BL301_SUBDEVICE}_bl301.bin - cp -av ${PKG_BIN} ${INSTALL}/usr/share/bootloader/bl301/${PKG_BL301_SUBDEVICE}_bl301.bin - done - - [ -d "${PKG_BUILD}/bl30" ] && cp -av ${PKG_BUILD}/bl30 ${INSTALL}/usr/share/bootloader/bl301 || : - [ -d "${PKG_BUILD}/bl31" ] && cp -av ${PKG_BUILD}/bl31 ${INSTALL}/usr/share/bootloader/bl301 || : -} diff --git a/packages/tools/ceemmc/package.mk b/packages/tools/ceemmc/package.mk deleted file mode 100644 index dc7b36a37..000000000 --- a/packages/tools/ceemmc/package.mk +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2019-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="ceemmc" -PKG_VERSION="d74dcaa86e08a7d742218ede660ba9307f1e19fa" -PKG_SHA256="b0755c8d229ce6f9ab1aca88956f4cc441eb0fe0328b29c74b26e3d7e0fa6997" -PKG_LICENSE="proprietary" -PKG_SITE="https://coreelec.org" -PKG_URL="https://sources.coreelec.org/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain" -PKG_LONGDESC="Tool to install CoreELEC on internal eMMC" -PKG_TOOLCHAIN="manual" - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/sbin - install -m 0755 ceemmc ${INSTALL}/usr/sbin/ceemmc -} From 9499630ac62f45c205e303975ab3c15c3d054735 Mon Sep 17 00:00:00 2001 From: adamg Date: Thu, 2 Nov 2023 21:53:14 +0000 Subject: [PATCH 033/112] Amlogic: fix correct debug tty path --- projects/Amlogic/devices/S922X/options | 2 +- projects/Amlogic/options | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/Amlogic/devices/S922X/options b/projects/Amlogic/devices/S922X/options index 5fb6e7d30..e8964bd6e 100644 --- a/projects/Amlogic/devices/S922X/options +++ b/projects/Amlogic/devices/S922X/options @@ -85,7 +85,7 @@ DRIVER_ADDONS="" # debug tty path - DEBUG_TTY="/dev/ttyFIQ0" + DEBUG_TTY="/dev/ttyAML0" # Disable 32BIT support ENABLE_32BIT="false" diff --git a/projects/Amlogic/options b/projects/Amlogic/options index 8de624dfa..98770fd70 100644 --- a/projects/Amlogic/options +++ b/projects/Amlogic/options @@ -64,7 +64,7 @@ DRIVER_ADDONS_SUPPORT="no" # debug tty path - DEBUG_TTY="/dev/ttyS2" + DEBUG_TTY="/dev/ttyAML0" # build with entware installer ENTWARE_SUPPORT="yes" From 47afdcd6bbd563d501a71b6d8148b80234f679f9 Mon Sep 17 00:00:00 2001 From: mason Date: Thu, 2 Nov 2023 23:51:43 +0000 Subject: [PATCH 034/112] Switch to 300hz in kernel --- projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf index 12202bad8..66af20f25 100644 --- a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf @@ -396,10 +396,10 @@ CONFIG_NR_CPUS=8 CONFIG_HOTPLUG_CPU=y # CONFIG_NUMA is not set # CONFIG_HZ_100 is not set -CONFIG_HZ_250=y -# CONFIG_HZ_300 is not set +# CONFIG_HZ_250 is not set +CONFIG_HZ_300=y # CONFIG_HZ_1000 is not set -CONFIG_HZ=250 +CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_HW_PERF_EVENTS=y From 6ecc16597fdb453b8193076ed54da1d6ca22341f Mon Sep 17 00:00:00 2001 From: mason Date: Fri, 3 Nov 2023 05:11:36 +0000 Subject: [PATCH 035/112] Add quirk folder for RGB10 (rk3326) --- packages/hardware/quirks/devices/Powkiddy RGB10 | 1 + 1 file changed, 1 insertion(+) create mode 120000 packages/hardware/quirks/devices/Powkiddy RGB10 diff --git a/packages/hardware/quirks/devices/Powkiddy RGB10 b/packages/hardware/quirks/devices/Powkiddy RGB10 new file mode 120000 index 000000000..ad0f3d86d --- /dev/null +++ b/packages/hardware/quirks/devices/Powkiddy RGB10 @@ -0,0 +1 @@ +ODROID-GO Advance Black Edition \ No newline at end of file From c0989e0693eb99f96dfa53114b796bb77ec18b80 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Fri, 3 Nov 2023 11:54:40 +0000 Subject: [PATCH 036/112] Switch how we manage jslisten on wake, and also bump systemd. --- packages/sysutils/sleep/sources/sleep.sh | 33 ++++++++++-------------- packages/sysutils/systemd/package.mk | 2 +- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/packages/sysutils/sleep/sources/sleep.sh b/packages/sysutils/sleep/sources/sleep.sh index ce80ed75a..59ff06da4 100755 --- a/packages/sysutils/sleep/sources/sleep.sh +++ b/packages/sysutils/sleep/sources/sleep.sh @@ -12,11 +12,13 @@ else fi QUIRK_DEVICE="$(echo ${QUIRK_DEVICE} | sed -e "s#[/]#-#g")" +EVENTLOG="/var/log/sleep.log" + headphones() { if [ "${DEVICE_FAKE_JACKSENSE}" == "true" ] then log $0 "Headphone sense: ${1}" - systemctl ${1} headphones >/dev/null 2>&1 + systemctl ${1} headphones >${EVENTLOG} 2>&1 fi } @@ -24,21 +26,14 @@ volumectl() { if [ "${DEVICE_VOLUMECTL}" == "true" ] then log $0 "Volume control: ${1}" - systemctl ${1} volume >/dev/null 2>&1 - fi -} - -jslisten() { - if [ "$(systemctl is-active jslisten)" = "active" ] - then - systemctl ${1} jslisten + systemctl ${1} volume >${EVENTLOG} 2>&1 fi } powerstate() { if [ "$(get_setting system.powersave)" = 1 ] then - systemctl ${1} powerstate >/dev/null 2>&1 + systemctl ${1} powerstate >${EVENTLOG} 2>&1 fi } @@ -46,7 +41,7 @@ bluetooth() { if [ "$(get_setting bluetooth.enabled)" == "1" ] then log $0 "Bluetooth: ${1}" - systemctl ${1} bluetooth >/dev/null 2>&1 + systemctl ${1} bluetooth >${EVENTLOG} 2>&1 fi } @@ -62,7 +57,7 @@ modules() { if [ $? = 0 ] then echo ${module} >>/tmp/modules.load - modprobe -r ${module} + modprobe -r ${module} >${EVENTLOG} 2>&1 fi done fi @@ -78,7 +73,7 @@ modules() { do if (( "${MODCNT}" < "${MODATTEMPTS}" )) then - modprobe ${module%% *} + modprobe ${module%% *} >${EVENTLOG} 2>&1 if [ $? = 0 ] then break @@ -100,7 +95,7 @@ quirks() { for QUIRK in /usr/lib/autostart/quirks/platforms/"${HW_DEVICE}"/sleep.d/${1}/* \ /usr/lib/autostart/quirks/devices/"${QUIRK_DEVICE}"/sleep.d/${1}/* do - "${QUIRK}" >/dev/null 2>&1 + "${QUIRK}" >${EVENTLOG} 2>&1 done } @@ -108,7 +103,6 @@ case $1 in pre) headphones stop volumectl stop - jslisten stop bluetooth stop runtime_power_management on wake_events disabled @@ -123,22 +117,23 @@ case $1 in powerstate start headphones start volumectl start - jslisten start bluetooth start if [ "$(get_setting network.enabled)" == "1" ] then log $0 "Connecting WIFI." - nohup wifictl enable >/dev/null 2>&1 + nohup wifictl enable >${EVENTLOG} 2>&1 fi DEVICE_VOLUME=$(get_setting "audio.volume" 2>/dev/null) log $0 "Restoring volume to ${DEVICE_VOLUME}%." - amixer -c 0 -M set "${DEVICE_AUDIO_MIXER}" ${DEVICE_VOLUME}% + amixer -c 0 -M set "${DEVICE_AUDIO_MIXER}" ${DEVICE_VOLUME}% >${EVENTLOG} 2>&1 BRIGHTNESS=$(get_setting system.brightness) log $0 "Restoring brightness to ${BRIGHTNESS}." - brightness set ${BRIGHTNESS} + brightness set ${BRIGHTNESS} >${EVENTLOG} 2>&1 quirks post + + systemctl restart jslisten >${EVENTLOG} 2>&1 ;; esac diff --git a/packages/sysutils/systemd/package.mk b/packages/sysutils/systemd/package.mk index e53089494..568f72839 100644 --- a/packages/sysutils/systemd/package.mk +++ b/packages/sysutils/systemd/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="systemd" -PKG_VERSION="252.14" +PKG_VERSION="252.18" PKG_LICENSE="LGPL2.1+" PKG_SITE="http://www.freedesktop.org/wiki/Software/systemd" PKG_URL="https://github.com/systemd/systemd-stable/archive/v${PKG_VERSION}.tar.gz" From a578c3b7cae7a2c0c3f8706ba8623e39df3fa205 Mon Sep 17 00:00:00 2001 From: adamg Date: Fri, 3 Nov 2023 14:41:11 +0000 Subject: [PATCH 037/112] Amlogic: remove frequencies below 1Ghz for GOU & Max3Pro for better stability, this was already done in 90799d8d for all other Amlogic devices --- .../S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch | 8 +------- .../001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch b/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch index 6e7fed000..af1b464d0 100644 --- a/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch +++ b/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch @@ -1,7 +1,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts --- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts 1970-01-01 00:00:00.000000000 +0000 +++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts 2023-09-12 13:20:28.956694441 +0000 -@@ -0,0 +1,1021 @@ +@@ -0,0 +1,1015 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Neil Armstrong @@ -361,9 +361,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + +/* RK817 only supports 12.5mV steps, round up the values */ +&cpu_opp_table_0 { -+ opp-667000000 { -+ opp-microvolt = <725000>; -+ }; + opp-1000000000 { + opp-microvolt = <737500>; + }; @@ -396,9 +393,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + +/* RK818 only supports 12.5mV steps, round up the values */ +&cpub_opp_table_1 { -+ opp-667000000 { -+ opp-microvolt = <750000>; -+ }; + opp-1000000000 { + opp-microvolt = <775000>; + }; diff --git a/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch b/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch index d4649c2c0..4c947d5bc 100644 --- a/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch +++ b/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch @@ -1,7 +1,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts linux/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts --- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts 1970-01-01 00:00:00.000000000 +0000 +++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts 2023-09-12 12:04:13.567330573 +0000 -@@ -0,0 +1,995 @@ +@@ -0,0 +1,989 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Neil Armstrong @@ -350,9 +350,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max- + +/* RK817 only supports 12.5mV steps, round up the values */ +&cpu_opp_table_0 { -+ opp-667000000 { -+ opp-microvolt = <731250>; -+ }; + opp-1000000000 { + opp-microvolt = <760000>; + }; @@ -378,9 +375,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max- + +/* RK818 only supports 12.5mV steps, round up the values */ +&cpub_opp_table_1 { -+ opp-667000000 { -+ opp-microvolt = <750000>; -+ }; + opp-1000000000 { + opp-microvolt = <775000>; + }; From 964f04e01110239ffded487dbd2ba35e6039098c Mon Sep 17 00:00:00 2001 From: fewtarius Date: Fri, 3 Nov 2023 21:23:43 +0000 Subject: [PATCH 038/112] May finally resolve the random initramfs build failure. Also, Linux 6.5.10. --- packages/kernel/linux/package.mk | 2 +- projects/Amlogic/packages/linux/package.mk | 11 +++++++++-- projects/Rockchip/packages/linux/package.mk | 11 +++++++++-- scripts/unpack | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/kernel/linux/package.mk b/packages/kernel/linux/package.mk index 9a4753a0f..be5200726 100644 --- a/packages/kernel/linux/package.mk +++ b/packages/kernel/linux/package.mk @@ -8,7 +8,7 @@ PKG_VERSION="6.5.9" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" -PKG_DEPENDS_TARGET="toolchain linux:host kmod:host cpio:host xz:host keyutils ncurses openssl:host wireless-regdb initramfs ${KERNEL_EXTRA_DEPENDS_TARGET}" +PKG_DEPENDS_TARGET="toolchain linux:host kmod:host cpio:host xz:host keyutils ncurses openssl:host wireless-regdb ${KERNEL_EXTRA_DEPENDS_TARGET}" PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory initramfs) $(get_pkg_variable initramfs PKG_NEED_UNPACK)" PKG_LONGDESC="This package contains a precompiled kernel image and the modules." PKG_IS_KERNEL_PKG="yes" diff --git a/projects/Amlogic/packages/linux/package.mk b/projects/Amlogic/packages/linux/package.mk index 7db58e566..9bc858ad0 100644 --- a/projects/Amlogic/packages/linux/package.mk +++ b/projects/Amlogic/packages/linux/package.mk @@ -8,9 +8,9 @@ PKG_NAME="linux" PKG_LICENSE="GPL" PKG_SITE="https://github.com/JustEnoughLinuxOS" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" -PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils util-linux binutils ncurses openssl:host initramfs ${KERNEL_EXTRA_DEPENDS_TARGET}" +PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils util-linux binutils ncurses openssl:host ${KERNEL_EXTRA_DEPENDS_TARGET}" PKG_DEPENDS_INIT="toolchain" -PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory busybox)" +PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory initramfs) $(get_pkg_variable initramfs PKG_NEED_UNPACK)" PKG_LONGDESC="This package builds the kernel for Amlogic devices" PKG_IS_KERNEL_PKG="yes" PKG_STAMP="${KERNEL_TARGET} ${KERNEL_MAKE_EXTRACMD}" @@ -44,6 +44,13 @@ if [[ "${KERNEL_TARGET}" = uImage* ]]; then PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} u-boot-tools:host" fi +# Ensure that the dependencies of initramfs:target are built correctly, but +# we don't want to add initramfs:target as a direct dependency as we install +# this "manually" from within linux:target +for pkg in $(get_pkg_variable initramfs PKG_DEPENDS_TARGET); do + ! listcontains "${PKG_DEPENDS_TARGET}" "${pkg}" && PKG_DEPENDS_TARGET+=" ${pkg}" || true +done + post_patch() { cp ${PKG_KERNEL_CFG_FILE} ${PKG_BUILD}/.config diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 1391f58be..19facc9b4 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -8,9 +8,9 @@ PKG_NAME="linux" PKG_LICENSE="GPL" PKG_SITE="https://github.com/JustEnoughLinuxOS" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" -PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host lz4:host wireless-regdb keyutils util-linux binutils ncurses openssl:host initramfs ${KERNEL_EXTRA_DEPENDS_TARGET}" +PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host lz4:host wireless-regdb keyutils util-linux binutils ncurses openssl:host ${KERNEL_EXTRA_DEPENDS_TARGET}" PKG_DEPENDS_INIT="toolchain" -PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory busybox)" +PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory initramfs) $(get_pkg_variable initramfs PKG_NEED_UNPACK)" PKG_LONGDESC="This package builds the kernel for Rockchip devices" PKG_IS_KERNEL_PKG="yes" PKG_STAMP="${KERNEL_TARGET} ${KERNEL_MAKE_EXTRACMD}" @@ -62,6 +62,13 @@ if [[ "${KERNEL_TARGET}" = uImage* ]]; then PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} u-boot-tools:host" fi +# Ensure that the dependencies of initramfs:target are built correctly, but +# we don't want to add initramfs:target as a direct dependency as we install +# this "manually" from within linux:target +for pkg in $(get_pkg_variable initramfs PKG_DEPENDS_TARGET); do + ! listcontains "${PKG_DEPENDS_TARGET}" "${pkg}" && PKG_DEPENDS_TARGET+=" ${pkg}" || true +done + post_patch() { cp ${PKG_KERNEL_CFG_FILE} ${PKG_BUILD}/.config diff --git a/scripts/unpack b/scripts/unpack index 3ea09b815..fe08c3447 100755 --- a/scripts/unpack +++ b/scripts/unpack @@ -42,7 +42,7 @@ for i in ${BUILD}/${PKG_NAME}-*; do if [ ! "${PKG_DEEPHASH}" = "${STAMP_PKG_DEEPHASH}" ] ; then ${SCRIPTS}/clean "${PKG_NAME}" if [ "${PKG_NAME}" = "linux" ]; then - for CLEAN_DEP in ${KERNEL_EXTRA_DEPENDS_TARGET} ${ADDITIONAL_DRIVERS} initramfs + for CLEAN_DEP in ${KERNEL_EXTRA_DEPENDS_TARGET} ${ADDITIONAL_DRIVERS} busybox initramfs do ${SCRIPTS}/clean "${CLEAN_DEP}" ${SCRIPTS}/unpack "${CLEAN_DEP}" From 854bcec50f184890f2d9010f40a7e65f64cd85ca Mon Sep 17 00:00:00 2001 From: mason Date: Thu, 2 Nov 2023 17:06:10 +0000 Subject: [PATCH 039/112] Update Kernel to 6.1.61 on supported devices --- projects/Amlogic/packages/linux/package.mk | 2 +- projects/Rockchip/packages/linux/package.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/Amlogic/packages/linux/package.mk b/projects/Amlogic/packages/linux/package.mk index 9bc858ad0..f137b917c 100644 --- a/projects/Amlogic/packages/linux/package.mk +++ b/projects/Amlogic/packages/linux/package.mk @@ -18,7 +18,7 @@ PKG_PATCH_DIRS+="${DEVICE}" case ${DEVICE} in S922X*) - PKG_VERSION="6.1.60" + PKG_VERSION="6.1.61" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" ;; esac diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 19facc9b4..ed643b850 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -36,7 +36,7 @@ case ${DEVICE} in PKG_GIT_CLONE_BRANCH="main" ;; RK33*) - PKG_VERSION="6.1.60" + PKG_VERSION="6.1.61" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" ;; esac From d808809a3303461c9cac662b151109c5516c6cd7 Mon Sep 17 00:00:00 2001 From: ab0tj Date: Thu, 2 Nov 2023 19:44:02 +0000 Subject: [PATCH 040/112] Add autodetection for RGB10 --- projects/Rockchip/bootloader/install | 6 +++++- projects/Rockchip/bootloader/mkimage | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/projects/Rockchip/bootloader/install b/projects/Rockchip/bootloader/install index 142554ace..b9e5e0d25 100755 --- a/projects/Rockchip/bootloader/install +++ b/projects/Rockchip/bootloader/install @@ -101,7 +101,11 @@ load mmc 1:1 \${loadaddr} KERNEL if test \${hwrev} = 'v11'; then if gpio input c22; then - load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + if gpio input d9; then + load mmc 1:1 \${dtb_loadaddr} rk3326-powkiddy-rgb10.dtb + else + load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + fi else load mmc 1:1 \${dtb_loadaddr} rk3326-anbernic-rg351m.dtb fi diff --git a/projects/Rockchip/bootloader/mkimage b/projects/Rockchip/bootloader/mkimage index 02af545a4..a63e087f4 100755 --- a/projects/Rockchip/bootloader/mkimage +++ b/projects/Rockchip/bootloader/mkimage @@ -62,7 +62,11 @@ load mmc 1:1 \${loadaddr} KERNEL if test \${hwrev} = 'v11'; then if gpio input c22; then - load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + if gpio input d9; then + load mmc 1:1 \${dtb_loadaddr} rk3326-powkiddy-rgb10.dtb + else + load mmc 1:1 \${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + fi else load mmc 1:1 \${dtb_loadaddr} rk3326-anbernic-rg351m.dtb fi From e2eb75afa808417208247d5dd05b744f4e875ba4 Mon Sep 17 00:00:00 2001 From: mason Date: Thu, 2 Nov 2023 23:51:43 +0000 Subject: [PATCH 041/112] Switch to 300hz in kernel --- projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf index 12202bad8..66af20f25 100644 --- a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf @@ -396,10 +396,10 @@ CONFIG_NR_CPUS=8 CONFIG_HOTPLUG_CPU=y # CONFIG_NUMA is not set # CONFIG_HZ_100 is not set -CONFIG_HZ_250=y -# CONFIG_HZ_300 is not set +# CONFIG_HZ_250 is not set +CONFIG_HZ_300=y # CONFIG_HZ_1000 is not set -CONFIG_HZ=250 +CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_HW_PERF_EVENTS=y From 174d39fd27042a29c0452b94767107d6378e1dbe Mon Sep 17 00:00:00 2001 From: adamg Date: Thu, 2 Nov 2023 18:47:47 +0000 Subject: [PATCH 042/112] packages: cleanup unused amlogic related packages --- packages/devel/libcec/package.mk | 17 +--- packages/multimedia/libamcodec/package.mk | 22 ----- packages/sysutils/amremote/package.mk | 34 -------- .../sysutils/amremote/scripts/remote-config | 84 ------------------- .../amremote/system.d/remote-config.service | 13 --- .../sysutils/inject_bl301/config/bl301.conf | 25 ------ packages/sysutils/inject_bl301/package.mk | 40 --------- .../inject_bl301/scripts/check-bl301.sh | 36 -------- .../inject_bl301/scripts/update-bl301.sh | 54 ------------ .../system.d/update-bl301.service | 10 --- packages/tools/aml-dtbtools/package.mk | 18 ---- packages/tools/bl301/package.mk | 47 ----------- packages/tools/ceemmc/package.mk | 17 ---- 13 files changed, 2 insertions(+), 415 deletions(-) delete mode 100644 packages/multimedia/libamcodec/package.mk delete mode 100644 packages/sysutils/amremote/package.mk delete mode 100755 packages/sysutils/amremote/scripts/remote-config delete mode 100644 packages/sysutils/amremote/system.d/remote-config.service delete mode 100644 packages/sysutils/inject_bl301/config/bl301.conf delete mode 100644 packages/sysutils/inject_bl301/package.mk delete mode 100755 packages/sysutils/inject_bl301/scripts/check-bl301.sh delete mode 100755 packages/sysutils/inject_bl301/scripts/update-bl301.sh delete mode 100644 packages/sysutils/inject_bl301/system.d/update-bl301.service delete mode 100644 packages/tools/aml-dtbtools/package.mk delete mode 100644 packages/tools/bl301/package.mk delete mode 100644 packages/tools/ceemmc/package.mk diff --git a/packages/devel/libcec/package.mk b/packages/devel/libcec/package.mk index 807d7a676..f328614a4 100644 --- a/packages/devel/libcec/package.mk +++ b/packages/devel/libcec/package.mk @@ -16,19 +16,10 @@ PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=1 \ -DCMAKE_INSTALL_LIBDIR_NOARCH:STRING=lib \ -DSKIP_PYTHON_WRAPPER=1 \ -DHAVE_IMX_API=0 \ + -DHAVE_AOCEC_API=0 -DHAVE_AMLOGIC_API=0 \ -DHAVE_GIT_BIN=0 \ -DHAVE_RPI_LIB=0" -if [ "${KODIPLAYER_DRIVER}" = "libamcodec" ]; then - if [ "${TARGET_KERNEL_ARCH}" = "arm64" ]; then - PKG_CMAKE_OPTS_TARGET="${PKG_CMAKE_OPTS_TARGET} -DHAVE_AOCEC_API=1" - else - PKG_CMAKE_OPTS_TARGET="${PKG_CMAKE_OPTS_TARGET} -DHAVE_AMLOGIC_API=1" - fi -else - PKG_CMAKE_OPTS_TARGET="${PKG_CMAKE_OPTS_TARGET} -DHAVE_AOCEC_API=0 -DHAVE_AMLOGIC_API=0" -fi - # libX11 and xrandr to read the sink's EDID, used to determine the PC's HDMI physical address if [ "${DISPLAYSERVER}" = "x11" ]; then PKG_DEPENDS_TARGET+=" libX11 libXrandr" @@ -44,11 +35,7 @@ post_makeinstall_target() { # Remove the Python3 demo - useless for us rm -f ${INSTALL}/usr/bin/pyCecClient - # Remove the sysmlink and redirect to /var/lib so that we can change libcec versions at run time - rm -f ${INSTALL}/usr/lib/libcec.so.6 - ln -sf /var/lib/libcec.so.6 ${INSTALL}/usr/lib/libcec.so.6 - - PYTHON_DIR=${INSTALL}/usr/lib/${PKG_PYTHON_VERSION} + PYTHON_DIR=${INSTALL}/usr/lib/${PKG_PYTHON_VERSION} if [ -d ${PYTHON_DIR}/dist-packages ]; then mv ${PYTHON_DIR}/dist-packages ${PYTHON_DIR}/site-packages fi diff --git a/packages/multimedia/libamcodec/package.mk b/packages/multimedia/libamcodec/package.mk deleted file mode 100644 index 1f887853a..000000000 --- a/packages/multimedia/libamcodec/package.mk +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="libamcodec" -PKG_VERSION="31cd6eceaa1402b9f4ff5cc349e53899860fe9b9" -PKG_SHA256="9052aaa00c827d3bfef7de83f55678aa1674368f06911a003b138953409f4d7c" -PKG_LICENSE="proprietary" -PKG_SITE="http://openlinux.amlogic.com" -PKG_URL="https://sources.coreelec.org/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain" -PKG_LONGDESC="libamplayer: Interface library for Amlogic media codecs" -PKG_TOOLCHAIN="manual" - -make_target() { - cp -PR * ${SYSROOT_PREFIX} -} - -makeinstall_target() { - mkdir -p ${INSTALL}/usr - cp -PR usr/lib ${INSTALL}/usr -} diff --git a/packages/sysutils/amremote/package.mk b/packages/sysutils/amremote/package.mk deleted file mode 100644 index a83572763..000000000 --- a/packages/sysutils/amremote/package.mk +++ /dev/null @@ -1,34 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="amremote" -PKG_LICENSE="other" -PKG_SITE="http://www.amlogic.com" -PKG_DEPENDS_TARGET="toolchain usbutils" -PKG_LONGDESC="amremote - IR remote configuration utility for Amlogic-based devices" - -case "$LINUX" in - amlogic-3.14) - PKG_VERSION="05b85d1f9821ae65dca250ba87b369327dd71df3" - PKG_SHA256="895a64efc05cee3148b4c33f5acbffb87da095d8b8f289f78e0cec26d2ed6f9d" - PKG_URL="https://github.com/CoreELEC/amremote/archive/${PKG_VERSION}.tar.gz" - ;; - amlogic-4.9) - PKG_VERSION="1db130a0ccd47f6b5c3d1dffab1e89613b796a8c" - PKG_SHA256="5b96f2a1dd03200909eed749f5d97d1d02ee7fc8ac92d8fce6b5d6772ee642dc" - PKG_URL="https://github.com/CoreELEC/amremote/archive/${PKG_VERSION}.tar.gz" - ;; -esac - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/bin - cp remotecfg ${INSTALL}/usr/bin - - mkdir -p ${INSTALL}/usr/lib/coreelec - cp ${PKG_DIR}/scripts/* ${INSTALL}/usr/lib/coreelec -} - -post_install() { - enable_service remote-config.service -} diff --git a/packages/sysutils/amremote/scripts/remote-config b/packages/sysutils/amremote/scripts/remote-config deleted file mode 100755 index 9529f0adf..000000000 --- a/packages/sysutils/amremote/scripts/remote-config +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh - -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -remap_keys () { - [ ! -f "$1" ] && return - - sed -i 's/ 15[^0-9]*$/ 1/ - s/ 63[^0-9]*$/ 90/ - s/ 97[^0-9]*$/ 28/ - s/ 102[^0-9]*$/ 172/ - s/ 125[^0-9]*$/ 46/ - s/ 128[^0-9]*$/ 45/ - s/ 139[^0-9]*$/ 46/ - s/ 142[^0-9]*$/ 116/ - s/ 143[^0-9]*$/ 116/ - s/ 158[^0-9]*$/ 1/ - s/ 183[^0-9]*$/ 59/ - s/ 184[^0-9]*$/ 399/ - s/ 185[^0-9]*$/ 400/ - s/ 186[^0-9]*$/ 60/ - s/ 232[^0-9]*$/ 28/ - s/ 240[^0-9]*$/ 164/ - s/ 241[^0-9]*$/ 163/ - s/ 242[^0-9]*$/ 165/ - s/ 244[^0-9]*$/ 208/ - s/ 245[^0-9]*$/ 168/ - s/ 264[^0-9]*$/ 63/ - s/ 704[^0-9]*$/ 116/' \ - "$1" -} - -[ ! -e "/proc/device-tree/meson-ir/compatible" -o ! -e "/proc/device-tree/meson-remote/compatible" ] && exit - -if [ -f "/flash/remote.disable" -o -f "/storage/.config/remote.disable" ]; then - echo "remote control disabled by user" - exit 0 -fi - -if [ -f "/flash/remote.force_meson_ir" -o -f "/storage/.config/remote.force_meson_ir" ]; then - force_meson_ir="yes" -else - force_meson_ir="no" -fi - -if [ -f "/flash/remote.conf" ]; then - REMOTE_CONF_DIR="/flash" -elif [ -f "/storage/.config/remote.conf" ]; then - REMOTE_CONF_DIR="/storage/.config" -else - REMOTE_CONF_DIR="" - - if [ -d "/proc/device-tree/custom_maps" -a "$force_meson_ir" = "no" ]; then - MAP_NAME=$(cat /proc/device-tree/custom_maps/map_0/mapname 2>/dev/null) - echo "using meson-remote, with pre-defined map '$MAP_NAME' from dtb" - modprobe meson-remote - exit 0 - fi -fi - -if [ -d "$REMOTE_CONF_DIR" ]; then - echo "using meson-remote, conf from $REMOTE_CONF_DIR" - - if [ -d "/proc/device-tree/custom_maps" ]; then - MAP_NAME=$(cat /proc/device-tree/custom_maps/map_0/mapname 2>/dev/null) - echo "also using pre-defined map '$MAP_NAME' from dtb" - fi - - modprobe meson-remote - - for f in $REMOTE_CONF_DIR/remote*.conf; do - echo "configuring remote with $f" - cp "$f" /tmp/remote.conf - remap_keys /tmp/remote.conf - remotecfg /tmp/remote.conf - rm -f /tmp/remote.conf - done -else - echo "using meson-ir" - modprobe meson-ir -fi - -exit 0 diff --git a/packages/sysutils/amremote/system.d/remote-config.service b/packages/sysutils/amremote/system.d/remote-config.service deleted file mode 100644 index 3527bca12..000000000 --- a/packages/sysutils/amremote/system.d/remote-config.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=IR remote control support -Before=graphical.target kodi.service -After=multi-user.target -ConditionPathExists=/proc/device-tree/meson-ir/compatible -ConditionPathExists=/proc/device-tree/meson-remote/compatible - -[Service] -Type=oneshot -ExecStart=/usr/lib/coreelec/remote-config - -[Install] -WantedBy=graphical.target diff --git a/packages/sysutils/inject_bl301/config/bl301.conf b/packages/sysutils/inject_bl301/config/bl301.conf deleted file mode 100644 index 6bbe3ce2c..000000000 --- a/packages/sysutils/inject_bl301/config/bl301.conf +++ /dev/null @@ -1,25 +0,0 @@ -#################################################################### -# CoreELEC inject_bl301 config # -# # -# coreelec-dt-id blob definition: # -# # -# [substring coreelec-dt-id] = [substring BL301 blob binary] # -# # -# [substring coreelec-dt-id] = [] -> "Not supported" # -# # -# config.ini parameter are auto generated from package bl301: # -# # -# [config variable name] # -# config_id = [unique unsigned int ID for variable] # -# config_name = [unique matching config.ini key name] # -# # -# This config parameter value is filled automatic by package.mk. # -# Multiple sections are possible. Do not edit! # -#################################################################### - -[BL301] -odroid= -lepotato= -lafrite= -gxl_p212_2g_kvim=Khadas_VIM1 -khadas_vim3=Khadas_VIM3 diff --git a/packages/sysutils/inject_bl301/package.mk b/packages/sysutils/inject_bl301/package.mk deleted file mode 100644 index 28666df41..000000000 --- a/packages/sysutils/inject_bl301/package.mk +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2019-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="inject_bl301" -PKG_VERSION="6af46f6a7defbbba360a6bbcd5db2b11925f7315" -PKG_SHA256="bb02545eb80c0a1372f91990cb21572b201251d47523c9f4424fea72a16426ab" -PKG_LICENSE="proprietary" -PKG_SITE="https://coreelec.org" -PKG_URL="https://sources.coreelec.org/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain bl301" -PKG_LONGDESC="Tool to inject bootloader blob BL301.bin on internal eMMC" -PKG_TOOLCHAIN="manual" - -pre_make_target() { - cp -av ${PKG_DIR}/config/bl301.conf ${PKG_BUILD}/bl301.conf - for f in $(find $(get_build_dir bl301) -mindepth 1 -name 'coreelec_config.c'); do - cat ${f} | awk -F'[(),"]' '/.config_id_a\s*=\s*HASH/ {printf("%s %s\n", $2, $3)}' | \ - while read id name; do - if ! grep -Fwq "${id}" ${PKG_BUILD}/bl301.conf; then - echo -e '\n['${id}']' >> ${PKG_BUILD}/bl301.conf; - cat ${f%.*}.h | awk -v id="HASHSTR_${id} " '$0 ~ id {printf("config_id=%s\n", $3)}' >> ${PKG_BUILD}/bl301.conf; - echo -e "config_name=${name}" >> ${PKG_BUILD}/bl301.conf; - fi - done - done -} - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/sbin - mkdir -p ${INSTALL}/usr/lib/coreelec - mkdir -p ${INSTALL}/etc/inject_bl301 - install -m 0755 inject_bl301 ${INSTALL}/usr/sbin/inject_bl301 - install -m 0755 ${PKG_DIR}/scripts/check-bl301.sh ${INSTALL}/usr/lib/coreelec/check-bl301 - install -m 0755 ${PKG_DIR}/scripts/update-bl301.sh ${INSTALL}/usr/lib/coreelec/update-bl301 - install -m 0644 ${PKG_BUILD}/bl301.conf ${INSTALL}/etc/inject_bl301/bl301.conf -} - -post_install() { - enable_service update-bl301.service -} diff --git a/packages/sysutils/inject_bl301/scripts/check-bl301.sh b/packages/sysutils/inject_bl301/scripts/check-bl301.sh deleted file mode 100755 index d227cf303..000000000 --- a/packages/sysutils/inject_bl301/scripts/check-bl301.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# SPDX-License-Identifier: GPL-3.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) -# -# Detect BL301 injection -# -##################################################### -# -# Comand Line Arguments -# -v = Show verbose output -# -##################################################### - -VERBOSE=0 -INSTALLED=0 - -if [ "$1" = "-v" ]; then - VERBOSE=1 -fi - -if [ -e /usr/sbin/inject_bl301 ]; then - inject_bl301 -i - if [ ${?} = 1 ]; then - INSTALLED=1 - fi -fi - -if [ "$VERBOSE" = 1 ]; then - if [ "${INSTALLED}" = 1 ]; then - echo "CoreELEC BL301 Installed" - else - echo "CoreELEC BL301 Not found" - fi -fi -exit ${INSTALLED} diff --git a/packages/sysutils/inject_bl301/scripts/update-bl301.sh b/packages/sysutils/inject_bl301/scripts/update-bl301.sh deleted file mode 100755 index 9619f30de..000000000 --- a/packages/sysutils/inject_bl301/scripts/update-bl301.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# -# SPDX-License-Identifier: GPL-3.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) -# -# Update BL301 injection -# -##################################################### -# -# Comand Line Arguments -# -v = Show verbose output -# -##################################################### - -VERBOSE=0 -INSTALLED=0 -UPDATE=1 -RET=0 - -if [ "$1" = "-v" ]; then - VERBOSE=1 -fi - -if [ -e /usr/lib/coreelec/check-bl301 ]; then - /usr/lib/coreelec/check-bl301 - INSTALLED=${?} - if [ "${INSTALLED}" = 1 ]; then - touch /run/bl301_injected - fi -fi - -if [ -e /usr/sbin/inject_bl301 ] && [ "${INSTALLED}" = 1 ]; then - inject_bl301 -Y > /storage/update-bl301.log - UPDATE=${?} -fi - -if [ "$VERBOSE" = 1 ]; then - if [ "${INSTALLED}" = 1 ] && [ "$UPDATE" = 0 ]; then - echo "CoreELEC BL301 got updated" - elif [ "${INSTALLED}" = 1 ] && [ "$UPDATE" = 1 ]; then - echo "CoreELEC BL301 installed but no update needed" - elif [ "${INSTALLED}" = 1 ]; then - echo "CoreELEC BL301 installed but error on update: " $UPDATE - RET=$UPDATE - elif [ "${INSTALLED}" = 0 ]; then - echo "CoreELEC BL301 not installed" - fi -fi - -if [ "${INSTALLED}" = 1 ] && [ "$UPDATE" = 0 ]; then - sync && reboot -fi - -exit $RET diff --git a/packages/sysutils/inject_bl301/system.d/update-bl301.service b/packages/sysutils/inject_bl301/system.d/update-bl301.service deleted file mode 100644 index 61033aa30..000000000 --- a/packages/sysutils/inject_bl301/system.d/update-bl301.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=CoreELEC BL301 Update Service - -[Service] -Type=oneshot -ExecStart=/usr/lib/coreelec/update-bl301 -v -RemainAfterExit=no - -[Install] -WantedBy=basic.target diff --git a/packages/tools/aml-dtbtools/package.mk b/packages/tools/aml-dtbtools/package.mk deleted file mode 100644 index 1512dfde2..000000000 --- a/packages/tools/aml-dtbtools/package.mk +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) - -PKG_NAME="aml-dtbtools" -PKG_VERSION="cce100f" -PKG_SHA256="8bcaa83fcc9e85c9c04930e7411447d96a97da0809c5ecd9af91c8b554133c41" -PKG_LICENSE="free" -PKG_SITE="https://github.com/Wilhansen/aml-dtbtools" -PKG_URL="https://github.com/Wilhansen/aml-dtbtools/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_HOST="gcc:host" -PKG_LONGDESC="AML DTB Tools" - -PKG_MAKE_OPTS_HOST="dtbTool" - -makeinstall_host() { - mkdir -p ${TOOLCHAIN}/bin - cp dtbTool ${TOOLCHAIN}/bin -} diff --git a/packages/tools/bl301/package.mk b/packages/tools/bl301/package.mk deleted file mode 100644 index 410e7651d..000000000 --- a/packages/tools/bl301/package.mk +++ /dev/null @@ -1,47 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="bl301" -PKG_VERSION="85f483db84c1482ee632bf34e6765c92486fc9d0" -PKG_SHA256="526d10570add92e737782cf1b7faae8e329e565d2163fdf5d014d22096291841" -PKG_LICENSE="GPL" -PKG_SITE="https://coreelec.org" -PKG_URL="https://github.com/CoreELEC/bl301/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain gcc-linaro-aarch64-elf:host gcc-linaro-arm-eabi:host" -PKG_LONGDESC="Das U-Boot is a cross-platform bootloader for embedded systems." -PKG_TOOLCHAIN="manual" - -pre_make_target() { - sed -i "s|arm-none-eabi-|arm-eabi-|g" ${PKG_BUILD}/Makefile ${PKG_BUILD}/arch/arm/cpu/armv8/*/firmware/scp_task/Makefile 2>/dev/null || true -} - -make_target() { - [ "${BUILD_WITH_DEBUG}" = "yes" ] && PKG_DEBUG=1 || PKG_DEBUG=0 - export PATH=${TOOLCHAIN}/lib/gcc-linaro-aarch64-elf/bin/:${TOOLCHAIN}/lib/gcc-linaro-arm-eabi/bin/:$PATH - DEBUG=${PKG_DEBUG} CROSS_COMPILE=aarch64-elf- ARCH=arm CFLAGS="" LDFLAGS="" make mrproper - - for f in $(find ${PKG_BUILD}/configs -mindepth 1); do - PKG_UBOOT_CONFIG=$(basename -- "$f") - PKG_BL301_SUBDEVICE=${PKG_UBOOT_CONFIG%_defconfig} - echo Building bl301 for ${PKG_BL301_SUBDEVICE} - DEBUG=${PKG_DEBUG} CROSS_COMPILE=aarch64-elf- ARCH=arm CFLAGS="" LDFLAGS="" make ${PKG_UBOOT_CONFIG} - DEBUG=${PKG_DEBUG} CROSS_COMPILE=aarch64-elf- ARCH=arm CFLAGS="" LDFLAGS="" make HOSTCC="${HOST_CC}" HOSTSTRIP="true" bl301.bin - mv ${PKG_BUILD}/build/scp_task/bl301.bin ${PKG_BUILD}/build/${PKG_BL301_SUBDEVICE}_bl301.bin - echo "moved blob to: " ${PKG_BUILD}/build/${PKG_BL301_SUBDEVICE}_bl301.bin - rm -rf ${PKG_BUILD}/build/scp_task - done -} - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/share/bootloader/bl301 - - for f in $(find ${PKG_BUILD}/configs -mindepth 1); do - PKG_UBOOT_CONFIG=$(basename -- "$f") - PKG_BL301_SUBDEVICE=${PKG_UBOOT_CONFIG%_defconfig} - PKG_BIN=${PKG_BUILD}/build/${PKG_BL301_SUBDEVICE}_bl301.bin - cp -av ${PKG_BIN} ${INSTALL}/usr/share/bootloader/bl301/${PKG_BL301_SUBDEVICE}_bl301.bin - done - - [ -d "${PKG_BUILD}/bl30" ] && cp -av ${PKG_BUILD}/bl30 ${INSTALL}/usr/share/bootloader/bl301 || : - [ -d "${PKG_BUILD}/bl31" ] && cp -av ${PKG_BUILD}/bl31 ${INSTALL}/usr/share/bootloader/bl301 || : -} diff --git a/packages/tools/ceemmc/package.mk b/packages/tools/ceemmc/package.mk deleted file mode 100644 index dc7b36a37..000000000 --- a/packages/tools/ceemmc/package.mk +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2019-present Team CoreELEC (https://coreelec.org) - -PKG_NAME="ceemmc" -PKG_VERSION="d74dcaa86e08a7d742218ede660ba9307f1e19fa" -PKG_SHA256="b0755c8d229ce6f9ab1aca88956f4cc441eb0fe0328b29c74b26e3d7e0fa6997" -PKG_LICENSE="proprietary" -PKG_SITE="https://coreelec.org" -PKG_URL="https://sources.coreelec.org/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain" -PKG_LONGDESC="Tool to install CoreELEC on internal eMMC" -PKG_TOOLCHAIN="manual" - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/sbin - install -m 0755 ceemmc ${INSTALL}/usr/sbin/ceemmc -} From 794a311ff8f06d011c76e08f15c43201891fd17b Mon Sep 17 00:00:00 2001 From: adamg Date: Thu, 2 Nov 2023 21:53:14 +0000 Subject: [PATCH 043/112] Amlogic: fix correct debug tty path --- projects/Amlogic/devices/S922X/options | 2 +- projects/Amlogic/options | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/Amlogic/devices/S922X/options b/projects/Amlogic/devices/S922X/options index 5fb6e7d30..e8964bd6e 100644 --- a/projects/Amlogic/devices/S922X/options +++ b/projects/Amlogic/devices/S922X/options @@ -85,7 +85,7 @@ DRIVER_ADDONS="" # debug tty path - DEBUG_TTY="/dev/ttyFIQ0" + DEBUG_TTY="/dev/ttyAML0" # Disable 32BIT support ENABLE_32BIT="false" diff --git a/projects/Amlogic/options b/projects/Amlogic/options index 8de624dfa..98770fd70 100644 --- a/projects/Amlogic/options +++ b/projects/Amlogic/options @@ -64,7 +64,7 @@ DRIVER_ADDONS_SUPPORT="no" # debug tty path - DEBUG_TTY="/dev/ttyS2" + DEBUG_TTY="/dev/ttyAML0" # build with entware installer ENTWARE_SUPPORT="yes" From 8575e126f39c6fcbfc29d3d71b512d6944ede9a1 Mon Sep 17 00:00:00 2001 From: mason Date: Fri, 3 Nov 2023 05:11:36 +0000 Subject: [PATCH 044/112] Add quirk folder for RGB10 (rk3326) --- packages/hardware/quirks/devices/Powkiddy RGB10 | 1 + 1 file changed, 1 insertion(+) create mode 120000 packages/hardware/quirks/devices/Powkiddy RGB10 diff --git a/packages/hardware/quirks/devices/Powkiddy RGB10 b/packages/hardware/quirks/devices/Powkiddy RGB10 new file mode 120000 index 000000000..ad0f3d86d --- /dev/null +++ b/packages/hardware/quirks/devices/Powkiddy RGB10 @@ -0,0 +1 @@ +ODROID-GO Advance Black Edition \ No newline at end of file From 972a44fc985f24909d2363fbe85ac5ab21d70bdc Mon Sep 17 00:00:00 2001 From: adamg Date: Fri, 3 Nov 2023 14:41:11 +0000 Subject: [PATCH 045/112] Amlogic: remove frequencies below 1Ghz for GOU & Max3Pro for better stability, this was already done in 90799d8d for all other Amlogic devices --- .../S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch | 8 +------- .../001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch b/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch index 6e7fed000..af1b464d0 100644 --- a/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch +++ b/projects/Amlogic/packages/linux/patches/S922X/001.02-Add-ODROID-GO-Ultra-device-tree.patch @@ -1,7 +1,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts --- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts 1970-01-01 00:00:00.000000000 +0000 +++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts 2023-09-12 13:20:28.956694441 +0000 -@@ -0,0 +1,1021 @@ +@@ -0,0 +1,1015 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Neil Armstrong @@ -361,9 +361,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + +/* RK817 only supports 12.5mV steps, round up the values */ +&cpu_opp_table_0 { -+ opp-667000000 { -+ opp-microvolt = <725000>; -+ }; + opp-1000000000 { + opp-microvolt = <737500>; + }; @@ -396,9 +393,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts + +/* RK818 only supports 12.5mV steps, round up the values */ +&cpub_opp_table_1 { -+ opp-667000000 { -+ opp-microvolt = <750000>; -+ }; + opp-1000000000 { + opp-microvolt = <775000>; + }; diff --git a/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch b/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch index d4649c2c0..4c947d5bc 100644 --- a/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch +++ b/projects/Amlogic/packages/linux/patches/S922X/001.03-Add-Powkiddy-RGB10-MAX-3-device-tree.patch @@ -1,7 +1,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts linux/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts --- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts 1970-01-01 00:00:00.000000000 +0000 +++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts 2023-09-12 12:04:13.567330573 +0000 -@@ -0,0 +1,995 @@ +@@ -0,0 +1,989 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Neil Armstrong @@ -350,9 +350,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max- + +/* RK817 only supports 12.5mV steps, round up the values */ +&cpu_opp_table_0 { -+ opp-667000000 { -+ opp-microvolt = <731250>; -+ }; + opp-1000000000 { + opp-microvolt = <760000>; + }; @@ -378,9 +375,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max- + +/* RK818 only supports 12.5mV steps, round up the values */ +&cpub_opp_table_1 { -+ opp-667000000 { -+ opp-microvolt = <750000>; -+ }; + opp-1000000000 { + opp-microvolt = <775000>; + }; From 92c1a42b96c43ea55a55b4a0ac18ee2e698674f9 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Fri, 3 Nov 2023 21:36:34 +0000 Subject: [PATCH 046/112] * Bring back factory reset. * Slow down the volume / brightness loop so it doesn't execute multiple times during a single short press. --- packages/jelos/sources/scripts/factoryreset | 8 ++++++++ .../sysutils/system-utils/sources/scripts/volume_sense | 1 + packages/ui/emulationstation/package.mk | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/jelos/sources/scripts/factoryreset b/packages/jelos/sources/scripts/factoryreset index 66928b8b2..0b52bf625 100755 --- a/packages/jelos/sources/scripts/factoryreset +++ b/packages/jelos/sources/scripts/factoryreset @@ -9,4 +9,12 @@ case "${1}" in rm -f /storage/.config/retroarch/retroarch.cfg cp -rf /usr/config/retroarch/retroarch.cfg /storage/.config/retroarch/retroarch.cfg ;; + "ALL") + systemctl stop ${UI_SERVICE} + cd / + find /storage -mindepth 1 \( ! -regex '^/storage/.update.*' -a ! -regex '^/storage/roms.*' \) -delete + mkdir /storage/.config/ + sync + systemctl reboot + ;; esac diff --git a/packages/sysutils/system-utils/sources/scripts/volume_sense b/packages/sysutils/system-utils/sources/scripts/volume_sense index 1def05f6a..31941869b 100755 --- a/packages/sysutils/system-utils/sources/scripts/volume_sense +++ b/packages/sysutils/system-utils/sources/scripts/volume_sense @@ -202,4 +202,5 @@ mkcontroller 2>/dev/null ||: fi ;; esac + sleep .1 done diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index f8ac9cd0f..ed72cb43e 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="emulationstation" -PKG_VERSION="58a9a86aa957501753e7b2442efcbfb5dbdb9bac" +PKG_VERSION="86f209752cc7eb47b22e3f00f807cf6d64ebc970" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" From 83f64d588af32b977fdce6c5449404e568d1f63f Mon Sep 17 00:00:00 2001 From: fewtarius Date: Fri, 3 Nov 2023 21:50:23 +0000 Subject: [PATCH 047/112] Revert volume change. --- packages/sysutils/system-utils/sources/scripts/volume_sense | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/sysutils/system-utils/sources/scripts/volume_sense b/packages/sysutils/system-utils/sources/scripts/volume_sense index 31941869b..1def05f6a 100755 --- a/packages/sysutils/system-utils/sources/scripts/volume_sense +++ b/packages/sysutils/system-utils/sources/scripts/volume_sense @@ -202,5 +202,4 @@ mkcontroller 2>/dev/null ||: fi ;; esac - sleep .1 done From 24c2268828983ff499a9f1e6ff0ace77c86cfb2e Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sat, 4 Nov 2023 09:52:54 +0000 Subject: [PATCH 048/112] Clean up x55 zed_joystick and implement radial thresholding. Thanks @littleguy77 and @JohnnyonFlame! --- projects/Rockchip/packages/linux/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index ed643b850..4fdd36a58 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -31,7 +31,7 @@ case ${DEVICE} in ;; *X55) PKG_URL="${PKG_SITE}/rk3566-x55-kernel.git" - PKG_VERSION="c7531bab2" + PKG_VERSION="9b92751b8fe21f9326d1a54dd5f675965a12d6e1" GET_HANDLER_SUPPORT="git" PKG_GIT_CLONE_BRANCH="main" ;; From 5be835956a45a466f24c0fc57272abb8557e7ee3 Mon Sep 17 00:00:00 2001 From: mason Date: Sat, 4 Nov 2023 12:27:26 +0000 Subject: [PATCH 049/112] RK3399 - Add RG552 Joystick deadzone patch --- .../RK3399/002-singleadc-deadzone.patch | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 projects/Rockchip/packages/linux/patches/RK3399/002-singleadc-deadzone.patch diff --git a/projects/Rockchip/packages/linux/patches/RK3399/002-singleadc-deadzone.patch b/projects/Rockchip/packages/linux/patches/RK3399/002-singleadc-deadzone.patch new file mode 100644 index 000000000..6a8c85b4c --- /dev/null +++ b/projects/Rockchip/packages/linux/patches/RK3399/002-singleadc-deadzone.patch @@ -0,0 +1,100 @@ +From c731e0b23383c8b451932331f22122afe04348bd Mon Sep 17 00:00:00 2001 +From: Johnny on Flame +Date: Fri, 3 Nov 2023 04:53:33 +0000 +Subject: [PATCH] Port radial thresholding from @littleguy77. + +--- + drivers/input/joystick/singleadcjoy.c | 64 ++++++++++++++++++++------- + 1 file changed, 48 insertions(+), 16 deletions(-) + +diff --git a/drivers/input/joystick/singleadcjoy.c b/drivers/input/joystick/singleadcjoy.c +index f0a24a24a..455e11121 100644 +--- a/drivers/input/joystick/singleadcjoy.c ++++ b/drivers/input/joystick/singleadcjoy.c +@@ -580,35 +580,67 @@ static void joypad_adc_check(struct input_polled_dev *poll_dev) + { + struct joypad *joypad = poll_dev->private; + int nbtn; ++ int mag; + +- for (nbtn = 0; nbtn < joypad->amux_count; nbtn++) { +- struct bt_adc *adc = &joypad->adcs[nbtn]; ++ /* Assumes an even number of axes and that joystick axis pairs are sequential */ ++ /* e.g. left stick Y immediately follows left stick X */ ++ for (nbtn = 0; nbtn < joypad->amux_count; nbtn+=2) { ++ struct bt_adc *adcx = &joypad->adcs[nbtn]; ++ struct bt_adc *adcy = &joypad->adcs[nbtn + 1]; + +- adc->value = joypad_adc_read(joypad->amux, adc); +- if (!adc->value) { ++ /* Read first joystick axis */ ++ adcx->value = joypad_adc_read(joypad->amux, adcx); ++ if (!adcx->value) { ++ //dev_err(joypad->dev, "%s : saradc channels[%d]! adc->value : %d\n",__func__, nbtn, adc->value); ++ continue; ++ } ++ adcx->value = adcx->value - adcx->cal; ++ ++ /* Read second joystick axis */ ++ adcy->value = joypad_adc_read(joypad->amux, adcy); ++ if (!adcy->value) { + //dev_err(joypad->dev, "%s : saradc channels[%d]! adc->value : %d\n",__func__, nbtn, adc->value); + continue; + } +- adc->value = adc->value - adc->cal; ++ adcy->value = adcy->value - adcy->cal; + + /* Joystick Deadzone check */ ++ mag = int_sqrt((adcx->value * adcx->value) + (adcy->value * adcy->value)); + if (joypad->bt_adc_deadzone) { +- if (abs(adc->value) < joypad->bt_adc_deadzone) +- adc->value = 0; ++ if (mag <= joypad->bt_adc_deadzone) { ++ adcx->value = 0; ++ adcy->value = 0; ++ } ++ else { ++ /* Assumes adcx->max == -adcx->min == adcy->max == -adcy->min */ ++ /* Order of operations is critical to avoid integer overflow */ ++ adcx->value = (((adcx->max * adcx->value) / mag) * (mag - joypad->bt_adc_deadzone)) / (adcx->max - joypad->bt_adc_deadzone); ++ adcy->value = (((adcy->max * adcy->value) / mag) * (mag - joypad->bt_adc_deadzone)) / (adcy->max - joypad->bt_adc_deadzone); ++ } + } + + /* adc data tuning */ +- if (adc->tuning_n && adc->value < 0) +- adc->value = ADC_DATA_TUNING(adc->value, adc->tuning_n); +- if (adc->tuning_p && adc->value > 0) +- adc->value = ADC_DATA_TUNING(adc->value, adc->tuning_p); +- +- adc->value = adc->value > adc->max ? adc->max : adc->value; +- adc->value = adc->value < adc->min ? adc->min : adc->value; ++ if (adcx->tuning_n && adcx->value < 0) ++ adcx->value = ADC_DATA_TUNING(adcx->value, adcx->tuning_n); ++ if (adcx->tuning_p && adcx->value > 0) ++ adcx->value = ADC_DATA_TUNING(adcx->value, adcx->tuning_p); ++ if (adcy->tuning_n && adcy->value < 0) ++ adcy->value = ADC_DATA_TUNING(adcy->value, adcy->tuning_n); ++ if (adcy->tuning_p && adcy->value > 0) ++ adcy->value = ADC_DATA_TUNING(adcy->value, adcy->tuning_p); ++ ++ /* Clamp to [min, max] */ ++ adcx->value = adcx->value > adcx->max ? adcx->max : adcx->value; ++ adcx->value = adcx->value < adcx->min ? adcx->min : adcx->value; ++ adcy->value = adcy->value > adcy->max ? adcy->max : adcy->value; ++ adcy->value = adcy->value < adcy->min ? adcy->min : adcy->value; + + input_report_abs(poll_dev->input, +- adc->report_type, +- adc->invert ? adc->value * (-1) : adc->value); ++ adcx->report_type, ++ adcx->invert ? adcx->value * (-1) : adcx->value); ++ input_report_abs(poll_dev->input, ++ adcy->report_type, ++ adcy->invert ? adcy->value * (-1) : adcy->value); + } + input_sync(poll_dev->input); + } +-- +2.34.1 + From 14314a5a31695d4433d09926b4ec60356b269b91 Mon Sep 17 00:00:00 2001 From: adamg Date: Sat, 4 Nov 2023 14:42:06 +0000 Subject: [PATCH 050/112] Amlogic: patch house keeping --- .../004.03-polled-input-device-driver.patch | 62 +++++++++++++++++++ .../S922X/004.04-rk818-charger-driver.patch | 62 ------------------- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/projects/Amlogic/packages/linux/patches/S922X/004.03-polled-input-device-driver.patch b/projects/Amlogic/packages/linux/patches/S922X/004.03-polled-input-device-driver.patch index c2377a6bc..52d9cd4b7 100644 --- a/projects/Amlogic/packages/linux/patches/S922X/004.03-polled-input-device-driver.patch +++ b/projects/Amlogic/packages/linux/patches/S922X/004.03-polled-input-device-driver.patch @@ -400,3 +400,65 @@ diff -rupN linux.orig/drivers/input/input-polldev.c linux/drivers/input/input-po +} +EXPORT_SYMBOL(input_unregister_polled_device); +diff -rupN linux.orig/include/linux/input-polldev.h linux/include/linux/input-polldev.h +--- linux.orig/include/linux/input-polldev.h 1970-01-01 00:00:00.000000000 +0000 ++++ linux/include/linux/input-polldev.h 2023-09-12 12:03:27.490291628 +0000 +@@ -0,0 +1,58 @@ ++/* SPDX-License-Identifier: GPL-2.0-only */ ++#ifndef _INPUT_POLLDEV_H ++#define _INPUT_POLLDEV_H ++ ++/* ++ * Copyright (c) 2007 Dmitry Torokhov ++ */ ++ ++#include ++#include ++ ++/** ++ * struct input_polled_dev - simple polled input device ++ * @private: private driver data. ++ * @open: driver-supplied method that prepares device for polling ++ * (enabled the device and maybe flushes device state). ++ * @close: driver-supplied method that is called when device is no ++ * longer being polled. Used to put device into low power mode. ++ * @poll: driver-supplied method that polls the device and posts ++ * input events (mandatory). ++ * @poll_interval: specifies how often the poll() method should be called. ++ * Defaults to 500 msec unless overridden when registering the device. ++ * @poll_interval_max: specifies upper bound for the poll interval. ++ * Defaults to the initial value of @poll_interval. ++ * @poll_interval_min: specifies lower bound for the poll interval. ++ * Defaults to 0. ++ * @input: input device structure associated with the polled device. ++ * Must be properly initialized by the driver (id, name, phys, bits). ++ * ++ * Polled input device provides a skeleton for supporting simple input ++ * devices that do not raise interrupts but have to be periodically ++ * scanned or polled to detect changes in their state. ++ */ ++struct input_polled_dev { ++ void *private; ++ ++ void (*open)(struct input_polled_dev *dev); ++ void (*close)(struct input_polled_dev *dev); ++ void (*poll)(struct input_polled_dev *dev); ++ unsigned int poll_interval; /* msec */ ++ unsigned int poll_interval_max; /* msec */ ++ unsigned int poll_interval_min; /* msec */ ++ ++ struct input_dev *input; ++ ++/* private: */ ++ struct delayed_work work; ++ ++ bool devres_managed; ++}; ++ ++struct input_polled_dev *input_allocate_polled_device(void); ++struct input_polled_dev *devm_input_allocate_polled_device(struct device *dev); ++void input_free_polled_device(struct input_polled_dev *dev); ++int input_register_polled_device(struct input_polled_dev *dev); ++void input_unregister_polled_device(struct input_polled_dev *dev); ++ ++#endif diff --git a/projects/Amlogic/packages/linux/patches/S922X/004.04-rk818-charger-driver.patch b/projects/Amlogic/packages/linux/patches/S922X/004.04-rk818-charger-driver.patch index 807c7e379..dc6b2ec71 100644 --- a/projects/Amlogic/packages/linux/patches/S922X/004.04-rk818-charger-driver.patch +++ b/projects/Amlogic/packages/linux/patches/S922X/004.04-rk818-charger-driver.patch @@ -4426,68 +4426,6 @@ diff -rupN linux.orig/drivers/power/supply/rk818_charger.c linux/drivers/power/s +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:rk818-charger"); +MODULE_AUTHOR("Ondřej Jirman "); -diff -rupN linux.orig/include/linux/input-polldev.h linux/include/linux/input-polldev.h ---- linux.orig/include/linux/input-polldev.h 1970-01-01 00:00:00.000000000 +0000 -+++ linux/include/linux/input-polldev.h 2023-09-12 12:03:27.490291628 +0000 -@@ -0,0 +1,58 @@ -+/* SPDX-License-Identifier: GPL-2.0-only */ -+#ifndef _INPUT_POLLDEV_H -+#define _INPUT_POLLDEV_H -+ -+/* -+ * Copyright (c) 2007 Dmitry Torokhov -+ */ -+ -+#include -+#include -+ -+/** -+ * struct input_polled_dev - simple polled input device -+ * @private: private driver data. -+ * @open: driver-supplied method that prepares device for polling -+ * (enabled the device and maybe flushes device state). -+ * @close: driver-supplied method that is called when device is no -+ * longer being polled. Used to put device into low power mode. -+ * @poll: driver-supplied method that polls the device and posts -+ * input events (mandatory). -+ * @poll_interval: specifies how often the poll() method should be called. -+ * Defaults to 500 msec unless overridden when registering the device. -+ * @poll_interval_max: specifies upper bound for the poll interval. -+ * Defaults to the initial value of @poll_interval. -+ * @poll_interval_min: specifies lower bound for the poll interval. -+ * Defaults to 0. -+ * @input: input device structure associated with the polled device. -+ * Must be properly initialized by the driver (id, name, phys, bits). -+ * -+ * Polled input device provides a skeleton for supporting simple input -+ * devices that do not raise interrupts but have to be periodically -+ * scanned or polled to detect changes in their state. -+ */ -+struct input_polled_dev { -+ void *private; -+ -+ void (*open)(struct input_polled_dev *dev); -+ void (*close)(struct input_polled_dev *dev); -+ void (*poll)(struct input_polled_dev *dev); -+ unsigned int poll_interval; /* msec */ -+ unsigned int poll_interval_max; /* msec */ -+ unsigned int poll_interval_min; /* msec */ -+ -+ struct input_dev *input; -+ -+/* private: */ -+ struct delayed_work work; -+ -+ bool devres_managed; -+}; -+ -+struct input_polled_dev *input_allocate_polled_device(void); -+struct input_polled_dev *devm_input_allocate_polled_device(struct device *dev); -+void input_free_polled_device(struct input_polled_dev *dev); -+int input_register_polled_device(struct input_polled_dev *dev); -+void input_unregister_polled_device(struct input_polled_dev *dev); -+ -+#endif diff -rupN linux.orig/include/linux/mfd/rk808.h linux/include/linux/mfd/rk808.h --- linux.orig/include/linux/mfd/rk808.h 2023-09-12 12:02:59.205653098 +0000 +++ linux/include/linux/mfd/rk808.h 2023-09-12 12:03:27.490291628 +0000 From d1dedba69c6c85ff2715743dce866ab2a77de2ec Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sat, 4 Nov 2023 16:49:18 +0000 Subject: [PATCH 051/112] Deprecate CW2015 charger on RK3566 builds, add standby as a suspend option. --- packages/jelos/sources/scripts/suspendmode | 30 ++++++++++++++++++- packages/ui/emulationstation/package.mk | 2 +- .../devices/RK3566/linux/linux.aarch64.conf | 2 +- projects/Rockchip/packages/linux/package.mk | 2 +- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/packages/jelos/sources/scripts/suspendmode b/packages/jelos/sources/scripts/suspendmode index 37b904000..dfe6f52e2 100755 --- a/packages/jelos/sources/scripts/suspendmode +++ b/packages/jelos/sources/scripts/suspendmode @@ -1,7 +1,7 @@ #!/bin/bash . /etc/profile -REQUESTED_MODE=${1} +REQUESTED_MODE="${*}" SUSPEND_MODE=$(get_setting system.suspendmode) if [ ! "${REQUESTED_MODE}" = "${SUSPEND_MODE}" ] @@ -15,6 +15,34 @@ EOF AllowSuspend=no EOF ;; + freeze) + cat <>/storage/.config/sleep.conf.d/sleep.conf + AllowSuspend=yes + SuspendState=freeze standby mem +EOF + ;; + standby) + cat <>/storage/.config/sleep.conf.d/sleep.conf + AllowSuspend=yes + SuspendState=standby mem freeze +EOF + ;; + mem) + cat <>/storage/.config/sleep.conf.d/sleep.conf + AllowSuspend=yes + SuspendState=mem standby freeze +EOF + ;; + default) + del_setting system.suspendmode + if [ -e "/usr/lib/autostart/quirks/platforms/${HW_DEVICE}/030-suspend_mode" ] + then + "/usr/lib/autostart/quirks/devices/${QUIRK_DEVICE}/030-suspend_mode" + elif [ -e "/usr/lib/autostart/quirks/devices/${QUIRK_DEVICE}/030-suspend_mode" ] + then + "/usr/lib/autostart/quirks/platforms/${HW_DEVICE}/030-suspend_mode" + fi + ;; *) cat <>/storage/.config/sleep.conf.d/sleep.conf AllowSuspend=yes diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index ed72cb43e..2c5112f55 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="emulationstation" -PKG_VERSION="86f209752cc7eb47b22e3f00f807cf6d64ebc970" +PKG_VERSION="33bf2d4" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" diff --git a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf index 1aef0a017..e6499c181 100644 --- a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf @@ -2785,7 +2785,7 @@ CONFIG_CHARGER_BQ24735=y # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_CROS_USBPD is not set -CONFIG_BATTERY_CW2015=y +# CONFIG_BATTERY_CW2015 is not set # CONFIG_BATTERY_RK816 is not set CONFIG_BATTERY_RK817=y CONFIG_CHARGER_RK817=y diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 4fdd36a58..475f44e48 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -25,7 +25,7 @@ case ${DEVICE} in ;; RK3566) PKG_URL="${PKG_SITE}/rk356x-kernel.git" - PKG_VERSION="9d98ce7b4" + PKG_VERSION="a52a02798" GET_HANDLER_SUPPORT="git" PKG_GIT_CLONE_BRANCH="main" ;; From 2b5c166a2a65d8b08dc58a6ac3b385b875e95791 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sat, 4 Nov 2023 17:52:44 +0000 Subject: [PATCH 052/112] Improve how we fetch and configure sleep modes. --- packages/ui/emulationstation/package.mk | 2 +- projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index 2c5112f55..e9fced718 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="emulationstation" -PKG_VERSION="33bf2d4" +PKG_VERSION="2aed74a" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" diff --git a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf index e6499c181..8b53d359d 100644 --- a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf @@ -456,13 +456,13 @@ CONFIG_WAKELOCK=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set -# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM_WAKELOCKS=y CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_SLEEP_DEBUG=y -# CONFIG_DPM_WATCHDOG is not set +CONFIG_DPM_WATCHDOG=y CONFIG_PM_CLK=y CONFIG_PM_GENERIC_DOMAINS=y CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y From 633e1b12fbc43545b15f0565a87bf2ccdc58eb17 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sat, 4 Nov 2023 17:55:08 +0000 Subject: [PATCH 053/112] Enable rockchip suspend on RK3566. --- projects/Rockchip/packages/linux/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 475f44e48..71a81d01c 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -25,7 +25,7 @@ case ${DEVICE} in ;; RK3566) PKG_URL="${PKG_SITE}/rk356x-kernel.git" - PKG_VERSION="a52a02798" + PKG_VERSION="7aac6327c" GET_HANDLER_SUPPORT="git" PKG_GIT_CLONE_BRANCH="main" ;; From b9de140a77fd6b69b258ae793a30825ae5c5df3b Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sat, 4 Nov 2023 18:00:11 +0000 Subject: [PATCH 054/112] Fixes a duplicate variable name hidden behind an ifdef. --- packages/ui/emulationstation/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index e9fced718..b4c98c3cc 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="emulationstation" -PKG_VERSION="2aed74a" +PKG_VERSION="2359410" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" From ec9256d930a3c745a4fd201006be7a26c47de8f9 Mon Sep 17 00:00:00 2001 From: adamg Date: Sat, 4 Nov 2023 19:54:13 +0000 Subject: [PATCH 055/112] Amlogic/Rockchip: fix missing initramfs when compiling linux pkg --- projects/Amlogic/packages/linux/package.mk | 5 +++++ projects/Rockchip/packages/linux/package.mk | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/projects/Amlogic/packages/linux/package.mk b/projects/Amlogic/packages/linux/package.mk index f137b917c..60962c2f0 100644 --- a/projects/Amlogic/packages/linux/package.mk +++ b/projects/Amlogic/packages/linux/package.mk @@ -114,6 +114,11 @@ makeinstall_host() { } pre_make_target() { + ( cd ${ROOT} + rm -rf ${BUILD}/initramfs + rm -f ${STAMPS_INSTALL}/initramfs/install_target ${STAMPS_INSTALL}/*/install_init + ${SCRIPTS}/install initramfs + ) if [ "${TARGET_ARCH}" = "x86_64" ]; then # copy some extra firmware to linux tree mkdir -p ${PKG_BUILD}/external-firmware diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 71a81d01c..07988b851 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -132,6 +132,11 @@ makeinstall_host() { } pre_make_target() { + ( cd ${ROOT} + rm -rf ${BUILD}/initramfs + rm -f ${STAMPS_INSTALL}/initramfs/install_target ${STAMPS_INSTALL}/*/install_init + ${SCRIPTS}/install initramfs + ) if [ "${TARGET_ARCH}" = "x86_64" ]; then # copy some extra firmware to linux tree mkdir -p ${PKG_BUILD}/external-firmware From 518387ed947cb07403181df479f3b399f3e2edb0 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sat, 4 Nov 2023 22:16:38 +0000 Subject: [PATCH 056/112] Kernel 6.5.10. --- packages/kernel/linux/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kernel/linux/package.mk b/packages/kernel/linux/package.mk index be5200726..0e60dbc8b 100644 --- a/packages/kernel/linux/package.mk +++ b/packages/kernel/linux/package.mk @@ -4,7 +4,7 @@ PKG_NAME="linux" PKG_LICENSE="GPL" -PKG_VERSION="6.5.9" +PKG_VERSION="6.5.10" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" From c422e792a3824f46df737c583fe1f4e3b4e79d0e Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sat, 4 Nov 2023 19:54:44 -0400 Subject: [PATCH 057/112] Add Wiki Path Added wiki path to each system entry in prep for automating documentation links to the wiki Updated some theme values to align with naming conventions of other distros --- config/emulators/3do.conf | 1 + config/emulators/3ds.conf | 3 ++- config/emulators/amiga.conf | 1 + config/emulators/amigacd32.conf | 1 + config/emulators/amstradcpc.conf | 3 ++- config/emulators/arcade.conf | 1 + config/emulators/arduboy.conf | 1 + config/emulators/atari2600.conf | 3 ++- config/emulators/atari5200.conf | 3 ++- config/emulators/atari7800.conf | 3 ++- config/emulators/atari800.conf | 1 + config/emulators/atarijaguar.conf | 3 ++- config/emulators/atarilynx.conf | 3 ++- config/emulators/atarist.conf | 1 + config/emulators/atomiswave.conf | 1 + config/emulators/c128.conf | 3 ++- config/emulators/c16.conf | 3 ++- config/emulators/c64.conf | 3 ++- config/emulators/channelf.conf | 1 + config/emulators/colecovision.conf | 1 + config/emulators/cps1.conf | 3 ++- config/emulators/cps2.conf | 3 ++- config/emulators/cps3.conf | 3 ++- config/emulators/daphne.conf | 1 + config/emulators/doom.conf | 1 + config/emulators/dreamcast.conf | 1 + config/emulators/easyrpg.conf | 1 + config/emulators/famicom.conf | 1 + config/emulators/fbn.conf | 4 +++- config/emulators/fds.conf | 1 + config/emulators/gameandwatch.conf | 1 + config/emulators/gamecube.conf | 1 + config/emulators/gamegear.conf | 1 + config/emulators/gb.conf | 1 + config/emulators/gba.conf | 1 + config/emulators/gbah.conf | 1 + config/emulators/gbc.conf | 1 + config/emulators/gbch.conf | 1 + config/emulators/gbh.conf | 1 + config/emulators/genesis.conf | 1 + config/emulators/genh.conf | 1 + config/emulators/ggh.conf | 1 + config/emulators/idtech.conf | 1 + config/emulators/imageviewer.conf | 3 ++- config/emulators/intellivision.conf | 1 + config/emulators/j2me.conf | 1 + config/emulators/macintosh.conf | 1 + config/emulators/mame.conf | 3 ++- config/emulators/mastersystem.conf | 1 + config/emulators/megacd.conf | 1 + config/emulators/megadrive-japan.conf | 3 ++- config/emulators/megadrive.conf | 1 + config/emulators/megaduck.conf | 1 + config/emulators/moonlight.conf | 1 + config/emulators/mplayer.conf | 1 + config/emulators/msx.conf | 1 + config/emulators/msx2.conf | 1 + config/emulators/music.conf | 1 + config/emulators/n64.conf | 1 + config/emulators/naomi.conf | 1 + config/emulators/nds.conf | 1 + config/emulators/neocd.conf | 1 + config/emulators/neogeo.conf | 1 + config/emulators/nes.conf | 1 + config/emulators/nesh.conf | 1 + config/emulators/ngp.conf | 1 + config/emulators/ngpc.conf | 1 + config/emulators/odyssey2.conf | 1 + config/emulators/openbor.conf | 1 + config/emulators/pc-8800.conf | 1 + config/emulators/pc-9800.conf | 1 + config/emulators/pc.conf | 5 +++-- config/emulators/pcengine.conf | 1 + config/emulators/pcenginecd.conf | 3 ++- config/emulators/pcfx.conf | 1 + config/emulators/pet.conf | 1 + config/emulators/pico-8.conf | 1 + config/emulators/pokemini.conf | 1 + config/emulators/ports.conf | 1 + config/emulators/ps2.conf | 1 + config/emulators/ps3.conf | 1 + config/emulators/psp.conf | 1 + config/emulators/pspminis.conf | 1 + config/emulators/psvita.conf | 1 + config/emulators/psx.conf | 1 + config/emulators/satellaview.conf | 1 + config/emulators/saturn.conf | 1 + config/emulators/scummvm.conf | 1 + config/emulators/sega32x.conf | 1 + config/emulators/segacd.conf | 1 + config/emulators/sfc.conf | 1 + config/emulators/sg-1000.conf | 1 + config/emulators/snes.conf | 1 + config/emulators/snesh.conf | 1 + config/emulators/snesmsu1.conf | 1 + config/emulators/st-v.conf | 3 ++- config/emulators/sufami.conf | 1 + config/emulators/supergrafx.conf | 1 + config/emulators/supervision.conf | 1 + config/emulators/switch.conf | 1 + config/emulators/tg16.conf | 1 + config/emulators/tg16cd.conf | 3 ++- config/emulators/tic-80.conf | 1 + config/emulators/tools.conf | 1 + config/emulators/uzebox.conf | 1 + config/emulators/vectrex.conf | 1 + config/emulators/vic20.conf | 1 + config/emulators/videopac.conf | 1 + config/emulators/virtualboy.conf | 1 + config/emulators/wii.conf | 1 + config/emulators/wiiu.conf | 1 + config/emulators/wonderswan.conf | 1 + config/emulators/wonderswancolor.conf | 1 + config/emulators/x1.conf | 1 + config/emulators/x68000.conf | 1 + config/emulators/xbox.conf | 1 + config/emulators/zmachine.conf | 1 + config/emulators/zx81.conf | 1 + config/emulators/zxspectrum.conf | 1 + 119 files changed, 142 insertions(+), 22 deletions(-) diff --git a/config/emulators/3do.conf b/config/emulators/3do.conf index 875410505..64c0117d6 100644 --- a/config/emulators/3do.conf +++ b/config/emulators/3do.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .bin .chd .cue" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3do" SYSTEM_THEME="3do" +SYSTEM_WIKI_PATH="3do"" \ No newline at end of file diff --git a/config/emulators/3ds.conf b/config/emulators/3ds.conf index 8e4ac79e1..1c115e784 100644 --- a/config/emulators/3ds.conf +++ b/config/emulators/3ds.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/3ds" SYSTEM_EXTENSION=".3ds .3dsx .elf .axf .cci .cxi .app" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3ds" -SYSTEM_THEME="3ds" +SYSTEM_THEME="n3ds" +SYSTEM_WIKI_PATH="3ds"" diff --git a/config/emulators/amiga.conf b/config/emulators/amiga.conf index 66822e9d7..5c5fae336 100644 --- a/config/emulators/amiga.conf +++ b/config/emulators/amiga.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="amiga" SYSTEM_THEME="amiga" +SYSTEM_WIKI_PATH="amiga" diff --git a/config/emulators/amigacd32.conf b/config/emulators/amigacd32.conf index 416d125ac..01d299d65 100644 --- a/config/emulators/amigacd32.conf +++ b/config/emulators/amigacd32.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .cue .lha .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="amigacd32" SYSTEM_THEME="amigacd32" +SYSTEM_WIKI_PATH="amigacd32" diff --git a/config/emulators/amstradcpc.conf b/config/emulators/amstradcpc.conf index 07c164fc7..9f91f41d5 100644 --- a/config/emulators/amstradcpc.conf +++ b/config/emulators/amstradcpc.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="amstradcpc" -SYSTEM_FULLNAME="CPC" +SYSTEM_FULLNAME="Amstrad CPC" SYSTEM_MANUFACTURER="Amstrad" SYSTEM_RELEASE="1984" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="amstradcpc" SYSTEM_THEME="amstradcpc" +SYSTEM_WIKI_PATH="amstradcpc" diff --git a/config/emulators/arcade.conf b/config/emulators/arcade.conf index 9e92fdb32..4d9dd7550 100644 --- a/config/emulators/arcade.conf +++ b/config/emulators/arcade.conf @@ -1,6 +1,7 @@ SYSTEM_NAME="arcade" SYSTEM_FULLNAME="Arcade" SYSTEM_MANUFACTURER="Arcade" +SYSTEM_RELEASE="0000" SYSTEM_HARDWARE="arcade" SYSTEM_PATH="/storage/roms/arcade" SYSTEM_EXTENSION=".zip .7z" diff --git a/config/emulators/arduboy.conf b/config/emulators/arduboy.conf index c05348232..83f0b8874 100644 --- a/config/emulators/arduboy.conf +++ b/config/emulators/arduboy.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".hex" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arduboy" SYSTEM_THEME="arduboy" +SYSTEM_WIKI_PATH="arduboy" diff --git a/config/emulators/atari2600.conf b/config/emulators/atari2600.conf index 017bac307..2583145bd 100644 --- a/config/emulators/atari2600.conf +++ b/config/emulators/atari2600.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atari2600" -SYSTEM_FULLNAME="2600" +SYSTEM_FULLNAME="Atari 2600" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1977" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".a26 .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari2600" SYSTEM_THEME="atari2600" +SYSTEM_WIKI_PATH="atari2600" diff --git a/config/emulators/atari5200.conf b/config/emulators/atari5200.conf index 65d9ea5aa..45ec094e3 100644 --- a/config/emulators/atari5200.conf +++ b/config/emulators/atari5200.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atari5200" -SYSTEM_FULLNAME="5200" +SYSTEM_FULLNAME="Atari 5200" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1982" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari5200" SYSTEM_THEME="atari5200" +SYSTEM_WIKI_PATH="atari5200" diff --git a/config/emulators/atari7800.conf b/config/emulators/atari7800.conf index 17fe1edf3..5d735a7ef 100644 --- a/config/emulators/atari7800.conf +++ b/config/emulators/atari7800.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atari7800" -SYSTEM_FULLNAME="7800" +SYSTEM_FULLNAME="Atari 7800" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1986" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".a78 .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari7800" SYSTEM_THEME="atari7800" +SYSTEM_WIKI_PATH="atari7800" diff --git a/config/emulators/atari800.conf b/config/emulators/atari800.conf index 6838c6ca6..97af76f24 100644 --- a/config/emulators/atari800.conf +++ b/config/emulators/atari800.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari800" SYSTEM_THEME="atari800" +SYSTEM_WIKI_PATH="atari800" diff --git a/config/emulators/atarijaguar.conf b/config/emulators/atarijaguar.conf index e78f712bf..91c1567ce 100644 --- a/config/emulators/atarijaguar.conf +++ b/config/emulators/atarijaguar.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atarijaguar" -SYSTEM_FULLNAME="Jaguar" +SYSTEM_FULLNAME="Atari Jaguar" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1993" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".j64 .jag .rom .abs .cof .bin .prg" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atarijaguar" SYSTEM_THEME="atarijaguar" +SYSTEM_WIKI_PATH="atarijaguar" diff --git a/config/emulators/atarilynx.conf b/config/emulators/atarilynx.conf index b4d149326..713636932 100644 --- a/config/emulators/atarilynx.conf +++ b/config/emulators/atarilynx.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atarilynx" -SYSTEM_FULLNAME="Lynx" +SYSTEM_FULLNAME="Atari Lynx" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1989" SYSTEM_HARDWARE="portable" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".lnx .o .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atarilynx" SYSTEM_THEME="atarilynx" +SYSTEM_WIKI_PATH="atarilynx" diff --git a/config/emulators/atarist.conf b/config/emulators/atarist.conf index 1eab54895..2d004681a 100644 --- a/config/emulators/atarist.conf +++ b/config/emulators/atarist.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".st .msa .stx .dim .ipf .m3u .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atarist" SYSTEM_THEME="atarist" +SYSTEM_WIKI_PATH="atarist" diff --git a/config/emulators/atomiswave.conf b/config/emulators/atomiswave.conf index f8ae2cf28..4b72fb219 100644 --- a/config/emulators/atomiswave.conf +++ b/config/emulators/atomiswave.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".lst .bin .dat .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atomiswave arcade" SYSTEM_THEME="atomiswave" +SYSTEM_WIKI_PATH="atomiswave" diff --git a/config/emulators/c128.conf b/config/emulators/c128.conf index 7c2997e89..110f42a22 100644 --- a/config/emulators/c128.conf +++ b/config/emulators/c128.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="c128" -SYSTEM_FULLNAME="C128" +SYSTEM_FULLNAME="Commodore 128" SYSTEM_MANUFACTURER="Commodore" SYSTEM_RELEASE="1985" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .c SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="c128" SYSTEM_THEME="c128" +SYSTEM_WIKI_PATH="c128" diff --git a/config/emulators/c16.conf b/config/emulators/c16.conf index 3535e0a0c..d6eabb72f 100644 --- a/config/emulators/c16.conf +++ b/config/emulators/c16.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="c16" -SYSTEM_FULLNAME="C16" +SYSTEM_FULLNAME="Commodore 16" SYSTEM_MANUFACTURER="Commodore" SYSTEM_RELEASE="1984" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .c SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="c16" SYSTEM_THEME="c16" +SYSTEM_WIKI_PATH="c16" diff --git a/config/emulators/c64.conf b/config/emulators/c64.conf index 14eb64a8e..6c56af47e 100644 --- a/config/emulators/c64.conf +++ b/config/emulators/c64.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="c64" -SYSTEM_FULLNAME="C64" +SYSTEM_FULLNAME="Commodore 64" SYSTEM_MANUFACTURER="Commodore" SYSTEM_RELEASE="1982" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .c SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="c64" SYSTEM_THEME="c64" +SYSTEM_WIKI_PATH="c64" diff --git a/config/emulators/channelf.conf b/config/emulators/channelf.conf index 735b3c358..43716e42d 100644 --- a/config/emulators/channelf.conf +++ b/config/emulators/channelf.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .chf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="channelf" SYSTEM_THEME="channelf" +SYSTEM_WIKI_PATH="channelf" diff --git a/config/emulators/colecovision.conf b/config/emulators/colecovision.conf index d586a3eb6..4f227e39d 100644 --- a/config/emulators/colecovision.conf +++ b/config/emulators/colecovision.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .col .rom .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="colecovision" SYSTEM_THEME="colecovision" +SYSTEM_WIKI_PATH="colecovision" diff --git a/config/emulators/cps1.conf b/config/emulators/cps1.conf index 730a33a66..b7717f9f5 100644 --- a/config/emulators/cps1.conf +++ b/config/emulators/cps1.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps1" -SYSTEM_FULLNAME="PlaySystem 1" +SYSTEM_FULLNAME="CPS I" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1988" SYSTEM_HARDWARE="arcade" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="cps1" +SYSTEM_WIKI_PATH="cps1" diff --git a/config/emulators/cps2.conf b/config/emulators/cps2.conf index afe68052a..fe1cd44bb 100644 --- a/config/emulators/cps2.conf +++ b/config/emulators/cps2.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps2" -SYSTEM_FULLNAME="PlaySystem 2" +SYSTEM_FULLNAME="CPS II" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1993" SYSTEM_HARDWARE="arcade" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="cps2" +SYSTEM_WIKI_PATH="cps2" diff --git a/config/emulators/cps3.conf b/config/emulators/cps3.conf index 8330db0bb..d38377375 100644 --- a/config/emulators/cps3.conf +++ b/config/emulators/cps3.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps3" -SYSTEM_FULLNAME="PlaySystem 3" +SYSTEM_FULLNAME="CPS III" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1996" SYSTEM_HARDWARE="arcade" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="cps3" +SYSTEM_WIKI_PATH="cps3" diff --git a/config/emulators/daphne.conf b/config/emulators/daphne.conf index c454f0a7b..09b9fb2c7 100644 --- a/config/emulators/daphne.conf +++ b/config/emulators/daphne.conf @@ -7,3 +7,4 @@ SYSTEM_EXTENSION=".daphne .singe" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="daphne arcade" SYSTEM_THEME="daphne" +SYSTEM_WIKI_PATH="daphne" diff --git a/config/emulators/doom.conf b/config/emulators/doom.conf index fa665ca82..3be397a48 100644 --- a/config/emulators/doom.conf +++ b/config/emulators/doom.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".doom" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="doom" SYSTEM_THEME="doom" +SYSTEM_WIKI_PATH="doom" diff --git a/config/emulators/dreamcast.conf b/config/emulators/dreamcast.conf index 6d0da75d8..4223c0cb9 100644 --- a/config/emulators/dreamcast.conf +++ b/config/emulators/dreamcast.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".cdi .gdi .chd .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="dreamcast" SYSTEM_THEME="dreamcast" +SYSTEM_WIKI_PATH="dreamcast" diff --git a/config/emulators/easyrpg.conf b/config/emulators/easyrpg.conf index 95d3281c2..cabebb406 100644 --- a/config/emulators/easyrpg.conf +++ b/config/emulators/easyrpg.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .easyrpg .ldb" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="easyrpg" SYSTEM_THEME="easyrpg" +SYSTEM_WIKI_PATH="easyrpg" diff --git a/config/emulators/famicom.conf b/config/emulators/famicom.conf index 949d51d0b..05206b0d3 100644 --- a/config/emulators/famicom.conf +++ b/config/emulators/famicom.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nes .unif .unf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nes" SYSTEM_THEME="famicom" +SYSTEM_WIKI_PATH="nes" diff --git a/config/emulators/fbn.conf b/config/emulators/fbn.conf index 10da0b6ef..b724cc873 100644 --- a/config/emulators/fbn.conf +++ b/config/emulators/fbn.conf @@ -1,9 +1,11 @@ SYSTEM_NAME="fbn" SYSTEM_FULLNAME="Final Burn Neo" SYSTEM_MANUFACTURER="Arcade" +SYSTEM_RELEASE="2002" SYSTEM_HARDWARE="arcade" SYSTEM_PATH="/storage/roms/fbneo" SYSTEM_EXTENSION=".7z .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" -SYSTEM_THEME="fbn" +SYSTEM_THEME="fbneo" +SYSTEM_WIKI_PATH="fbn" diff --git a/config/emulators/fds.conf b/config/emulators/fds.conf index 89df348bd..ebba08cb6 100644 --- a/config/emulators/fds.conf +++ b/config/emulators/fds.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".fds .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="fds" SYSTEM_THEME="fds" +SYSTEM_WIKI_PATH="fds" diff --git a/config/emulators/gameandwatch.conf b/config/emulators/gameandwatch.conf index b6f337bfe..fbc5e1b54 100644 --- a/config/emulators/gameandwatch.conf +++ b/config/emulators/gameandwatch.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".mgw .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gameandwatch" SYSTEM_THEME="gameandwatch" +SYSTEM_WIKI_PATH="gameandwatch" diff --git a/config/emulators/gamecube.conf b/config/emulators/gamecube.conf index a8910bf8f..aff6ae280 100644 --- a/config/emulators/gamecube.conf +++ b/config/emulators/gamecube.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gcm .iso .gcz .ciso .wbfs .rvz .dol" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gc" SYSTEM_THEME="gc" +SYSTEM_WIKI_PATH="gamecube" diff --git a/config/emulators/gamegear.conf b/config/emulators/gamegear.conf index 1459f1d21..9284d6965 100644 --- a/config/emulators/gamegear.conf +++ b/config/emulators/gamegear.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gg .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gamegear" SYSTEM_THEME="gamegear" +SYSTEM_WIKI_PATH="gamegear" diff --git a/config/emulators/gb.conf b/config/emulators/gb.conf index 2261d913d..0fb64e7e3 100644 --- a/config/emulators/gb.conf +++ b/config/emulators/gb.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .gbc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gb" SYSTEM_THEME="gb" +SYSTEM_WIKI_PATH="gb" diff --git a/config/emulators/gba.conf b/config/emulators/gba.conf index 83d6612c4..534a1aeeb 100644 --- a/config/emulators/gba.conf +++ b/config/emulators/gba.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gba .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gba" SYSTEM_THEME="gba" +SYSTEM_WIKI_PATH="gba" diff --git a/config/emulators/gbah.conf b/config/emulators/gbah.conf index 3ee31a139..2ca2e0e06 100644 --- a/config/emulators/gbah.conf +++ b/config/emulators/gbah.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gba .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gba" SYSTEM_THEME="gbah" +SYSTEM_WIKI_PATH="gba" diff --git a/config/emulators/gbc.conf b/config/emulators/gbc.conf index 0c480881c..4e8f17082 100644 --- a/config/emulators/gbc.conf +++ b/config/emulators/gbc.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .gbc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gbc" SYSTEM_THEME="gbc" +SYSTEM_WIKI_PATH="gbc" diff --git a/config/emulators/gbch.conf b/config/emulators/gbch.conf index 0b09266ce..4ec0b307c 100644 --- a/config/emulators/gbch.conf +++ b/config/emulators/gbch.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .gbc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gbc" SYSTEM_THEME="gbch" +SYSTEM_WIKI_PATH="gbc" diff --git a/config/emulators/gbh.conf b/config/emulators/gbh.conf index 01cf64128..fbfee2c47 100644 --- a/config/emulators/gbh.conf +++ b/config/emulators/gbh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gb" SYSTEM_THEME="gbh" +SYSTEM_WIKI_PATH="gb" diff --git a/config/emulators/genesis.conf b/config/emulators/genesis.conf index bedb8f288..ef831bcbe 100644 --- a/config/emulators/genesis.conf +++ b/config/emulators/genesis.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="genesis" SYSTEM_THEME="genesis" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/genh.conf b/config/emulators/genh.conf index be76f7670..3748a7b0e 100644 --- a/config/emulators/genh.conf +++ b/config/emulators/genh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="genesis" SYSTEM_THEME="genh" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/ggh.conf b/config/emulators/ggh.conf index c7d85164e..f710de0ad 100644 --- a/config/emulators/ggh.conf +++ b/config/emulators/ggh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gg .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gamegear" SYSTEM_THEME="ggh" +SYSTEM_WIKI_PATH="gamegear" diff --git a/config/emulators/idtech.conf b/config/emulators/idtech.conf index d156a352a..5c572e1f8 100644 --- a/config/emulators/idtech.conf +++ b/config/emulators/idtech.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="idtech" SYSTEM_THEME="idtech" +SYSTEM_WIKI_PATH="idtech" diff --git a/config/emulators/imageviewer.conf b/config/emulators/imageviewer.conf index 5c0dd9516..7befe2fee 100644 --- a/config/emulators/imageviewer.conf +++ b/config/emulators/imageviewer.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/screenshots" SYSTEM_EXTENSION=".jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi" SYSTEM_COMMAND="/usr/bin/true" SYSTEM_PLATFORM="imageviewer" -SYSTEM_THEME="imageviewer" +SYSTEM_THEME="screenshots" +SYSTEM_WIKI_PATH="screenshots" diff --git a/config/emulators/intellivision.conf b/config/emulators/intellivision.conf index 533b10a08..280e05151 100644 --- a/config/emulators/intellivision.conf +++ b/config/emulators/intellivision.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".int .bin .rom .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="intellivision" SYSTEM_THEME="intellivision" +SYSTEM_WIKI_PATH="intellivision" diff --git a/config/emulators/j2me.conf b/config/emulators/j2me.conf index d5bcb3096..b724df0d9 100644 --- a/config/emulators/j2me.conf +++ b/config/emulators/j2me.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".jar" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="j2me" SYSTEM_THEME="j2me" +SYSTEM_WIKI_PATH="j2me" diff --git a/config/emulators/macintosh.conf b/config/emulators/macintosh.conf index c21680f8f..0fdc0dc01 100644 --- a/config/emulators/macintosh.conf +++ b/config/emulators/macintosh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .img .hfv .cmd .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="macintosh" SYSTEM_THEME="macintosh" +SYSTEM_WIKI_PATH="macintosh" diff --git a/config/emulators/mame.conf b/config/emulators/mame.conf index 1eda9692f..d0bc8c6d7 100644 --- a/config/emulators/mame.conf +++ b/config/emulators/mame.conf @@ -1,10 +1,11 @@ SYSTEM_NAME="mame" SYSTEM_FULLNAME="MAME" SYSTEM_MANUFACTURER="Arcade" +SYSTEM_RELEASE="1997" SYSTEM_HARDWARE="arcade" -SYSTEM_RELEASE="1948" SYSTEM_PATH="/storage/roms/mame" SYSTEM_EXTENSION=".7z .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="mame" +SYSTEM_WIKI_PATH="mame" diff --git a/config/emulators/mastersystem.conf b/config/emulators/mastersystem.conf index 105f8c9f2..7d8c76e8a 100644 --- a/config/emulators/mastersystem.conf +++ b/config/emulators/mastersystem.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .sms .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="mastersystem" SYSTEM_THEME="mastersystem" +SYSTEM_WIKI_PATH="mastersystem" diff --git a/config/emulators/megacd.conf b/config/emulators/megacd.conf index 0722b48fe..0b75f2a6a 100644 --- a/config/emulators/megacd.conf +++ b/config/emulators/megacd.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".chd .cue .iso .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="segacd" SYSTEM_THEME="megacd" +SYSTEM_WIKI_PATH="segacd" diff --git a/config/emulators/megadrive-japan.conf b/config/emulators/megadrive-japan.conf index 6e1926ba2..8a9e64b67 100644 --- a/config/emulators/megadrive-japan.conf +++ b/config/emulators/megadrive-japan.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/megadrive-japan" SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="megadrive" -SYSTEM_THEME="megadrive-japan" +SYSTEM_THEME="megadrivejp" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/megadrive.conf b/config/emulators/megadrive.conf index 20e623802..1eee05e91 100644 --- a/config/emulators/megadrive.conf +++ b/config/emulators/megadrive.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="megadrive" SYSTEM_THEME="megadrive" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/megaduck.conf b/config/emulators/megaduck.conf index e580538ac..bcdba1e7d 100644 --- a/config/emulators/megaduck.conf +++ b/config/emulators/megaduck.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="megaduck" SYSTEM_THEME="megaduck" +SYSTEM_WIKI_PATH="megaduck" diff --git a/config/emulators/moonlight.conf b/config/emulators/moonlight.conf index 07220d022..d1e8d3b2b 100644 --- a/config/emulators/moonlight.conf +++ b/config/emulators/moonlight.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/bin/sh %ROM%" SYSTEM_PLATFORM="moonlight" SYSTEM_THEME="moonlight" +SYSTEM_WIKI_PATH="moonlight" diff --git a/config/emulators/mplayer.conf b/config/emulators/mplayer.conf index 0dd0637fc..e38dfa339 100644 --- a/config/emulators/mplayer.conf +++ b/config/emulators/mplayer.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".mp4 .mkv .avi .mov .wmv .m3u .mpg .ytb .twi .sh .mp3 .aac .mk SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="mplayer" SYSTEM_THEME="mplayer" +SYSTEM_WIKI_PATH="mplayer" diff --git a/config/emulators/msx.conf b/config/emulators/msx.conf index 6af15d83d..7176bd9ef 100644 --- a/config/emulators/msx.conf +++ b/config/emulators/msx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .mx1 .mx2 .rom .zip .7z .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="msx" SYSTEM_THEME="msx" +SYSTEM_WIKI_PATH="msx" diff --git a/config/emulators/msx2.conf b/config/emulators/msx2.conf index bbf27b977..4f7166a34 100644 --- a/config/emulators/msx2.conf +++ b/config/emulators/msx2.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .mx1 .mx2 .rom .zip .7z .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="msx" SYSTEM_THEME="msx2" +SYSTEM_WIKI_PATH="msx" diff --git a/config/emulators/music.conf b/config/emulators/music.conf index 7768e4fb2..6629fd953 100644 --- a/config/emulators/music.conf +++ b/config/emulators/music.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".m3u .sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="music" SYSTEM_THEME="music" +SYSTEM_WIKI_PATH="music" diff --git a/config/emulators/n64.conf b/config/emulators/n64.conf index 6afd78fd2..c5cff6120 100644 --- a/config/emulators/n64.conf +++ b/config/emulators/n64.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".z64 .n64 .v64 .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="n64" SYSTEM_THEME="n64" +SYSTEM_WIKI_PATH="n64" diff --git a/config/emulators/naomi.conf b/config/emulators/naomi.conf index cddd757e5..4743bb624 100644 --- a/config/emulators/naomi.conf +++ b/config/emulators/naomi.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".lst .bin .dat .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="naomi arcade" SYSTEM_THEME="naomi" +SYSTEM_WIKI_PATH="naomi" diff --git a/config/emulators/nds.conf b/config/emulators/nds.conf index e3b8a8596..df12f40b1 100644 --- a/config/emulators/nds.conf +++ b/config/emulators/nds.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nds .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nds" SYSTEM_THEME="nds" +SYSTEM_WIKI_PATH="nds" diff --git a/config/emulators/neocd.conf b/config/emulators/neocd.conf index bddf919ab..29a28240a 100644 --- a/config/emulators/neocd.conf +++ b/config/emulators/neocd.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".cue .iso .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="neogeocd" SYSTEM_THEME="neogeocd" +SYSTEM_WIKI_PATH="neogeocd" diff --git a/config/emulators/neogeo.conf b/config/emulators/neogeo.conf index 4aeaef156..5bad25ae4 100644 --- a/config/emulators/neogeo.conf +++ b/config/emulators/neogeo.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".7z .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="neogeo" SYSTEM_THEME="neogeo" +SYSTEM_WIKI_PATH="neogeo" diff --git a/config/emulators/nes.conf b/config/emulators/nes.conf index f5a5d2843..8196c29de 100644 --- a/config/emulators/nes.conf +++ b/config/emulators/nes.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nes .unif .unf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nes" SYSTEM_THEME="nes" +SYSTEM_WIKI_PATH="nes" diff --git a/config/emulators/nesh.conf b/config/emulators/nesh.conf index 77556dcd7..a2109b706 100644 --- a/config/emulators/nesh.conf +++ b/config/emulators/nesh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nes .unif .unf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nes" SYSTEM_THEME="nesh" +SYSTEM_WIKI_PATH="nes" diff --git a/config/emulators/ngp.conf b/config/emulators/ngp.conf index b98e8a46a..cd1d54614 100644 --- a/config/emulators/ngp.conf +++ b/config/emulators/ngp.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ngc .ngp .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ngp" SYSTEM_THEME="ngp" +SYSTEM_WIKI_PATH="ngp" diff --git a/config/emulators/ngpc.conf b/config/emulators/ngpc.conf index 545549f19..06c949561 100644 --- a/config/emulators/ngpc.conf +++ b/config/emulators/ngpc.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ngc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ngpc" SYSTEM_THEME="ngpc" +SYSTEM_WIKI_PATH="ngp" diff --git a/config/emulators/odyssey2.conf b/config/emulators/odyssey2.conf index 650b7efbf..1c0843c5d 100644 --- a/config/emulators/odyssey2.conf +++ b/config/emulators/odyssey2.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="odyssey2" SYSTEM_THEME="odyssey2" +SYSTEM_WIKI_PATH="odyssey2" diff --git a/config/emulators/openbor.conf b/config/emulators/openbor.conf index 7b44bf741..7ade02353 100644 --- a/config/emulators/openbor.conf +++ b/config/emulators/openbor.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pak" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="openbor" SYSTEM_THEME="openbor" +SYSTEM_WIKI_PATH="openbor" diff --git a/config/emulators/pc-8800.conf b/config/emulators/pc-8800.conf index cb3cf6d50..6c5bf277e 100644 --- a/config/emulators/pc-8800.conf +++ b/config/emulators/pc-8800.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d88 .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc88" SYSTEM_THEME="pc88" +SYSTEM_WIKI_PATH="pc88" diff --git a/config/emulators/pc-9800.conf b/config/emulators/pc-9800.conf index ff9acb757..e262ce98c 100644 --- a/config/emulators/pc-9800.conf +++ b/config/emulators/pc-9800.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d98 .zip .fdi .fdd .2hd .tfd .d88d .hdm .xdf .dup .hdi .thd . SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc98" SYSTEM_THEME="pc98" +SYSTEM_WIKI_PATH="pc98" diff --git a/config/emulators/pc.conf b/config/emulators/pc.conf index d72115cca..c19426c9e 100644 --- a/config/emulators/pc.conf +++ b/config/emulators/pc.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="pc" -SYSTEM_FULLNAME="MS-DOS" +SYSTEM_FULLNAME="DOS" SYSTEM_MANUFACTURER="Microsoft" SYSTEM_RELEASE="1981" SYSTEM_HARDWARE="computer" @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/pc" SYSTEM_EXTENSION=".com .bat .exe .dosz" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc" -SYSTEM_THEME="pc" +SYSTEM_THEME="dos" +SYSTEM_WIKI_PATH="dos" diff --git a/config/emulators/pcengine.conf b/config/emulators/pcengine.conf index 13a676e1c..d433f5cca 100644 --- a/config/emulators/pcengine.conf +++ b/config/emulators/pcengine.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pce .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcengine" SYSTEM_THEME="pcengine" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/pcenginecd.conf b/config/emulators/pcenginecd.conf index 5c88c4728..35b6ae93e 100644 --- a/config/emulators/pcenginecd.conf +++ b/config/emulators/pcenginecd.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/pcenginecd" SYSTEM_EXTENSION=".cue .ccd .chd .toc .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcenginecd" -SYSTEM_THEME="pce-cd" +SYSTEM_THEME="pcenginecd" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/pcfx.conf b/config/emulators/pcfx.conf index 5819507da..c19d08806 100644 --- a/config/emulators/pcfx.conf +++ b/config/emulators/pcfx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".chd .cue .ccd .toc" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcfx" SYSTEM_THEME="pcfx" +SYSTEM_WIKI_PATH="pcfx" diff --git a/config/emulators/pet.conf b/config/emulators/pet.conf index 7a671db55..a8964bd83 100644 --- a/config/emulators/pet.conf +++ b/config/emulators/pet.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pet" SYSTEM_THEME="pet" +SYSTEM_WIKI_PATH="pet" diff --git a/config/emulators/pico-8.conf b/config/emulators/pico-8.conf index 3303bc231..aaf67a0fa 100644 --- a/config/emulators/pico-8.conf +++ b/config/emulators/pico-8.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".p8 .png" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pico-8" SYSTEM_THEME="pico-8" +SYSTEM_WIKI_PATH="pico-8" diff --git a/config/emulators/pokemini.conf b/config/emulators/pokemini.conf index 2283d033f..af702fc82 100644 --- a/config/emulators/pokemini.conf +++ b/config/emulators/pokemini.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".min .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pokemini" SYSTEM_THEME="pokemini" +SYSTEM_WIKI_PATH="pokemini" diff --git a/config/emulators/ports.conf b/config/emulators/ports.conf index bf0cd51e4..9521bbee6 100644 --- a/config/emulators/ports.conf +++ b/config/emulators/ports.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc" SYSTEM_THEME="ports" +SYSTEM_WIKI_PATH="ports" diff --git a/config/emulators/ps2.conf b/config/emulators/ps2.conf index 727ea0372..9770e7bfc 100644 --- a/config/emulators/ps2.conf +++ b/config/emulators/ps2.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .mdf .nrg .bin .img .dump .gz .cso .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ps2" SYSTEM_THEME="ps2" +SYSTEM_WIKI_PATH="ps2" diff --git a/config/emulators/ps3.conf b/config/emulators/ps3.conf index 004e9fbb8..ca3716d09 100644 --- a/config/emulators/ps3.conf +++ b/config/emulators/ps3.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ps3 .psn" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ps3" SYSTEM_THEME="ps3" +SYSTEM_WIKI_PATH="ps3" diff --git a/config/emulators/psp.conf b/config/emulators/psp.conf index 0072c2afd..fa2410bc6 100644 --- a/config/emulators/psp.conf +++ b/config/emulators/psp.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .cso .pbp .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psp" SYSTEM_THEME="psp" +SYSTEM_WIKI_PATH="psp" diff --git a/config/emulators/pspminis.conf b/config/emulators/pspminis.conf index 710441107..3524652b0 100644 --- a/config/emulators/pspminis.conf +++ b/config/emulators/pspminis.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .cso .pbp" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psp" SYSTEM_THEME="pspminis" +SYSTEM_WIKI_PATH="psp" diff --git a/config/emulators/psvita.conf b/config/emulators/psvita.conf index fd33ea23a..601718523 100644 --- a/config/emulators/psvita.conf +++ b/config/emulators/psvita.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psvita" SYSTEM_THEME="psvita" +SYSTEM_WIKI_PATH="psvita" diff --git a/config/emulators/psx.conf b/config/emulators/psx.conf index dde86192c..aaadd4cb5 100644 --- a/config/emulators/psx.conf +++ b/config/emulators/psx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psx" SYSTEM_THEME="psx" +SYSTEM_WIKI_PATH="psx" diff --git a/config/emulators/satellaview.conf b/config/emulators/satellaview.conf index 613f14919..cbc5091c1 100644 --- a/config/emulators/satellaview.conf +++ b/config/emulators/satellaview.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .bs .sfc .bsx .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="satellaview" SYSTEM_THEME="satellaview" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/saturn.conf b/config/emulators/saturn.conf index 4227784bb..9fdc0a966 100644 --- a/config/emulators/saturn.conf +++ b/config/emulators/saturn.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".cue .chd .iso" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="saturn" SYSTEM_THEME="saturn" +SYSTEM_WIKI_PATH="saturn" diff --git a/config/emulators/scummvm.conf b/config/emulators/scummvm.conf index 9e9e733f3..d72ee6701 100644 --- a/config/emulators/scummvm.conf +++ b/config/emulators/scummvm.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh .svm .scummvm" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc" SYSTEM_THEME="scummvm" +SYSTEM_WIKI_PATH="scummvm" diff --git a/config/emulators/sega32x.conf b/config/emulators/sega32x.conf index 0b54dbce1..bc2395fc7 100644 --- a/config/emulators/sega32x.conf +++ b/config/emulators/sega32x.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".32x .smd .bin .md .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="sega32x" SYSTEM_THEME="sega32x" +SYSTEM_WIKI_PATH="sega32x" diff --git a/config/emulators/segacd.conf b/config/emulators/segacd.conf index 2f7924841..6fc4bdf9d 100644 --- a/config/emulators/segacd.conf +++ b/config/emulators/segacd.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".chd .cue .iso .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="segacd" SYSTEM_THEME="segacd" +SYSTEM_WIKI_PATH="segacd" diff --git a/config/emulators/sfc.conf b/config/emulators/sfc.conf index 549bcd344..772cd799b 100644 --- a/config/emulators/sfc.conf +++ b/config/emulators/sfc.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snes" SYSTEM_THEME="sfc" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/sg-1000.conf b/config/emulators/sg-1000.conf index 891995d3e..071cdf61c 100644 --- a/config/emulators/sg-1000.conf +++ b/config/emulators/sg-1000.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .sg .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="sg-1000" SYSTEM_THEME="sg-1000" +SYSTEM_WIKI_PATH="sg-1000" diff --git a/config/emulators/snes.conf b/config/emulators/snes.conf index 84c1b00b8..034dbfdc1 100644 --- a/config/emulators/snes.conf +++ b/config/emulators/snes.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snes" SYSTEM_THEME="snes" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/snesh.conf b/config/emulators/snesh.conf index 59b642eb9..a4eda3b62 100644 --- a/config/emulators/snesh.conf +++ b/config/emulators/snesh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snes" SYSTEM_THEME="snesh" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/snesmsu1.conf b/config/emulators/snesmsu1.conf index 3f74cf1be..b4a45ddaf 100644 --- a/config/emulators/snesmsu1.conf +++ b/config/emulators/snesmsu1.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snesmsu1 snes" SYSTEM_THEME="snesmsu1" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/st-v.conf b/config/emulators/st-v.conf index c873608de..1e81726bc 100644 --- a/config/emulators/st-v.conf +++ b/config/emulators/st-v.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/st-v" SYSTEM_EXTENSION=".zip .ZIP" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="st-v" -SYSTEM_THEME="st-v" +SYSTEM_THEME="stv" +SYSTEM_WIKI_PATH="stv" diff --git a/config/emulators/sufami.conf b/config/emulators/sufami.conf index 86e4491f7..3f78b5409 100644 --- a/config/emulators/sufami.conf +++ b/config/emulators/sufami.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".st .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="sufami" SYSTEM_THEME="sufami" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/supergrafx.conf b/config/emulators/supergrafx.conf index 31f9774c8..d5919c454 100644 --- a/config/emulators/supergrafx.conf +++ b/config/emulators/supergrafx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pce .sgx .cue .ccd .chd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="supergrafx" SYSTEM_THEME="supergrafx" +SYSTEM_WIKI_PATH="supergrafx" diff --git a/config/emulators/supervision.conf b/config/emulators/supervision.conf index 0a73c9e40..7dfd14f2c 100644 --- a/config/emulators/supervision.conf +++ b/config/emulators/supervision.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sv .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="supervision" SYSTEM_THEME="supervision" +SYSTEM_WIKI_PATH="supervision" diff --git a/config/emulators/switch.conf b/config/emulators/switch.conf index 2e16b1a04..d6496ab6a 100644 --- a/config/emulators/switch.conf +++ b/config/emulators/switch.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".xci .nsp .nca .nso .nro" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="switch" SYSTEM_THEME="switch" +SYSTEM_WIKI_PATH="switch" diff --git a/config/emulators/tg16.conf b/config/emulators/tg16.conf index 7c3dffeee..a4def1e47 100644 --- a/config/emulators/tg16.conf +++ b/config/emulators/tg16.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pce .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcengine" SYSTEM_THEME="tg16" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/tg16cd.conf b/config/emulators/tg16cd.conf index 69f5b4a0d..37cfc9096 100644 --- a/config/emulators/tg16cd.conf +++ b/config/emulators/tg16cd.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/tg16cd" SYSTEM_EXTENSION=".cue .ccd .chd .toc .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcenginecd" -SYSTEM_THEME="tg16cd" +SYSTEM_THEME="tg-cd" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/tic-80.conf b/config/emulators/tic-80.conf index d47606d34..405cdc868 100644 --- a/config/emulators/tic-80.conf +++ b/config/emulators/tic-80.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".tic" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="tic80" SYSTEM_THEME="tic-80" +SYSTEM_WIKI_PATH="tic-80" diff --git a/config/emulators/tools.conf b/config/emulators/tools.conf index 08b6c2113..787dc59e2 100644 --- a/config/emulators/tools.conf +++ b/config/emulators/tools.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/run %ROM%" SYSTEM_PLATFORM="tools" SYSTEM_THEME="tools" +SYSTEM_WIKI_PATH="tools" diff --git a/config/emulators/uzebox.conf b/config/emulators/uzebox.conf index f52077d4f..00128fc65 100644 --- a/config/emulators/uzebox.conf +++ b/config/emulators/uzebox.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".uze" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="uzebox" SYSTEM_THEME="uzebox" +SYSTEM_WIKI_PATH="uzebox" diff --git a/config/emulators/vectrex.conf b/config/emulators/vectrex.conf index 5e6afa834..cca244202 100644 --- a/config/emulators/vectrex.conf +++ b/config/emulators/vectrex.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gam .vec .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="vectrex" SYSTEM_THEME="vectrex" +SYSTEM_WIKI_PATH="vectrex" diff --git a/config/emulators/vic20.conf b/config/emulators/vic20.conf index a241b5f2c..24ca114fd 100644 --- a/config/emulators/vic20.conf +++ b/config/emulators/vic20.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="vic20" SYSTEM_THEME="vic20" +SYSTEM_WIKI_PATH="vic20" diff --git a/config/emulators/videopac.conf b/config/emulators/videopac.conf index f0dd37a18..07f0d1ca1 100644 --- a/config/emulators/videopac.conf +++ b/config/emulators/videopac.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="videopac" SYSTEM_THEME="videopac" +SYSTEM_WIKI_PATH="videopac" diff --git a/config/emulators/virtualboy.conf b/config/emulators/virtualboy.conf index a531b6f37..2076f5428 100644 --- a/config/emulators/virtualboy.conf +++ b/config/emulators/virtualboy.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".vb .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="virtualboy" SYSTEM_THEME="virtualboy" +SYSTEM_WIKI_PATH="virtualboy" diff --git a/config/emulators/wii.conf b/config/emulators/wii.conf index e4559d5ff..edd19339d 100644 --- a/config/emulators/wii.conf +++ b/config/emulators/wii.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gcm .iso .gcz .ciso .wbfs .rvz .dol .wad" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wii" SYSTEM_THEME="wii" +SYSTEM_WIKI_PATH="wii" diff --git a/config/emulators/wiiu.conf b/config/emulators/wiiu.conf index 881814510..ce5007325 100644 --- a/config/emulators/wiiu.conf +++ b/config/emulators/wiiu.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".wud .wux .wua" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wiiu" SYSTEM_THEME="wiiu" +SYSTEM_WIKI_PATH="wiiu" diff --git a/config/emulators/wonderswan.conf b/config/emulators/wonderswan.conf index 471888602..e993deb0c 100644 --- a/config/emulators/wonderswan.conf +++ b/config/emulators/wonderswan.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ws .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wonderswan" SYSTEM_THEME="wonderswan" +SYSTEM_WIKI_PATH="wonderswan" diff --git a/config/emulators/wonderswancolor.conf b/config/emulators/wonderswancolor.conf index 5e1e83822..35aac00b0 100644 --- a/config/emulators/wonderswancolor.conf +++ b/config/emulators/wonderswancolor.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".wsc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wonderswancolor" SYSTEM_THEME="wonderswancolor" +SYSTEM_WIKI_PATH="wonderswancolor" diff --git a/config/emulators/x1.conf b/config/emulators/x1.conf index 3cae90630..1a8be5592 100644 --- a/config/emulators/x1.conf +++ b/config/emulators/x1.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="x1" SYSTEM_THEME="x1" +SYSTEM_WIKI_PATH="x1" diff --git a/config/emulators/x68000.conf b/config/emulators/x68000.conf index 37e1b3ad9..8e73088af 100644 --- a/config/emulators/x68000.conf +++ b/config/emulators/x68000.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="x68000" SYSTEM_THEME="x68000" +SYSTEM_WIKI_PATH="x68000" diff --git a/config/emulators/xbox.conf b/config/emulators/xbox.conf index 348a6bfca..8045988dd 100644 --- a/config/emulators/xbox.conf +++ b/config/emulators/xbox.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="xbox" SYSTEM_THEME="xbox" +SYSTEM_WIKI_PATH="xbox" diff --git a/config/emulators/zmachine.conf b/config/emulators/zmachine.conf index 67ea6cdec..26ef4b57b 100644 --- a/config/emulators/zmachine.conf +++ b/config/emulators/zmachine.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dat .z1 .z2 .z3 .z4 .z5 .z6 .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="z-machine" SYSTEM_THEME="zmachine" +SYSTEM_WIKI_PATH="zmachine" diff --git a/config/emulators/zx81.conf b/config/emulators/zx81.conf index 9c77e6f13..1b22d438d 100644 --- a/config/emulators/zx81.conf +++ b/config/emulators/zx81.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".tzx .p .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="zx81" SYSTEM_THEME="zx81" +SYSTEM_WIKI_PATH="zx81" diff --git a/config/emulators/zxspectrum.conf b/config/emulators/zxspectrum.conf index 6e5463425..251ca6dc4 100644 --- a/config/emulators/zxspectrum.conf +++ b/config/emulators/zxspectrum.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="zxspectrum" SYSTEM_THEME="zxspectrum" +SYSTEM_WIKI_PATH="zxspectrum" From bf6e38474523e8f255312d5f0f60794fae6a9768 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Sat, 4 Nov 2023 23:58:57 +0000 Subject: [PATCH 058/112] Bump ES. --- packages/ui/emulationstation/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index b4c98c3cc..b79070928 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="emulationstation" -PKG_VERSION="2359410" +PKG_VERSION="5155542" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" From 2265fe1a76731ae44928f92835cec47bf78552e8 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sat, 4 Nov 2023 20:02:43 -0400 Subject: [PATCH 059/112] Update st-v.conf --- config/emulators/st-v.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/emulators/st-v.conf b/config/emulators/st-v.conf index 1e81726bc..209a19758 100644 --- a/config/emulators/st-v.conf +++ b/config/emulators/st-v.conf @@ -8,4 +8,4 @@ SYSTEM_EXTENSION=".zip .ZIP" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="st-v" SYSTEM_THEME="stv" -SYSTEM_WIKI_PATH="stv" +SYSTEM_WIKI_PATH="st-v" From a88069d28682e1b90bc8bd663282c483be6ae648 Mon Sep 17 00:00:00 2001 From: Anthony Date: Sat, 4 Nov 2023 22:46:20 -0400 Subject: [PATCH 060/112] updated system conf files with wiki paths --- config/emulators/3do.conf | 2 +- config/emulators/3ds.conf | 2 +- packages/themes/es-theme-art-book-next/package.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/emulators/3do.conf b/config/emulators/3do.conf index 64c0117d6..9ca0cb8e9 100644 --- a/config/emulators/3do.conf +++ b/config/emulators/3do.conf @@ -8,4 +8,4 @@ SYSTEM_EXTENSION=".iso .bin .chd .cue" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3do" SYSTEM_THEME="3do" -SYSTEM_WIKI_PATH="3do"" \ No newline at end of file +SYSTEM_WIKI_PATH="3do" \ No newline at end of file diff --git a/config/emulators/3ds.conf b/config/emulators/3ds.conf index 1c115e784..1fbdb8141 100644 --- a/config/emulators/3ds.conf +++ b/config/emulators/3ds.conf @@ -8,4 +8,4 @@ SYSTEM_EXTENSION=".3ds .3dsx .elf .axf .cci .cxi .app" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3ds" SYSTEM_THEME="n3ds" -SYSTEM_WIKI_PATH="3ds"" +SYSTEM_WIKI_PATH="3ds" diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 741eb7c7b..2ae5717b6 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="2684b4f017366c9b86e0f045671953843db0e143" +PKG_VERSION="40e4e86ec9628f82f75603b3343b1eb750b63c5d" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From a5cd8b98fda6e267a0a7b315293de00981d43a02 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sun, 5 Nov 2023 09:27:36 -0500 Subject: [PATCH 061/112] Update Art Book Next Fixes custom logo support for the Multi Art Variant Adds idtech images --- packages/themes/es-theme-art-book-next/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 2ae5717b6..92bc37d56 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="40e4e86ec9628f82f75603b3343b1eb750b63c5d" +PKG_VERSION="81a1a9bc1985e5ba40c081fd1eec0544d7f7556c" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From 1853d6e4ff09245642281472e657842c495a3582 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sat, 28 Oct 2023 15:07:17 +0200 Subject: [PATCH 062/112] BROKEN/WIP: just commit code to then apply on top of dev --- .../mednafen/config/AMD64/mednafen.cfg | 4 +- .../mednafen/config/common/mednafen.cfg | 114 +++++++++--------- .../mednafen/scripts/start_mednafen.sh | 72 ++++++++++- 3 files changed, 129 insertions(+), 61 deletions(-) diff --git a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg b/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg index 6dd8d0f1e..d4c514df1 100644 --- a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg @@ -10344,10 +10344,10 @@ ss.cart none ss.cart.auto_default backup ;Path to KoF 95 ROM image. -ss.cart.kof95_path mpr-18811-mx.ic1 +ss.cart.kof95_path /storage/roms/bios/mpr-18811-mx.ic1 ;Path to Ultraman ROM image. -ss.cart.ultraman_path mpr-19367-mx.ic1 +ss.cart.ultraman_path /storage/roms/bios/mpr-19367-mx.ic1 ;Enable CD (image) sanity checks. ss.cd_sanity 1 diff --git a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg index b08db7b34..5c52b44b5 100644 --- a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg @@ -726,7 +726,7 @@ gb.yscale 6.000000 gb.yscalefs 1.000000 ;Path to optional GBA BIOS ROM image. -gba.bios +gba.bios /storage/roms/bios/gba_bios.bin ;Enable (automatic) usage of this module. gba.enable 1 @@ -927,7 +927,7 @@ gg.yscalefs 1.000000 input.autofirefreq 3 ;Dangerous key action delay. -input.ckdelay 0 +input.ckdelay 1500 ;Analog axis binary press detection threshold. input.joystick.axis_threshold 75 @@ -1047,7 +1047,7 @@ lynx.yscale 6.000000 lynx.yscalefs 1.000000 ;Path to the CD BIOS -md.cdbios us_scd1_9210.bin +md.cdbios /storage/roms/bios/us_scd1_9210.bin ;Correct the aspect ratio. md.correct_aspect 1 @@ -1137,22 +1137,22 @@ md.input.port1.gamepad2.start md.input.port1.gamepad2.up ;md, Virtual Port 1, 6-Button Gamepad: A -md.input.port1.gamepad6.a keyboard 0x0 89 +md.input.port1.gamepad6.a joystick @GUID1@ @DEVICE_BTN_WEST@ ;md, Virtual Port 1, 6-Button Gamepad: B -md.input.port1.gamepad6.b keyboard 0x0 90 +md.input.port1.gamepad6.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ ;md, Virtual Port 1, 6-Button Gamepad: C -md.input.port1.gamepad6.c keyboard 0x0 91 +md.input.port1.gamepad6.c joystick @GUID1@ @DEVICE_BTN_EAST@ ;md, Virtual Port 1, 6-Button Gamepad: DOWN ↓ -md.input.port1.gamepad6.down keyboard 0x0 22 +md.input.port1.gamepad6.down joystick @GUID1@ @DEVICE_BTN_DOWN@ ;md, Virtual Port 1, 6-Button Gamepad: LEFT ← -md.input.port1.gamepad6.left keyboard 0x0 4 +md.input.port1.gamepad6.left joystick @GUID1@ @DEVICE_BTN_LEFT@ ;md, Virtual Port 1, 6-Button Gamepad: Mode -md.input.port1.gamepad6.mode keyboard 0x0 16 +md.input.port1.gamepad6.mode joystick @GUID1@ @DEVICE_BTN_SELECT@ ;md, Virtual Port 1, 6-Button Gamepad: Rapid A md.input.port1.gamepad6.rapid_a @@ -1173,22 +1173,22 @@ md.input.port1.gamepad6.rapid_y md.input.port1.gamepad6.rapid_z ;md, Virtual Port 1, 6-Button Gamepad: RIGHT → -md.input.port1.gamepad6.right keyboard 0x0 7 +md.input.port1.gamepad6.right joystick @GUID1@ @DEVICE_BTN_WEST@ ;md, Virtual Port 1, 6-Button Gamepad: Start -md.input.port1.gamepad6.start keyboard 0x0 40 +md.input.port1.gamepad6.start joystick @GUID1@ @DEVICE_BTN_START@ ;md, Virtual Port 1, 6-Button Gamepad: UP ↑ -md.input.port1.gamepad6.up keyboard 0x0 26 +md.input.port1.gamepad6.up joystick @GUID1@ @DEVICE_BTN_UP@ ;md, Virtual Port 1, 6-Button Gamepad: X -md.input.port1.gamepad6.x keyboard 0x0 92 +md.input.port1.gamepad6.x joystick @GUID1@ @DEVICE_BTN_TL@ ;md, Virtual Port 1, 6-Button Gamepad: Y -md.input.port1.gamepad6.y keyboard 0x0 93 +md.input.port1.gamepad6.y joystick @GUID1@ @DEVICE_BTN_NORTH@ ;md, Virtual Port 1, 6-Button Gamepad: Z -md.input.port1.gamepad6.z keyboard 0x0 94 +md.input.port1.gamepad6.z joystick @GUID1@ @DEVICE_BTN_TR@ ;md, Virtual Port 1, Sega Mega Mouse: Left Button md.input.port1.megamouse.left mouse 0x0 button_left @@ -7363,11 +7363,11 @@ apple2.yscale 4.000000 apple2.yscalefs 1.000000 -psx.bios_eu scph5502.bin +psx.bios_eu /storage/roms/bios/scph5502.bin -psx.bios_jp scph5500.bin +psx.bios_jp /storage/roms/bios/scph5500.bin -psx.bios_na scph5501.bin +psx.bios_na /storage/roms/bios/scph5501.bin psx.bios_sanity 1 @@ -9815,25 +9815,25 @@ sasplay.yscalefs 1.000000 ss.affinity.vdp2 0 -ss.bios_jp sega_101.bin +ss.bios_jp /storage/roms/bios/sega_101.bin -ss.bios_na_eu mpr-17933.bin +ss.bios_na_eu /storage/roms/bios/mpr-17933.bin ss.bios_sanity 1 -ss.bios_stv_eu epr-17954a.ic8 +ss.bios_stv_eu /storage/roms/bios/epr-17954a.ic8 -ss.bios_stv_jp epr-20091.ic8 +ss.bios_stv_jp /storage/roms/bios/epr-20091.ic8 -ss.bios_stv_na epr-17952a.ic8 +ss.bios_stv_na /storage/roms/bios/epr-17952a.ic8 ss.cart auto ss.cart.auto_default backup -ss.cart.kof95_path mpr-18811-mx.ic1 +ss.cart.kof95_path /storage/roms/bios/mpr-18811-mx.ic1 -ss.cart.ultraman_path mpr-19367-mx.ic1 +ss.cart.ultraman_path /storage/roms/bios/mpr-19367-mx.ic1 ss.cd_sanity 1 @@ -9865,43 +9865,43 @@ ss.input.mouse_sensitivity 0.50 ss.input.port1 gamepad -ss.input.port1.3dpad.a +ss.input.port1.3dpad.a joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.3dpad.analog_down +ss.input.port1.3dpad.analog_down joystick @GUID1@ @DEVICE_BTN_AL_DOWN@ -ss.input.port1.3dpad.analog_left +ss.input.port1.3dpad.analog_left joystick @GUID1@ @DEVICE_BTN_AL_LEFT@ -ss.input.port1.3dpad.analog_right +ss.input.port1.3dpad.analog_right joystick @GUID1@ @DEVICE_BTN_AL_RIGHT@ -ss.input.port1.3dpad.analog_up +ss.input.port1.3dpad.analog_up joystick @GUID1@ @DEVICE_BTN_AL_UP@ -ss.input.port1.3dpad.b +ss.input.port1.3dpad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ -ss.input.port1.3dpad.c +ss.input.port1.3dpad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.3dpad.down +ss.input.port1.3dpad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ -ss.input.port1.3dpad.left +ss.input.port1.3dpad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ -ss.input.port1.3dpad.ls +ss.input.port1.3dpad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ || joystick @GUID1@ @DEVICE_BTN_TL2_MINUS@ -ss.input.port1.3dpad.mode +ss.input.port1.3dpad.mode joystick -ss.input.port1.3dpad.mode.defpos digital +ss.input.port1.3dpad.mode.defpos analog -ss.input.port1.3dpad.right +ss.input.port1.3dpad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ -ss.input.port1.3dpad.rs +ss.input.port1.3dpad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ || joystick @GUID1@ @DEVICE_BTN_TR2_MINUS@ -ss.input.port1.3dpad.start +ss.input.port1.3dpad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.3dpad.up +ss.input.port1.3dpad.up joystick @GUID1@ @DEVICE_BTN_UP@ -ss.input.port1.3dpad.x +ss.input.port1.3dpad.x joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.3dpad.y +ss.input.port1.3dpad.y joystick @GUID1@ @DEVICE_BTN_NORTH@ -ss.input.port1.3dpad.z +ss.input.port1.3dpad.z joystick @GUID1@ @DEVICE_BTN_TL@ ss.input.port1.dmission.a @@ -9981,31 +9981,31 @@ ss.input.port1.dmission.y ss.input.port1.dmission.z -ss.input.port1.gamepad.a keyboard 0x0 89 +ss.input.port1.gamepad.a joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.gamepad.b keyboard 0x0 90 +ss.input.port1.gamepad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ -ss.input.port1.gamepad.c keyboard 0x0 91 +ss.input.port1.gamepad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.gamepad.down keyboard 0x0 22 +ss.input.port1.gamepad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ -ss.input.port1.gamepad.left keyboard 0x0 4 +ss.input.port1.gamepad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ -ss.input.port1.gamepad.ls keyboard 0x0 95 +ss.input.port1.gamepad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ -ss.input.port1.gamepad.right keyboard 0x0 7 +ss.input.port1.gamepad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ -ss.input.port1.gamepad.rs keyboard 0x0 97 +ss.input.port1.gamepad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ -ss.input.port1.gamepad.start keyboard 0x0 40 +ss.input.port1.gamepad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.gamepad.up keyboard 0x0 26 +ss.input.port1.gamepad.up joystick @GUID1@ @DEVICE_BTN_UP@ -ss.input.port1.gamepad.x keyboard 0x0 92 +ss.input.port1.gamepad.x joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.gamepad.y keyboard 0x0 93 +ss.input.port1.gamepad.y joystick @GUID1@ @DEVICE_BTN_NORTH@ -ss.input.port1.gamepad.z keyboard 0x0 94 +ss.input.port1.gamepad.z joystick @GUID1@ @DEVICE_BTN_TL@ ss.input.port1.gun.offscreen_shot mouse 0x0 button_right diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index 3ceb492e7..e3d385deb 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -29,12 +29,79 @@ fi # delete current config rm $MEDNAFEN_HOME/mednafen.cfg + +#Overrides, for WIN MAX 2, should be moved into device quirks somehow +#OVERRIDE_GUID="keyboard 0x0" +#DEVICE_BTN_TL2="9" +#DEVICE_BTN_TR2="10" + +if [[ -z "${OVERRIDE_GUID+x}" ]] +then + + for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 + do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg + done +fi + + + + # Generate controller config # Set controller sdl guid GUID1="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $2}')" sed -e "s/@GUID1@/${GUID1}/g" ${MEDNAFEN_CONFIG} >> $MEDNAFEN_HOME/mednafen.cfg -# Buttons mapping +NAME="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $5$6}')" + + + + +# Mednafen doesn't use SDL for input +# Not sure how to reliably get mednafens input naming scheme. +# Exception 360 controller +if [[ "${NAME}" = "X-Box360" ]] +then + +# Naming differs to much just assign mednafen name here +DEVICE_BTN_DPAD_UP="abs_7-" +DEVICE_BTN_DPAD_DOWN="abs_7+" +DEVICE_BTN_DPAD_LEFT="abs_6-" +DEVICE_BTN_DPAD_RIGHT="abs_6+" +DEVICE_BTN_TL2="abs_2+" +DEVICE_BTN_TR2="abs_5+" + +# These are the minus range of the analog triggers +DEVICE_BTN_TL2_MINUS="abs_2-" +DEVICE_BTN_TR2_MINUS="abs_5-" + +# Left analog +DEVICE_BTN_AL_DOWN="abs_1+" +DEVICE_BTN_AL_UP="abs_1-" +DEVICE_BTN_AL_LEFT="abs_0-" +DEVICE_BTN_AL_RIGHT="abs_0+" + +# Right analog +DEVICE_BTN_AR_DOWN="abs_3+" +DEVICE_BTN_AR_UP="abs_3-" +DEVICE_BTN_AR_LEFT="abs_2-" +DEVICE_BTN_AR_RIGHT="abs_2+" +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ + DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ + DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ + DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT \ + DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS + DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP + DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT +DEVICE_BTN_AR_DOWN +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +else +# Regular gpio based input (tested on OGA) is easy for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ @@ -42,8 +109,9 @@ for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg done +fi #Set Save folder sed -i -e "s/@PLATFORM@/${PLATFORM}/g" $MEDNAFEN_HOME/mednafen.cfg From d410159411af92bbaddf3565aa0cdf4177ad0c2e Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sat, 28 Oct 2023 18:11:20 +0200 Subject: [PATCH 063/112] WIP --- .../mednafen/scripts/mednafen_gen_config.sh | 146 ++++++++++++++++++ .../mednafen/scripts/start_mednafen.sh | 90 +---------- 2 files changed, 148 insertions(+), 88 deletions(-) create mode 100644 packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh new file mode 100644 index 000000000..2eef5564e --- /dev/null +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -0,0 +1,146 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2023-present asoderq (https://github.com/asoderq) + +. /etc/profile + +export MEDNAFEN_HOME=/storage/.config/mednafen +MEDNAFEN_CONFIG=/usr/config/mednafen.cfg + +# Generate controller config +# Set controller guid, just take the first one mednafen lists +GUID1="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $2}')" +sed -e "s/@GUID1@/${GUID1}/g" ${MEDNAFEN_CONFIG} >> $MEDNAFEN_HOME/mednafen.cfg + +NAME="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $5$6}')" + + +# Controller config for 360 and GPIO handled separately +if [[ "${NAME}" = "X-Box360" ]] +then +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_SELECT DEVICE_BTN_START DEVICE_BTN_MODE \ + DEVICE_BTN_THUMBL DEVICE_BTN_THUMBR +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +# Naming differs to much just assign mednafen name here +DEVICE_BTN_DPAD_UP="abs_7-" +DEVICE_BTN_DPAD_DOWN="abs_7+" +DEVICE_BTN_DPAD_LEFT="abs_6-" +DEVICE_BTN_DPAD_RIGHT="abs_6+" +DEVICE_BTN_TL2="abs_2+" +DEVICE_BTN_TR2="abs_5+" + +# These are the minus range of the analog triggers +DEVICE_BTN_TL2_MINUS="abs_2-" +DEVICE_BTN_TR2_MINUS="abs_5-" + +# Left analog +DEVICE_BTN_AL_DOWN="abs_1+" +DEVICE_BTN_AL_UP="abs_1-" +DEVICE_BTN_AL_LEFT="abs_0-" +DEVICE_BTN_AL_RIGHT="abs_0+" + +# Right analog +DEVICE_BTN_AR_DOWN="abs_3+" +DEVICE_BTN_AR_UP="abs_3-" +DEVICE_BTN_AR_LEFT="abs_2-" +DEVICE_BTN_AR_RIGHT="abs_2+" + +for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_DPAD_UP \ + DEVICE_BTN_DPAD_DOWN DEVICE_BTN_DPAD_LEFT \ + DEVICE_BTN_DPAD_RIGHT DEVICE_BTN_TL2 \ + MINUS DEVICE_BTN_TR2_MINUS DEVICE_BTN_AL_DOWN \ + DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT \ + DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP DEVICE_BTN_AR_LEFT +do + sed -i -e "s/@${CONTROL}@/${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +elif [[ "${NAME}" = "OSHPB" ]] +then +# This is 351P, maybe, hopefully also M and V. +# No 351 usb controller has analog triggers +DEVICE_BTN_TL2_MINUS=${DEVICE_BTN_TL2} +DEVICE_BTN_TR2_MINUS=${DEVICE_BTN_TR2} + +# These are the inputs prefixed with button_ +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ + DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ + DEVICE_BTN_THUMBR DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +DEVICE_BTN_DPAD_UP="abs_7-" +DEVICE_BTN_DPAD_DOWN="abs_7+" +DEVICE_BTN_DPAD_LEFT="abs_6-" +DEVICE_BTN_DPAD_RIGHT="abs_6+" + +# These inputs are probably prefixed with something else than button_ +# Just null out the sticks until it is supported in the controller profile +# Left analog +DEVICE_BTN_AL_DOWN="" +DEVICE_BTN_AL_UP="" +DEVICE_BTN_AL_LEFT="" +DEVICE_BTN_AL_RIGHT="" + +# Right analog +DEVICE_BTN_AR_DOWN="" +DEVICE_BTN_AR_UP="" +DEVICE_BTN_AR_LEFT="" +DEVICE_BTN_AR_RIGHT="" +for CONTROL in DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT \ + DEVICE_BTN_AL_RIGHT DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP \ + DEVICE_BTN_AR_LEFT DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN\ + DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT + +do + sed -i -e "s/@${CONTROL}@//g" $MEDNAFEN_HOME/mednafen.cfg +done + +else +# No GPIO device has analog triggers (I think), Just set them to the same +DEVICE_BTN_TL2_MINUS=${DEVICE_BTN_TL2} +DEVICE_BTN_TR2_MINUS=${DEVICE_BTN_TR2} + +# These are the inputs prefixed with button_ +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ + DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ + DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ + DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT \ + DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +# These inputs are probably prefixed with something else than button_ +# Just null out the sticks until it is supported in the controller profile +# Left analog +DEVICE_BTN_AL_DOWN="" +DEVICE_BTN_AL_UP="" +DEVICE_BTN_AL_LEFT="" +DEVICE_BTN_AL_RIGHT="" + +# Right analog +DEVICE_BTN_AR_DOWN="" +DEVICE_BTN_AR_UP="" +DEVICE_BTN_AR_LEFT="" +DEVICE_BTN_AR_RIGHT="" +for CONTROL in DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT \ + DEVICE_BTN_AL_RIGHT DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP \ + DEVICE_BTN_AR_LEFT +do + sed -i -e "s/@${CONTROL}@//g" $MEDNAFEN_HOME/mednafen.cfg +done + +fi + + diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index e3d385deb..d2d8f1720 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -1,6 +1,6 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2022-present asoderq (https://github.com/asoderq) +# Copyright (C) 2023-present asoderq (https://github.com/asoderq) . /etc/profile @@ -27,94 +27,8 @@ else unset EMUPERF fi -# delete current config -rm $MEDNAFEN_HOME/mednafen.cfg - -#Overrides, for WIN MAX 2, should be moved into device quirks somehow -#OVERRIDE_GUID="keyboard 0x0" -#DEVICE_BTN_TL2="9" -#DEVICE_BTN_TR2="10" - -if [[ -z "${OVERRIDE_GUID+x}" ]] -then - - for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 - do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg - done -fi - - - - -# Generate controller config -# Set controller sdl guid -GUID1="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $2}')" -sed -e "s/@GUID1@/${GUID1}/g" ${MEDNAFEN_CONFIG} >> $MEDNAFEN_HOME/mednafen.cfg - -NAME="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $5$6}')" - - - - -# Mednafen doesn't use SDL for input -# Not sure how to reliably get mednafens input naming scheme. -# Exception 360 controller -if [[ "${NAME}" = "X-Box360" ]] -then - -# Naming differs to much just assign mednafen name here -DEVICE_BTN_DPAD_UP="abs_7-" -DEVICE_BTN_DPAD_DOWN="abs_7+" -DEVICE_BTN_DPAD_LEFT="abs_6-" -DEVICE_BTN_DPAD_RIGHT="abs_6+" -DEVICE_BTN_TL2="abs_2+" -DEVICE_BTN_TR2="abs_5+" - -# These are the minus range of the analog triggers -DEVICE_BTN_TL2_MINUS="abs_2-" -DEVICE_BTN_TR2_MINUS="abs_5-" - -# Left analog -DEVICE_BTN_AL_DOWN="abs_1+" -DEVICE_BTN_AL_UP="abs_1-" -DEVICE_BTN_AL_LEFT="abs_0-" -DEVICE_BTN_AL_RIGHT="abs_0+" - -# Right analog -DEVICE_BTN_AR_DOWN="abs_3+" -DEVICE_BTN_AR_UP="abs_3-" -DEVICE_BTN_AR_LEFT="abs_2-" -DEVICE_BTN_AR_RIGHT="abs_2+" -for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ - DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ - DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ - DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ - DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ - DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT \ - DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS - DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP - DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT -DEVICE_BTN_AR_DOWN -do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg -done - -else -# Regular gpio based input (tested on OGA) is easy -for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ - DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ - DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ - DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ - DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ - DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT -do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg -done -fi - #Set Save folder - sed -i -e "s/@PLATFORM@/${PLATFORM}/g" $MEDNAFEN_HOME/mednafen.cfg +sed -i -e "s/@PLATFORM@/${PLATFORM}/g" $MEDNAFEN_HOME/mednafen.cfg # Get command line switches FEATURES_CMDLINE="" From 4a8592753f0b1b53f8dd42477303cb3001049029 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sat, 28 Oct 2023 18:44:08 +0200 Subject: [PATCH 064/112] WIP --- .../mednafen/scripts/mednafen_gen_config.sh | 2 -- .../standalone/mednafen/scripts/start_mednafen.sh | 12 +++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh index 2eef5564e..99c8443dc 100644 --- a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -4,8 +4,6 @@ . /etc/profile -export MEDNAFEN_HOME=/storage/.config/mednafen -MEDNAFEN_CONFIG=/usr/config/mednafen.cfg # Generate controller config # Set controller guid, just take the first one mednafen lists diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index d2d8f1720..2fccbb806 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -5,7 +5,17 @@ . /etc/profile export MEDNAFEN_HOME=/storage/.config/mednafen -MEDNAFEN_CONFIG=/usr/config/mednafen/mednafen.cfg +export MEDNAFEN_CONFIG=/usr/config/mednafen.cfg + +if [ ! -d "$MEDNAFEN_HOME" ] +then + mkdir /storage/.config/mednafen +fi + +if [ ! -f "$MEDNAFEN_HOME/mednafen.cfg" ] +then + /usr/bin/bash /usr/bin/mednafen_gen_config.sh +fi #Emulation Station Features GAME=$(echo "${1}"| sed "s#^/.*/##") From 07a650768d6ee6e07327d87e8014bec64a40fbd0 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sun, 5 Nov 2023 15:17:52 +0100 Subject: [PATCH 065/112] Mednafen bugfixes --- .../mednafen/config/AMD64/mednafen.cfg | 22387 ---------------- .../mednafen/config/common/mednafen.cfg | 30 +- .../emulators/standalone/mednafen/package.mk | 18 +- .../mednafen/scripts/mednafen_gen_config.sh | 7 +- .../mednafen/scripts/start_mednafen.sh | 2 +- .../config/common/es_features.cfg | 1 + packages/virtual/emulators/package.mk | 85 +- 7 files changed, 76 insertions(+), 22454 deletions(-) delete mode 100644 packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg diff --git a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg b/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg deleted file mode 100644 index d4c514df1..000000000 --- a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg +++ /dev/null @@ -1,22387 +0,0 @@ -;VERSION 1.31.0-UNSTABLE -;Edit this file at your own risk! -;DO NOT EDIT THIS FILE WHILE AN INSTANCE OF MEDNAFEN THAT USES IT IS RUNNING. -;File format: -; -;Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;fs ~ - -;CD read threads CPU affinity mask. -affinity.cd 0 - -;Main emulation thread CPU affinity mask. -affinity.emu 0 - -;Video blitting thread CPU affinity mask. -affinity.video 0 - -;Automatically load/save state on game load/close. -autosave 0 - -;Cache entire CD images in memory. -cd.image_memcache 1 - -;M3U total number of disc images limit. -cd.m3u.disc_limit 50 - -;M3U recursion limit. -cd.m3u.recursion_limit 9 - -;Enable (automatic) usage of this module. -cdplay.enable 1 - -;Force monophonic sound output. -cdplay.forcemono 0 - -;cdplay, Built-In, Controller: Next Track -cdplay.input.builtin.controller.next_track keyboard 0x0 79 - -;cdplay, Built-In, Controller: Next Track 10 -cdplay.input.builtin.controller.next_track_10 keyboard 0x0 82 - -;cdplay, Built-In, Controller: Play/Pause -cdplay.input.builtin.controller.play_pause keyboard 0x0 44 - -;cdplay, Built-In, Controller: Previous Track -cdplay.input.builtin.controller.previous_track keyboard 0x0 80 - -;cdplay, Built-In, Controller: Previous Track 10 -cdplay.input.builtin.controller.previous_track_10 keyboard 0x0 81 - -;cdplay, Built-In, Controller: Scan Forward -cdplay.input.builtin.controller.scan_forward keyboard 0x0 75 - -;cdplay, Built-In, Controller: Scan Reverse -cdplay.input.builtin.controller.scan_reverse keyboard 0x0 78 - -;cdplay, Built-In, Controller: Stop -cdplay.input.builtin.controller.stop keyboard 0x0 40 - -;Enable scanlines with specified opacity. -cdplay.scanlines 0 - -;Enable specified OpenGL shader. -cdplay.shader none - -;Force interlaced video to be treated as progressive. -cdplay.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -cdplay.shader.goat.hdiv 0.50 - -;Mask pattern. -cdplay.shader.goat.pat goatron - -;Enable scanlines effect. -cdplay.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -cdplay.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -cdplay.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -cdplay.special none - -;Stretch to fill screen. -cdplay.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -cdplay.tblur 0 - -;Accumulate color data rather than discarding it. -cdplay.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -cdplay.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -cdplay.videoip 0 - -;Enable simple waveform visualization. -cdplay.visualization 1 - -;Full-screen horizontal resolution. -cdplay.xres 0 - -;Scaling factor for the X axis in windowed mode. -cdplay.xscale 5.000000 - -;Scaling factor for the X axis in fullscreen mode. -cdplay.xscalefs 1.000000 - -;Full-screen vertical resolution. -cdplay.yres 0 - -;Scaling factor for the Y axis in windowed mode. -cdplay.yscale 5.000000 - -;Scaling factor for the Y axis in fullscreen mode. -cdplay.yscalefs 1.000000 - -;Enable cheats. -cheats 1 - -;Save state 0 select -command.0 keyboard 0x0 39 - -;Save state 1 select -command.1 keyboard 0x0 30 - -;Save state 2 select -command.2 keyboard 0x0 31 - -;Save state 3 select -command.3 keyboard 0x0 32 - -;Save state 4 select -command.4 keyboard 0x0 33 - -;Save state 5 select -command.5 keyboard 0x0 34 - -;Save state 6 select -command.6 keyboard 0x0 35 - -;Save state 7 select -command.7 keyboard 0x0 36 - -;Save state 8 select -command.8 keyboard 0x0 37 - -;Save state 9 select -command.9 keyboard 0x0 38 - -;Activate barcode(for Famicom) -command.activate_barcode keyboard 0x0 65 - -;Advance frame -command.advance_frame keyboard 0x0 4+alt - -;Select virtual device on virtual input port 1 -command.device_select1 keyboard 0x0 30+ctrl+shift - -;Select virtual device on virtual input port 10 -command.device_select10 keyboard 0x0 39+ctrl+shift - -;Select virtual device on virtual input port 11 -command.device_select11 keyboard 0x0 89+ctrl+shift - -;Select virtual device on virtual input port 12 -command.device_select12 keyboard 0x0 90+ctrl+shift - -;Select virtual device on virtual input port 13 -command.device_select13 keyboard 0x0 91+ctrl+shift - -;Select virtual device on virtual input port 2 -command.device_select2 keyboard 0x0 31+ctrl+shift - -;Select virtual device on virtual input port 3 -command.device_select3 keyboard 0x0 32+ctrl+shift - -;Select virtual device on virtual input port 4 -command.device_select4 keyboard 0x0 33+ctrl+shift - -;Select virtual device on virtual input port 5 -command.device_select5 keyboard 0x0 34+ctrl+shift - -;Select virtual device on virtual input port 6 -command.device_select6 keyboard 0x0 35+ctrl+shift - -;Select virtual device on virtual input port 7 -command.device_select7 keyboard 0x0 36+ctrl+shift - -;Select virtual device on virtual input port 8 -command.device_select8 keyboard 0x0 37+ctrl+shift - -;Select virtual device on virtual input port 9 -command.device_select9 keyboard 0x0 38+ctrl+shift - -;Exit -command.exit joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_7 - -;Fast-forward -command.fast_forward joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 abs_5- - -;Configure buttons on virtual port 1 -command.input_config1 keyboard 0x0 30+alt+shift - -;Configure buttons on virtual port 10 -command.input_config10 keyboard 0x0 39+alt+shift - -;Configure buttons on virtual port 11 -command.input_config11 keyboard 0x0 89+alt+shift - -;Configure buttons on virtual port 12 -command.input_config12 keyboard 0x0 90+alt+shift - -;Configure buttons on virtual port 13 -command.input_config13 keyboard 0x0 91+alt+shift - -;Configure buttons on virtual port 2 -command.input_config2 keyboard 0x0 31+alt+shift - -;Configure buttons on virtual port 3 -command.input_config3 keyboard 0x0 32+alt+shift - -;Configure buttons on virtual port 4 -command.input_config4 keyboard 0x0 33+alt+shift - -;Configure buttons on virtual port 5 -command.input_config5 keyboard 0x0 34+alt+shift - -;Configure buttons on virtual port 6 -command.input_config6 keyboard 0x0 35+alt+shift - -;Configure buttons on virtual port 7 -command.input_config7 keyboard 0x0 36+alt+shift - -;Configure buttons on virtual port 8 -command.input_config8 keyboard 0x0 37+alt+shift - -;Configure buttons on virtual port 9 -command.input_config9 keyboard 0x0 38+alt+shift - -;Detect analog buttons on physical joysticks/gamepads(for use with the input configuration process). -command.input_config_abd keyboard 0x0 60 - -;Configure command key -command.input_configc keyboard 0x0 59 - -;Configure command key, for all-pressed-to-trigger mode -command.input_configc_am keyboard 0x0 59+shift - -;Insert coin -command.insert_coin keyboard 0x0 65 - -;Insert/Eject disk/disc -command.insert_eject_disk keyboard 0x0 65 - -;Load movie -command.load_movie keyboard 0x0 64+shift - -;Load state -command.load_state joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_4 - -;Movie 0 select -command.m0 keyboard 0x0 39+shift - -;Movie 1 select -command.m1 keyboard 0x0 30+shift - -;Movie 2 select -command.m2 keyboard 0x0 31+shift - -;Movie 3 select -command.m3 keyboard 0x0 32+shift - -;Movie 4 select -command.m4 keyboard 0x0 33+shift - -;Movie 5 select -command.m5 keyboard 0x0 34+shift - -;Movie 6 select -command.m6 keyboard 0x0 35+shift - -;Movie 7 select -command.m7 keyboard 0x0 36+shift - -;Movie 8 select -command.m8 keyboard 0x0 37+shift - -;Movie 9 select -command.m9 keyboard 0x0 38+shift - -;Pause/Unpause -command.pause keyboard 0x0 72 - -;Power toggle -command.power keyboard 0x0 68 - -;Reinitialize physical joysticks/gamepads. -command.reinit_joysticks keyboard 0x0 60+shift - -;Reset -command.reset keyboard 0x0 67 - -;Rotate screen -command.rotate_screen keyboard 0x0 18+alt - -;Return to normal mode after advancing frames -command.run_normal keyboard 0x0 21+alt - -;Save movie -command.save_movie keyboard 0x0 62+shift - -;Save state -command.save_state joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_5 - -;Select disk/disc -command.select_disk keyboard 0x0 63 - -;Select drive -command.select_drive keyboard 0x0 63+shift - -;Slow-forward -command.slow_forward keyboard 0x0 49 - -;Rewind -command.state_rewind joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 abs_2- - -;Decrease selected save state slot by 1 -command.state_slot_dec keyboard 0x0 45 - -;Increase selected save state slot by 1 -command.state_slot_inc keyboard 0x0 46 - -;Take scaled(and filtered) screen snapshot -command.take_scaled_snapshot keyboard 0x0 66+shift - -;Take screen snapshot -command.take_snapshot keyboard 0x0 66 - -;Toggle graphics layer 1 -command.tl1 keyboard 0x0 30+ctrl - -;Toggle graphics layer 2 -command.tl2 keyboard 0x0 31+ctrl - -;Toggle graphics layer 3 -command.tl3 keyboard 0x0 32+ctrl - -;Toggle graphics layer 4 -command.tl4 keyboard 0x0 33+ctrl - -;Toggle graphics layer 5 -command.tl5 keyboard 0x0 34+ctrl - -;Toggle graphics layer 6 -command.tl6 keyboard 0x0 35+ctrl - -;Toggle graphics layer 7 -command.tl7 keyboard 0x0 36+ctrl - -;Toggle graphics layer 8 -command.tl8 keyboard 0x0 37+ctrl - -;Toggle graphics layer 9 -command.tl9 keyboard 0x0 38+ctrl - -;Toggle debugger -command.toggle_debugger keyboard 0x0 7+alt - -;Toggle DIP switch view -command.toggle_dipview keyboard 0x0 63 - -;Toggle frames-per-second display -command.toggle_fps_view joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_2 - -;Toggle fullscreen mode -command.toggle_fs keyboard 0x0 40+alt - -;Grab input -command.toggle_grab keyboard 0x0 101+ctrl+shift - -;Toggle help screen -command.toggle_help keyboard 0x0 58 - -;Toggle state rewind functionality -command.toggle_state_rewind keyboard 0x0 22+alt - -;Enable/Disable cheats -command.togglecheatactive keyboard 0x0 23+alt - -;Toggle cheat console -command.togglecheatview keyboard 0x0 6+alt - -;Toggle netplay console -command.togglenetview keyboard 0x0 23 - -;Automatically go into the debugger's step mode after a game is loaded. -debugger.autostepmode 0 - -;Enable (automatic) usage of this module. -demo.enable 1 - -;Force monophonic sound output. -demo.forcemono 0 - -;demo, Port 1, Controller: Rumble Control Strong -demo.input.port1.controller.rcstrong - -;demo, Port 1, Controller: Rumble Control Weak -demo.input.port1.controller.rcweak - -;demo, Port 1, Controller: Stick DOWN -demo.input.port1.controller.stick_down - -;demo, Port 1, Controller: Stick LEFT -demo.input.port1.controller.stick_left - -;demo, Port 1, Controller: Stick RIGHT -demo.input.port1.controller.stick_right - -;demo, Port 1, Controller: Stick UP -demo.input.port1.controller.stick_up - -;demo, Port 1, Controller: Select Test Mode -demo.input.port1.controller.stm - -;demo, Port 1, Controller: Switch Meow -demo.input.port1.controller.swt - -;Default position for switch "Switch Meow". -demo.input.port1.controller.swt.defpos waffles - -;demo, Port 1, Controller: Toggle Interlace Mode -demo.input.port1.controller.toggle_ilace - -;demo, Port 2, Controller: Rumble Control Strong -demo.input.port2.controller.rcstrong - -;demo, Port 2, Controller: Rumble Control Weak -demo.input.port2.controller.rcweak - -;demo, Port 2, Controller: Stick DOWN -demo.input.port2.controller.stick_down - -;demo, Port 2, Controller: Stick LEFT -demo.input.port2.controller.stick_left - -;demo, Port 2, Controller: Stick RIGHT -demo.input.port2.controller.stick_right - -;demo, Port 2, Controller: Stick UP -demo.input.port2.controller.stick_up - -;demo, Port 2, Controller: Select Test Mode -demo.input.port2.controller.stm - -;demo, Port 2, Controller: Switch Meow -demo.input.port2.controller.swt - -;Default position for switch "Switch Meow". -demo.input.port2.controller.swt.defpos waffles - -;demo, Port 2, Controller: Toggle Interlace Mode -demo.input.port2.controller.toggle_ilace - -;Multi-enum test. -demo.multi_enum - -;Sound quality. -demo.resamp_quality 3 - -;Sound output rate tolerance. -demo.resamp_rate_error 0.0000009 - -;Enable scanlines with specified opacity. -demo.scanlines 0 - -;Enable specified OpenGL shader. -demo.shader none - -;Force interlaced video to be treated as progressive. -demo.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -demo.shader.goat.hdiv 0.50 - -;Mask pattern. -demo.shader.goat.pat goatron - -;Enable scanlines effect. -demo.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -demo.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -demo.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -demo.special none - -;Stretch to fill screen. -demo.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -demo.tblur 0 - -;Accumulate color data rather than discarding it. -demo.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -demo.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -demo.videoip 1 - -;Full-screen horizontal resolution. -demo.xres 0 - -;Scaling factor for the X axis in windowed mode. -demo.xscale 2.000000 - -;Scaling factor for the X axis in fullscreen mode. -demo.xscalefs 1.000000 - -;Full-screen vertical resolution. -demo.yres 0 - -;Scaling factor for the Y axis in windowed mode. -demo.yscale 2.000000 - -;Scaling factor for the Y axis in fullscreen mode. -demo.yscalefs 1.000000 - -;Silence sound output when fast-forwarding. -ffnosound 0 - -;Fast-forwarding speed multiplier. -ffspeed 4 - -;Treat the fast-forward button as a toggle. -fftoggle 0 - -;Format string for movie filename. -filesys.fname_movie %f.%M%p.%x - -;Format string for save games filename. -filesys.fname_sav %f.%M%x - -;Format string for save game backups filename. -filesys.fname_savbackup %f.%m%z%p.%x - -;Format string for screen snapshot filenames. -filesys.fname_snap %f-%p.%x - -;Format string for state filename. -filesys.fname_state %f.%M%X - -;Enable old handling of .gz file extensions with respect to data file path construction. -filesys.old_gz_naming 0 - -;Path to directory for cheats. -filesys.path_cheat cheats - -;Path to directory for firmware. -filesys.path_firmware /storage/roms/bios/ - -;Path to directory for movies. -filesys.path_movie mcm - -;Path to directory for custom palettes. -filesys.path_palette palettes - -;Path to directory for per-game configuration override files. -filesys.path_pgconfig pgconfig - -;Path to directory for save games and nonvolatile memory. -filesys.path_sav /storage/roms/@PLATFORM@/ - -;Path to directory for backups of save games and nonvolatile memory. -filesys.path_savbackup b - -;Path to directory for screen snapshots. -filesys.path_snap /media/storage/screenshots/ - -;Path to directory for save states. -filesys.path_state /storage/roms/savestates/@PLATFORM@/ - -;Save state file compression level. -filesys.state_comp_level 6 - -;Enable untrusted file-inclusion path security check. -filesys.untrusted_fip_check 1 - -;Automatically enable FPS display on startup. -fps.autoenable 0 - -;FPS display background color. -fps.bgcolor 0x80000000 - -;FPS display font. -fps.font 5x7 - -;FPS display position. -fps.position upper_left - -;FPS display scale factor. -fps.scale 1 - -;FPS display text color. -fps.textcolor 0xFFFFFFFF - -;Enable (automatic) usage of this module. -gb.enable 1 - -;Force monophonic sound output. -gb.forcemono 0 - -;gb, Built-In, Gamepad: A -gb.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;gb, Built-In, Gamepad: B -gb.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;gb, Built-In, Gamepad: DOWN ↓ -gb.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;gb, Built-In, Gamepad: LEFT ← -gb.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;gb, Built-In, Gamepad: Rapid A -gb.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;gb, Built-In, Gamepad: Rapid B -gb.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;gb, Built-In, Gamepad: RIGHT → -gb.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;gb, Built-In, Gamepad: SELECT -gb.input.builtin.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left - -;gb, Built-In, Gamepad: START -gb.input.builtin.gamepad.start mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_7 - -;gb, Built-In, Gamepad: UP ↑ -gb.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;gb, Tilt, Tilt: DOWN ↓ -gb.input.tilt.tilt.down - -;gb, Tilt, Tilt: LEFT ← -gb.input.tilt.tilt.left - -;gb, Tilt, Tilt: RIGHT → -gb.input.tilt.tilt.right - -;gb, Tilt, Tilt: UP ↑ -gb.input.tilt.tilt.up - -;Enable scanlines with specified opacity. -gb.scanlines 0 - -;Enable specified OpenGL shader. -gb.shader ipsharper - -;Force interlaced video to be treated as progressive. -gb.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -gb.shader.goat.hdiv 0.50 - -;Mask pattern. -gb.shader.goat.pat goatron - -;Enable scanlines effect. -gb.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -gb.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -gb.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -gb.special none - -;Stretch to fill screen. -gb.stretch aspect - -;Emulated GB type. -gb.system_type dmg - -;Enable video temporal blur(50/50 previous/current frame by default). -gb.tblur 0 - -;Accumulate color data rather than discarding it. -gb.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -gb.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -gb.videoip 0 - -;Full-screen horizontal resolution. -gb.xres 0 - -;Scaling factor for the X axis in windowed mode. -gb.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -gb.xscalefs 1.000000 - -;Full-screen vertical resolution. -gb.yres 0 - -;Scaling factor for the Y axis in windowed mode. -gb.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -gb.yscalefs 1.000000 - -;Path to optional GBA BIOS ROM image. -gba.bios - -;Enable (automatic) usage of this module. -gba.enable 1 - -;Force monophonic sound output. -gba.forcemono 0 - -;gba, Built-In, Gamepad: A -gba.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;gba, Built-In, Gamepad: B -gba.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;gba, Built-In, Gamepad: DOWN ↓ -gba.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;gba, Built-In, Gamepad: LEFT ← -gba.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;gba, Built-In, Gamepad: Rapid A -gba.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;gba, Built-In, Gamepad: Rapid B -gba.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;gba, Built-In, Gamepad: RIGHT → -gba.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;gba, Built-In, Gamepad: SELECT -gba.input.builtin.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;gba, Built-In, Gamepad: SHOULDER L -gba.input.builtin.gamepad.shoulder_l joystick 0x0003045e028e01010008000b00000000 button_4 - -;gba, Built-In, Gamepad: SHOULDER R -gba.input.builtin.gamepad.shoulder_r joystick 0x0003045e028e01010008000b00000000 button_5 - -;gba, Built-In, Gamepad: START -gba.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;gba, Built-In, Gamepad: UP ↑ -gba.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;Enable scanlines with specified opacity. -gba.scanlines 0 - -;Enable specified OpenGL shader. -gba.shader sabr - -;Force interlaced video to be treated as progressive. -gba.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -gba.shader.goat.hdiv 0.50 - -;Mask pattern. -gba.shader.goat.pat goatron - -;Enable scanlines effect. -gba.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -gba.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -gba.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -gba.special none - -;Stretch to fill screen. -gba.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -gba.tblur 0 - -;Accumulate color data rather than discarding it. -gba.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -gba.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -gba.videoip 0 - -;Full-screen horizontal resolution. -gba.xres 0 - -;Scaling factor for the X axis in windowed mode. -gba.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -gba.xscalefs 1.000000 - -;Full-screen vertical resolution. -gba.yres 0 - -;Scaling factor for the Y axis in windowed mode. -gba.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -gba.yscalefs 1.000000 - -;Enable (automatic) usage of this module. -gg.enable 1 - -;Force monophonic sound output. -gg.forcemono 0 - -;gg, Built-In, Gamepad: Button 1 -gg.input.builtin.gamepad.button1 joystick 0x0003045e028e01010008000b00000000 button_0 - -;gg, Built-In, Gamepad: Button 2 -gg.input.builtin.gamepad.button2 joystick 0x0003045e028e01010008000b00000000 button_1 - -;gg, Built-In, Gamepad: DOWN ↓ -gg.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;gg, Built-In, Gamepad: LEFT ← -gg.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;gg, Built-In, Gamepad: Rapid Button 1 -gg.input.builtin.gamepad.rapid_button1 joystick 0x0003045e028e01010008000b00000000 button_2 - -;gg, Built-In, Gamepad: Rapid Button 2 -gg.input.builtin.gamepad.rapid_button2 joystick 0x0003045e028e01010008000b00000000 button_3 - -;gg, Built-In, Gamepad: RIGHT → -gg.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;gg, Built-In, Gamepad: Start -gg.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;gg, Built-In, Gamepad: UP ↑ -gg.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;Enable scanlines with specified opacity. -gg.scanlines 0 - -;Enable specified OpenGL shader. -gg.shader sabr - -;Force interlaced video to be treated as progressive. -gg.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -gg.shader.goat.hdiv 0.50 - -;Mask pattern. -gg.shader.goat.pat goatron - -;Enable scanlines effect. -gg.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -gg.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -gg.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -gg.special none - -;Stretch to fill screen. -gg.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -gg.tblur 0 - -;Accumulate color data rather than discarding it. -gg.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -gg.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -gg.videoip 0 - -;Full-screen horizontal resolution. -gg.xres 0 - -;Scaling factor for the X axis in windowed mode. -gg.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -gg.xscalefs 1.000000 - -;Full-screen vertical resolution. -gg.yres 0 - -;Scaling factor for the Y axis in windowed mode. -gg.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -gg.yscalefs 1.000000 - -;Auto-fire frequency. -input.autofirefreq 3 - -;Dangerous key action delay. -input.ckdelay 2000 - -;Analog axis binary press detection threshold. -input.joystick.axis_threshold 75 - -;Update physical joystick(s) internal state in Mednafen even when Mednafen lacks OS focus. -input.joystick.global_focus 1 - -;Enable (automatic) usage of this module. -lynx.enable 1 - -;Force monophonic sound output. -lynx.forcemono 0 - -;lynx, Built-In, Gamepad: A (outer) -lynx.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;lynx, Built-In, Gamepad: B (inner) -lynx.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;lynx, Built-In, Gamepad: DOWN ↓ -lynx.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;lynx, Built-In, Gamepad: LEFT ← -lynx.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;lynx, Built-In, Gamepad: Option 1 (upper) -lynx.input.builtin.gamepad.option_1 joystick 0x0003045e028e01010008000b00000000 button_4 - -;lynx, Built-In, Gamepad: Option 2 (lower) -lynx.input.builtin.gamepad.option_2 joystick 0x0003045e028e01010008000b00000000 button_5 - -;lynx, Built-In, Gamepad: PAUSE -lynx.input.builtin.gamepad.pause joystick 0x0003045e028e01010008000b00000000 button_7 - -;lynx, Built-In, Gamepad: Rapid A (outer) -lynx.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;lynx, Built-In, Gamepad: Rapid B (inner) -lynx.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;lynx, Built-In, Gamepad: Rapid Option 1 (upper) -lynx.input.builtin.gamepad.rapid_option_1 keyboard 0x0 17 - -;lynx, Built-In, Gamepad: Rapid Option 2 (lower) -lynx.input.builtin.gamepad.rapid_option_2 keyboard 0x0 17 - -;lynx, Built-In, Gamepad: RIGHT → -lynx.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;lynx, Built-In, Gamepad: UP ↑ -lynx.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;Enable sound output lowpass filter. -lynx.lowpass 1 - -;Virtually rotate the D-pad when the screen is rotated. -lynx.rotateinput 1 - -;Enable scanlines with specified opacity. -lynx.scanlines 0 - -;Enable specified OpenGL shader. -lynx.shader sabr - -;Force interlaced video to be treated as progressive. -lynx.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -lynx.shader.goat.hdiv 0.50 - -;Mask pattern. -lynx.shader.goat.pat goatron - -;Enable scanlines effect. -lynx.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -lynx.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -lynx.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -lynx.special none - -;Stretch to fill screen. -lynx.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -lynx.tblur 0 - -;Accumulate color data rather than discarding it. -lynx.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -lynx.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -lynx.videoip 0 - -;Full-screen horizontal resolution. -lynx.xres 0 - -;Scaling factor for the X axis in windowed mode. -lynx.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -lynx.xscalefs 1.000000 - -;Full-screen vertical resolution. -lynx.yres 0 - -;Scaling factor for the Y axis in windowed mode. -lynx.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -lynx.yscalefs 1.000000 - -;Path to the CD BIOS -md.cdbios us_scd1_9210.bin - -;Correct the aspect ratio. -md.correct_aspect 1 - -;Disassembly font size. -md.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -md.debugger.memcharenc shift_jis - -;Enable (automatic) usage of this module. -md.enable 1 - -;Force monophonic sound output. -md.forcemono 0 - -;Automatically select appropriate input devices. -md.input.auto 1 - -;Emulated mouse sensitivity. -md.input.mouse_sensitivity 1.00 - -;Enable multitap(s). -md.input.multitap none - -;Input device for Virtual Port 1 -md.input.port1 gamepad - -;md, Virtual Port 1, 3-Button Gamepad: A -md.input.port1.gamepad.a keyboard 0x0 89 - -;md, Virtual Port 1, 3-Button Gamepad: B -md.input.port1.gamepad.b keyboard 0x0 90 - -;md, Virtual Port 1, 3-Button Gamepad: C -md.input.port1.gamepad.c keyboard 0x0 91 - -;md, Virtual Port 1, 3-Button Gamepad: DOWN ↓ -md.input.port1.gamepad.down keyboard 0x0 22 - -;md, Virtual Port 1, 3-Button Gamepad: LEFT ← -md.input.port1.gamepad.left keyboard 0x0 4 - -;md, Virtual Port 1, 3-Button Gamepad: Rapid A -md.input.port1.gamepad.rapid_a - -;md, Virtual Port 1, 3-Button Gamepad: Rapid B -md.input.port1.gamepad.rapid_b - -;md, Virtual Port 1, 3-Button Gamepad: Rapid C -md.input.port1.gamepad.rapid_c - -;md, Virtual Port 1, 3-Button Gamepad: RIGHT → -md.input.port1.gamepad.right keyboard 0x0 7 - -;md, Virtual Port 1, 3-Button Gamepad: Start -md.input.port1.gamepad.start keyboard 0x0 40 - -;md, Virtual Port 1, 3-Button Gamepad: UP ↑ -md.input.port1.gamepad.up keyboard 0x0 26 - -;md, Virtual Port 1, 2-Button Gamepad: A -md.input.port1.gamepad2.a - -;md, Virtual Port 1, 2-Button Gamepad: B -md.input.port1.gamepad2.b - -;md, Virtual Port 1, 2-Button Gamepad: DOWN ↓ -md.input.port1.gamepad2.down - -;md, Virtual Port 1, 2-Button Gamepad: LEFT ← -md.input.port1.gamepad2.left - -;md, Virtual Port 1, 2-Button Gamepad: Rapid A -md.input.port1.gamepad2.rapid_a - -;md, Virtual Port 1, 2-Button Gamepad: Rapid B -md.input.port1.gamepad2.rapid_b - -;md, Virtual Port 1, 2-Button Gamepad: RIGHT → -md.input.port1.gamepad2.right - -;md, Virtual Port 1, 2-Button Gamepad: Start -md.input.port1.gamepad2.start - -;md, Virtual Port 1, 2-Button Gamepad: UP ↑ -md.input.port1.gamepad2.up - -;md, Virtual Port 1, 6-Button Gamepad: A -md.input.port1.gamepad6.a keyboard 0x0 89 - -;md, Virtual Port 1, 6-Button Gamepad: B -md.input.port1.gamepad6.b keyboard 0x0 90 - -;md, Virtual Port 1, 6-Button Gamepad: C -md.input.port1.gamepad6.c keyboard 0x0 91 - -;md, Virtual Port 1, 6-Button Gamepad: DOWN ↓ -md.input.port1.gamepad6.down keyboard 0x0 22 - -;md, Virtual Port 1, 6-Button Gamepad: LEFT ← -md.input.port1.gamepad6.left keyboard 0x0 4 - -;md, Virtual Port 1, 6-Button Gamepad: Mode -md.input.port1.gamepad6.mode keyboard 0x0 16 - -;md, Virtual Port 1, 6-Button Gamepad: Rapid A -md.input.port1.gamepad6.rapid_a - -;md, Virtual Port 1, 6-Button Gamepad: Rapid B -md.input.port1.gamepad6.rapid_b - -;md, Virtual Port 1, 6-Button Gamepad: Rapid C -md.input.port1.gamepad6.rapid_c - -;md, Virtual Port 1, 6-Button Gamepad: Rapid X -md.input.port1.gamepad6.rapid_x - -;md, Virtual Port 1, 6-Button Gamepad: Rapid Y -md.input.port1.gamepad6.rapid_y - -;md, Virtual Port 1, 6-Button Gamepad: Rapid Z -md.input.port1.gamepad6.rapid_z - -;md, Virtual Port 1, 6-Button Gamepad: RIGHT → -md.input.port1.gamepad6.right keyboard 0x0 7 - -;md, Virtual Port 1, 6-Button Gamepad: Start -md.input.port1.gamepad6.start keyboard 0x0 40 - -;md, Virtual Port 1, 6-Button Gamepad: UP ↑ -md.input.port1.gamepad6.up keyboard 0x0 26 - -;md, Virtual Port 1, 6-Button Gamepad: X -md.input.port1.gamepad6.x keyboard 0x0 92 - -;md, Virtual Port 1, 6-Button Gamepad: Y -md.input.port1.gamepad6.y keyboard 0x0 93 - -;md, Virtual Port 1, 6-Button Gamepad: Z -md.input.port1.gamepad6.z keyboard 0x0 94 - -;md, Virtual Port 1, Sega Mega Mouse: Left Button -md.input.port1.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 1, Sega Mega Mouse: Middle Button -md.input.port1.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 1, Sega Mega Mouse: Motion Down -md.input.port1.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 1, Sega Mega Mouse: Motion Left -md.input.port1.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 1, Sega Mega Mouse: Motion Right -md.input.port1.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 1, Sega Mega Mouse: Motion Up -md.input.port1.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 1, Sega Mega Mouse: Right Button -md.input.port1.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 1, Sega Mega Mouse: Start Button -md.input.port1.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 2 -md.input.port2 gamepad - -;md, Virtual Port 2, 3-Button Gamepad: A -md.input.port2.gamepad.a - -;md, Virtual Port 2, 3-Button Gamepad: B -md.input.port2.gamepad.b - -;md, Virtual Port 2, 3-Button Gamepad: C -md.input.port2.gamepad.c - -;md, Virtual Port 2, 3-Button Gamepad: DOWN ↓ -md.input.port2.gamepad.down - -;md, Virtual Port 2, 3-Button Gamepad: LEFT ← -md.input.port2.gamepad.left - -;md, Virtual Port 2, 3-Button Gamepad: Rapid A -md.input.port2.gamepad.rapid_a - -;md, Virtual Port 2, 3-Button Gamepad: Rapid B -md.input.port2.gamepad.rapid_b - -;md, Virtual Port 2, 3-Button Gamepad: Rapid C -md.input.port2.gamepad.rapid_c - -;md, Virtual Port 2, 3-Button Gamepad: RIGHT → -md.input.port2.gamepad.right - -;md, Virtual Port 2, 3-Button Gamepad: Start -md.input.port2.gamepad.start - -;md, Virtual Port 2, 3-Button Gamepad: UP ↑ -md.input.port2.gamepad.up - -;md, Virtual Port 2, 2-Button Gamepad: A -md.input.port2.gamepad2.a - -;md, Virtual Port 2, 2-Button Gamepad: B -md.input.port2.gamepad2.b - -;md, Virtual Port 2, 2-Button Gamepad: DOWN ↓ -md.input.port2.gamepad2.down - -;md, Virtual Port 2, 2-Button Gamepad: LEFT ← -md.input.port2.gamepad2.left - -;md, Virtual Port 2, 2-Button Gamepad: Rapid A -md.input.port2.gamepad2.rapid_a - -;md, Virtual Port 2, 2-Button Gamepad: Rapid B -md.input.port2.gamepad2.rapid_b - -;md, Virtual Port 2, 2-Button Gamepad: RIGHT → -md.input.port2.gamepad2.right - -;md, Virtual Port 2, 2-Button Gamepad: Start -md.input.port2.gamepad2.start - -;md, Virtual Port 2, 2-Button Gamepad: UP ↑ -md.input.port2.gamepad2.up - -;md, Virtual Port 2, 6-Button Gamepad: A -md.input.port2.gamepad6.a - -;md, Virtual Port 2, 6-Button Gamepad: B -md.input.port2.gamepad6.b - -;md, Virtual Port 2, 6-Button Gamepad: C -md.input.port2.gamepad6.c - -;md, Virtual Port 2, 6-Button Gamepad: DOWN ↓ -md.input.port2.gamepad6.down - -;md, Virtual Port 2, 6-Button Gamepad: LEFT ← -md.input.port2.gamepad6.left - -;md, Virtual Port 2, 6-Button Gamepad: Mode -md.input.port2.gamepad6.mode - -;md, Virtual Port 2, 6-Button Gamepad: Rapid A -md.input.port2.gamepad6.rapid_a - -;md, Virtual Port 2, 6-Button Gamepad: Rapid B -md.input.port2.gamepad6.rapid_b - -;md, Virtual Port 2, 6-Button Gamepad: Rapid C -md.input.port2.gamepad6.rapid_c - -;md, Virtual Port 2, 6-Button Gamepad: Rapid X -md.input.port2.gamepad6.rapid_x - -;md, Virtual Port 2, 6-Button Gamepad: Rapid Y -md.input.port2.gamepad6.rapid_y - -;md, Virtual Port 2, 6-Button Gamepad: Rapid Z -md.input.port2.gamepad6.rapid_z - -;md, Virtual Port 2, 6-Button Gamepad: RIGHT → -md.input.port2.gamepad6.right - -;md, Virtual Port 2, 6-Button Gamepad: Start -md.input.port2.gamepad6.start - -;md, Virtual Port 2, 6-Button Gamepad: UP ↑ -md.input.port2.gamepad6.up - -;md, Virtual Port 2, 6-Button Gamepad: X -md.input.port2.gamepad6.x - -;md, Virtual Port 2, 6-Button Gamepad: Y -md.input.port2.gamepad6.y - -;md, Virtual Port 2, 6-Button Gamepad: Z -md.input.port2.gamepad6.z - -;md, Virtual Port 2, Sega Mega Mouse: Left Button -md.input.port2.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 2, Sega Mega Mouse: Middle Button -md.input.port2.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 2, Sega Mega Mouse: Motion Down -md.input.port2.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 2, Sega Mega Mouse: Motion Left -md.input.port2.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 2, Sega Mega Mouse: Motion Right -md.input.port2.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 2, Sega Mega Mouse: Motion Up -md.input.port2.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 2, Sega Mega Mouse: Right Button -md.input.port2.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 2, Sega Mega Mouse: Start Button -md.input.port2.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 3 -md.input.port3 gamepad - -;md, Virtual Port 3, 3-Button Gamepad: A -md.input.port3.gamepad.a - -;md, Virtual Port 3, 3-Button Gamepad: B -md.input.port3.gamepad.b - -;md, Virtual Port 3, 3-Button Gamepad: C -md.input.port3.gamepad.c - -;md, Virtual Port 3, 3-Button Gamepad: DOWN ↓ -md.input.port3.gamepad.down - -;md, Virtual Port 3, 3-Button Gamepad: LEFT ← -md.input.port3.gamepad.left - -;md, Virtual Port 3, 3-Button Gamepad: Rapid A -md.input.port3.gamepad.rapid_a - -;md, Virtual Port 3, 3-Button Gamepad: Rapid B -md.input.port3.gamepad.rapid_b - -;md, Virtual Port 3, 3-Button Gamepad: Rapid C -md.input.port3.gamepad.rapid_c - -;md, Virtual Port 3, 3-Button Gamepad: RIGHT → -md.input.port3.gamepad.right - -;md, Virtual Port 3, 3-Button Gamepad: Start -md.input.port3.gamepad.start - -;md, Virtual Port 3, 3-Button Gamepad: UP ↑ -md.input.port3.gamepad.up - -;md, Virtual Port 3, 2-Button Gamepad: A -md.input.port3.gamepad2.a - -;md, Virtual Port 3, 2-Button Gamepad: B -md.input.port3.gamepad2.b - -;md, Virtual Port 3, 2-Button Gamepad: DOWN ↓ -md.input.port3.gamepad2.down - -;md, Virtual Port 3, 2-Button Gamepad: LEFT ← -md.input.port3.gamepad2.left - -;md, Virtual Port 3, 2-Button Gamepad: Rapid A -md.input.port3.gamepad2.rapid_a - -;md, Virtual Port 3, 2-Button Gamepad: Rapid B -md.input.port3.gamepad2.rapid_b - -;md, Virtual Port 3, 2-Button Gamepad: RIGHT → -md.input.port3.gamepad2.right - -;md, Virtual Port 3, 2-Button Gamepad: Start -md.input.port3.gamepad2.start - -;md, Virtual Port 3, 2-Button Gamepad: UP ↑ -md.input.port3.gamepad2.up - -;md, Virtual Port 3, 6-Button Gamepad: A -md.input.port3.gamepad6.a - -;md, Virtual Port 3, 6-Button Gamepad: B -md.input.port3.gamepad6.b - -;md, Virtual Port 3, 6-Button Gamepad: C -md.input.port3.gamepad6.c - -;md, Virtual Port 3, 6-Button Gamepad: DOWN ↓ -md.input.port3.gamepad6.down - -;md, Virtual Port 3, 6-Button Gamepad: LEFT ← -md.input.port3.gamepad6.left - -;md, Virtual Port 3, 6-Button Gamepad: Mode -md.input.port3.gamepad6.mode - -;md, Virtual Port 3, 6-Button Gamepad: Rapid A -md.input.port3.gamepad6.rapid_a - -;md, Virtual Port 3, 6-Button Gamepad: Rapid B -md.input.port3.gamepad6.rapid_b - -;md, Virtual Port 3, 6-Button Gamepad: Rapid C -md.input.port3.gamepad6.rapid_c - -;md, Virtual Port 3, 6-Button Gamepad: Rapid X -md.input.port3.gamepad6.rapid_x - -;md, Virtual Port 3, 6-Button Gamepad: Rapid Y -md.input.port3.gamepad6.rapid_y - -;md, Virtual Port 3, 6-Button Gamepad: Rapid Z -md.input.port3.gamepad6.rapid_z - -;md, Virtual Port 3, 6-Button Gamepad: RIGHT → -md.input.port3.gamepad6.right - -;md, Virtual Port 3, 6-Button Gamepad: Start -md.input.port3.gamepad6.start - -;md, Virtual Port 3, 6-Button Gamepad: UP ↑ -md.input.port3.gamepad6.up - -;md, Virtual Port 3, 6-Button Gamepad: X -md.input.port3.gamepad6.x - -;md, Virtual Port 3, 6-Button Gamepad: Y -md.input.port3.gamepad6.y - -;md, Virtual Port 3, 6-Button Gamepad: Z -md.input.port3.gamepad6.z - -;md, Virtual Port 3, Sega Mega Mouse: Left Button -md.input.port3.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 3, Sega Mega Mouse: Middle Button -md.input.port3.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 3, Sega Mega Mouse: Motion Down -md.input.port3.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 3, Sega Mega Mouse: Motion Left -md.input.port3.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 3, Sega Mega Mouse: Motion Right -md.input.port3.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 3, Sega Mega Mouse: Motion Up -md.input.port3.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 3, Sega Mega Mouse: Right Button -md.input.port3.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 3, Sega Mega Mouse: Start Button -md.input.port3.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 4 -md.input.port4 gamepad - -;md, Virtual Port 4, 3-Button Gamepad: A -md.input.port4.gamepad.a - -;md, Virtual Port 4, 3-Button Gamepad: B -md.input.port4.gamepad.b - -;md, Virtual Port 4, 3-Button Gamepad: C -md.input.port4.gamepad.c - -;md, Virtual Port 4, 3-Button Gamepad: DOWN ↓ -md.input.port4.gamepad.down - -;md, Virtual Port 4, 3-Button Gamepad: LEFT ← -md.input.port4.gamepad.left - -;md, Virtual Port 4, 3-Button Gamepad: Rapid A -md.input.port4.gamepad.rapid_a - -;md, Virtual Port 4, 3-Button Gamepad: Rapid B -md.input.port4.gamepad.rapid_b - -;md, Virtual Port 4, 3-Button Gamepad: Rapid C -md.input.port4.gamepad.rapid_c - -;md, Virtual Port 4, 3-Button Gamepad: RIGHT → -md.input.port4.gamepad.right - -;md, Virtual Port 4, 3-Button Gamepad: Start -md.input.port4.gamepad.start - -;md, Virtual Port 4, 3-Button Gamepad: UP ↑ -md.input.port4.gamepad.up - -;md, Virtual Port 4, 2-Button Gamepad: A -md.input.port4.gamepad2.a - -;md, Virtual Port 4, 2-Button Gamepad: B -md.input.port4.gamepad2.b - -;md, Virtual Port 4, 2-Button Gamepad: DOWN ↓ -md.input.port4.gamepad2.down - -;md, Virtual Port 4, 2-Button Gamepad: LEFT ← -md.input.port4.gamepad2.left - -;md, Virtual Port 4, 2-Button Gamepad: Rapid A -md.input.port4.gamepad2.rapid_a - -;md, Virtual Port 4, 2-Button Gamepad: Rapid B -md.input.port4.gamepad2.rapid_b - -;md, Virtual Port 4, 2-Button Gamepad: RIGHT → -md.input.port4.gamepad2.right - -;md, Virtual Port 4, 2-Button Gamepad: Start -md.input.port4.gamepad2.start - -;md, Virtual Port 4, 2-Button Gamepad: UP ↑ -md.input.port4.gamepad2.up - -;md, Virtual Port 4, 6-Button Gamepad: A -md.input.port4.gamepad6.a - -;md, Virtual Port 4, 6-Button Gamepad: B -md.input.port4.gamepad6.b - -;md, Virtual Port 4, 6-Button Gamepad: C -md.input.port4.gamepad6.c - -;md, Virtual Port 4, 6-Button Gamepad: DOWN ↓ -md.input.port4.gamepad6.down - -;md, Virtual Port 4, 6-Button Gamepad: LEFT ← -md.input.port4.gamepad6.left - -;md, Virtual Port 4, 6-Button Gamepad: Mode -md.input.port4.gamepad6.mode - -;md, Virtual Port 4, 6-Button Gamepad: Rapid A -md.input.port4.gamepad6.rapid_a - -;md, Virtual Port 4, 6-Button Gamepad: Rapid B -md.input.port4.gamepad6.rapid_b - -;md, Virtual Port 4, 6-Button Gamepad: Rapid C -md.input.port4.gamepad6.rapid_c - -;md, Virtual Port 4, 6-Button Gamepad: Rapid X -md.input.port4.gamepad6.rapid_x - -;md, Virtual Port 4, 6-Button Gamepad: Rapid Y -md.input.port4.gamepad6.rapid_y - -;md, Virtual Port 4, 6-Button Gamepad: Rapid Z -md.input.port4.gamepad6.rapid_z - -;md, Virtual Port 4, 6-Button Gamepad: RIGHT → -md.input.port4.gamepad6.right - -;md, Virtual Port 4, 6-Button Gamepad: Start -md.input.port4.gamepad6.start - -;md, Virtual Port 4, 6-Button Gamepad: UP ↑ -md.input.port4.gamepad6.up - -;md, Virtual Port 4, 6-Button Gamepad: X -md.input.port4.gamepad6.x - -;md, Virtual Port 4, 6-Button Gamepad: Y -md.input.port4.gamepad6.y - -;md, Virtual Port 4, 6-Button Gamepad: Z -md.input.port4.gamepad6.z - -;md, Virtual Port 4, Sega Mega Mouse: Left Button -md.input.port4.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 4, Sega Mega Mouse: Middle Button -md.input.port4.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 4, Sega Mega Mouse: Motion Down -md.input.port4.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 4, Sega Mega Mouse: Motion Left -md.input.port4.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 4, Sega Mega Mouse: Motion Right -md.input.port4.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 4, Sega Mega Mouse: Motion Up -md.input.port4.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 4, Sega Mega Mouse: Right Button -md.input.port4.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 4, Sega Mega Mouse: Start Button -md.input.port4.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 5 -md.input.port5 gamepad - -;md, Virtual Port 5, 3-Button Gamepad: A -md.input.port5.gamepad.a - -;md, Virtual Port 5, 3-Button Gamepad: B -md.input.port5.gamepad.b - -;md, Virtual Port 5, 3-Button Gamepad: C -md.input.port5.gamepad.c - -;md, Virtual Port 5, 3-Button Gamepad: DOWN ↓ -md.input.port5.gamepad.down - -;md, Virtual Port 5, 3-Button Gamepad: LEFT ← -md.input.port5.gamepad.left - -;md, Virtual Port 5, 3-Button Gamepad: Rapid A -md.input.port5.gamepad.rapid_a - -;md, Virtual Port 5, 3-Button Gamepad: Rapid B -md.input.port5.gamepad.rapid_b - -;md, Virtual Port 5, 3-Button Gamepad: Rapid C -md.input.port5.gamepad.rapid_c - -;md, Virtual Port 5, 3-Button Gamepad: RIGHT → -md.input.port5.gamepad.right - -;md, Virtual Port 5, 3-Button Gamepad: Start -md.input.port5.gamepad.start - -;md, Virtual Port 5, 3-Button Gamepad: UP ↑ -md.input.port5.gamepad.up - -;md, Virtual Port 5, 2-Button Gamepad: A -md.input.port5.gamepad2.a - -;md, Virtual Port 5, 2-Button Gamepad: B -md.input.port5.gamepad2.b - -;md, Virtual Port 5, 2-Button Gamepad: DOWN ↓ -md.input.port5.gamepad2.down - -;md, Virtual Port 5, 2-Button Gamepad: LEFT ← -md.input.port5.gamepad2.left - -;md, Virtual Port 5, 2-Button Gamepad: Rapid A -md.input.port5.gamepad2.rapid_a - -;md, Virtual Port 5, 2-Button Gamepad: Rapid B -md.input.port5.gamepad2.rapid_b - -;md, Virtual Port 5, 2-Button Gamepad: RIGHT → -md.input.port5.gamepad2.right - -;md, Virtual Port 5, 2-Button Gamepad: Start -md.input.port5.gamepad2.start - -;md, Virtual Port 5, 2-Button Gamepad: UP ↑ -md.input.port5.gamepad2.up - -;md, Virtual Port 5, 6-Button Gamepad: A -md.input.port5.gamepad6.a - -;md, Virtual Port 5, 6-Button Gamepad: B -md.input.port5.gamepad6.b - -;md, Virtual Port 5, 6-Button Gamepad: C -md.input.port5.gamepad6.c - -;md, Virtual Port 5, 6-Button Gamepad: DOWN ↓ -md.input.port5.gamepad6.down - -;md, Virtual Port 5, 6-Button Gamepad: LEFT ← -md.input.port5.gamepad6.left - -;md, Virtual Port 5, 6-Button Gamepad: Mode -md.input.port5.gamepad6.mode - -;md, Virtual Port 5, 6-Button Gamepad: Rapid A -md.input.port5.gamepad6.rapid_a - -;md, Virtual Port 5, 6-Button Gamepad: Rapid B -md.input.port5.gamepad6.rapid_b - -;md, Virtual Port 5, 6-Button Gamepad: Rapid C -md.input.port5.gamepad6.rapid_c - -;md, Virtual Port 5, 6-Button Gamepad: Rapid X -md.input.port5.gamepad6.rapid_x - -;md, Virtual Port 5, 6-Button Gamepad: Rapid Y -md.input.port5.gamepad6.rapid_y - -;md, Virtual Port 5, 6-Button Gamepad: Rapid Z -md.input.port5.gamepad6.rapid_z - -;md, Virtual Port 5, 6-Button Gamepad: RIGHT → -md.input.port5.gamepad6.right - -;md, Virtual Port 5, 6-Button Gamepad: Start -md.input.port5.gamepad6.start - -;md, Virtual Port 5, 6-Button Gamepad: UP ↑ -md.input.port5.gamepad6.up - -;md, Virtual Port 5, 6-Button Gamepad: X -md.input.port5.gamepad6.x - -;md, Virtual Port 5, 6-Button Gamepad: Y -md.input.port5.gamepad6.y - -;md, Virtual Port 5, 6-Button Gamepad: Z -md.input.port5.gamepad6.z - -;md, Virtual Port 5, Sega Mega Mouse: Left Button -md.input.port5.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 5, Sega Mega Mouse: Middle Button -md.input.port5.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 5, Sega Mega Mouse: Motion Down -md.input.port5.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 5, Sega Mega Mouse: Motion Left -md.input.port5.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 5, Sega Mega Mouse: Motion Right -md.input.port5.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 5, Sega Mega Mouse: Motion Up -md.input.port5.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 5, Sega Mega Mouse: Right Button -md.input.port5.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 5, Sega Mega Mouse: Start Button -md.input.port5.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 6 -md.input.port6 gamepad - -;md, Virtual Port 6, 3-Button Gamepad: A -md.input.port6.gamepad.a - -;md, Virtual Port 6, 3-Button Gamepad: B -md.input.port6.gamepad.b - -;md, Virtual Port 6, 3-Button Gamepad: C -md.input.port6.gamepad.c - -;md, Virtual Port 6, 3-Button Gamepad: DOWN ↓ -md.input.port6.gamepad.down - -;md, Virtual Port 6, 3-Button Gamepad: LEFT ← -md.input.port6.gamepad.left - -;md, Virtual Port 6, 3-Button Gamepad: Rapid A -md.input.port6.gamepad.rapid_a - -;md, Virtual Port 6, 3-Button Gamepad: Rapid B -md.input.port6.gamepad.rapid_b - -;md, Virtual Port 6, 3-Button Gamepad: Rapid C -md.input.port6.gamepad.rapid_c - -;md, Virtual Port 6, 3-Button Gamepad: RIGHT → -md.input.port6.gamepad.right - -;md, Virtual Port 6, 3-Button Gamepad: Start -md.input.port6.gamepad.start - -;md, Virtual Port 6, 3-Button Gamepad: UP ↑ -md.input.port6.gamepad.up - -;md, Virtual Port 6, 2-Button Gamepad: A -md.input.port6.gamepad2.a - -;md, Virtual Port 6, 2-Button Gamepad: B -md.input.port6.gamepad2.b - -;md, Virtual Port 6, 2-Button Gamepad: DOWN ↓ -md.input.port6.gamepad2.down - -;md, Virtual Port 6, 2-Button Gamepad: LEFT ← -md.input.port6.gamepad2.left - -;md, Virtual Port 6, 2-Button Gamepad: Rapid A -md.input.port6.gamepad2.rapid_a - -;md, Virtual Port 6, 2-Button Gamepad: Rapid B -md.input.port6.gamepad2.rapid_b - -;md, Virtual Port 6, 2-Button Gamepad: RIGHT → -md.input.port6.gamepad2.right - -;md, Virtual Port 6, 2-Button Gamepad: Start -md.input.port6.gamepad2.start - -;md, Virtual Port 6, 2-Button Gamepad: UP ↑ -md.input.port6.gamepad2.up - -;md, Virtual Port 6, 6-Button Gamepad: A -md.input.port6.gamepad6.a - -;md, Virtual Port 6, 6-Button Gamepad: B -md.input.port6.gamepad6.b - -;md, Virtual Port 6, 6-Button Gamepad: C -md.input.port6.gamepad6.c - -;md, Virtual Port 6, 6-Button Gamepad: DOWN ↓ -md.input.port6.gamepad6.down - -;md, Virtual Port 6, 6-Button Gamepad: LEFT ← -md.input.port6.gamepad6.left - -;md, Virtual Port 6, 6-Button Gamepad: Mode -md.input.port6.gamepad6.mode - -;md, Virtual Port 6, 6-Button Gamepad: Rapid A -md.input.port6.gamepad6.rapid_a - -;md, Virtual Port 6, 6-Button Gamepad: Rapid B -md.input.port6.gamepad6.rapid_b - -;md, Virtual Port 6, 6-Button Gamepad: Rapid C -md.input.port6.gamepad6.rapid_c - -;md, Virtual Port 6, 6-Button Gamepad: Rapid X -md.input.port6.gamepad6.rapid_x - -;md, Virtual Port 6, 6-Button Gamepad: Rapid Y -md.input.port6.gamepad6.rapid_y - -;md, Virtual Port 6, 6-Button Gamepad: Rapid Z -md.input.port6.gamepad6.rapid_z - -;md, Virtual Port 6, 6-Button Gamepad: RIGHT → -md.input.port6.gamepad6.right - -;md, Virtual Port 6, 6-Button Gamepad: Start -md.input.port6.gamepad6.start - -;md, Virtual Port 6, 6-Button Gamepad: UP ↑ -md.input.port6.gamepad6.up - -;md, Virtual Port 6, 6-Button Gamepad: X -md.input.port6.gamepad6.x - -;md, Virtual Port 6, 6-Button Gamepad: Y -md.input.port6.gamepad6.y - -;md, Virtual Port 6, 6-Button Gamepad: Z -md.input.port6.gamepad6.z - -;md, Virtual Port 6, Sega Mega Mouse: Left Button -md.input.port6.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 6, Sega Mega Mouse: Middle Button -md.input.port6.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 6, Sega Mega Mouse: Motion Down -md.input.port6.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 6, Sega Mega Mouse: Motion Left -md.input.port6.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 6, Sega Mega Mouse: Motion Right -md.input.port6.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 6, Sega Mega Mouse: Motion Up -md.input.port6.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 6, Sega Mega Mouse: Right Button -md.input.port6.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 6, Sega Mega Mouse: Start Button -md.input.port6.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 7 -md.input.port7 gamepad - -;md, Virtual Port 7, 3-Button Gamepad: A -md.input.port7.gamepad.a - -;md, Virtual Port 7, 3-Button Gamepad: B -md.input.port7.gamepad.b - -;md, Virtual Port 7, 3-Button Gamepad: C -md.input.port7.gamepad.c - -;md, Virtual Port 7, 3-Button Gamepad: DOWN ↓ -md.input.port7.gamepad.down - -;md, Virtual Port 7, 3-Button Gamepad: LEFT ← -md.input.port7.gamepad.left - -;md, Virtual Port 7, 3-Button Gamepad: Rapid A -md.input.port7.gamepad.rapid_a - -;md, Virtual Port 7, 3-Button Gamepad: Rapid B -md.input.port7.gamepad.rapid_b - -;md, Virtual Port 7, 3-Button Gamepad: Rapid C -md.input.port7.gamepad.rapid_c - -;md, Virtual Port 7, 3-Button Gamepad: RIGHT → -md.input.port7.gamepad.right - -;md, Virtual Port 7, 3-Button Gamepad: Start -md.input.port7.gamepad.start - -;md, Virtual Port 7, 3-Button Gamepad: UP ↑ -md.input.port7.gamepad.up - -;md, Virtual Port 7, 2-Button Gamepad: A -md.input.port7.gamepad2.a - -;md, Virtual Port 7, 2-Button Gamepad: B -md.input.port7.gamepad2.b - -;md, Virtual Port 7, 2-Button Gamepad: DOWN ↓ -md.input.port7.gamepad2.down - -;md, Virtual Port 7, 2-Button Gamepad: LEFT ← -md.input.port7.gamepad2.left - -;md, Virtual Port 7, 2-Button Gamepad: Rapid A -md.input.port7.gamepad2.rapid_a - -;md, Virtual Port 7, 2-Button Gamepad: Rapid B -md.input.port7.gamepad2.rapid_b - -;md, Virtual Port 7, 2-Button Gamepad: RIGHT → -md.input.port7.gamepad2.right - -;md, Virtual Port 7, 2-Button Gamepad: Start -md.input.port7.gamepad2.start - -;md, Virtual Port 7, 2-Button Gamepad: UP ↑ -md.input.port7.gamepad2.up - -;md, Virtual Port 7, 6-Button Gamepad: A -md.input.port7.gamepad6.a - -;md, Virtual Port 7, 6-Button Gamepad: B -md.input.port7.gamepad6.b - -;md, Virtual Port 7, 6-Button Gamepad: C -md.input.port7.gamepad6.c - -;md, Virtual Port 7, 6-Button Gamepad: DOWN ↓ -md.input.port7.gamepad6.down - -;md, Virtual Port 7, 6-Button Gamepad: LEFT ← -md.input.port7.gamepad6.left - -;md, Virtual Port 7, 6-Button Gamepad: Mode -md.input.port7.gamepad6.mode - -;md, Virtual Port 7, 6-Button Gamepad: Rapid A -md.input.port7.gamepad6.rapid_a - -;md, Virtual Port 7, 6-Button Gamepad: Rapid B -md.input.port7.gamepad6.rapid_b - -;md, Virtual Port 7, 6-Button Gamepad: Rapid C -md.input.port7.gamepad6.rapid_c - -;md, Virtual Port 7, 6-Button Gamepad: Rapid X -md.input.port7.gamepad6.rapid_x - -;md, Virtual Port 7, 6-Button Gamepad: Rapid Y -md.input.port7.gamepad6.rapid_y - -;md, Virtual Port 7, 6-Button Gamepad: Rapid Z -md.input.port7.gamepad6.rapid_z - -;md, Virtual Port 7, 6-Button Gamepad: RIGHT → -md.input.port7.gamepad6.right - -;md, Virtual Port 7, 6-Button Gamepad: Start -md.input.port7.gamepad6.start - -;md, Virtual Port 7, 6-Button Gamepad: UP ↑ -md.input.port7.gamepad6.up - -;md, Virtual Port 7, 6-Button Gamepad: X -md.input.port7.gamepad6.x - -;md, Virtual Port 7, 6-Button Gamepad: Y -md.input.port7.gamepad6.y - -;md, Virtual Port 7, 6-Button Gamepad: Z -md.input.port7.gamepad6.z - -;md, Virtual Port 7, Sega Mega Mouse: Left Button -md.input.port7.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 7, Sega Mega Mouse: Middle Button -md.input.port7.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 7, Sega Mega Mouse: Motion Down -md.input.port7.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 7, Sega Mega Mouse: Motion Left -md.input.port7.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 7, Sega Mega Mouse: Motion Right -md.input.port7.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 7, Sega Mega Mouse: Motion Up -md.input.port7.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 7, Sega Mega Mouse: Right Button -md.input.port7.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 7, Sega Mega Mouse: Start Button -md.input.port7.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 8 -md.input.port8 gamepad - -;md, Virtual Port 8, 3-Button Gamepad: A -md.input.port8.gamepad.a - -;md, Virtual Port 8, 3-Button Gamepad: B -md.input.port8.gamepad.b - -;md, Virtual Port 8, 3-Button Gamepad: C -md.input.port8.gamepad.c - -;md, Virtual Port 8, 3-Button Gamepad: DOWN ↓ -md.input.port8.gamepad.down - -;md, Virtual Port 8, 3-Button Gamepad: LEFT ← -md.input.port8.gamepad.left - -;md, Virtual Port 8, 3-Button Gamepad: Rapid A -md.input.port8.gamepad.rapid_a - -;md, Virtual Port 8, 3-Button Gamepad: Rapid B -md.input.port8.gamepad.rapid_b - -;md, Virtual Port 8, 3-Button Gamepad: Rapid C -md.input.port8.gamepad.rapid_c - -;md, Virtual Port 8, 3-Button Gamepad: RIGHT → -md.input.port8.gamepad.right - -;md, Virtual Port 8, 3-Button Gamepad: Start -md.input.port8.gamepad.start - -;md, Virtual Port 8, 3-Button Gamepad: UP ↑ -md.input.port8.gamepad.up - -;md, Virtual Port 8, 2-Button Gamepad: A -md.input.port8.gamepad2.a - -;md, Virtual Port 8, 2-Button Gamepad: B -md.input.port8.gamepad2.b - -;md, Virtual Port 8, 2-Button Gamepad: DOWN ↓ -md.input.port8.gamepad2.down - -;md, Virtual Port 8, 2-Button Gamepad: LEFT ← -md.input.port8.gamepad2.left - -;md, Virtual Port 8, 2-Button Gamepad: Rapid A -md.input.port8.gamepad2.rapid_a - -;md, Virtual Port 8, 2-Button Gamepad: Rapid B -md.input.port8.gamepad2.rapid_b - -;md, Virtual Port 8, 2-Button Gamepad: RIGHT → -md.input.port8.gamepad2.right - -;md, Virtual Port 8, 2-Button Gamepad: Start -md.input.port8.gamepad2.start - -;md, Virtual Port 8, 2-Button Gamepad: UP ↑ -md.input.port8.gamepad2.up - -;md, Virtual Port 8, 6-Button Gamepad: A -md.input.port8.gamepad6.a - -;md, Virtual Port 8, 6-Button Gamepad: B -md.input.port8.gamepad6.b - -;md, Virtual Port 8, 6-Button Gamepad: C -md.input.port8.gamepad6.c - -;md, Virtual Port 8, 6-Button Gamepad: DOWN ↓ -md.input.port8.gamepad6.down - -;md, Virtual Port 8, 6-Button Gamepad: LEFT ← -md.input.port8.gamepad6.left - -;md, Virtual Port 8, 6-Button Gamepad: Mode -md.input.port8.gamepad6.mode - -;md, Virtual Port 8, 6-Button Gamepad: Rapid A -md.input.port8.gamepad6.rapid_a - -;md, Virtual Port 8, 6-Button Gamepad: Rapid B -md.input.port8.gamepad6.rapid_b - -;md, Virtual Port 8, 6-Button Gamepad: Rapid C -md.input.port8.gamepad6.rapid_c - -;md, Virtual Port 8, 6-Button Gamepad: Rapid X -md.input.port8.gamepad6.rapid_x - -;md, Virtual Port 8, 6-Button Gamepad: Rapid Y -md.input.port8.gamepad6.rapid_y - -;md, Virtual Port 8, 6-Button Gamepad: Rapid Z -md.input.port8.gamepad6.rapid_z - -;md, Virtual Port 8, 6-Button Gamepad: RIGHT → -md.input.port8.gamepad6.right - -;md, Virtual Port 8, 6-Button Gamepad: Start -md.input.port8.gamepad6.start - -;md, Virtual Port 8, 6-Button Gamepad: UP ↑ -md.input.port8.gamepad6.up - -;md, Virtual Port 8, 6-Button Gamepad: X -md.input.port8.gamepad6.x - -;md, Virtual Port 8, 6-Button Gamepad: Y -md.input.port8.gamepad6.y - -;md, Virtual Port 8, 6-Button Gamepad: Z -md.input.port8.gamepad6.z - -;md, Virtual Port 8, Sega Mega Mouse: Left Button -md.input.port8.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 8, Sega Mega Mouse: Middle Button -md.input.port8.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 8, Sega Mega Mouse: Motion Down -md.input.port8.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 8, Sega Mega Mouse: Motion Left -md.input.port8.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 8, Sega Mega Mouse: Motion Right -md.input.port8.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 8, Sega Mega Mouse: Motion Up -md.input.port8.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 8, Sega Mega Mouse: Right Button -md.input.port8.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 8, Sega Mega Mouse: Start Button -md.input.port8.megamouse.start keyboard 0x0 40 - -;Emulate the specified region's Genesis/MegaDrive -md.region game - -;Region reported to the game. -md.reported_region same - -;Enable scanlines with specified opacity. -md.scanlines 0 - -;Enable specified OpenGL shader. -md.shader none - -;Force interlaced video to be treated as progressive. -md.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -md.shader.goat.hdiv 0.50 - -;Mask pattern. -md.shader.goat.pat goatron - -;Enable scanlines effect. -md.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -md.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -md.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -md.special none - -;Stretch to fill screen. -md.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -md.tblur 0 - -;Accumulate color data rather than discarding it. -md.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -md.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -md.videoip 1 - -;Full-screen horizontal resolution. -md.xres 0 - -;Scaling factor for the X axis in windowed mode. -md.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -md.xscalefs 1.000000 - -;Full-screen vertical resolution. -md.yres 0 - -;Scaling factor for the Y axis in windowed mode. -md.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -md.yscalefs 1.000000 - -;Clip left+right 8 pixel columns. -nes.clipsides 0 - -;Correct the aspect ratio. -nes.correct_aspect 0 - -;Disassembly font size. -nes.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -nes.debugger.memcharenc cp437 - -;Enable (automatic) usage of this module. -nes.enable 1 - -;Scan filename for (U),(J),(E),etc. strings to en/dis-able PAL emulation. -nes.fnscan 1 - -;Enable Game Genie emulation. -nes.gg 0 - -;Path to Game Genie ROM image. -nes.ggrom gg.rom - -;Input device for Famicom Expansion Port -nes.input.fcexp none - -;nes, Famicom Expansion Port, Arkanoid Paddle: Button -nes.input.fcexp.arkanoid.button mouse 0x0 button_left - -;nes, Famicom Expansion Port, Arkanoid Paddle: X Axis -nes.input.fcexp.arkanoid.x_axis mouse 0x0 cursor_x-+ - -;nes, Famicom Expansion Port, Family Keyboard: 0 -nes.input.fcexp.fkb.0 keyboard 0x0 39 - -;nes, Famicom Expansion Port, Family Keyboard: 1 -nes.input.fcexp.fkb.1 keyboard 0x0 30 - -;nes, Famicom Expansion Port, Family Keyboard: 2 -nes.input.fcexp.fkb.2 keyboard 0x0 31 - -;nes, Famicom Expansion Port, Family Keyboard: 3 -nes.input.fcexp.fkb.3 keyboard 0x0 32 - -;nes, Famicom Expansion Port, Family Keyboard: 4 -nes.input.fcexp.fkb.4 keyboard 0x0 33 - -;nes, Famicom Expansion Port, Family Keyboard: 5 -nes.input.fcexp.fkb.5 keyboard 0x0 34 - -;nes, Famicom Expansion Port, Family Keyboard: 6 -nes.input.fcexp.fkb.6 keyboard 0x0 35 - -;nes, Famicom Expansion Port, Family Keyboard: 7 -nes.input.fcexp.fkb.7 keyboard 0x0 36 - -;nes, Famicom Expansion Port, Family Keyboard: 8 -nes.input.fcexp.fkb.8 keyboard 0x0 37 - -;nes, Famicom Expansion Port, Family Keyboard: 9 -nes.input.fcexp.fkb.9 keyboard 0x0 38 - -;nes, Famicom Expansion Port, Family Keyboard: A -nes.input.fcexp.fkb.a keyboard 0x0 4 - -;nes, Famicom Expansion Port, Family Keyboard: @ -nes.input.fcexp.fkb.at keyboard 0x0 53 - -;nes, Famicom Expansion Port, Family Keyboard: B -nes.input.fcexp.fkb.b keyboard 0x0 5 - -;nes, Famicom Expansion Port, Family Keyboard: \ -nes.input.fcexp.fkb.backslash keyboard 0x0 49 - -;nes, Famicom Expansion Port, Family Keyboard: C -nes.input.fcexp.fkb.c keyboard 0x0 6 - -;nes, Famicom Expansion Port, Family Keyboard: ^ -nes.input.fcexp.fkb.caret keyboard 0x0 46 - -;nes, Famicom Expansion Port, Family Keyboard: CLR -nes.input.fcexp.fkb.clear keyboard 0x0 76 - -;nes, Famicom Expansion Port, Family Keyboard: : -nes.input.fcexp.fkb.colon keyboard 0x0 52 - -;nes, Famicom Expansion Port, Family Keyboard: , -nes.input.fcexp.fkb.comma keyboard 0x0 54 - -;nes, Famicom Expansion Port, Family Keyboard: CTR -nes.input.fcexp.fkb.ctrl keyboard 0x0 224 - -;nes, Famicom Expansion Port, Family Keyboard: D -nes.input.fcexp.fkb.d keyboard 0x0 7 - -;nes, Famicom Expansion Port, Family Keyboard: DEL -nes.input.fcexp.fkb.delete keyboard 0x0 78 - -;nes, Famicom Expansion Port, Family Keyboard: DOWN -nes.input.fcexp.fkb.down keyboard 0x0 81 - -;nes, Famicom Expansion Port, Family Keyboard: E -nes.input.fcexp.fkb.e keyboard 0x0 8 - -;nes, Famicom Expansion Port, Family Keyboard: Empty -nes.input.fcexp.fkb.empty keyboard 0x0 230 - -;nes, Famicom Expansion Port, Family Keyboard: ESC -nes.input.fcexp.fkb.escape keyboard 0x0 41 - -;nes, Famicom Expansion Port, Family Keyboard: F -nes.input.fcexp.fkb.f keyboard 0x0 9 - -;nes, Famicom Expansion Port, Family Keyboard: F1 -nes.input.fcexp.fkb.f1 keyboard 0x0 58 - -;nes, Famicom Expansion Port, Family Keyboard: F2 -nes.input.fcexp.fkb.f2 keyboard 0x0 59 - -;nes, Famicom Expansion Port, Family Keyboard: F3 -nes.input.fcexp.fkb.f3 keyboard 0x0 60 - -;nes, Famicom Expansion Port, Family Keyboard: F4 -nes.input.fcexp.fkb.f4 keyboard 0x0 61 - -;nes, Famicom Expansion Port, Family Keyboard: F5 -nes.input.fcexp.fkb.f5 keyboard 0x0 62 - -;nes, Famicom Expansion Port, Family Keyboard: F6 -nes.input.fcexp.fkb.f6 keyboard 0x0 63 - -;nes, Famicom Expansion Port, Family Keyboard: F7 -nes.input.fcexp.fkb.f7 keyboard 0x0 64 - -;nes, Famicom Expansion Port, Family Keyboard: F8 -nes.input.fcexp.fkb.f8 keyboard 0x0 65 - -;nes, Famicom Expansion Port, Family Keyboard: G -nes.input.fcexp.fkb.g keyboard 0x0 10 - -;nes, Famicom Expansion Port, Family Keyboard: GRPH -nes.input.fcexp.fkb.graph keyboard 0x0 226 - -;nes, Famicom Expansion Port, Family Keyboard: H -nes.input.fcexp.fkb.h keyboard 0x0 11 - -;nes, Famicom Expansion Port, Family Keyboard: I -nes.input.fcexp.fkb.i keyboard 0x0 12 - -;nes, Famicom Expansion Port, Family Keyboard: INS -nes.input.fcexp.fkb.insert keyboard 0x0 77 - -;nes, Famicom Expansion Port, Family Keyboard: J -nes.input.fcexp.fkb.j keyboard 0x0 13 - -;nes, Famicom Expansion Port, Family Keyboard: K -nes.input.fcexp.fkb.k keyboard 0x0 14 - -;nes, Famicom Expansion Port, Family Keyboard: カナ -nes.input.fcexp.fkb.kana keyboard 0x0 73 - -;nes, Famicom Expansion Port, Family Keyboard: L -nes.input.fcexp.fkb.l keyboard 0x0 15 - -;nes, Famicom Expansion Port, Family Keyboard: LEFT -nes.input.fcexp.fkb.left keyboard 0x0 80 - -;nes, Famicom Expansion Port, Family Keyboard: [ -nes.input.fcexp.fkb.left_bracket keyboard 0x0 47 - -;nes, Famicom Expansion Port, Family Keyboard: Left SHIFT -nes.input.fcexp.fkb.left_shift keyboard 0x0 225 - -;nes, Famicom Expansion Port, Family Keyboard: M -nes.input.fcexp.fkb.m keyboard 0x0 16 - -;nes, Famicom Expansion Port, Family Keyboard: - -nes.input.fcexp.fkb.minus keyboard 0x0 45 - -;nes, Famicom Expansion Port, Family Keyboard: N -nes.input.fcexp.fkb.n keyboard 0x0 17 - -;nes, Famicom Expansion Port, Family Keyboard: O -nes.input.fcexp.fkb.o keyboard 0x0 18 - -;nes, Famicom Expansion Port, Family Keyboard: P -nes.input.fcexp.fkb.p keyboard 0x0 19 - -;nes, Famicom Expansion Port, Family Keyboard: . -nes.input.fcexp.fkb.period keyboard 0x0 55 - -;nes, Famicom Expansion Port, Family Keyboard: Q -nes.input.fcexp.fkb.q keyboard 0x0 20 - -;nes, Famicom Expansion Port, Family Keyboard: R -nes.input.fcexp.fkb.r keyboard 0x0 21 - -;nes, Famicom Expansion Port, Family Keyboard: RETURN -nes.input.fcexp.fkb.return keyboard 0x0 40 - -;nes, Famicom Expansion Port, Family Keyboard: RIGHT -nes.input.fcexp.fkb.right keyboard 0x0 79 - -;nes, Famicom Expansion Port, Family Keyboard: ] -nes.input.fcexp.fkb.right_bracket keyboard 0x0 48 - -;nes, Famicom Expansion Port, Family Keyboard: Right SHIFT -nes.input.fcexp.fkb.right_shift keyboard 0x0 229 - -;nes, Famicom Expansion Port, Family Keyboard: S -nes.input.fcexp.fkb.s keyboard 0x0 22 - -;nes, Famicom Expansion Port, Family Keyboard: ; -nes.input.fcexp.fkb.semicolon keyboard 0x0 51 - -;nes, Famicom Expansion Port, Family Keyboard: / -nes.input.fcexp.fkb.slash keyboard 0x0 56 - -;nes, Famicom Expansion Port, Family Keyboard: SPACE -nes.input.fcexp.fkb.space keyboard 0x0 44 - -;nes, Famicom Expansion Port, Family Keyboard: STOP -nes.input.fcexp.fkb.stop keyboard 0x0 42 - -;nes, Famicom Expansion Port, Family Keyboard: T -nes.input.fcexp.fkb.t keyboard 0x0 23 - -;nes, Famicom Expansion Port, Family Keyboard: U -nes.input.fcexp.fkb.u keyboard 0x0 24 - -;nes, Famicom Expansion Port, Family Keyboard: UP -nes.input.fcexp.fkb.up keyboard 0x0 82 - -;nes, Famicom Expansion Port, Family Keyboard: V -nes.input.fcexp.fkb.v keyboard 0x0 25 - -;nes, Famicom Expansion Port, Family Keyboard: W -nes.input.fcexp.fkb.w keyboard 0x0 26 - -;nes, Famicom Expansion Port, Family Keyboard: X -nes.input.fcexp.fkb.x keyboard 0x0 27 - -;nes, Famicom Expansion Port, Family Keyboard: Y -nes.input.fcexp.fkb.y keyboard 0x0 28 - -;nes, Famicom Expansion Port, Family Keyboard: Z -nes.input.fcexp.fkb.z keyboard 0x0 29 - -;nes, Famicom Expansion Port, Family Trainer Side A: 1 -nes.input.fcexp.ftrainera.1 keyboard 0x0 18 - -;nes, Famicom Expansion Port, Family Trainer Side A: 10 -nes.input.fcexp.ftrainera.10 keyboard 0x0 54 - -;nes, Famicom Expansion Port, Family Trainer Side A: 11 -nes.input.fcexp.ftrainera.11 keyboard 0x0 55 - -;nes, Famicom Expansion Port, Family Trainer Side A: 12 -nes.input.fcexp.ftrainera.12 keyboard 0x0 56 - -;nes, Famicom Expansion Port, Family Trainer Side A: 2 -nes.input.fcexp.ftrainera.2 keyboard 0x0 19 - -;nes, Famicom Expansion Port, Family Trainer Side A: 3 -nes.input.fcexp.ftrainera.3 keyboard 0x0 47 - -;nes, Famicom Expansion Port, Family Trainer Side A: 4 -nes.input.fcexp.ftrainera.4 keyboard 0x0 48 - -;nes, Famicom Expansion Port, Family Trainer Side A: 5 -nes.input.fcexp.ftrainera.5 keyboard 0x0 14 - -;nes, Famicom Expansion Port, Family Trainer Side A: 6 -nes.input.fcexp.ftrainera.6 keyboard 0x0 15 - -;nes, Famicom Expansion Port, Family Trainer Side A: 7 -nes.input.fcexp.ftrainera.7 keyboard 0x0 51 - -;nes, Famicom Expansion Port, Family Trainer Side A: 8 -nes.input.fcexp.ftrainera.8 keyboard 0x0 52 - -;nes, Famicom Expansion Port, Family Trainer Side A: 9 -nes.input.fcexp.ftrainera.9 keyboard 0x0 16 - -;nes, Famicom Expansion Port, Family Trainer Side B: 1 -nes.input.fcexp.ftrainerb.1 keyboard 0x0 18 - -;nes, Famicom Expansion Port, Family Trainer Side B: 10 -nes.input.fcexp.ftrainerb.10 keyboard 0x0 54 - -;nes, Famicom Expansion Port, Family Trainer Side B: 11 -nes.input.fcexp.ftrainerb.11 keyboard 0x0 55 - -;nes, Famicom Expansion Port, Family Trainer Side B: 12 -nes.input.fcexp.ftrainerb.12 keyboard 0x0 56 - -;nes, Famicom Expansion Port, Family Trainer Side B: 2 -nes.input.fcexp.ftrainerb.2 keyboard 0x0 19 - -;nes, Famicom Expansion Port, Family Trainer Side B: 3 -nes.input.fcexp.ftrainerb.3 keyboard 0x0 47 - -;nes, Famicom Expansion Port, Family Trainer Side B: 4 -nes.input.fcexp.ftrainerb.4 keyboard 0x0 48 - -;nes, Famicom Expansion Port, Family Trainer Side B: 5 -nes.input.fcexp.ftrainerb.5 keyboard 0x0 14 - -;nes, Famicom Expansion Port, Family Trainer Side B: 6 -nes.input.fcexp.ftrainerb.6 keyboard 0x0 15 - -;nes, Famicom Expansion Port, Family Trainer Side B: 7 -nes.input.fcexp.ftrainerb.7 keyboard 0x0 51 - -;nes, Famicom Expansion Port, Family Trainer Side B: 8 -nes.input.fcexp.ftrainerb.8 keyboard 0x0 52 - -;nes, Famicom Expansion Port, Family Trainer Side B: 9 -nes.input.fcexp.ftrainerb.9 keyboard 0x0 16 - -;nes, Famicom Expansion Port, Hypershot Paddles: I, JUMP -nes.input.fcexp.hypershot.i_jump keyboard 0x0 26 - -;nes, Famicom Expansion Port, Hypershot Paddles: I, RUN -nes.input.fcexp.hypershot.i_run keyboard 0x0 20 - -;nes, Famicom Expansion Port, Hypershot Paddles: II, JUMP -nes.input.fcexp.hypershot.ii_jump keyboard 0x0 21 - -;nes, Famicom Expansion Port, Hypershot Paddles: II, RUN -nes.input.fcexp.hypershot.ii_run keyboard 0x0 8 - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid I, JUMP -nes.input.fcexp.hypershot.rapid_i_jump - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid I, RUN -nes.input.fcexp.hypershot.rapid_i_run - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid II, JUMP -nes.input.fcexp.hypershot.rapid_ii_jump - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid II, RUN -nes.input.fcexp.hypershot.rapid_ii_run - -;nes, Famicom Expansion Port, Mahjong Controller: 1 -nes.input.fcexp.mahjong.1 keyboard 0x0 20 - -;nes, Famicom Expansion Port, Mahjong Controller: 10 -nes.input.fcexp.mahjong.10 keyboard 0x0 10 - -;nes, Famicom Expansion Port, Mahjong Controller: 11 -nes.input.fcexp.mahjong.11 keyboard 0x0 11 - -;nes, Famicom Expansion Port, Mahjong Controller: 12 -nes.input.fcexp.mahjong.12 keyboard 0x0 13 - -;nes, Famicom Expansion Port, Mahjong Controller: 13 -nes.input.fcexp.mahjong.13 keyboard 0x0 14 - -;nes, Famicom Expansion Port, Mahjong Controller: 14 -nes.input.fcexp.mahjong.14 keyboard 0x0 15 - -;nes, Famicom Expansion Port, Mahjong Controller: 15 -nes.input.fcexp.mahjong.15 keyboard 0x0 29 - -;nes, Famicom Expansion Port, Mahjong Controller: 16 -nes.input.fcexp.mahjong.16 keyboard 0x0 27 - -;nes, Famicom Expansion Port, Mahjong Controller: 17 -nes.input.fcexp.mahjong.17 keyboard 0x0 6 - -;nes, Famicom Expansion Port, Mahjong Controller: 18 -nes.input.fcexp.mahjong.18 keyboard 0x0 25 - -;nes, Famicom Expansion Port, Mahjong Controller: 19 -nes.input.fcexp.mahjong.19 keyboard 0x0 5 - -;nes, Famicom Expansion Port, Mahjong Controller: 2 -nes.input.fcexp.mahjong.2 keyboard 0x0 26 - -;nes, Famicom Expansion Port, Mahjong Controller: 20 -nes.input.fcexp.mahjong.20 keyboard 0x0 17 - -;nes, Famicom Expansion Port, Mahjong Controller: 21 -nes.input.fcexp.mahjong.21 keyboard 0x0 16 - -;nes, Famicom Expansion Port, Mahjong Controller: 3 -nes.input.fcexp.mahjong.3 keyboard 0x0 8 - -;nes, Famicom Expansion Port, Mahjong Controller: 4 -nes.input.fcexp.mahjong.4 keyboard 0x0 21 - -;nes, Famicom Expansion Port, Mahjong Controller: 5 -nes.input.fcexp.mahjong.5 keyboard 0x0 23 - -;nes, Famicom Expansion Port, Mahjong Controller: 6 -nes.input.fcexp.mahjong.6 keyboard 0x0 4 - -;nes, Famicom Expansion Port, Mahjong Controller: 7 -nes.input.fcexp.mahjong.7 keyboard 0x0 22 - -;nes, Famicom Expansion Port, Mahjong Controller: 8 -nes.input.fcexp.mahjong.8 keyboard 0x0 7 - -;nes, Famicom Expansion Port, Mahjong Controller: 9 -nes.input.fcexp.mahjong.9 keyboard 0x0 9 - -;nes, Famicom Expansion Port, Oeka Kids Tablet: Button -nes.input.fcexp.oekakids.button mouse 0x0 button_left - -;nes, Famicom Expansion Port, Oeka Kids Tablet: X Axis -nes.input.fcexp.oekakids.x_axis mouse 0x0 cursor_x-+ - -;nes, Famicom Expansion Port, Oeka Kids Tablet: Y Axis -nes.input.fcexp.oekakids.y_axis mouse 0x0 cursor_y-+ - -;nes, Famicom Expansion Port, Party Tap: Buzzer 1 -nes.input.fcexp.partytap.buzzer_1 keyboard 0x0 20 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 2 -nes.input.fcexp.partytap.buzzer_2 keyboard 0x0 26 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 3 -nes.input.fcexp.partytap.buzzer_3 keyboard 0x0 8 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 4 -nes.input.fcexp.partytap.buzzer_4 keyboard 0x0 21 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 5 -nes.input.fcexp.partytap.buzzer_5 keyboard 0x0 23 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 6 -nes.input.fcexp.partytap.buzzer_6 keyboard 0x0 28 - -;nes, Famicom Expansion Port, Space Shadow Gun: Away Trigger -nes.input.fcexp.shadow.away_trigger mouse 0x0 button_right - -;nes, Famicom Expansion Port, Space Shadow Gun: Trigger -nes.input.fcexp.shadow.trigger mouse 0x0 button_left - -;nes, Famicom Expansion Port, Space Shadow Gun: X Axis -nes.input.fcexp.shadow.x_axis mouse 0x0 cursor_x-+ - -;nes, Famicom Expansion Port, Space Shadow Gun: Y Axis -nes.input.fcexp.shadow.y_axis mouse 0x0 cursor_y-+ - -;Input device for Port 1 -nes.input.port1 gamepad - -;nes, Port 1, Arkanoid Paddle: Button -nes.input.port1.arkanoid.button mouse 0x0 button_left - -;nes, Port 1, Arkanoid Paddle: X Axis -nes.input.port1.arkanoid.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 1, Gamepad: A -nes.input.port1.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;nes, Port 1, Gamepad: B -nes.input.port1.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;nes, Port 1, Gamepad: DOWN ↓ -nes.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;nes, Port 1, Gamepad: LEFT ← -nes.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;nes, Port 1, Gamepad: Rapid A -nes.input.port1.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;nes, Port 1, Gamepad: Rapid B -nes.input.port1.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;nes, Port 1, Gamepad: RIGHT → -nes.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;nes, Port 1, Gamepad: SELECT -nes.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;nes, Port 1, Gamepad: START -nes.input.port1.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;nes, Port 1, Gamepad: UP ↑ -nes.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;nes, Port 1, Power Pad Side A: 1 -nes.input.port1.powerpada.1 keyboard 0x0 18 - -;nes, Port 1, Power Pad Side A: 10 -nes.input.port1.powerpada.10 keyboard 0x0 54 - -;nes, Port 1, Power Pad Side A: 11 -nes.input.port1.powerpada.11 keyboard 0x0 55 - -;nes, Port 1, Power Pad Side A: 12 -nes.input.port1.powerpada.12 keyboard 0x0 56 - -;nes, Port 1, Power Pad Side A: 2 -nes.input.port1.powerpada.2 keyboard 0x0 19 - -;nes, Port 1, Power Pad Side A: 3 -nes.input.port1.powerpada.3 keyboard 0x0 47 - -;nes, Port 1, Power Pad Side A: 4 -nes.input.port1.powerpada.4 keyboard 0x0 48 - -;nes, Port 1, Power Pad Side A: 5 -nes.input.port1.powerpada.5 keyboard 0x0 14 - -;nes, Port 1, Power Pad Side A: 6 -nes.input.port1.powerpada.6 keyboard 0x0 15 - -;nes, Port 1, Power Pad Side A: 7 -nes.input.port1.powerpada.7 keyboard 0x0 51 - -;nes, Port 1, Power Pad Side A: 8 -nes.input.port1.powerpada.8 keyboard 0x0 52 - -;nes, Port 1, Power Pad Side A: 9 -nes.input.port1.powerpada.9 keyboard 0x0 16 - -;nes, Port 1, Power Pad Side B: 1 -nes.input.port1.powerpadb.1 keyboard 0x0 18 - -;nes, Port 1, Power Pad Side B: 10 -nes.input.port1.powerpadb.10 keyboard 0x0 54 - -;nes, Port 1, Power Pad Side B: 11 -nes.input.port1.powerpadb.11 keyboard 0x0 55 - -;nes, Port 1, Power Pad Side B: 12 -nes.input.port1.powerpadb.12 keyboard 0x0 56 - -;nes, Port 1, Power Pad Side B: 2 -nes.input.port1.powerpadb.2 keyboard 0x0 19 - -;nes, Port 1, Power Pad Side B: 3 -nes.input.port1.powerpadb.3 keyboard 0x0 47 - -;nes, Port 1, Power Pad Side B: 4 -nes.input.port1.powerpadb.4 keyboard 0x0 48 - -;nes, Port 1, Power Pad Side B: 5 -nes.input.port1.powerpadb.5 keyboard 0x0 14 - -;nes, Port 1, Power Pad Side B: 6 -nes.input.port1.powerpadb.6 keyboard 0x0 15 - -;nes, Port 1, Power Pad Side B: 7 -nes.input.port1.powerpadb.7 keyboard 0x0 51 - -;nes, Port 1, Power Pad Side B: 8 -nes.input.port1.powerpadb.8 keyboard 0x0 52 - -;nes, Port 1, Power Pad Side B: 9 -nes.input.port1.powerpadb.9 keyboard 0x0 16 - -;nes, Port 1, Zapper: Away Trigger -nes.input.port1.zapper.away_trigger mouse 0x0 button_right - -;nes, Port 1, Zapper: Trigger -nes.input.port1.zapper.trigger mouse 0x0 button_left - -;nes, Port 1, Zapper: X Axis -nes.input.port1.zapper.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 1, Zapper: Y Axis -nes.input.port1.zapper.y_axis mouse 0x0 cursor_y-+ - -;Input device for Port 2 -nes.input.port2 gamepad - -;nes, Port 2, Arkanoid Paddle: Button -nes.input.port2.arkanoid.button mouse 0x0 button_left - -;nes, Port 2, Arkanoid Paddle: X Axis -nes.input.port2.arkanoid.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 2, Gamepad: A -nes.input.port2.gamepad.a - -;nes, Port 2, Gamepad: B -nes.input.port2.gamepad.b - -;nes, Port 2, Gamepad: DOWN ↓ -nes.input.port2.gamepad.down - -;nes, Port 2, Gamepad: LEFT ← -nes.input.port2.gamepad.left - -;nes, Port 2, Gamepad: Rapid A -nes.input.port2.gamepad.rapid_a - -;nes, Port 2, Gamepad: Rapid B -nes.input.port2.gamepad.rapid_b - -;nes, Port 2, Gamepad: RIGHT → -nes.input.port2.gamepad.right - -;nes, Port 2, Gamepad: SELECT -nes.input.port2.gamepad.select - -;nes, Port 2, Gamepad: START -nes.input.port2.gamepad.start - -;nes, Port 2, Gamepad: UP ↑ -nes.input.port2.gamepad.up - -;nes, Port 2, Power Pad Side A: 1 -nes.input.port2.powerpada.1 keyboard 0x0 18 - -;nes, Port 2, Power Pad Side A: 10 -nes.input.port2.powerpada.10 keyboard 0x0 54 - -;nes, Port 2, Power Pad Side A: 11 -nes.input.port2.powerpada.11 keyboard 0x0 55 - -;nes, Port 2, Power Pad Side A: 12 -nes.input.port2.powerpada.12 keyboard 0x0 56 - -;nes, Port 2, Power Pad Side A: 2 -nes.input.port2.powerpada.2 keyboard 0x0 19 - -;nes, Port 2, Power Pad Side A: 3 -nes.input.port2.powerpada.3 keyboard 0x0 47 - -;nes, Port 2, Power Pad Side A: 4 -nes.input.port2.powerpada.4 keyboard 0x0 48 - -;nes, Port 2, Power Pad Side A: 5 -nes.input.port2.powerpada.5 keyboard 0x0 14 - -;nes, Port 2, Power Pad Side A: 6 -nes.input.port2.powerpada.6 keyboard 0x0 15 - -;nes, Port 2, Power Pad Side A: 7 -nes.input.port2.powerpada.7 keyboard 0x0 51 - -;nes, Port 2, Power Pad Side A: 8 -nes.input.port2.powerpada.8 keyboard 0x0 52 - -;nes, Port 2, Power Pad Side A: 9 -nes.input.port2.powerpada.9 keyboard 0x0 16 - -;nes, Port 2, Power Pad Side B: 1 -nes.input.port2.powerpadb.1 keyboard 0x0 18 - -;nes, Port 2, Power Pad Side B: 10 -nes.input.port2.powerpadb.10 keyboard 0x0 54 - -;nes, Port 2, Power Pad Side B: 11 -nes.input.port2.powerpadb.11 keyboard 0x0 55 - -;nes, Port 2, Power Pad Side B: 12 -nes.input.port2.powerpadb.12 keyboard 0x0 56 - -;nes, Port 2, Power Pad Side B: 2 -nes.input.port2.powerpadb.2 keyboard 0x0 19 - -;nes, Port 2, Power Pad Side B: 3 -nes.input.port2.powerpadb.3 keyboard 0x0 47 - -;nes, Port 2, Power Pad Side B: 4 -nes.input.port2.powerpadb.4 keyboard 0x0 48 - -;nes, Port 2, Power Pad Side B: 5 -nes.input.port2.powerpadb.5 keyboard 0x0 14 - -;nes, Port 2, Power Pad Side B: 6 -nes.input.port2.powerpadb.6 keyboard 0x0 15 - -;nes, Port 2, Power Pad Side B: 7 -nes.input.port2.powerpadb.7 keyboard 0x0 51 - -;nes, Port 2, Power Pad Side B: 8 -nes.input.port2.powerpadb.8 keyboard 0x0 52 - -;nes, Port 2, Power Pad Side B: 9 -nes.input.port2.powerpadb.9 keyboard 0x0 16 - -;nes, Port 2, Zapper: Away Trigger -nes.input.port2.zapper.away_trigger mouse 0x0 button_right - -;nes, Port 2, Zapper: Trigger -nes.input.port2.zapper.trigger mouse 0x0 button_left - -;nes, Port 2, Zapper: X Axis -nes.input.port2.zapper.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 2, Zapper: Y Axis -nes.input.port2.zapper.y_axis mouse 0x0 cursor_y-+ - -;Input device for Port 3 -nes.input.port3 gamepad - -;nes, Port 3, Gamepad: A -nes.input.port3.gamepad.a - -;nes, Port 3, Gamepad: B -nes.input.port3.gamepad.b - -;nes, Port 3, Gamepad: DOWN ↓ -nes.input.port3.gamepad.down - -;nes, Port 3, Gamepad: LEFT ← -nes.input.port3.gamepad.left - -;nes, Port 3, Gamepad: Rapid A -nes.input.port3.gamepad.rapid_a - -;nes, Port 3, Gamepad: Rapid B -nes.input.port3.gamepad.rapid_b - -;nes, Port 3, Gamepad: RIGHT → -nes.input.port3.gamepad.right - -;nes, Port 3, Gamepad: SELECT -nes.input.port3.gamepad.select - -;nes, Port 3, Gamepad: START -nes.input.port3.gamepad.start - -;nes, Port 3, Gamepad: UP ↑ -nes.input.port3.gamepad.up - -;Input device for Port 4 -nes.input.port4 gamepad - -;nes, Port 4, Gamepad: A -nes.input.port4.gamepad.a - -;nes, Port 4, Gamepad: B -nes.input.port4.gamepad.b - -;nes, Port 4, Gamepad: DOWN ↓ -nes.input.port4.gamepad.down - -;nes, Port 4, Gamepad: LEFT ← -nes.input.port4.gamepad.left - -;nes, Port 4, Gamepad: Rapid A -nes.input.port4.gamepad.rapid_a - -;nes, Port 4, Gamepad: Rapid B -nes.input.port4.gamepad.rapid_b - -;nes, Port 4, Gamepad: RIGHT → -nes.input.port4.gamepad.right - -;nes, Port 4, Gamepad: SELECT -nes.input.port4.gamepad.select - -;nes, Port 4, Gamepad: START -nes.input.port4.gamepad.start - -;nes, Port 4, Gamepad: UP ↑ -nes.input.port4.gamepad.up - -;Enable less-accurate, but better sounding, Namco 106(mapper 19) sound emulation. -nes.n106bs 0 - -;Remove 8-sprites-per-scanline hardware limit. -nes.no8lim 1 - -;Disable four-score emulation. -nes.nofs 0 - -;NTSC composite blitter brightness. -nes.ntsc.brightness 0 - -;NTSC composite blitter contrast. -nes.ntsc.contrast 0 - -;NTSC composite blitter hue. -nes.ntsc.hue 0 - -;Enable NTSC custom decoder matrix. -nes.ntsc.matrix 0 - -;NTSC custom decoder matrix element 0(red, value * V). -nes.ntsc.matrix.0 1.539 - -;NTSC custom decoder matrix element 1(red, value * U). -nes.ntsc.matrix.1 -0.622 - -;NTSC custom decoder matrix element 2(green, value * V). -nes.ntsc.matrix.2 -0.571 - -;NTSC custom decoder matrix element 3(green, value * U). -nes.ntsc.matrix.3 -0.185 - -;NTSC custom decoder matrix element 4(blue, value * V). -nes.ntsc.matrix.4 0.000 - -;NTSC custom decoder matrix element 5(blue, value * U. -nes.ntsc.matrix.5 2.000 - -;Merge fields to partially work around !=60.1Hz refresh rates. -nes.ntsc.mergefields 0 - -;Video quality/type preset. -nes.ntsc.preset none - -;NTSC composite blitter saturation. -nes.ntsc.saturation 0 - -;NTSC composite blitter sharpness. -nes.ntsc.sharpness 0 - -;Enable NTSC color generation and blitter. -nes.ntscblitter 0 - -;Enable PAL(50Hz) NES emulation. -nes.pal 0 - -;Enable scanlines with specified opacity. -nes.scanlines 0 - -;Enable specified OpenGL shader. -nes.shader sabr - -;Force interlaced video to be treated as progressive. -nes.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -nes.shader.goat.hdiv 0.50 - -;Mask pattern. -nes.shader.goat.pat goatron - -;Enable scanlines effect. -nes.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -nes.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -nes.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -nes.slend 231 - -;Last displayed scanline in PAL mode. -nes.slendp 239 - -;First displayed scanline in NTSC mode. -nes.slstart 8 - -;First displayed scanline in PAL mode. -nes.slstartp 0 - -;Output rate tolerance. -nes.sound_rate_error 0.00004 - -;Sound quality. -nes.soundq 0 - -;Enable specified special video scaler. -nes.special none - -;Stretch to fill screen. -nes.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -nes.tblur 0 - -;Accumulate color data rather than discarding it. -nes.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -nes.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -nes.videoip 0 - -;Full-screen horizontal resolution. -nes.xres 0 - -;Scaling factor for the X axis in windowed mode. -nes.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -nes.xscalefs 1.000000 - -;Full-screen vertical resolution. -nes.yres 0 - -;Scaling factor for the Y axis in windowed mode. -nes.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -nes.yscalefs 1.000000 - -;Font for netplay chat console. -netplay.console.font 9x18 - -;Height of chat console, in lines. -netplay.console.lines 5 - -;Netplay chat console text scale factor. -netplay.console.scale 1 - -;Key to hash with the MD5 hash of the game. -netplay.gamekey - -;Server hostname. -netplay.host netplay.fobby.net - -;Local player count. -netplay.localplayers 1 - -;Nickname. -netplay.nick - -;Server password. -netplay.password - -;Server port. -netplay.port 4046 - -;Enable (automatic) usage of this module. -ngp.enable 1 - -;Force monophonic sound output. -ngp.forcemono 0 - -;ngp, Built-In, Gamepad: A -ngp.input.builtin.gamepad.a keyboard 0x0 90 - -;ngp, Built-In, Gamepad: B -ngp.input.builtin.gamepad.b keyboard 0x0 91 - -;ngp, Built-In, Gamepad: DOWN ↓ -ngp.input.builtin.gamepad.down keyboard 0x0 22 - -;ngp, Built-In, Gamepad: LEFT ← -ngp.input.builtin.gamepad.left keyboard 0x0 4 - -;ngp, Built-In, Gamepad: OPTION -ngp.input.builtin.gamepad.option keyboard 0x0 40 - -;ngp, Built-In, Gamepad: Rapid A -ngp.input.builtin.gamepad.rapid_a - -;ngp, Built-In, Gamepad: Rapid B -ngp.input.builtin.gamepad.rapid_b - -;ngp, Built-In, Gamepad: RIGHT → -ngp.input.builtin.gamepad.right keyboard 0x0 7 - -;ngp, Built-In, Gamepad: UP ↑ -ngp.input.builtin.gamepad.up keyboard 0x0 26 - -;Language games should display text in. -ngp.language english - -;Enable scanlines with specified opacity. -ngp.scanlines 0 - -;Enable specified OpenGL shader. -ngp.shader none - -;Force interlaced video to be treated as progressive. -ngp.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -ngp.shader.goat.hdiv 0.50 - -;Mask pattern. -ngp.shader.goat.pat goatron - -;Enable scanlines effect. -ngp.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -ngp.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -ngp.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -ngp.special none - -;Stretch to fill screen. -ngp.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -ngp.tblur 0 - -;Accumulate color data rather than discarding it. -ngp.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -ngp.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -ngp.videoip 0 - -;Full-screen horizontal resolution. -ngp.xres 0 - -;Scaling factor for the X axis in windowed mode. -ngp.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -ngp.xscalefs 1.000000 - -;Full-screen vertical resolution. -ngp.yres 0 - -;Scaling factor for the Y axis in windowed mode. -ngp.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -ngp.yscalefs 1.000000 - -;Disable speed throttling when sound is disabled. -nothrottle 0 - -;Enable alpha blending for OSD elements. -osd.alpha_blend 1 - -;Length of time, in milliseconds, to display internal status and error messages -osd.message_display_time 2500 - -;Length of time, in milliseconds, to display the save state or the movie selector after selecting a state or movie. -osd.state_display_time 2000 - -;Output the full 12-bit ADPCM predictor. -pce.adpcmextraprec 0 - -;ADPCM volume. -pce.adpcmvolume 100 - -;Enable Arcade Card emulation. -pce.arcadecard 1 - -;Path to the CD BIOS -pce.cdbios syscard3.pce - -;CD-DA volume. -pce.cddavolume 100 - -;PSG volume when playing a CD game. -pce.cdpsgvolume 100 - -;Disassembly font size. -pce.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -pce.debugger.memcharenc shift_jis - -;Disable BRAM(saved game memory) for CD games. -pce.disable_bram_cd 0 - -;Disable BRAM(saved game memory) for HuCard games. -pce.disable_bram_hucard 0 - -;If set, when RUN+SEL are pressed simultaneously, disable both buttons temporarily. -pce.disable_softreset 0 - -;Enable (automatic) usage of this module. -pce.enable 1 - -;Force monophonic sound output. -pce.forcemono 0 - -;Force SuperGrafx emulation. -pce.forcesgx 0 - -;Path to the GE CD BIOS -pce.gecdbios gecard.pce - -;Show horizontal overscan area. -pce.h_overscan 0 - -;Enable multitap(TurboTap) emulation. -pce.input.multitap 1 - -;Input device for Port 1 -pce.input.port1 gamepad - -;pce, Port 1, Gamepad: DOWN ↓ -pce.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;pce, Port 1, Gamepad: I -pce.input.port1.gamepad.i joystick 0x0003045e028e01010008000b00000000 button_1 - -;pce, Port 1, Gamepad: II -pce.input.port1.gamepad.ii joystick 0x0003045e028e01010008000b00000000 button_0 - -;pce, Port 1, Gamepad: III -pce.input.port1.gamepad.iii joystick 0x0003045e028e01010008000b00000000 button_2 - -;pce, Port 1, Gamepad: IV -pce.input.port1.gamepad.iv joystick 0x0003045e028e01010008000b00000000 button_3 - -;pce, Port 1, Gamepad: LEFT ← -pce.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;pce, Port 1, Gamepad: Mode -pce.input.port1.gamepad.mode_select joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;Default position for switch "Mode". -pce.input.port1.gamepad.mode_select.defpos 2 - -;pce, Port 1, Gamepad: Rapid I -pce.input.port1.gamepad.rapid_i keyboard 0x0 17 - -;pce, Port 1, Gamepad: Rapid II -pce.input.port1.gamepad.rapid_ii keyboard 0x0 17 - -;pce, Port 1, Gamepad: RIGHT → -pce.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;pce, Port 1, Gamepad: RUN -pce.input.port1.gamepad.run joystick 0x0003045e028e01010008000b00000000 button_7 - -;pce, Port 1, Gamepad: SELECT -pce.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;pce, Port 1, Gamepad: UP ↑ -pce.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;pce, Port 1, Gamepad: V -pce.input.port1.gamepad.v joystick 0x0003045e028e01010008000b00000000 button_4 - -;pce, Port 1, Gamepad: VI -pce.input.port1.gamepad.vi joystick 0x0003045e028e01010008000b00000000 button_5 - -;pce, Port 1, Mouse: Left Button -pce.input.port1.mouse.left mouse 0x0 button_left - -;pce, Port 1, Mouse: Motion Down -pce.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 1, Mouse: Motion Left -pce.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 1, Mouse: Motion Right -pce.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 1, Mouse: Motion Up -pce.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 1, Mouse: Right Button -pce.input.port1.mouse.right mouse 0x0 button_right - -;pce, Port 1, Mouse: RUN -pce.input.port1.mouse.run keyboard 0x0 40 - -;pce, Port 1, Mouse: SELECT -pce.input.port1.mouse.select keyboard 0x0 43 - -;pce, Port 1, Tsushin Keyboard: 0 -pce.input.port1.tsushinkb.0 keyboard 0x0 39 - -;pce, Port 1, Tsushin Keyboard: 1 -pce.input.port1.tsushinkb.1 keyboard 0x0 30 - -;pce, Port 1, Tsushin Keyboard: 2 -pce.input.port1.tsushinkb.2 keyboard 0x0 31 - -;pce, Port 1, Tsushin Keyboard: 3 -pce.input.port1.tsushinkb.3 keyboard 0x0 32 - -;pce, Port 1, Tsushin Keyboard: 4 -pce.input.port1.tsushinkb.4 keyboard 0x0 33 - -;pce, Port 1, Tsushin Keyboard: 5 -pce.input.port1.tsushinkb.5 keyboard 0x0 34 - -;pce, Port 1, Tsushin Keyboard: 6 -pce.input.port1.tsushinkb.6 keyboard 0x0 35 - -;pce, Port 1, Tsushin Keyboard: 7 -pce.input.port1.tsushinkb.7 keyboard 0x0 36 - -;pce, Port 1, Tsushin Keyboard: 8 -pce.input.port1.tsushinkb.8 keyboard 0x0 37 - -;pce, Port 1, Tsushin Keyboard: 9 -pce.input.port1.tsushinkb.9 keyboard 0x0 38 - -;pce, Port 1, Tsushin Keyboard: a -pce.input.port1.tsushinkb.a keyboard 0x0 4 - -;pce, Port 1, Tsushin Keyboard: @ -pce.input.port1.tsushinkb.at keyboard 0x0 53 - -;pce, Port 1, Tsushin Keyboard: b -pce.input.port1.tsushinkb.b keyboard 0x0 5 - -;pce, Port 1, Tsushin Keyboard: backspace -pce.input.port1.tsushinkb.backspace keyboard 0x0 42 - -;pce, Port 1, Tsushin Keyboard: c -pce.input.port1.tsushinkb.c keyboard 0x0 6 - -;pce, Port 1, Tsushin Keyboard: Caps Lock -pce.input.port1.tsushinkb.caps_lock keyboard 0x0 57 - -;pce, Port 1, Tsushin Keyboard: ^ -pce.input.port1.tsushinkb.caret keyboard 0x0 46 - -;pce, Port 1, Tsushin Keyboard: clear -pce.input.port1.tsushinkb.clear keyboard 0x0 74 - -;pce, Port 1, Tsushin Keyboard: : -pce.input.port1.tsushinkb.colon keyboard 0x0 52 - -;pce, Port 1, Tsushin Keyboard: , -pce.input.port1.tsushinkb.comma keyboard 0x0 54 - -;pce, Port 1, Tsushin Keyboard: 変換 -pce.input.port1.tsushinkb.convert keyboard 0x0 230 - -;pce, Port 1, Tsushin Keyboard: Copy -pce.input.port1.tsushinkb.copy keyboard 0x0 70 - -;pce, Port 1, Tsushin Keyboard: CTRL/Control -pce.input.port1.tsushinkb.ctrl keyboard 0x0 224 - -;pce, Port 1, Tsushin Keyboard: d -pce.input.port1.tsushinkb.d keyboard 0x0 7 - -;pce, Port 1, Tsushin Keyboard: Delete -pce.input.port1.tsushinkb.delete keyboard 0x0 76 - -;pce, Port 1, Tsushin Keyboard: down -pce.input.port1.tsushinkb.down keyboard 0x0 81 - -;pce, Port 1, Tsushin Keyboard: e -pce.input.port1.tsushinkb.e keyboard 0x0 8 - -;pce, Port 1, Tsushin Keyboard: Escape -pce.input.port1.tsushinkb.escape keyboard 0x0 41 - -;pce, Port 1, Tsushin Keyboard: f -pce.input.port1.tsushinkb.f keyboard 0x0 9 - -;pce, Port 1, Tsushin Keyboard: F1 -pce.input.port1.tsushinkb.f1 keyboard 0x0 58 - -;pce, Port 1, Tsushin Keyboard: F10 -pce.input.port1.tsushinkb.f10 keyboard 0x0 67 - -;pce, Port 1, Tsushin Keyboard: F2 -pce.input.port1.tsushinkb.f2 keyboard 0x0 59 - -;pce, Port 1, Tsushin Keyboard: F3 -pce.input.port1.tsushinkb.f3 keyboard 0x0 60 - -;pce, Port 1, Tsushin Keyboard: F4 -pce.input.port1.tsushinkb.f4 keyboard 0x0 61 - -;pce, Port 1, Tsushin Keyboard: F5 -pce.input.port1.tsushinkb.f5 keyboard 0x0 62 - -;pce, Port 1, Tsushin Keyboard: f6 -pce.input.port1.tsushinkb.f6 keyboard 0x0 63 - -;pce, Port 1, Tsushin Keyboard: f7 -pce.input.port1.tsushinkb.f7 keyboard 0x0 64 - -;pce, Port 1, Tsushin Keyboard: f8 -pce.input.port1.tsushinkb.f8 keyboard 0x0 65 - -;pce, Port 1, Tsushin Keyboard: f9 -pce.input.port1.tsushinkb.f9 keyboard 0x0 66 - -;pce, Port 1, Tsushin Keyboard: g -pce.input.port1.tsushinkb.g keyboard 0x0 10 - -;pce, Port 1, Tsushin Keyboard: GRPH -pce.input.port1.tsushinkb.grph keyboard 0x0 0 - -;pce, Port 1, Tsushin Keyboard: h -pce.input.port1.tsushinkb.h keyboard 0x0 11 - -;pce, Port 1, Tsushin Keyboard: Help -pce.input.port1.tsushinkb.help keyboard 0x0 77 - -;pce, Port 1, Tsushin Keyboard: i -pce.input.port1.tsushinkb.i keyboard 0x0 12 - -;pce, Port 1, Tsushin Keyboard: insert -pce.input.port1.tsushinkb.insert keyboard 0x0 73 - -;pce, Port 1, Tsushin Keyboard: j -pce.input.port1.tsushinkb.j keyboard 0x0 13 - -;pce, Port 1, Tsushin Keyboard: k -pce.input.port1.tsushinkb.k keyboard 0x0 14 - -;pce, Port 1, Tsushin Keyboard: カナ -pce.input.port1.tsushinkb.kana keyboard 0x0 227 - -;pce, Port 1, Tsushin Keyboard: Keypad 0 -pce.input.port1.tsushinkb.kp_0 keyboard 0x0 98 - -;pce, Port 1, Tsushin Keyboard: Keypad 1 -pce.input.port1.tsushinkb.kp_1 keyboard 0x0 89 - -;pce, Port 1, Tsushin Keyboard: Keypad 2 -pce.input.port1.tsushinkb.kp_2 keyboard 0x0 90 - -;pce, Port 1, Tsushin Keyboard: Keypad 3 -pce.input.port1.tsushinkb.kp_3 keyboard 0x0 91 - -;pce, Port 1, Tsushin Keyboard: Keypad 4 -pce.input.port1.tsushinkb.kp_4 keyboard 0x0 92 - -;pce, Port 1, Tsushin Keyboard: Keypad 5 -pce.input.port1.tsushinkb.kp_5 keyboard 0x0 93 - -;pce, Port 1, Tsushin Keyboard: Keypad 6 -pce.input.port1.tsushinkb.kp_6 keyboard 0x0 94 - -;pce, Port 1, Tsushin Keyboard: Keypad 7 -pce.input.port1.tsushinkb.kp_7 keyboard 0x0 95 - -;pce, Port 1, Tsushin Keyboard: Keypad 8 -pce.input.port1.tsushinkb.kp_8 keyboard 0x0 96 - -;pce, Port 1, Tsushin Keyboard: Keypad 9 -pce.input.port1.tsushinkb.kp_9 keyboard 0x0 97 - -;pce, Port 1, Tsushin Keyboard: Keypad , -pce.input.port1.tsushinkb.kp_comma keyboard 0x0 0 - -;pce, Port 1, Tsushin Keyboard: Keypad Divide -pce.input.port1.tsushinkb.kp_divide keyboard 0x0 84 - -;pce, Port 1, Tsushin Keyboard: Keypad Enter -pce.input.port1.tsushinkb.kp_enter keyboard 0x0 88 - -;pce, Port 1, Tsushin Keyboard: Keypad = -pce.input.port1.tsushinkb.kp_equals keyboard 0x0 103 - -;pce, Port 1, Tsushin Keyboard: Keypad Minus -pce.input.port1.tsushinkb.kp_minus keyboard 0x0 86 - -;pce, Port 1, Tsushin Keyboard: Keypad * -pce.input.port1.tsushinkb.kp_multiply keyboard 0x0 85 - -;pce, Port 1, Tsushin Keyboard: Keypad . -pce.input.port1.tsushinkb.kp_period keyboard 0x0 99 - -;pce, Port 1, Tsushin Keyboard: Keypad + -pce.input.port1.tsushinkb.kp_plus keyboard 0x0 87 - -;pce, Port 1, Tsushin Keyboard: l -pce.input.port1.tsushinkb.l keyboard 0x0 15 - -;pce, Port 1, Tsushin Keyboard: left -pce.input.port1.tsushinkb.left keyboard 0x0 80 - -;pce, Port 1, Tsushin Keyboard: [ -pce.input.port1.tsushinkb.left_bracket keyboard 0x0 47 - -;pce, Port 1, Tsushin Keyboard: Left Shift -pce.input.port1.tsushinkb.left_shift keyboard 0x0 225 - -;pce, Port 1, Tsushin Keyboard: m -pce.input.port1.tsushinkb.m keyboard 0x0 16 - -;pce, Port 1, Tsushin Keyboard: Minus -pce.input.port1.tsushinkb.minus keyboard 0x0 45 - -;pce, Port 1, Tsushin Keyboard: n -pce.input.port1.tsushinkb.n keyboard 0x0 17 - -;pce, Port 1, Tsushin Keyboard: 決定 -pce.input.port1.tsushinkb.nonconvert keyboard 0x0 226 - -;pce, Port 1, Tsushin Keyboard: o -pce.input.port1.tsushinkb.o keyboard 0x0 18 - -;pce, Port 1, Tsushin Keyboard: p -pce.input.port1.tsushinkb.p keyboard 0x0 19 - -;pce, Port 1, Tsushin Keyboard: PC -pce.input.port1.tsushinkb.pc keyboard 0x0 231 - -;pce, Port 1, Tsushin Keyboard: . -pce.input.port1.tsushinkb.period keyboard 0x0 55 - -;pce, Port 1, Tsushin Keyboard: q -pce.input.port1.tsushinkb.q keyboard 0x0 20 - -;pce, Port 1, Tsushin Keyboard: r -pce.input.port1.tsushinkb.r keyboard 0x0 21 - -;pce, Port 1, Tsushin Keyboard: return -pce.input.port1.tsushinkb.return keyboard 0x0 40 - -;pce, Port 1, Tsushin Keyboard: right -pce.input.port1.tsushinkb.right keyboard 0x0 79 - -;pce, Port 1, Tsushin Keyboard: ] -pce.input.port1.tsushinkb.right_bracket keyboard 0x0 48 - -;pce, Port 1, Tsushin Keyboard: Right Shift -pce.input.port1.tsushinkb.right_shift keyboard 0x0 229 - -;pce, Port 1, Tsushin Keyboard: ROLL DOWN -pce.input.port1.tsushinkb.roll_down keyboard 0x0 78 - -;pce, Port 1, Tsushin Keyboard: ROLL UP -pce.input.port1.tsushinkb.roll_up keyboard 0x0 75 - -;pce, Port 1, Tsushin Keyboard: s -pce.input.port1.tsushinkb.s keyboard 0x0 22 - -;pce, Port 1, Tsushin Keyboard: ; -pce.input.port1.tsushinkb.semicolon keyboard 0x0 51 - -;pce, Port 1, Tsushin Keyboard: / -pce.input.port1.tsushinkb.slash keyboard 0x0 56 - -;pce, Port 1, Tsushin Keyboard: space -pce.input.port1.tsushinkb.space keyboard 0x0 44 - -;pce, Port 1, Tsushin Keyboard: STOP -pce.input.port1.tsushinkb.stop keyboard 0x0 72 - -;pce, Port 1, Tsushin Keyboard: t -pce.input.port1.tsushinkb.t keyboard 0x0 23 - -;pce, Port 1, Tsushin Keyboard: Tab -pce.input.port1.tsushinkb.tab keyboard 0x0 43 - -;pce, Port 1, Tsushin Keyboard: u -pce.input.port1.tsushinkb.u keyboard 0x0 24 - -;pce, Port 1, Tsushin Keyboard: Underscore -pce.input.port1.tsushinkb.underscore keyboard 0x0 0 - -;pce, Port 1, Tsushin Keyboard: up -pce.input.port1.tsushinkb.up keyboard 0x0 82 - -;pce, Port 1, Tsushin Keyboard: v -pce.input.port1.tsushinkb.v keyboard 0x0 25 - -;pce, Port 1, Tsushin Keyboard: w -pce.input.port1.tsushinkb.w keyboard 0x0 26 - -;pce, Port 1, Tsushin Keyboard: 変換 -pce.input.port1.tsushinkb.width keyboard 0x0 228 - -;pce, Port 1, Tsushin Keyboard: x -pce.input.port1.tsushinkb.x keyboard 0x0 27 - -;pce, Port 1, Tsushin Keyboard: y -pce.input.port1.tsushinkb.y keyboard 0x0 28 - -;pce, Port 1, Tsushin Keyboard: Yen -pce.input.port1.tsushinkb.yen keyboard 0x0 46 - -;pce, Port 1, Tsushin Keyboard: z -pce.input.port1.tsushinkb.z keyboard 0x0 29 - -;Input device for Port 2 -pce.input.port2 gamepad - -;pce, Port 2, Gamepad: DOWN ↓ -pce.input.port2.gamepad.down - -;pce, Port 2, Gamepad: I -pce.input.port2.gamepad.i - -;pce, Port 2, Gamepad: II -pce.input.port2.gamepad.ii - -;pce, Port 2, Gamepad: III -pce.input.port2.gamepad.iii - -;pce, Port 2, Gamepad: IV -pce.input.port2.gamepad.iv - -;pce, Port 2, Gamepad: LEFT ← -pce.input.port2.gamepad.left - -;pce, Port 2, Gamepad: Mode -pce.input.port2.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port2.gamepad.mode_select.defpos 2 - -;pce, Port 2, Gamepad: Rapid I -pce.input.port2.gamepad.rapid_i - -;pce, Port 2, Gamepad: Rapid II -pce.input.port2.gamepad.rapid_ii - -;pce, Port 2, Gamepad: RIGHT → -pce.input.port2.gamepad.right - -;pce, Port 2, Gamepad: RUN -pce.input.port2.gamepad.run - -;pce, Port 2, Gamepad: SELECT -pce.input.port2.gamepad.select - -;pce, Port 2, Gamepad: UP ↑ -pce.input.port2.gamepad.up - -;pce, Port 2, Gamepad: V -pce.input.port2.gamepad.v - -;pce, Port 2, Gamepad: VI -pce.input.port2.gamepad.vi - -;pce, Port 2, Mouse: Left Button -pce.input.port2.mouse.left mouse 0x0 button_left - -;pce, Port 2, Mouse: Motion Down -pce.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 2, Mouse: Motion Left -pce.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 2, Mouse: Motion Right -pce.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 2, Mouse: Motion Up -pce.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 2, Mouse: Right Button -pce.input.port2.mouse.right mouse 0x0 button_right - -;pce, Port 2, Mouse: RUN -pce.input.port2.mouse.run keyboard 0x0 40 - -;pce, Port 2, Mouse: SELECT -pce.input.port2.mouse.select keyboard 0x0 43 - -;Input device for Port 3 -pce.input.port3 gamepad - -;pce, Port 3, Gamepad: DOWN ↓ -pce.input.port3.gamepad.down - -;pce, Port 3, Gamepad: I -pce.input.port3.gamepad.i - -;pce, Port 3, Gamepad: II -pce.input.port3.gamepad.ii - -;pce, Port 3, Gamepad: III -pce.input.port3.gamepad.iii - -;pce, Port 3, Gamepad: IV -pce.input.port3.gamepad.iv - -;pce, Port 3, Gamepad: LEFT ← -pce.input.port3.gamepad.left - -;pce, Port 3, Gamepad: Mode -pce.input.port3.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port3.gamepad.mode_select.defpos 2 - -;pce, Port 3, Gamepad: Rapid I -pce.input.port3.gamepad.rapid_i - -;pce, Port 3, Gamepad: Rapid II -pce.input.port3.gamepad.rapid_ii - -;pce, Port 3, Gamepad: RIGHT → -pce.input.port3.gamepad.right - -;pce, Port 3, Gamepad: RUN -pce.input.port3.gamepad.run - -;pce, Port 3, Gamepad: SELECT -pce.input.port3.gamepad.select - -;pce, Port 3, Gamepad: UP ↑ -pce.input.port3.gamepad.up - -;pce, Port 3, Gamepad: V -pce.input.port3.gamepad.v - -;pce, Port 3, Gamepad: VI -pce.input.port3.gamepad.vi - -;pce, Port 3, Mouse: Left Button -pce.input.port3.mouse.left mouse 0x0 button_left - -;pce, Port 3, Mouse: Motion Down -pce.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 3, Mouse: Motion Left -pce.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 3, Mouse: Motion Right -pce.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 3, Mouse: Motion Up -pce.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 3, Mouse: Right Button -pce.input.port3.mouse.right mouse 0x0 button_right - -;pce, Port 3, Mouse: RUN -pce.input.port3.mouse.run keyboard 0x0 40 - -;pce, Port 3, Mouse: SELECT -pce.input.port3.mouse.select keyboard 0x0 43 - -;Input device for Port 4 -pce.input.port4 gamepad - -;pce, Port 4, Gamepad: DOWN ↓ -pce.input.port4.gamepad.down - -;pce, Port 4, Gamepad: I -pce.input.port4.gamepad.i - -;pce, Port 4, Gamepad: II -pce.input.port4.gamepad.ii - -;pce, Port 4, Gamepad: III -pce.input.port4.gamepad.iii - -;pce, Port 4, Gamepad: IV -pce.input.port4.gamepad.iv - -;pce, Port 4, Gamepad: LEFT ← -pce.input.port4.gamepad.left - -;pce, Port 4, Gamepad: Mode -pce.input.port4.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port4.gamepad.mode_select.defpos 2 - -;pce, Port 4, Gamepad: Rapid I -pce.input.port4.gamepad.rapid_i - -;pce, Port 4, Gamepad: Rapid II -pce.input.port4.gamepad.rapid_ii - -;pce, Port 4, Gamepad: RIGHT → -pce.input.port4.gamepad.right - -;pce, Port 4, Gamepad: RUN -pce.input.port4.gamepad.run - -;pce, Port 4, Gamepad: SELECT -pce.input.port4.gamepad.select - -;pce, Port 4, Gamepad: UP ↑ -pce.input.port4.gamepad.up - -;pce, Port 4, Gamepad: V -pce.input.port4.gamepad.v - -;pce, Port 4, Gamepad: VI -pce.input.port4.gamepad.vi - -;pce, Port 4, Mouse: Left Button -pce.input.port4.mouse.left mouse 0x0 button_left - -;pce, Port 4, Mouse: Motion Down -pce.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 4, Mouse: Motion Left -pce.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 4, Mouse: Motion Right -pce.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 4, Mouse: Motion Up -pce.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 4, Mouse: Right Button -pce.input.port4.mouse.right mouse 0x0 button_right - -;pce, Port 4, Mouse: RUN -pce.input.port4.mouse.run keyboard 0x0 40 - -;pce, Port 4, Mouse: SELECT -pce.input.port4.mouse.select keyboard 0x0 43 - -;Input device for Port 5 -pce.input.port5 gamepad - -;pce, Port 5, Gamepad: DOWN ↓ -pce.input.port5.gamepad.down - -;pce, Port 5, Gamepad: I -pce.input.port5.gamepad.i - -;pce, Port 5, Gamepad: II -pce.input.port5.gamepad.ii - -;pce, Port 5, Gamepad: III -pce.input.port5.gamepad.iii - -;pce, Port 5, Gamepad: IV -pce.input.port5.gamepad.iv - -;pce, Port 5, Gamepad: LEFT ← -pce.input.port5.gamepad.left - -;pce, Port 5, Gamepad: Mode -pce.input.port5.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port5.gamepad.mode_select.defpos 2 - -;pce, Port 5, Gamepad: Rapid I -pce.input.port5.gamepad.rapid_i - -;pce, Port 5, Gamepad: Rapid II -pce.input.port5.gamepad.rapid_ii - -;pce, Port 5, Gamepad: RIGHT → -pce.input.port5.gamepad.right - -;pce, Port 5, Gamepad: RUN -pce.input.port5.gamepad.run - -;pce, Port 5, Gamepad: SELECT -pce.input.port5.gamepad.select - -;pce, Port 5, Gamepad: UP ↑ -pce.input.port5.gamepad.up - -;pce, Port 5, Gamepad: V -pce.input.port5.gamepad.v - -;pce, Port 5, Gamepad: VI -pce.input.port5.gamepad.vi - -;pce, Port 5, Mouse: Left Button -pce.input.port5.mouse.left mouse 0x0 button_left - -;pce, Port 5, Mouse: Motion Down -pce.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 5, Mouse: Motion Left -pce.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 5, Mouse: Motion Right -pce.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 5, Mouse: Motion Up -pce.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 5, Mouse: Right Button -pce.input.port5.mouse.right mouse 0x0 button_right - -;pce, Port 5, Mouse: RUN -pce.input.port5.mouse.run keyboard 0x0 40 - -;pce, Port 5, Mouse: SELECT -pce.input.port5.mouse.select keyboard 0x0 43 - -;Emulated mouse sensitivity. -pce.mouse_sensitivity 0.50 - -;Remove 16-sprites-per-scanline hardware limit. -pce.nospritelimit 1 - -;Select PSG revision. -pce.psgrevision match - -;Sound quality. -pce.resamp_quality 3 - -;Sound output rate tolerance. -pce.resamp_rate_error 0.0000009 - -;Enable scanlines with specified opacity. -pce.scanlines 0 - -;Enable specified OpenGL shader. -pce.shader ipsharper - -;Force interlaced video to be treated as progressive. -pce.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -pce.shader.goat.hdiv 0.50 - -;Mask pattern. -pce.shader.goat.pat goatron - -;Enable scanlines effect. -pce.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -pce.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -pce.shader.goat.vdiv 0.50 - -;Last rendered scanline. -pce.slend 235 - -;First rendered scanline. -pce.slstart 4 - -;Enable specified special video scaler. -pce.special none - -;Stretch to fill screen. -pce.stretch full - -;Enable video temporal blur(50/50 previous/current frame by default). -pce.tblur 0 - -;Accumulate color data rather than discarding it. -pce.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -pce.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -pce.videoip 1 - -;Size of emulated VRAM per VDC in 16-bit words. DO NOT CHANGE THIS UNLESS YOU KNOW WTF YOU ARE DOING. -pce.vramsize 32768 - -;Full-screen horizontal resolution. -pce.xres 0 - -;Scaling factor for the X axis in windowed mode. -pce.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -pce.xscalefs 1.000000 - -;Full-screen vertical resolution. -pce.yres 0 - -;Scaling factor for the Y axis in windowed mode. -pce.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -pce.yscalefs 1.000000 - -;Enable dynamic ADPCM lowpass filter. -pce_fast.adpcmlp 0 - -;ADPCM volume. -pce_fast.adpcmvolume 100 - -;Enable Arcade Card emulation. -pce_fast.arcadecard 1 - -;Path to the CD BIOS -pce_fast.cdbios syscard3.pce - -;CD-DA volume. -pce_fast.cddavolume 100 - -;PSG volume when playing a CD game. -pce_fast.cdpsgvolume 100 - -;CD-ROM data transfer speed multiplier. -pce_fast.cdspeed 1 - -;Correct the aspect ratio. -pce_fast.correct_aspect 1 - -;If set, when RUN+SEL are pressed simultaneously, disable both buttons temporarily. -pce_fast.disable_softreset 0 - -;Enable (automatic) usage of this module. -pce_fast.enable 1 - -;Force monophonic sound output. -pce_fast.forcemono 0 - -;Force SuperGrafx emulation. -pce_fast.forcesgx 1 - -;Input device for Port 1 -pce_fast.input.port1 gamepad - -;pce_fast, Port 1, Gamepad: DOWN ↓ -pce_fast.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;pce_fast, Port 1, Gamepad: I -pce_fast.input.port1.gamepad.i joystick 0x0003045e028e01010008000b00000000 button_1 - -;pce_fast, Port 1, Gamepad: II -pce_fast.input.port1.gamepad.ii joystick 0x0003045e028e01010008000b00000000 button_0 - -;pce_fast, Port 1, Gamepad: III -pce_fast.input.port1.gamepad.iii joystick 0x0003045e028e01010008000b00000000 button_2 - -;pce_fast, Port 1, Gamepad: IV -pce_fast.input.port1.gamepad.iv joystick 0x0003045e028e01010008000b00000000 button_3 - -;pce_fast, Port 1, Gamepad: LEFT ← -pce_fast.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;pce_fast, Port 1, Gamepad: Mode -pce_fast.input.port1.gamepad.mode_select keyboard 0x0 38 || joystick 0x0003045e028e01010008000b00000000 abs_2- - -;Default position for switch "Mode". -pce_fast.input.port1.gamepad.mode_select.defpos 2 - -;pce_fast, Port 1, Gamepad: Rapid I -pce_fast.input.port1.gamepad.rapid_i keyboard 0x0 17 - -;pce_fast, Port 1, Gamepad: Rapid II -pce_fast.input.port1.gamepad.rapid_ii keyboard 0x0 17 - -;pce_fast, Port 1, Gamepad: RIGHT → -pce_fast.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;pce_fast, Port 1, Gamepad: RUN -pce_fast.input.port1.gamepad.run joystick 0x0003045e028e01010008000b00000000 button_7 - -;pce_fast, Port 1, Gamepad: SELECT -pce_fast.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;pce_fast, Port 1, Gamepad: UP ↑ -pce_fast.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;pce_fast, Port 1, Gamepad: V -pce_fast.input.port1.gamepad.v joystick 0x0003045e028e01010008000b00000000 button_4 - -;pce_fast, Port 1, Gamepad: VI -pce_fast.input.port1.gamepad.vi joystick 0x0003045e028e01010008000b00000000 button_5 - -;pce_fast, Port 1, Mouse: Left Button -pce_fast.input.port1.mouse.left mouse 0x0 button_left - -;pce_fast, Port 1, Mouse: Motion Down -pce_fast.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 1, Mouse: Motion Left -pce_fast.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 1, Mouse: Motion Right -pce_fast.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 1, Mouse: Motion Up -pce_fast.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 1, Mouse: Right Button -pce_fast.input.port1.mouse.right mouse 0x0 button_right - -;pce_fast, Port 1, Mouse: RUN -pce_fast.input.port1.mouse.run keyboard 0x0 40 - -;pce_fast, Port 1, Mouse: SELECT -pce_fast.input.port1.mouse.select keyboard 0x0 43 - -;Input device for Port 2 -pce_fast.input.port2 gamepad - -;pce_fast, Port 2, Gamepad: DOWN ↓ -pce_fast.input.port2.gamepad.down - -;pce_fast, Port 2, Gamepad: I -pce_fast.input.port2.gamepad.i - -;pce_fast, Port 2, Gamepad: II -pce_fast.input.port2.gamepad.ii - -;pce_fast, Port 2, Gamepad: III -pce_fast.input.port2.gamepad.iii - -;pce_fast, Port 2, Gamepad: IV -pce_fast.input.port2.gamepad.iv - -;pce_fast, Port 2, Gamepad: LEFT ← -pce_fast.input.port2.gamepad.left - -;pce_fast, Port 2, Gamepad: Mode -pce_fast.input.port2.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port2.gamepad.mode_select.defpos 2 - -;pce_fast, Port 2, Gamepad: Rapid I -pce_fast.input.port2.gamepad.rapid_i - -;pce_fast, Port 2, Gamepad: Rapid II -pce_fast.input.port2.gamepad.rapid_ii - -;pce_fast, Port 2, Gamepad: RIGHT → -pce_fast.input.port2.gamepad.right - -;pce_fast, Port 2, Gamepad: RUN -pce_fast.input.port2.gamepad.run - -;pce_fast, Port 2, Gamepad: SELECT -pce_fast.input.port2.gamepad.select - -;pce_fast, Port 2, Gamepad: UP ↑ -pce_fast.input.port2.gamepad.up - -;pce_fast, Port 2, Gamepad: V -pce_fast.input.port2.gamepad.v - -;pce_fast, Port 2, Gamepad: VI -pce_fast.input.port2.gamepad.vi - -;pce_fast, Port 2, Mouse: Left Button -pce_fast.input.port2.mouse.left mouse 0x0 button_left - -;pce_fast, Port 2, Mouse: Motion Down -pce_fast.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 2, Mouse: Motion Left -pce_fast.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 2, Mouse: Motion Right -pce_fast.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 2, Mouse: Motion Up -pce_fast.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 2, Mouse: Right Button -pce_fast.input.port2.mouse.right mouse 0x0 button_right - -;pce_fast, Port 2, Mouse: RUN -pce_fast.input.port2.mouse.run keyboard 0x0 40 - -;pce_fast, Port 2, Mouse: SELECT -pce_fast.input.port2.mouse.select keyboard 0x0 43 - -;Input device for Port 3 -pce_fast.input.port3 gamepad - -;pce_fast, Port 3, Gamepad: DOWN ↓ -pce_fast.input.port3.gamepad.down - -;pce_fast, Port 3, Gamepad: I -pce_fast.input.port3.gamepad.i - -;pce_fast, Port 3, Gamepad: II -pce_fast.input.port3.gamepad.ii - -;pce_fast, Port 3, Gamepad: III -pce_fast.input.port3.gamepad.iii - -;pce_fast, Port 3, Gamepad: IV -pce_fast.input.port3.gamepad.iv - -;pce_fast, Port 3, Gamepad: LEFT ← -pce_fast.input.port3.gamepad.left - -;pce_fast, Port 3, Gamepad: Mode -pce_fast.input.port3.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port3.gamepad.mode_select.defpos 2 - -;pce_fast, Port 3, Gamepad: Rapid I -pce_fast.input.port3.gamepad.rapid_i - -;pce_fast, Port 3, Gamepad: Rapid II -pce_fast.input.port3.gamepad.rapid_ii - -;pce_fast, Port 3, Gamepad: RIGHT → -pce_fast.input.port3.gamepad.right - -;pce_fast, Port 3, Gamepad: RUN -pce_fast.input.port3.gamepad.run - -;pce_fast, Port 3, Gamepad: SELECT -pce_fast.input.port3.gamepad.select - -;pce_fast, Port 3, Gamepad: UP ↑ -pce_fast.input.port3.gamepad.up - -;pce_fast, Port 3, Gamepad: V -pce_fast.input.port3.gamepad.v - -;pce_fast, Port 3, Gamepad: VI -pce_fast.input.port3.gamepad.vi - -;pce_fast, Port 3, Mouse: Left Button -pce_fast.input.port3.mouse.left mouse 0x0 button_left - -;pce_fast, Port 3, Mouse: Motion Down -pce_fast.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 3, Mouse: Motion Left -pce_fast.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 3, Mouse: Motion Right -pce_fast.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 3, Mouse: Motion Up -pce_fast.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 3, Mouse: Right Button -pce_fast.input.port3.mouse.right mouse 0x0 button_right - -;pce_fast, Port 3, Mouse: RUN -pce_fast.input.port3.mouse.run keyboard 0x0 40 - -;pce_fast, Port 3, Mouse: SELECT -pce_fast.input.port3.mouse.select keyboard 0x0 43 - -;Input device for Port 4 -pce_fast.input.port4 gamepad - -;pce_fast, Port 4, Gamepad: DOWN ↓ -pce_fast.input.port4.gamepad.down - -;pce_fast, Port 4, Gamepad: I -pce_fast.input.port4.gamepad.i - -;pce_fast, Port 4, Gamepad: II -pce_fast.input.port4.gamepad.ii - -;pce_fast, Port 4, Gamepad: III -pce_fast.input.port4.gamepad.iii - -;pce_fast, Port 4, Gamepad: IV -pce_fast.input.port4.gamepad.iv - -;pce_fast, Port 4, Gamepad: LEFT ← -pce_fast.input.port4.gamepad.left - -;pce_fast, Port 4, Gamepad: Mode -pce_fast.input.port4.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port4.gamepad.mode_select.defpos 2 - -;pce_fast, Port 4, Gamepad: Rapid I -pce_fast.input.port4.gamepad.rapid_i - -;pce_fast, Port 4, Gamepad: Rapid II -pce_fast.input.port4.gamepad.rapid_ii - -;pce_fast, Port 4, Gamepad: RIGHT → -pce_fast.input.port4.gamepad.right - -;pce_fast, Port 4, Gamepad: RUN -pce_fast.input.port4.gamepad.run - -;pce_fast, Port 4, Gamepad: SELECT -pce_fast.input.port4.gamepad.select - -;pce_fast, Port 4, Gamepad: UP ↑ -pce_fast.input.port4.gamepad.up - -;pce_fast, Port 4, Gamepad: V -pce_fast.input.port4.gamepad.v - -;pce_fast, Port 4, Gamepad: VI -pce_fast.input.port4.gamepad.vi - -;pce_fast, Port 4, Mouse: Left Button -pce_fast.input.port4.mouse.left mouse 0x0 button_left - -;pce_fast, Port 4, Mouse: Motion Down -pce_fast.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 4, Mouse: Motion Left -pce_fast.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 4, Mouse: Motion Right -pce_fast.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 4, Mouse: Motion Up -pce_fast.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 4, Mouse: Right Button -pce_fast.input.port4.mouse.right mouse 0x0 button_right - -;pce_fast, Port 4, Mouse: RUN -pce_fast.input.port4.mouse.run keyboard 0x0 40 - -;pce_fast, Port 4, Mouse: SELECT -pce_fast.input.port4.mouse.select keyboard 0x0 43 - -;Input device for Port 5 -pce_fast.input.port5 gamepad - -;pce_fast, Port 5, Gamepad: DOWN ↓ -pce_fast.input.port5.gamepad.down - -;pce_fast, Port 5, Gamepad: I -pce_fast.input.port5.gamepad.i - -;pce_fast, Port 5, Gamepad: II -pce_fast.input.port5.gamepad.ii - -;pce_fast, Port 5, Gamepad: III -pce_fast.input.port5.gamepad.iii - -;pce_fast, Port 5, Gamepad: IV -pce_fast.input.port5.gamepad.iv - -;pce_fast, Port 5, Gamepad: LEFT ← -pce_fast.input.port5.gamepad.left - -;pce_fast, Port 5, Gamepad: Mode -pce_fast.input.port5.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port5.gamepad.mode_select.defpos 2 - -;pce_fast, Port 5, Gamepad: Rapid I -pce_fast.input.port5.gamepad.rapid_i - -;pce_fast, Port 5, Gamepad: Rapid II -pce_fast.input.port5.gamepad.rapid_ii - -;pce_fast, Port 5, Gamepad: RIGHT → -pce_fast.input.port5.gamepad.right - -;pce_fast, Port 5, Gamepad: RUN -pce_fast.input.port5.gamepad.run - -;pce_fast, Port 5, Gamepad: SELECT -pce_fast.input.port5.gamepad.select - -;pce_fast, Port 5, Gamepad: UP ↑ -pce_fast.input.port5.gamepad.up - -;pce_fast, Port 5, Gamepad: V -pce_fast.input.port5.gamepad.v - -;pce_fast, Port 5, Gamepad: VI -pce_fast.input.port5.gamepad.vi - -;pce_fast, Port 5, Mouse: Left Button -pce_fast.input.port5.mouse.left mouse 0x0 button_left - -;pce_fast, Port 5, Mouse: Motion Down -pce_fast.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 5, Mouse: Motion Left -pce_fast.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 5, Mouse: Motion Right -pce_fast.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 5, Mouse: Motion Up -pce_fast.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 5, Mouse: Right Button -pce_fast.input.port5.mouse.right mouse 0x0 button_right - -;pce_fast, Port 5, Mouse: RUN -pce_fast.input.port5.mouse.run keyboard 0x0 40 - -;pce_fast, Port 5, Mouse: SELECT -pce_fast.input.port5.mouse.select keyboard 0x0 43 - -;Mouse sensitivity. -pce_fast.mouse_sensitivity 0.50 - -;Remove 16-sprites-per-scanline hardware limit. -pce_fast.nospritelimit 1 - -;CPU overclock multiplier. -pce_fast.ocmultiplier 1 - -;Enable scanlines with specified opacity. -pce_fast.scanlines 0 - -;Enable specified OpenGL shader. -pce_fast.shader sabr - -;Force interlaced video to be treated as progressive. -pce_fast.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -pce_fast.shader.goat.hdiv 0.50 - -;Mask pattern. -pce_fast.shader.goat.pat goatron - -;Enable scanlines effect. -pce_fast.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -pce_fast.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -pce_fast.shader.goat.vdiv 0.50 - -;Last rendered scanline. -pce_fast.slend 235 - -;First rendered scanline. -pce_fast.slstart 4 - -;Enable specified special video scaler. -pce_fast.special none - -;Stretch to fill screen. -pce_fast.stretch full - -;Enable video temporal blur(50/50 previous/current frame by default). -pce_fast.tblur 0 - -;Accumulate color data rather than discarding it. -pce_fast.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -pce_fast.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -pce_fast.videoip 1 - -;Full-screen horizontal resolution. -pce_fast.xres 0 - -;Scaling factor for the X axis in windowed mode. -pce_fast.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -pce_fast.xscalefs 1.000000 - -;Full-screen vertical resolution. -pce_fast.yres 0 - -;Scaling factor for the Y axis in windowed mode. -pce_fast.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -pce_fast.yscalefs 1.000000 - -;Hack that emulates the codec a buggy ADPCM encoder used for some games' ADPCM. -pcfx.adpcm.emulate_buggy_codec 0 - -;Hack to suppress clicks caused by forced channel resets. -pcfx.adpcm.suppress_channel_reset_clicks 1 - -;Path to the ROM BIOS -pcfx.bios /storage/roms/bios/pcfx.rom - -;Emulated CD-ROM speed. -pcfx.cdspeed 2 - -;CPU emulation mode. -pcfx.cpu_emulation accurate - -;Disassembly font size. -pcfx.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -pcfx.debugger.memcharenc shift_jis - -;Disable internal and external BRAM. -pcfx.disable_bram 0 - -;When RUN+SEL are pressed simultaneously, disable both buttons temporarily. -pcfx.disable_softreset 0 - -;Enable (automatic) usage of this module. -pcfx.enable 1 - -;Force monophonic sound output. -pcfx.forcemono 0 - -;Path to the FX-SCSI ROM -pcfx.fxscsi 0 - -;Emulated width for 7.16MHz dot-clock mode. -pcfx.high_dotclock_width 1024 - -;Input device for Port 1 -pcfx.input.port1 gamepad - -;pcfx, Port 1, Gamepad: DOWN ↓ -pcfx.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;pcfx, Port 1, Gamepad: I -pcfx.input.port1.gamepad.i joystick 0x0003045e028e01010008000b00000000 button_1 - -;pcfx, Port 1, Gamepad: II -pcfx.input.port1.gamepad.ii joystick 0x0003045e028e01010008000b00000000 button_0 - -;pcfx, Port 1, Gamepad: III -pcfx.input.port1.gamepad.iii joystick 0x0003045e028e01010008000b00000000 button_3 - -;pcfx, Port 1, Gamepad: IV -pcfx.input.port1.gamepad.iv joystick 0x0003045e028e01010008000b00000000 button_2 - -;pcfx, Port 1, Gamepad: LEFT ← -pcfx.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;pcfx, Port 1, Gamepad: MODE 1 -pcfx.input.port1.gamepad.mode1 joystick 0x0003045e028e01010008000b00000000 abs_2- - -;Default position for switch "MODE 1". -pcfx.input.port1.gamepad.mode1.defpos a - -;pcfx, Port 1, Gamepad: MODE 2 -pcfx.input.port1.gamepad.mode2 joystick 0x0003045e028e01010008000b00000000 abs_5- - -;Default position for switch "MODE 2". -pcfx.input.port1.gamepad.mode2.defpos a - -;pcfx, Port 1, Gamepad: RIGHT → -pcfx.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;pcfx, Port 1, Gamepad: RUN -pcfx.input.port1.gamepad.run joystick 0x0003045e028e01010008000b00000000 button_7 - -;pcfx, Port 1, Gamepad: SELECT -pcfx.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;pcfx, Port 1, Gamepad: UP ↑ -pcfx.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;pcfx, Port 1, Gamepad: V -pcfx.input.port1.gamepad.v joystick 0x0003045e028e01010008000b00000000 button_4 - -;pcfx, Port 1, Gamepad: VI -pcfx.input.port1.gamepad.vi joystick 0x0003045e028e01010008000b00000000 button_5 - -;pcfx, Port 1, Mouse: Left Button -pcfx.input.port1.mouse.left mouse 0x0 button_left - -;pcfx, Port 1, Mouse: Motion Down -pcfx.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 1, Mouse: Motion Left -pcfx.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 1, Mouse: Motion Right -pcfx.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 1, Mouse: Motion Up -pcfx.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 1, Mouse: Right Button -pcfx.input.port1.mouse.right mouse 0x0 button_right - -;Enable multitap on PC-FX port 1. -pcfx.input.port1.multitap 0 - -;Input device for Port 2 -pcfx.input.port2 gamepad - -;pcfx, Port 2, Gamepad: DOWN ↓ -pcfx.input.port2.gamepad.down - -;pcfx, Port 2, Gamepad: I -pcfx.input.port2.gamepad.i - -;pcfx, Port 2, Gamepad: II -pcfx.input.port2.gamepad.ii - -;pcfx, Port 2, Gamepad: III -pcfx.input.port2.gamepad.iii - -;pcfx, Port 2, Gamepad: IV -pcfx.input.port2.gamepad.iv - -;pcfx, Port 2, Gamepad: LEFT ← -pcfx.input.port2.gamepad.left - -;pcfx, Port 2, Gamepad: MODE 1 -pcfx.input.port2.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port2.gamepad.mode1.defpos a - -;pcfx, Port 2, Gamepad: MODE 2 -pcfx.input.port2.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port2.gamepad.mode2.defpos a - -;pcfx, Port 2, Gamepad: RIGHT → -pcfx.input.port2.gamepad.right - -;pcfx, Port 2, Gamepad: RUN -pcfx.input.port2.gamepad.run - -;pcfx, Port 2, Gamepad: SELECT -pcfx.input.port2.gamepad.select - -;pcfx, Port 2, Gamepad: UP ↑ -pcfx.input.port2.gamepad.up - -;pcfx, Port 2, Gamepad: V -pcfx.input.port2.gamepad.v - -;pcfx, Port 2, Gamepad: VI -pcfx.input.port2.gamepad.vi - -;pcfx, Port 2, Mouse: Left Button -pcfx.input.port2.mouse.left mouse 0x0 button_left - -;pcfx, Port 2, Mouse: Motion Down -pcfx.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 2, Mouse: Motion Left -pcfx.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 2, Mouse: Motion Right -pcfx.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 2, Mouse: Motion Up -pcfx.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 2, Mouse: Right Button -pcfx.input.port2.mouse.right mouse 0x0 button_right - -;Enable multitap on PC-FX port 2. -pcfx.input.port2.multitap 0 - -;Input device for Port 3 -pcfx.input.port3 gamepad - -;pcfx, Port 3, Gamepad: DOWN ↓ -pcfx.input.port3.gamepad.down - -;pcfx, Port 3, Gamepad: I -pcfx.input.port3.gamepad.i - -;pcfx, Port 3, Gamepad: II -pcfx.input.port3.gamepad.ii - -;pcfx, Port 3, Gamepad: III -pcfx.input.port3.gamepad.iii - -;pcfx, Port 3, Gamepad: IV -pcfx.input.port3.gamepad.iv - -;pcfx, Port 3, Gamepad: LEFT ← -pcfx.input.port3.gamepad.left - -;pcfx, Port 3, Gamepad: MODE 1 -pcfx.input.port3.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port3.gamepad.mode1.defpos a - -;pcfx, Port 3, Gamepad: MODE 2 -pcfx.input.port3.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port3.gamepad.mode2.defpos a - -;pcfx, Port 3, Gamepad: RIGHT → -pcfx.input.port3.gamepad.right - -;pcfx, Port 3, Gamepad: RUN -pcfx.input.port3.gamepad.run - -;pcfx, Port 3, Gamepad: SELECT -pcfx.input.port3.gamepad.select - -;pcfx, Port 3, Gamepad: UP ↑ -pcfx.input.port3.gamepad.up - -;pcfx, Port 3, Gamepad: V -pcfx.input.port3.gamepad.v - -;pcfx, Port 3, Gamepad: VI -pcfx.input.port3.gamepad.vi - -;pcfx, Port 3, Mouse: Left Button -pcfx.input.port3.mouse.left mouse 0x0 button_left - -;pcfx, Port 3, Mouse: Motion Down -pcfx.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 3, Mouse: Motion Left -pcfx.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 3, Mouse: Motion Right -pcfx.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 3, Mouse: Motion Up -pcfx.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 3, Mouse: Right Button -pcfx.input.port3.mouse.right mouse 0x0 button_right - -;Input device for Port 4 -pcfx.input.port4 gamepad - -;pcfx, Port 4, Gamepad: DOWN ↓ -pcfx.input.port4.gamepad.down - -;pcfx, Port 4, Gamepad: I -pcfx.input.port4.gamepad.i - -;pcfx, Port 4, Gamepad: II -pcfx.input.port4.gamepad.ii - -;pcfx, Port 4, Gamepad: III -pcfx.input.port4.gamepad.iii - -;pcfx, Port 4, Gamepad: IV -pcfx.input.port4.gamepad.iv - -;pcfx, Port 4, Gamepad: LEFT ← -pcfx.input.port4.gamepad.left - -;pcfx, Port 4, Gamepad: MODE 1 -pcfx.input.port4.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port4.gamepad.mode1.defpos a - -;pcfx, Port 4, Gamepad: MODE 2 -pcfx.input.port4.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port4.gamepad.mode2.defpos a - -;pcfx, Port 4, Gamepad: RIGHT → -pcfx.input.port4.gamepad.right - -;pcfx, Port 4, Gamepad: RUN -pcfx.input.port4.gamepad.run - -;pcfx, Port 4, Gamepad: SELECT -pcfx.input.port4.gamepad.select - -;pcfx, Port 4, Gamepad: UP ↑ -pcfx.input.port4.gamepad.up - -;pcfx, Port 4, Gamepad: V -pcfx.input.port4.gamepad.v - -;pcfx, Port 4, Gamepad: VI -pcfx.input.port4.gamepad.vi - -;pcfx, Port 4, Mouse: Left Button -pcfx.input.port4.mouse.left mouse 0x0 button_left - -;pcfx, Port 4, Mouse: Motion Down -pcfx.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 4, Mouse: Motion Left -pcfx.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 4, Mouse: Motion Right -pcfx.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 4, Mouse: Motion Up -pcfx.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 4, Mouse: Right Button -pcfx.input.port4.mouse.right mouse 0x0 button_right - -;Input device for Port 5 -pcfx.input.port5 gamepad - -;pcfx, Port 5, Gamepad: DOWN ↓ -pcfx.input.port5.gamepad.down - -;pcfx, Port 5, Gamepad: I -pcfx.input.port5.gamepad.i - -;pcfx, Port 5, Gamepad: II -pcfx.input.port5.gamepad.ii - -;pcfx, Port 5, Gamepad: III -pcfx.input.port5.gamepad.iii - -;pcfx, Port 5, Gamepad: IV -pcfx.input.port5.gamepad.iv - -;pcfx, Port 5, Gamepad: LEFT ← -pcfx.input.port5.gamepad.left - -;pcfx, Port 5, Gamepad: MODE 1 -pcfx.input.port5.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port5.gamepad.mode1.defpos a - -;pcfx, Port 5, Gamepad: MODE 2 -pcfx.input.port5.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port5.gamepad.mode2.defpos a - -;pcfx, Port 5, Gamepad: RIGHT → -pcfx.input.port5.gamepad.right - -;pcfx, Port 5, Gamepad: RUN -pcfx.input.port5.gamepad.run - -;pcfx, Port 5, Gamepad: SELECT -pcfx.input.port5.gamepad.select - -;pcfx, Port 5, Gamepad: UP ↑ -pcfx.input.port5.gamepad.up - -;pcfx, Port 5, Gamepad: V -pcfx.input.port5.gamepad.v - -;pcfx, Port 5, Gamepad: VI -pcfx.input.port5.gamepad.vi - -;pcfx, Port 5, Mouse: Left Button -pcfx.input.port5.mouse.left mouse 0x0 button_left - -;pcfx, Port 5, Mouse: Motion Down -pcfx.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 5, Mouse: Motion Left -pcfx.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 5, Mouse: Motion Right -pcfx.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 5, Mouse: Motion Up -pcfx.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 5, Mouse: Right Button -pcfx.input.port5.mouse.right mouse 0x0 button_right - -;Input device for Port 6 -pcfx.input.port6 gamepad - -;pcfx, Port 6, Gamepad: DOWN ↓ -pcfx.input.port6.gamepad.down - -;pcfx, Port 6, Gamepad: I -pcfx.input.port6.gamepad.i - -;pcfx, Port 6, Gamepad: II -pcfx.input.port6.gamepad.ii - -;pcfx, Port 6, Gamepad: III -pcfx.input.port6.gamepad.iii - -;pcfx, Port 6, Gamepad: IV -pcfx.input.port6.gamepad.iv - -;pcfx, Port 6, Gamepad: LEFT ← -pcfx.input.port6.gamepad.left - -;pcfx, Port 6, Gamepad: MODE 1 -pcfx.input.port6.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port6.gamepad.mode1.defpos a - -;pcfx, Port 6, Gamepad: MODE 2 -pcfx.input.port6.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port6.gamepad.mode2.defpos a - -;pcfx, Port 6, Gamepad: RIGHT → -pcfx.input.port6.gamepad.right - -;pcfx, Port 6, Gamepad: RUN -pcfx.input.port6.gamepad.run - -;pcfx, Port 6, Gamepad: SELECT -pcfx.input.port6.gamepad.select - -;pcfx, Port 6, Gamepad: UP ↑ -pcfx.input.port6.gamepad.up - -;pcfx, Port 6, Gamepad: V -pcfx.input.port6.gamepad.v - -;pcfx, Port 6, Gamepad: VI -pcfx.input.port6.gamepad.vi - -;pcfx, Port 6, Mouse: Left Button -pcfx.input.port6.mouse.left mouse 0x0 button_left - -;pcfx, Port 6, Mouse: Motion Down -pcfx.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 6, Mouse: Motion Left -pcfx.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 6, Mouse: Motion Right -pcfx.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 6, Mouse: Motion Up -pcfx.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 6, Mouse: Right Button -pcfx.input.port6.mouse.right mouse 0x0 button_right - -;Input device for Port 7 -pcfx.input.port7 gamepad - -;pcfx, Port 7, Gamepad: DOWN ↓ -pcfx.input.port7.gamepad.down - -;pcfx, Port 7, Gamepad: I -pcfx.input.port7.gamepad.i - -;pcfx, Port 7, Gamepad: II -pcfx.input.port7.gamepad.ii - -;pcfx, Port 7, Gamepad: III -pcfx.input.port7.gamepad.iii - -;pcfx, Port 7, Gamepad: IV -pcfx.input.port7.gamepad.iv - -;pcfx, Port 7, Gamepad: LEFT ← -pcfx.input.port7.gamepad.left - -;pcfx, Port 7, Gamepad: MODE 1 -pcfx.input.port7.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port7.gamepad.mode1.defpos a - -;pcfx, Port 7, Gamepad: MODE 2 -pcfx.input.port7.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port7.gamepad.mode2.defpos a - -;pcfx, Port 7, Gamepad: RIGHT → -pcfx.input.port7.gamepad.right - -;pcfx, Port 7, Gamepad: RUN -pcfx.input.port7.gamepad.run - -;pcfx, Port 7, Gamepad: SELECT -pcfx.input.port7.gamepad.select - -;pcfx, Port 7, Gamepad: UP ↑ -pcfx.input.port7.gamepad.up - -;pcfx, Port 7, Gamepad: V -pcfx.input.port7.gamepad.v - -;pcfx, Port 7, Gamepad: VI -pcfx.input.port7.gamepad.vi - -;pcfx, Port 7, Mouse: Left Button -pcfx.input.port7.mouse.left mouse 0x0 button_left - -;pcfx, Port 7, Mouse: Motion Down -pcfx.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 7, Mouse: Motion Left -pcfx.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 7, Mouse: Motion Right -pcfx.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 7, Mouse: Motion Up -pcfx.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 7, Mouse: Right Button -pcfx.input.port7.mouse.right mouse 0x0 button_right - -;Input device for Port 8 -pcfx.input.port8 gamepad - -;pcfx, Port 8, Gamepad: DOWN ↓ -pcfx.input.port8.gamepad.down - -;pcfx, Port 8, Gamepad: I -pcfx.input.port8.gamepad.i - -;pcfx, Port 8, Gamepad: II -pcfx.input.port8.gamepad.ii - -;pcfx, Port 8, Gamepad: III -pcfx.input.port8.gamepad.iii - -;pcfx, Port 8, Gamepad: IV -pcfx.input.port8.gamepad.iv - -;pcfx, Port 8, Gamepad: LEFT ← -pcfx.input.port8.gamepad.left - -;pcfx, Port 8, Gamepad: MODE 1 -pcfx.input.port8.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port8.gamepad.mode1.defpos a - -;pcfx, Port 8, Gamepad: MODE 2 -pcfx.input.port8.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port8.gamepad.mode2.defpos a - -;pcfx, Port 8, Gamepad: RIGHT → -pcfx.input.port8.gamepad.right - -;pcfx, Port 8, Gamepad: RUN -pcfx.input.port8.gamepad.run - -;pcfx, Port 8, Gamepad: SELECT -pcfx.input.port8.gamepad.select - -;pcfx, Port 8, Gamepad: UP ↑ -pcfx.input.port8.gamepad.up - -;pcfx, Port 8, Gamepad: V -pcfx.input.port8.gamepad.v - -;pcfx, Port 8, Gamepad: VI -pcfx.input.port8.gamepad.vi - -;pcfx, Port 8, Mouse: Left Button -pcfx.input.port8.mouse.left mouse 0x0 button_left - -;pcfx, Port 8, Mouse: Motion Down -pcfx.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 8, Mouse: Motion Left -pcfx.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 8, Mouse: Motion Right -pcfx.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 8, Mouse: Motion Up -pcfx.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 8, Mouse: Right Button -pcfx.input.port8.mouse.right mouse 0x0 button_right - -;Mouse sensitivity. -pcfx.mouse_sensitivity 1.25 - -;Remove 16-sprites-per-scanline hardware limit. -pcfx.nospritelimit 0 - -;Enable bilinear interpolation on the chroma channel of RAINBOW YUV output. -pcfx.rainbow.chromaip 0 - -;Sound quality. -pcfx.resamp_quality 3 - -;Output rate tolerance. -pcfx.resamp_rate_error 0.0000009 - -;Enable scanlines with specified opacity. -pcfx.scanlines 0 - -;Enable specified OpenGL shader. -pcfx.shader sabr - -;Force interlaced video to be treated as progressive. -pcfx.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -pcfx.shader.goat.hdiv 0.50 - -;Mask pattern. -pcfx.shader.goat.pat goatron - -;Enable scanlines effect. -pcfx.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -pcfx.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -pcfx.shader.goat.vdiv 0.50 - -;Last rendered scanline. -pcfx.slend 235 - -;First rendered scanline. -pcfx.slstart 4 - -;Enable specified special video scaler. -pcfx.special none - -;Stretch to fill screen. -pcfx.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -pcfx.tblur 0 - -;Accumulate color data rather than discarding it. -pcfx.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -pcfx.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -pcfx.videoip 1 - -;Full-screen horizontal resolution. -pcfx.xres 0 - -;Scaling factor for the X axis in windowed mode. -pcfx.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -pcfx.xscalefs 1.000000 - -;Full-screen vertical resolution. -pcfx.yres 0 - -;Scaling factor for the Y axis in windowed mode. -pcfx.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -pcfx.yscalefs 1.000000 - -;Enable scanlines with specified opacity. -player.scanlines 0 - -;Enable specified OpenGL shader. -player.shader none - -;Force interlaced video to be treated as progressive. -player.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -player.shader.goat.hdiv 0.50 - -;Mask pattern. -player.shader.goat.pat goatron - -;Enable scanlines effect. -player.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -player.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -player.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -player.special none - -;Stretch to fill screen. -player.stretch aspect_mult2 - -;Enable (bi)linear interpolation. -player.videoip 0 - -;Full-screen horizontal resolution. -player.xres 0 - -;Scaling factor for the X axis in windowed mode. -player.xscale 2.000000 - -;Scaling factor for the X axis in fullscreen mode. -player.xscalefs 1.000000 - -;Full-screen vertical resolution. -player.yres 0 - -;Scaling factor for the Y axis in windowed mode. -player.yscale 2.000000 - -;Scaling factor for the Y axis in fullscreen mode. -player.yscalefs 1.000000 - -;Path to the Europe SCPH-5502/v3.0E ROM BIOS -psx.bios_eu scph5502.bin - -;Path to the Japan SCPH-5500/v3.0J ROM BIOS -psx.bios_jp scph5500.bin - -;Path to the North America SCPH-5501/v3.0A ROM BIOS -psx.bios_na scph5501.bin - -;Enable BIOS ROM image sanity checks. -psx.bios_sanity 1 - -;Enable CD (image) sanity checks. -psx.cd_sanity 1 - -;Correct aspect ratio. -psx.correct_aspect 1 - -;CD image to use with .PSX/.EXE loading. -psx.dbg_exe_cdpath - -;Debug printf verbosity level. -psx.dbg_level 0 - -;Disassembly font size. -psx.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -psx.debugger.memcharenc shift_jis - -;Enable (automatic) usage of this module. -psx.enable 1 - -;Force monophonic sound output. -psx.forcemono 0 - -;Show horizontal overscan area. -psx.h_overscan 1 - -;Enable analog mode combo-button alternate toggle. -psx.input.analog_mode_ct 0 - -;Compare value for analog mode combo-button alternate toggle. -psx.input.analog_mode_ct.compare 0x0F09 - -;Emulated mouse sensitivity. -psx.input.mouse_sensitivity 1.00 - -;Input device for Virtual Port 1 -psx.input.port1 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 1. -psx.input.port1.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 1, Analog Joystick: Right stick, R-thumb -psx.input.port1.analogjoy.circle - -;psx, Virtual Port 1, Analog Joystick: Right stick, L-thumb -psx.input.port1.analogjoy.cross - -;psx, Virtual Port 1, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port1.analogjoy.down - -;psx, Virtual Port 1, Analog Joystick: Left stick, L-thumb -psx.input.port1.analogjoy.l1 - -;psx, Virtual Port 1, Analog Joystick: Left stick, Trigger -psx.input.port1.analogjoy.l2 - -;psx, Virtual Port 1, Analog Joystick: Thumbstick LEFT ← -psx.input.port1.analogjoy.left - -;psx, Virtual Port 1, Analog Joystick: Left Stick, BACK ↓ -psx.input.port1.analogjoy.lstick_down - -;psx, Virtual Port 1, Analog Joystick: Left Stick, LEFT ← -psx.input.port1.analogjoy.lstick_left - -;psx, Virtual Port 1, Analog Joystick: Left Stick, RIGHT → -psx.input.port1.analogjoy.lstick_right - -;psx, Virtual Port 1, Analog Joystick: Left Stick, FORE ↑ -psx.input.port1.analogjoy.lstick_up - -;psx, Virtual Port 1, Analog Joystick: Left stick, R-thumb -psx.input.port1.analogjoy.r1 - -;psx, Virtual Port 1, Analog Joystick: Left stick, Pinky -psx.input.port1.analogjoy.r2 - -;psx, Virtual Port 1, Analog Joystick: Thumbstick RIGHT → -psx.input.port1.analogjoy.right - -;psx, Virtual Port 1, Analog Joystick: Right Stick, BACK ↓ -psx.input.port1.analogjoy.rstick_down - -;psx, Virtual Port 1, Analog Joystick: Right Stick, LEFT ← -psx.input.port1.analogjoy.rstick_left - -;psx, Virtual Port 1, Analog Joystick: Right Stick, RIGHT → -psx.input.port1.analogjoy.rstick_right - -;psx, Virtual Port 1, Analog Joystick: Right Stick, FORE ↑ -psx.input.port1.analogjoy.rstick_up - -;psx, Virtual Port 1, Analog Joystick: SELECT -psx.input.port1.analogjoy.select - -;psx, Virtual Port 1, Analog Joystick: Right stick, Trigger -psx.input.port1.analogjoy.square - -;psx, Virtual Port 1, Analog Joystick: START -psx.input.port1.analogjoy.start - -;psx, Virtual Port 1, Analog Joystick: Right stick, Pinky -psx.input.port1.analogjoy.triangle - -;psx, Virtual Port 1, Analog Joystick: Thumbstick UP ↑ -psx.input.port1.analogjoy.up - -;psx, Virtual Port 1, Dance Pad: ○ (upper right) -psx.input.port1.dancepad.circle keyboard 0x0 97 - -;psx, Virtual Port 1, Dance Pad: x (upper left) -psx.input.port1.dancepad.cross keyboard 0x0 95 - -;psx, Virtual Port 1, Dance Pad: DOWN ↓ -psx.input.port1.dancepad.down keyboard 0x0 90 - -;psx, Virtual Port 1, Dance Pad: LEFT ← -psx.input.port1.dancepad.left keyboard 0x0 92 - -;psx, Virtual Port 1, Dance Pad: RIGHT → -psx.input.port1.dancepad.right keyboard 0x0 94 - -;psx, Virtual Port 1, Dance Pad: SELECT -psx.input.port1.dancepad.select keyboard 0x0 84 - -;psx, Virtual Port 1, Dance Pad: □ (lower right) -psx.input.port1.dancepad.square keyboard 0x0 91 - -;psx, Virtual Port 1, Dance Pad: START -psx.input.port1.dancepad.start keyboard 0x0 85 - -;psx, Virtual Port 1, Dance Pad: △ (lower left) -psx.input.port1.dancepad.triangle keyboard 0x0 89 - -;psx, Virtual Port 1, Dance Pad: UP ↑ -psx.input.port1.dancepad.up keyboard 0x0 96 - -;Analog axis scale coefficient for Dual Analog on Virtual Port 1. -psx.input.port1.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 1, Dual Analog: ○ (right) -psx.input.port1.dualanalog.circle - -;psx, Virtual Port 1, Dual Analog: x (lower) -psx.input.port1.dualanalog.cross - -;psx, Virtual Port 1, Dual Analog: D-Pad DOWN ↓ -psx.input.port1.dualanalog.down - -;psx, Virtual Port 1, Dual Analog: L1 (front left shoulder) -psx.input.port1.dualanalog.l1 - -;psx, Virtual Port 1, Dual Analog: L2 (rear left shoulder) -psx.input.port1.dualanalog.l2 - -;psx, Virtual Port 1, Dual Analog: Left Stick, Button(L3) -psx.input.port1.dualanalog.l3 - -;psx, Virtual Port 1, Dual Analog: D-Pad LEFT ← -psx.input.port1.dualanalog.left - -;psx, Virtual Port 1, Dual Analog: Left Stick DOWN ↓ -psx.input.port1.dualanalog.lstick_down - -;psx, Virtual Port 1, Dual Analog: Left Stick LEFT ← -psx.input.port1.dualanalog.lstick_left - -;psx, Virtual Port 1, Dual Analog: Left Stick RIGHT → -psx.input.port1.dualanalog.lstick_right - -;psx, Virtual Port 1, Dual Analog: Left Stick UP ↑ -psx.input.port1.dualanalog.lstick_up - -;psx, Virtual Port 1, Dual Analog: R1 (front right shoulder) -psx.input.port1.dualanalog.r1 - -;psx, Virtual Port 1, Dual Analog: R2 (rear right shoulder) -psx.input.port1.dualanalog.r2 - -;psx, Virtual Port 1, Dual Analog: Right stick, Button(R3) -psx.input.port1.dualanalog.r3 - -;psx, Virtual Port 1, Dual Analog: Rapid ○ (right) -psx.input.port1.dualanalog.rapid_circle - -;psx, Virtual Port 1, Dual Analog: Rapid x (lower) -psx.input.port1.dualanalog.rapid_cross - -;psx, Virtual Port 1, Dual Analog: Rapid □ (left) -psx.input.port1.dualanalog.rapid_square - -;psx, Virtual Port 1, Dual Analog: Rapid △ (upper) -psx.input.port1.dualanalog.rapid_triangle - -;psx, Virtual Port 1, Dual Analog: D-Pad RIGHT → -psx.input.port1.dualanalog.right - -;psx, Virtual Port 1, Dual Analog: Right Stick DOWN ↓ -psx.input.port1.dualanalog.rstick_down - -;psx, Virtual Port 1, Dual Analog: Right Stick LEFT ← -psx.input.port1.dualanalog.rstick_left - -;psx, Virtual Port 1, Dual Analog: Right Stick RIGHT → -psx.input.port1.dualanalog.rstick_right - -;psx, Virtual Port 1, Dual Analog: Right Stick UP ↑ -psx.input.port1.dualanalog.rstick_up - -;psx, Virtual Port 1, Dual Analog: SELECT -psx.input.port1.dualanalog.select - -;psx, Virtual Port 1, Dual Analog: □ (left) -psx.input.port1.dualanalog.square - -;psx, Virtual Port 1, Dual Analog: START -psx.input.port1.dualanalog.start - -;psx, Virtual Port 1, Dual Analog: △ (upper) -psx.input.port1.dualanalog.triangle - -;psx, Virtual Port 1, Dual Analog: D-Pad UP ↑ -psx.input.port1.dualanalog.up - -;psx, Virtual Port 1, DualShock: Analog(mode toggle) -psx.input.port1.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 1. -psx.input.port1.dualshock.axis_scale 1.00 - -;psx, Virtual Port 1, DualShock: ○ (right) -psx.input.port1.dualshock.circle - -;psx, Virtual Port 1, DualShock: x (lower) -psx.input.port1.dualshock.cross - -;psx, Virtual Port 1, DualShock: D-Pad DOWN ↓ -psx.input.port1.dualshock.down - -;psx, Virtual Port 1, DualShock: L1 (front left shoulder) -psx.input.port1.dualshock.l1 - -;psx, Virtual Port 1, DualShock: L2 (rear left shoulder) -psx.input.port1.dualshock.l2 - -;psx, Virtual Port 1, DualShock: Left Stick, Button(L3) -psx.input.port1.dualshock.l3 - -;psx, Virtual Port 1, DualShock: D-Pad LEFT ← -psx.input.port1.dualshock.left - -;psx, Virtual Port 1, DualShock: Left Stick DOWN ↓ -psx.input.port1.dualshock.lstick_down - -;psx, Virtual Port 1, DualShock: Left Stick LEFT ← -psx.input.port1.dualshock.lstick_left - -;psx, Virtual Port 1, DualShock: Left Stick RIGHT → -psx.input.port1.dualshock.lstick_right - -;psx, Virtual Port 1, DualShock: Left Stick UP ↑ -psx.input.port1.dualshock.lstick_up - -;psx, Virtual Port 1, DualShock: R1 (front right shoulder) -psx.input.port1.dualshock.r1 - -;psx, Virtual Port 1, DualShock: R2 (rear right shoulder) -psx.input.port1.dualshock.r2 - -;psx, Virtual Port 1, DualShock: Right stick, Button(R3) -psx.input.port1.dualshock.r3 - -;psx, Virtual Port 1, DualShock: Rapid ○ (right) -psx.input.port1.dualshock.rapid_circle - -;psx, Virtual Port 1, DualShock: Rapid x (lower) -psx.input.port1.dualshock.rapid_cross - -;psx, Virtual Port 1, DualShock: Rapid □ (left) -psx.input.port1.dualshock.rapid_square - -;psx, Virtual Port 1, DualShock: Rapid △ (upper) -psx.input.port1.dualshock.rapid_triangle - -;psx, Virtual Port 1, DualShock: D-Pad RIGHT → -psx.input.port1.dualshock.right - -;psx, Virtual Port 1, DualShock: Right Stick DOWN ↓ -psx.input.port1.dualshock.rstick_down - -;psx, Virtual Port 1, DualShock: Right Stick LEFT ← -psx.input.port1.dualshock.rstick_left - -;psx, Virtual Port 1, DualShock: Right Stick RIGHT → -psx.input.port1.dualshock.rstick_right - -;psx, Virtual Port 1, DualShock: Right Stick UP ↑ -psx.input.port1.dualshock.rstick_up - -;psx, Virtual Port 1, DualShock: SELECT -psx.input.port1.dualshock.select - -;psx, Virtual Port 1, DualShock: □ (left) -psx.input.port1.dualshock.square - -;psx, Virtual Port 1, DualShock: START -psx.input.port1.dualshock.start - -;psx, Virtual Port 1, DualShock: △ (upper) -psx.input.port1.dualshock.triangle - -;psx, Virtual Port 1, DualShock: D-Pad UP ↑ -psx.input.port1.dualshock.up - -;psx, Virtual Port 1, Digital Gamepad: ○ (right) -psx.input.port1.gamepad.circle keyboard 0x0 94 - -;psx, Virtual Port 1, Digital Gamepad: x (lower) -psx.input.port1.gamepad.cross keyboard 0x0 90 - -;psx, Virtual Port 1, Digital Gamepad: DOWN ↓ -psx.input.port1.gamepad.down keyboard 0x0 22 - -;psx, Virtual Port 1, Digital Gamepad: L1 (front left shoulder) -psx.input.port1.gamepad.l1 keyboard 0x0 89 - -;psx, Virtual Port 1, Digital Gamepad: L2 (rear left shoulder) -psx.input.port1.gamepad.l2 keyboard 0x0 95 - -;psx, Virtual Port 1, Digital Gamepad: LEFT ← -psx.input.port1.gamepad.left keyboard 0x0 4 - -;psx, Virtual Port 1, Digital Gamepad: R1 (front right shoulder) -psx.input.port1.gamepad.r1 keyboard 0x0 91 - -;psx, Virtual Port 1, Digital Gamepad: R2 (rear right shoulder) -psx.input.port1.gamepad.r2 keyboard 0x0 97 - -;psx, Virtual Port 1, Digital Gamepad: Rapid ○ (right) -psx.input.port1.gamepad.rapid_circle - -;psx, Virtual Port 1, Digital Gamepad: Rapid x (lower) -psx.input.port1.gamepad.rapid_cross - -;psx, Virtual Port 1, Digital Gamepad: Rapid □ (left) -psx.input.port1.gamepad.rapid_square - -;psx, Virtual Port 1, Digital Gamepad: Rapid △ (upper) -psx.input.port1.gamepad.rapid_triangle - -;psx, Virtual Port 1, Digital Gamepad: RIGHT → -psx.input.port1.gamepad.right keyboard 0x0 7 - -;psx, Virtual Port 1, Digital Gamepad: SELECT -psx.input.port1.gamepad.select keyboard 0x0 43 - -;psx, Virtual Port 1, Digital Gamepad: □ (left) -psx.input.port1.gamepad.square keyboard 0x0 92 - -;psx, Virtual Port 1, Digital Gamepad: START -psx.input.port1.gamepad.start keyboard 0x0 40 - -;psx, Virtual Port 1, Digital Gamepad: △ (upper) -psx.input.port1.gamepad.triangle keyboard 0x0 96 - -;psx, Virtual Port 1, Digital Gamepad: UP ↑ -psx.input.port1.gamepad.up keyboard 0x0 26 - -;Crosshairs color for lightgun on virtual port 1. -psx.input.port1.gun_chairs 0xFF0000 - -;psx, Virtual Port 1, GunCon: A -psx.input.port1.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 1, GunCon: B -psx.input.port1.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 1, GunCon: Offscreen Shot(Simulated) -psx.input.port1.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 1, GunCon: Trigger -psx.input.port1.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 1, GunCon: X Axis -psx.input.port1.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 1, GunCon: Y Axis -psx.input.port1.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 1, Konami Justifier: O -psx.input.port1.justifier.o mouse 0x0 button_right - -;psx, Virtual Port 1, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port1.justifier.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 1, Konami Justifier: Start -psx.input.port1.justifier.start mouse 0x0 button_middle - -;psx, Virtual Port 1, Konami Justifier: Trigger -psx.input.port1.justifier.trigger mouse 0x0 button_left - -;psx, Virtual Port 1, Konami Justifier: X Axis -psx.input.port1.justifier.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 1, Konami Justifier: Y Axis -psx.input.port1.justifier.y_axis mouse 0x0 cursor_y-+ - -;Emulate memory card on virtual port 1. -psx.input.port1.memcard 1 - -;psx, Virtual Port 1, Mouse: Left Button -psx.input.port1.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 1, Mouse: Motion Down -psx.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 1, Mouse: Motion Left -psx.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 1, Mouse: Motion Right -psx.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 1, Mouse: Motion Up -psx.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 1, Mouse: Right Button -psx.input.port1.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 1, neGcon: A -psx.input.port1.negcon.a - -;psx, Virtual Port 1, neGcon: B -psx.input.port1.negcon.b - -;psx, Virtual Port 1, neGcon: D-Pad DOWN ↓ -psx.input.port1.negcon.down - -;psx, Virtual Port 1, neGcon: I (Analog) -psx.input.port1.negcon.i - -;psx, Virtual Port 1, neGcon: II (Analog) -psx.input.port1.negcon.ii - -;psx, Virtual Port 1, neGcon: Left Shoulder (Analog) -psx.input.port1.negcon.l - -;psx, Virtual Port 1, neGcon: D-Pad LEFT ← -psx.input.port1.negcon.left - -;psx, Virtual Port 1, neGcon: Right Shoulder -psx.input.port1.negcon.r - -;psx, Virtual Port 1, neGcon: D-Pad RIGHT → -psx.input.port1.negcon.right - -;psx, Virtual Port 1, neGcon: START -psx.input.port1.negcon.start - -;psx, Virtual Port 1, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port1.negcon.twist_ccwise - -;psx, Virtual Port 1, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port1.negcon.twist_cwise - -;psx, Virtual Port 1, neGcon: D-Pad UP ↑ -psx.input.port1.negcon.up - -;Input device for Virtual Port 2 -psx.input.port2 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 2. -psx.input.port2.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 2, Analog Joystick: Right stick, R-thumb -psx.input.port2.analogjoy.circle - -;psx, Virtual Port 2, Analog Joystick: Right stick, L-thumb -psx.input.port2.analogjoy.cross - -;psx, Virtual Port 2, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port2.analogjoy.down - -;psx, Virtual Port 2, Analog Joystick: Left stick, L-thumb -psx.input.port2.analogjoy.l1 - -;psx, Virtual Port 2, Analog Joystick: Left stick, Trigger -psx.input.port2.analogjoy.l2 - -;psx, Virtual Port 2, Analog Joystick: Thumbstick LEFT ← -psx.input.port2.analogjoy.left - -;psx, Virtual Port 2, Analog Joystick: Left Stick, BACK ↓ -psx.input.port2.analogjoy.lstick_down - -;psx, Virtual Port 2, Analog Joystick: Left Stick, LEFT ← -psx.input.port2.analogjoy.lstick_left - -;psx, Virtual Port 2, Analog Joystick: Left Stick, RIGHT → -psx.input.port2.analogjoy.lstick_right - -;psx, Virtual Port 2, Analog Joystick: Left Stick, FORE ↑ -psx.input.port2.analogjoy.lstick_up - -;psx, Virtual Port 2, Analog Joystick: Left stick, R-thumb -psx.input.port2.analogjoy.r1 - -;psx, Virtual Port 2, Analog Joystick: Left stick, Pinky -psx.input.port2.analogjoy.r2 - -;psx, Virtual Port 2, Analog Joystick: Thumbstick RIGHT → -psx.input.port2.analogjoy.right - -;psx, Virtual Port 2, Analog Joystick: Right Stick, BACK ↓ -psx.input.port2.analogjoy.rstick_down - -;psx, Virtual Port 2, Analog Joystick: Right Stick, LEFT ← -psx.input.port2.analogjoy.rstick_left - -;psx, Virtual Port 2, Analog Joystick: Right Stick, RIGHT → -psx.input.port2.analogjoy.rstick_right - -;psx, Virtual Port 2, Analog Joystick: Right Stick, FORE ↑ -psx.input.port2.analogjoy.rstick_up - -;psx, Virtual Port 2, Analog Joystick: SELECT -psx.input.port2.analogjoy.select - -;psx, Virtual Port 2, Analog Joystick: Right stick, Trigger -psx.input.port2.analogjoy.square - -;psx, Virtual Port 2, Analog Joystick: START -psx.input.port2.analogjoy.start - -;psx, Virtual Port 2, Analog Joystick: Right stick, Pinky -psx.input.port2.analogjoy.triangle - -;psx, Virtual Port 2, Analog Joystick: Thumbstick UP ↑ -psx.input.port2.analogjoy.up - -;psx, Virtual Port 2, Dance Pad: ○ (upper right) -psx.input.port2.dancepad.circle - -;psx, Virtual Port 2, Dance Pad: x (upper left) -psx.input.port2.dancepad.cross - -;psx, Virtual Port 2, Dance Pad: DOWN ↓ -psx.input.port2.dancepad.down - -;psx, Virtual Port 2, Dance Pad: LEFT ← -psx.input.port2.dancepad.left - -;psx, Virtual Port 2, Dance Pad: RIGHT → -psx.input.port2.dancepad.right - -;psx, Virtual Port 2, Dance Pad: SELECT -psx.input.port2.dancepad.select - -;psx, Virtual Port 2, Dance Pad: □ (lower right) -psx.input.port2.dancepad.square - -;psx, Virtual Port 2, Dance Pad: START -psx.input.port2.dancepad.start - -;psx, Virtual Port 2, Dance Pad: △ (lower left) -psx.input.port2.dancepad.triangle - -;psx, Virtual Port 2, Dance Pad: UP ↑ -psx.input.port2.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 2. -psx.input.port2.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 2, Dual Analog: ○ (right) -psx.input.port2.dualanalog.circle - -;psx, Virtual Port 2, Dual Analog: x (lower) -psx.input.port2.dualanalog.cross - -;psx, Virtual Port 2, Dual Analog: D-Pad DOWN ↓ -psx.input.port2.dualanalog.down - -;psx, Virtual Port 2, Dual Analog: L1 (front left shoulder) -psx.input.port2.dualanalog.l1 - -;psx, Virtual Port 2, Dual Analog: L2 (rear left shoulder) -psx.input.port2.dualanalog.l2 - -;psx, Virtual Port 2, Dual Analog: Left Stick, Button(L3) -psx.input.port2.dualanalog.l3 - -;psx, Virtual Port 2, Dual Analog: D-Pad LEFT ← -psx.input.port2.dualanalog.left - -;psx, Virtual Port 2, Dual Analog: Left Stick DOWN ↓ -psx.input.port2.dualanalog.lstick_down - -;psx, Virtual Port 2, Dual Analog: Left Stick LEFT ← -psx.input.port2.dualanalog.lstick_left - -;psx, Virtual Port 2, Dual Analog: Left Stick RIGHT → -psx.input.port2.dualanalog.lstick_right - -;psx, Virtual Port 2, Dual Analog: Left Stick UP ↑ -psx.input.port2.dualanalog.lstick_up - -;psx, Virtual Port 2, Dual Analog: R1 (front right shoulder) -psx.input.port2.dualanalog.r1 - -;psx, Virtual Port 2, Dual Analog: R2 (rear right shoulder) -psx.input.port2.dualanalog.r2 - -;psx, Virtual Port 2, Dual Analog: Right stick, Button(R3) -psx.input.port2.dualanalog.r3 - -;psx, Virtual Port 2, Dual Analog: Rapid ○ (right) -psx.input.port2.dualanalog.rapid_circle - -;psx, Virtual Port 2, Dual Analog: Rapid x (lower) -psx.input.port2.dualanalog.rapid_cross - -;psx, Virtual Port 2, Dual Analog: Rapid □ (left) -psx.input.port2.dualanalog.rapid_square - -;psx, Virtual Port 2, Dual Analog: Rapid △ (upper) -psx.input.port2.dualanalog.rapid_triangle - -;psx, Virtual Port 2, Dual Analog: D-Pad RIGHT → -psx.input.port2.dualanalog.right - -;psx, Virtual Port 2, Dual Analog: Right Stick DOWN ↓ -psx.input.port2.dualanalog.rstick_down - -;psx, Virtual Port 2, Dual Analog: Right Stick LEFT ← -psx.input.port2.dualanalog.rstick_left - -;psx, Virtual Port 2, Dual Analog: Right Stick RIGHT → -psx.input.port2.dualanalog.rstick_right - -;psx, Virtual Port 2, Dual Analog: Right Stick UP ↑ -psx.input.port2.dualanalog.rstick_up - -;psx, Virtual Port 2, Dual Analog: SELECT -psx.input.port2.dualanalog.select - -;psx, Virtual Port 2, Dual Analog: □ (left) -psx.input.port2.dualanalog.square - -;psx, Virtual Port 2, Dual Analog: START -psx.input.port2.dualanalog.start - -;psx, Virtual Port 2, Dual Analog: △ (upper) -psx.input.port2.dualanalog.triangle - -;psx, Virtual Port 2, Dual Analog: D-Pad UP ↑ -psx.input.port2.dualanalog.up - -;psx, Virtual Port 2, DualShock: Analog(mode toggle) -psx.input.port2.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 2. -psx.input.port2.dualshock.axis_scale 1.00 - -;psx, Virtual Port 2, DualShock: ○ (right) -psx.input.port2.dualshock.circle - -;psx, Virtual Port 2, DualShock: x (lower) -psx.input.port2.dualshock.cross - -;psx, Virtual Port 2, DualShock: D-Pad DOWN ↓ -psx.input.port2.dualshock.down - -;psx, Virtual Port 2, DualShock: L1 (front left shoulder) -psx.input.port2.dualshock.l1 - -;psx, Virtual Port 2, DualShock: L2 (rear left shoulder) -psx.input.port2.dualshock.l2 - -;psx, Virtual Port 2, DualShock: Left Stick, Button(L3) -psx.input.port2.dualshock.l3 - -;psx, Virtual Port 2, DualShock: D-Pad LEFT ← -psx.input.port2.dualshock.left - -;psx, Virtual Port 2, DualShock: Left Stick DOWN ↓ -psx.input.port2.dualshock.lstick_down - -;psx, Virtual Port 2, DualShock: Left Stick LEFT ← -psx.input.port2.dualshock.lstick_left - -;psx, Virtual Port 2, DualShock: Left Stick RIGHT → -psx.input.port2.dualshock.lstick_right - -;psx, Virtual Port 2, DualShock: Left Stick UP ↑ -psx.input.port2.dualshock.lstick_up - -;psx, Virtual Port 2, DualShock: R1 (front right shoulder) -psx.input.port2.dualshock.r1 - -;psx, Virtual Port 2, DualShock: R2 (rear right shoulder) -psx.input.port2.dualshock.r2 - -;psx, Virtual Port 2, DualShock: Right stick, Button(R3) -psx.input.port2.dualshock.r3 - -;psx, Virtual Port 2, DualShock: Rapid ○ (right) -psx.input.port2.dualshock.rapid_circle - -;psx, Virtual Port 2, DualShock: Rapid x (lower) -psx.input.port2.dualshock.rapid_cross - -;psx, Virtual Port 2, DualShock: Rapid □ (left) -psx.input.port2.dualshock.rapid_square - -;psx, Virtual Port 2, DualShock: Rapid △ (upper) -psx.input.port2.dualshock.rapid_triangle - -;psx, Virtual Port 2, DualShock: D-Pad RIGHT → -psx.input.port2.dualshock.right - -;psx, Virtual Port 2, DualShock: Right Stick DOWN ↓ -psx.input.port2.dualshock.rstick_down - -;psx, Virtual Port 2, DualShock: Right Stick LEFT ← -psx.input.port2.dualshock.rstick_left - -;psx, Virtual Port 2, DualShock: Right Stick RIGHT → -psx.input.port2.dualshock.rstick_right - -;psx, Virtual Port 2, DualShock: Right Stick UP ↑ -psx.input.port2.dualshock.rstick_up - -;psx, Virtual Port 2, DualShock: SELECT -psx.input.port2.dualshock.select - -;psx, Virtual Port 2, DualShock: □ (left) -psx.input.port2.dualshock.square - -;psx, Virtual Port 2, DualShock: START -psx.input.port2.dualshock.start - -;psx, Virtual Port 2, DualShock: △ (upper) -psx.input.port2.dualshock.triangle - -;psx, Virtual Port 2, DualShock: D-Pad UP ↑ -psx.input.port2.dualshock.up - -;psx, Virtual Port 2, Digital Gamepad: ○ (right) -psx.input.port2.gamepad.circle - -;psx, Virtual Port 2, Digital Gamepad: x (lower) -psx.input.port2.gamepad.cross - -;psx, Virtual Port 2, Digital Gamepad: DOWN ↓ -psx.input.port2.gamepad.down - -;psx, Virtual Port 2, Digital Gamepad: L1 (front left shoulder) -psx.input.port2.gamepad.l1 - -;psx, Virtual Port 2, Digital Gamepad: L2 (rear left shoulder) -psx.input.port2.gamepad.l2 - -;psx, Virtual Port 2, Digital Gamepad: LEFT ← -psx.input.port2.gamepad.left - -;psx, Virtual Port 2, Digital Gamepad: R1 (front right shoulder) -psx.input.port2.gamepad.r1 - -;psx, Virtual Port 2, Digital Gamepad: R2 (rear right shoulder) -psx.input.port2.gamepad.r2 - -;psx, Virtual Port 2, Digital Gamepad: Rapid ○ (right) -psx.input.port2.gamepad.rapid_circle - -;psx, Virtual Port 2, Digital Gamepad: Rapid x (lower) -psx.input.port2.gamepad.rapid_cross - -;psx, Virtual Port 2, Digital Gamepad: Rapid □ (left) -psx.input.port2.gamepad.rapid_square - -;psx, Virtual Port 2, Digital Gamepad: Rapid △ (upper) -psx.input.port2.gamepad.rapid_triangle - -;psx, Virtual Port 2, Digital Gamepad: RIGHT → -psx.input.port2.gamepad.right - -;psx, Virtual Port 2, Digital Gamepad: SELECT -psx.input.port2.gamepad.select - -;psx, Virtual Port 2, Digital Gamepad: □ (left) -psx.input.port2.gamepad.square - -;psx, Virtual Port 2, Digital Gamepad: START -psx.input.port2.gamepad.start - -;psx, Virtual Port 2, Digital Gamepad: △ (upper) -psx.input.port2.gamepad.triangle - -;psx, Virtual Port 2, Digital Gamepad: UP ↑ -psx.input.port2.gamepad.up - -;Crosshairs color for lightgun on virtual port 2. -psx.input.port2.gun_chairs 0x00FF00 - -;psx, Virtual Port 2, GunCon: A -psx.input.port2.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 2, GunCon: B -psx.input.port2.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 2, GunCon: Offscreen Shot(Simulated) -psx.input.port2.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 2, GunCon: Trigger -psx.input.port2.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 2, GunCon: X Axis -psx.input.port2.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 2, GunCon: Y Axis -psx.input.port2.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 2, Konami Justifier: O -psx.input.port2.justifier.o mouse 0x0 button_right - -;psx, Virtual Port 2, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port2.justifier.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 2, Konami Justifier: Start -psx.input.port2.justifier.start mouse 0x0 button_middle - -;psx, Virtual Port 2, Konami Justifier: Trigger -psx.input.port2.justifier.trigger mouse 0x0 button_left - -;psx, Virtual Port 2, Konami Justifier: X Axis -psx.input.port2.justifier.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 2, Konami Justifier: Y Axis -psx.input.port2.justifier.y_axis mouse 0x0 cursor_y-+ - -;Emulate memory card on virtual port 2. -psx.input.port2.memcard 1 - -;psx, Virtual Port 2, Mouse: Left Button -psx.input.port2.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 2, Mouse: Motion Down -psx.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 2, Mouse: Motion Left -psx.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 2, Mouse: Motion Right -psx.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 2, Mouse: Motion Up -psx.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 2, Mouse: Right Button -psx.input.port2.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 2, neGcon: A -psx.input.port2.negcon.a - -;psx, Virtual Port 2, neGcon: B -psx.input.port2.negcon.b - -;psx, Virtual Port 2, neGcon: D-Pad DOWN ↓ -psx.input.port2.negcon.down - -;psx, Virtual Port 2, neGcon: I (Analog) -psx.input.port2.negcon.i - -;psx, Virtual Port 2, neGcon: II (Analog) -psx.input.port2.negcon.ii - -;psx, Virtual Port 2, neGcon: Left Shoulder (Analog) -psx.input.port2.negcon.l - -;psx, Virtual Port 2, neGcon: D-Pad LEFT ← -psx.input.port2.negcon.left - -;psx, Virtual Port 2, neGcon: Right Shoulder -psx.input.port2.negcon.r - -;psx, Virtual Port 2, neGcon: D-Pad RIGHT → -psx.input.port2.negcon.right - -;psx, Virtual Port 2, neGcon: START -psx.input.port2.negcon.start - -;psx, Virtual Port 2, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port2.negcon.twist_ccwise - -;psx, Virtual Port 2, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port2.negcon.twist_cwise - -;psx, Virtual Port 2, neGcon: D-Pad UP ↑ -psx.input.port2.negcon.up - -;Input device for Virtual Port 3 -psx.input.port3 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 3. -psx.input.port3.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 3, Analog Joystick: Right stick, R-thumb -psx.input.port3.analogjoy.circle - -;psx, Virtual Port 3, Analog Joystick: Right stick, L-thumb -psx.input.port3.analogjoy.cross - -;psx, Virtual Port 3, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port3.analogjoy.down - -;psx, Virtual Port 3, Analog Joystick: Left stick, L-thumb -psx.input.port3.analogjoy.l1 - -;psx, Virtual Port 3, Analog Joystick: Left stick, Trigger -psx.input.port3.analogjoy.l2 - -;psx, Virtual Port 3, Analog Joystick: Thumbstick LEFT ← -psx.input.port3.analogjoy.left - -;psx, Virtual Port 3, Analog Joystick: Left Stick, BACK ↓ -psx.input.port3.analogjoy.lstick_down - -;psx, Virtual Port 3, Analog Joystick: Left Stick, LEFT ← -psx.input.port3.analogjoy.lstick_left - -;psx, Virtual Port 3, Analog Joystick: Left Stick, RIGHT → -psx.input.port3.analogjoy.lstick_right - -;psx, Virtual Port 3, Analog Joystick: Left Stick, FORE ↑ -psx.input.port3.analogjoy.lstick_up - -;psx, Virtual Port 3, Analog Joystick: Left stick, R-thumb -psx.input.port3.analogjoy.r1 - -;psx, Virtual Port 3, Analog Joystick: Left stick, Pinky -psx.input.port3.analogjoy.r2 - -;psx, Virtual Port 3, Analog Joystick: Thumbstick RIGHT → -psx.input.port3.analogjoy.right - -;psx, Virtual Port 3, Analog Joystick: Right Stick, BACK ↓ -psx.input.port3.analogjoy.rstick_down - -;psx, Virtual Port 3, Analog Joystick: Right Stick, LEFT ← -psx.input.port3.analogjoy.rstick_left - -;psx, Virtual Port 3, Analog Joystick: Right Stick, RIGHT → -psx.input.port3.analogjoy.rstick_right - -;psx, Virtual Port 3, Analog Joystick: Right Stick, FORE ↑ -psx.input.port3.analogjoy.rstick_up - -;psx, Virtual Port 3, Analog Joystick: SELECT -psx.input.port3.analogjoy.select - -;psx, Virtual Port 3, Analog Joystick: Right stick, Trigger -psx.input.port3.analogjoy.square - -;psx, Virtual Port 3, Analog Joystick: START -psx.input.port3.analogjoy.start - -;psx, Virtual Port 3, Analog Joystick: Right stick, Pinky -psx.input.port3.analogjoy.triangle - -;psx, Virtual Port 3, Analog Joystick: Thumbstick UP ↑ -psx.input.port3.analogjoy.up - -;psx, Virtual Port 3, Dance Pad: ○ (upper right) -psx.input.port3.dancepad.circle - -;psx, Virtual Port 3, Dance Pad: x (upper left) -psx.input.port3.dancepad.cross - -;psx, Virtual Port 3, Dance Pad: DOWN ↓ -psx.input.port3.dancepad.down - -;psx, Virtual Port 3, Dance Pad: LEFT ← -psx.input.port3.dancepad.left - -;psx, Virtual Port 3, Dance Pad: RIGHT → -psx.input.port3.dancepad.right - -;psx, Virtual Port 3, Dance Pad: SELECT -psx.input.port3.dancepad.select - -;psx, Virtual Port 3, Dance Pad: □ (lower right) -psx.input.port3.dancepad.square - -;psx, Virtual Port 3, Dance Pad: START -psx.input.port3.dancepad.start - -;psx, Virtual Port 3, Dance Pad: △ (lower left) -psx.input.port3.dancepad.triangle - -;psx, Virtual Port 3, Dance Pad: UP ↑ -psx.input.port3.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 3. -psx.input.port3.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 3, Dual Analog: ○ (right) -psx.input.port3.dualanalog.circle - -;psx, Virtual Port 3, Dual Analog: x (lower) -psx.input.port3.dualanalog.cross - -;psx, Virtual Port 3, Dual Analog: D-Pad DOWN ↓ -psx.input.port3.dualanalog.down - -;psx, Virtual Port 3, Dual Analog: L1 (front left shoulder) -psx.input.port3.dualanalog.l1 - -;psx, Virtual Port 3, Dual Analog: L2 (rear left shoulder) -psx.input.port3.dualanalog.l2 - -;psx, Virtual Port 3, Dual Analog: Left Stick, Button(L3) -psx.input.port3.dualanalog.l3 - -;psx, Virtual Port 3, Dual Analog: D-Pad LEFT ← -psx.input.port3.dualanalog.left - -;psx, Virtual Port 3, Dual Analog: Left Stick DOWN ↓ -psx.input.port3.dualanalog.lstick_down - -;psx, Virtual Port 3, Dual Analog: Left Stick LEFT ← -psx.input.port3.dualanalog.lstick_left - -;psx, Virtual Port 3, Dual Analog: Left Stick RIGHT → -psx.input.port3.dualanalog.lstick_right - -;psx, Virtual Port 3, Dual Analog: Left Stick UP ↑ -psx.input.port3.dualanalog.lstick_up - -;psx, Virtual Port 3, Dual Analog: R1 (front right shoulder) -psx.input.port3.dualanalog.r1 - -;psx, Virtual Port 3, Dual Analog: R2 (rear right shoulder) -psx.input.port3.dualanalog.r2 - -;psx, Virtual Port 3, Dual Analog: Right stick, Button(R3) -psx.input.port3.dualanalog.r3 - -;psx, Virtual Port 3, Dual Analog: Rapid ○ (right) -psx.input.port3.dualanalog.rapid_circle - -;psx, Virtual Port 3, Dual Analog: Rapid x (lower) -psx.input.port3.dualanalog.rapid_cross - -;psx, Virtual Port 3, Dual Analog: Rapid □ (left) -psx.input.port3.dualanalog.rapid_square - -;psx, Virtual Port 3, Dual Analog: Rapid △ (upper) -psx.input.port3.dualanalog.rapid_triangle - -;psx, Virtual Port 3, Dual Analog: D-Pad RIGHT → -psx.input.port3.dualanalog.right - -;psx, Virtual Port 3, Dual Analog: Right Stick DOWN ↓ -psx.input.port3.dualanalog.rstick_down - -;psx, Virtual Port 3, Dual Analog: Right Stick LEFT ← -psx.input.port3.dualanalog.rstick_left - -;psx, Virtual Port 3, Dual Analog: Right Stick RIGHT → -psx.input.port3.dualanalog.rstick_right - -;psx, Virtual Port 3, Dual Analog: Right Stick UP ↑ -psx.input.port3.dualanalog.rstick_up - -;psx, Virtual Port 3, Dual Analog: SELECT -psx.input.port3.dualanalog.select - -;psx, Virtual Port 3, Dual Analog: □ (left) -psx.input.port3.dualanalog.square - -;psx, Virtual Port 3, Dual Analog: START -psx.input.port3.dualanalog.start - -;psx, Virtual Port 3, Dual Analog: △ (upper) -psx.input.port3.dualanalog.triangle - -;psx, Virtual Port 3, Dual Analog: D-Pad UP ↑ -psx.input.port3.dualanalog.up - -;psx, Virtual Port 3, DualShock: Analog(mode toggle) -psx.input.port3.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 3. -psx.input.port3.dualshock.axis_scale 1.00 - -;psx, Virtual Port 3, DualShock: ○ (right) -psx.input.port3.dualshock.circle - -;psx, Virtual Port 3, DualShock: x (lower) -psx.input.port3.dualshock.cross - -;psx, Virtual Port 3, DualShock: D-Pad DOWN ↓ -psx.input.port3.dualshock.down - -;psx, Virtual Port 3, DualShock: L1 (front left shoulder) -psx.input.port3.dualshock.l1 - -;psx, Virtual Port 3, DualShock: L2 (rear left shoulder) -psx.input.port3.dualshock.l2 - -;psx, Virtual Port 3, DualShock: Left Stick, Button(L3) -psx.input.port3.dualshock.l3 - -;psx, Virtual Port 3, DualShock: D-Pad LEFT ← -psx.input.port3.dualshock.left - -;psx, Virtual Port 3, DualShock: Left Stick DOWN ↓ -psx.input.port3.dualshock.lstick_down - -;psx, Virtual Port 3, DualShock: Left Stick LEFT ← -psx.input.port3.dualshock.lstick_left - -;psx, Virtual Port 3, DualShock: Left Stick RIGHT → -psx.input.port3.dualshock.lstick_right - -;psx, Virtual Port 3, DualShock: Left Stick UP ↑ -psx.input.port3.dualshock.lstick_up - -;psx, Virtual Port 3, DualShock: R1 (front right shoulder) -psx.input.port3.dualshock.r1 - -;psx, Virtual Port 3, DualShock: R2 (rear right shoulder) -psx.input.port3.dualshock.r2 - -;psx, Virtual Port 3, DualShock: Right stick, Button(R3) -psx.input.port3.dualshock.r3 - -;psx, Virtual Port 3, DualShock: Rapid ○ (right) -psx.input.port3.dualshock.rapid_circle - -;psx, Virtual Port 3, DualShock: Rapid x (lower) -psx.input.port3.dualshock.rapid_cross - -;psx, Virtual Port 3, DualShock: Rapid □ (left) -psx.input.port3.dualshock.rapid_square - -;psx, Virtual Port 3, DualShock: Rapid △ (upper) -psx.input.port3.dualshock.rapid_triangle - -;psx, Virtual Port 3, DualShock: D-Pad RIGHT → -psx.input.port3.dualshock.right - -;psx, Virtual Port 3, DualShock: Right Stick DOWN ↓ -psx.input.port3.dualshock.rstick_down - -;psx, Virtual Port 3, DualShock: Right Stick LEFT ← -psx.input.port3.dualshock.rstick_left - -;psx, Virtual Port 3, DualShock: Right Stick RIGHT → -psx.input.port3.dualshock.rstick_right - -;psx, Virtual Port 3, DualShock: Right Stick UP ↑ -psx.input.port3.dualshock.rstick_up - -;psx, Virtual Port 3, DualShock: SELECT -psx.input.port3.dualshock.select - -;psx, Virtual Port 3, DualShock: □ (left) -psx.input.port3.dualshock.square - -;psx, Virtual Port 3, DualShock: START -psx.input.port3.dualshock.start - -;psx, Virtual Port 3, DualShock: △ (upper) -psx.input.port3.dualshock.triangle - -;psx, Virtual Port 3, DualShock: D-Pad UP ↑ -psx.input.port3.dualshock.up - -;psx, Virtual Port 3, Digital Gamepad: ○ (right) -psx.input.port3.gamepad.circle - -;psx, Virtual Port 3, Digital Gamepad: x (lower) -psx.input.port3.gamepad.cross - -;psx, Virtual Port 3, Digital Gamepad: DOWN ↓ -psx.input.port3.gamepad.down - -;psx, Virtual Port 3, Digital Gamepad: L1 (front left shoulder) -psx.input.port3.gamepad.l1 - -;psx, Virtual Port 3, Digital Gamepad: L2 (rear left shoulder) -psx.input.port3.gamepad.l2 - -;psx, Virtual Port 3, Digital Gamepad: LEFT ← -psx.input.port3.gamepad.left - -;psx, Virtual Port 3, Digital Gamepad: R1 (front right shoulder) -psx.input.port3.gamepad.r1 - -;psx, Virtual Port 3, Digital Gamepad: R2 (rear right shoulder) -psx.input.port3.gamepad.r2 - -;psx, Virtual Port 3, Digital Gamepad: Rapid ○ (right) -psx.input.port3.gamepad.rapid_circle - -;psx, Virtual Port 3, Digital Gamepad: Rapid x (lower) -psx.input.port3.gamepad.rapid_cross - -;psx, Virtual Port 3, Digital Gamepad: Rapid □ (left) -psx.input.port3.gamepad.rapid_square - -;psx, Virtual Port 3, Digital Gamepad: Rapid △ (upper) -psx.input.port3.gamepad.rapid_triangle - -;psx, Virtual Port 3, Digital Gamepad: RIGHT → -psx.input.port3.gamepad.right - -;psx, Virtual Port 3, Digital Gamepad: SELECT -psx.input.port3.gamepad.select - -;psx, Virtual Port 3, Digital Gamepad: □ (left) -psx.input.port3.gamepad.square - -;psx, Virtual Port 3, Digital Gamepad: START -psx.input.port3.gamepad.start - -;psx, Virtual Port 3, Digital Gamepad: △ (upper) -psx.input.port3.gamepad.triangle - -;psx, Virtual Port 3, Digital Gamepad: UP ↑ -psx.input.port3.gamepad.up - -;Crosshairs color for lightgun on virtual port 3. -psx.input.port3.gun_chairs 0xFF00FF - -;psx, Virtual Port 3, GunCon: A -psx.input.port3.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 3, GunCon: B -psx.input.port3.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 3, GunCon: Offscreen Shot(Simulated) -psx.input.port3.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 3, GunCon: Trigger -psx.input.port3.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 3, GunCon: X Axis -psx.input.port3.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 3, GunCon: Y Axis -psx.input.port3.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 3, Konami Justifier: O -psx.input.port3.justifier.o - -;psx, Virtual Port 3, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port3.justifier.offscreen_shot - -;psx, Virtual Port 3, Konami Justifier: Start -psx.input.port3.justifier.start - -;psx, Virtual Port 3, Konami Justifier: Trigger -psx.input.port3.justifier.trigger - -;psx, Virtual Port 3, Konami Justifier: X Axis -psx.input.port3.justifier.x_axis - -;psx, Virtual Port 3, Konami Justifier: Y Axis -psx.input.port3.justifier.y_axis - -;Emulate memory card on virtual port 3. -psx.input.port3.memcard 1 - -;psx, Virtual Port 3, Mouse: Left Button -psx.input.port3.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 3, Mouse: Motion Down -psx.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 3, Mouse: Motion Left -psx.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 3, Mouse: Motion Right -psx.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 3, Mouse: Motion Up -psx.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 3, Mouse: Right Button -psx.input.port3.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 3, neGcon: A -psx.input.port3.negcon.a - -;psx, Virtual Port 3, neGcon: B -psx.input.port3.negcon.b - -;psx, Virtual Port 3, neGcon: D-Pad DOWN ↓ -psx.input.port3.negcon.down - -;psx, Virtual Port 3, neGcon: I (Analog) -psx.input.port3.negcon.i - -;psx, Virtual Port 3, neGcon: II (Analog) -psx.input.port3.negcon.ii - -;psx, Virtual Port 3, neGcon: Left Shoulder (Analog) -psx.input.port3.negcon.l - -;psx, Virtual Port 3, neGcon: D-Pad LEFT ← -psx.input.port3.negcon.left - -;psx, Virtual Port 3, neGcon: Right Shoulder -psx.input.port3.negcon.r - -;psx, Virtual Port 3, neGcon: D-Pad RIGHT → -psx.input.port3.negcon.right - -;psx, Virtual Port 3, neGcon: START -psx.input.port3.negcon.start - -;psx, Virtual Port 3, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port3.negcon.twist_ccwise - -;psx, Virtual Port 3, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port3.negcon.twist_cwise - -;psx, Virtual Port 3, neGcon: D-Pad UP ↑ -psx.input.port3.negcon.up - -;Input device for Virtual Port 4 -psx.input.port4 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 4. -psx.input.port4.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 4, Analog Joystick: Right stick, R-thumb -psx.input.port4.analogjoy.circle - -;psx, Virtual Port 4, Analog Joystick: Right stick, L-thumb -psx.input.port4.analogjoy.cross - -;psx, Virtual Port 4, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port4.analogjoy.down - -;psx, Virtual Port 4, Analog Joystick: Left stick, L-thumb -psx.input.port4.analogjoy.l1 - -;psx, Virtual Port 4, Analog Joystick: Left stick, Trigger -psx.input.port4.analogjoy.l2 - -;psx, Virtual Port 4, Analog Joystick: Thumbstick LEFT ← -psx.input.port4.analogjoy.left - -;psx, Virtual Port 4, Analog Joystick: Left Stick, BACK ↓ -psx.input.port4.analogjoy.lstick_down - -;psx, Virtual Port 4, Analog Joystick: Left Stick, LEFT ← -psx.input.port4.analogjoy.lstick_left - -;psx, Virtual Port 4, Analog Joystick: Left Stick, RIGHT → -psx.input.port4.analogjoy.lstick_right - -;psx, Virtual Port 4, Analog Joystick: Left Stick, FORE ↑ -psx.input.port4.analogjoy.lstick_up - -;psx, Virtual Port 4, Analog Joystick: Left stick, R-thumb -psx.input.port4.analogjoy.r1 - -;psx, Virtual Port 4, Analog Joystick: Left stick, Pinky -psx.input.port4.analogjoy.r2 - -;psx, Virtual Port 4, Analog Joystick: Thumbstick RIGHT → -psx.input.port4.analogjoy.right - -;psx, Virtual Port 4, Analog Joystick: Right Stick, BACK ↓ -psx.input.port4.analogjoy.rstick_down - -;psx, Virtual Port 4, Analog Joystick: Right Stick, LEFT ← -psx.input.port4.analogjoy.rstick_left - -;psx, Virtual Port 4, Analog Joystick: Right Stick, RIGHT → -psx.input.port4.analogjoy.rstick_right - -;psx, Virtual Port 4, Analog Joystick: Right Stick, FORE ↑ -psx.input.port4.analogjoy.rstick_up - -;psx, Virtual Port 4, Analog Joystick: SELECT -psx.input.port4.analogjoy.select - -;psx, Virtual Port 4, Analog Joystick: Right stick, Trigger -psx.input.port4.analogjoy.square - -;psx, Virtual Port 4, Analog Joystick: START -psx.input.port4.analogjoy.start - -;psx, Virtual Port 4, Analog Joystick: Right stick, Pinky -psx.input.port4.analogjoy.triangle - -;psx, Virtual Port 4, Analog Joystick: Thumbstick UP ↑ -psx.input.port4.analogjoy.up - -;psx, Virtual Port 4, Dance Pad: ○ (upper right) -psx.input.port4.dancepad.circle - -;psx, Virtual Port 4, Dance Pad: x (upper left) -psx.input.port4.dancepad.cross - -;psx, Virtual Port 4, Dance Pad: DOWN ↓ -psx.input.port4.dancepad.down - -;psx, Virtual Port 4, Dance Pad: LEFT ← -psx.input.port4.dancepad.left - -;psx, Virtual Port 4, Dance Pad: RIGHT → -psx.input.port4.dancepad.right - -;psx, Virtual Port 4, Dance Pad: SELECT -psx.input.port4.dancepad.select - -;psx, Virtual Port 4, Dance Pad: □ (lower right) -psx.input.port4.dancepad.square - -;psx, Virtual Port 4, Dance Pad: START -psx.input.port4.dancepad.start - -;psx, Virtual Port 4, Dance Pad: △ (lower left) -psx.input.port4.dancepad.triangle - -;psx, Virtual Port 4, Dance Pad: UP ↑ -psx.input.port4.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 4. -psx.input.port4.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 4, Dual Analog: ○ (right) -psx.input.port4.dualanalog.circle - -;psx, Virtual Port 4, Dual Analog: x (lower) -psx.input.port4.dualanalog.cross - -;psx, Virtual Port 4, Dual Analog: D-Pad DOWN ↓ -psx.input.port4.dualanalog.down - -;psx, Virtual Port 4, Dual Analog: L1 (front left shoulder) -psx.input.port4.dualanalog.l1 - -;psx, Virtual Port 4, Dual Analog: L2 (rear left shoulder) -psx.input.port4.dualanalog.l2 - -;psx, Virtual Port 4, Dual Analog: Left Stick, Button(L3) -psx.input.port4.dualanalog.l3 - -;psx, Virtual Port 4, Dual Analog: D-Pad LEFT ← -psx.input.port4.dualanalog.left - -;psx, Virtual Port 4, Dual Analog: Left Stick DOWN ↓ -psx.input.port4.dualanalog.lstick_down - -;psx, Virtual Port 4, Dual Analog: Left Stick LEFT ← -psx.input.port4.dualanalog.lstick_left - -;psx, Virtual Port 4, Dual Analog: Left Stick RIGHT → -psx.input.port4.dualanalog.lstick_right - -;psx, Virtual Port 4, Dual Analog: Left Stick UP ↑ -psx.input.port4.dualanalog.lstick_up - -;psx, Virtual Port 4, Dual Analog: R1 (front right shoulder) -psx.input.port4.dualanalog.r1 - -;psx, Virtual Port 4, Dual Analog: R2 (rear right shoulder) -psx.input.port4.dualanalog.r2 - -;psx, Virtual Port 4, Dual Analog: Right stick, Button(R3) -psx.input.port4.dualanalog.r3 - -;psx, Virtual Port 4, Dual Analog: Rapid ○ (right) -psx.input.port4.dualanalog.rapid_circle - -;psx, Virtual Port 4, Dual Analog: Rapid x (lower) -psx.input.port4.dualanalog.rapid_cross - -;psx, Virtual Port 4, Dual Analog: Rapid □ (left) -psx.input.port4.dualanalog.rapid_square - -;psx, Virtual Port 4, Dual Analog: Rapid △ (upper) -psx.input.port4.dualanalog.rapid_triangle - -;psx, Virtual Port 4, Dual Analog: D-Pad RIGHT → -psx.input.port4.dualanalog.right - -;psx, Virtual Port 4, Dual Analog: Right Stick DOWN ↓ -psx.input.port4.dualanalog.rstick_down - -;psx, Virtual Port 4, Dual Analog: Right Stick LEFT ← -psx.input.port4.dualanalog.rstick_left - -;psx, Virtual Port 4, Dual Analog: Right Stick RIGHT → -psx.input.port4.dualanalog.rstick_right - -;psx, Virtual Port 4, Dual Analog: Right Stick UP ↑ -psx.input.port4.dualanalog.rstick_up - -;psx, Virtual Port 4, Dual Analog: SELECT -psx.input.port4.dualanalog.select - -;psx, Virtual Port 4, Dual Analog: □ (left) -psx.input.port4.dualanalog.square - -;psx, Virtual Port 4, Dual Analog: START -psx.input.port4.dualanalog.start - -;psx, Virtual Port 4, Dual Analog: △ (upper) -psx.input.port4.dualanalog.triangle - -;psx, Virtual Port 4, Dual Analog: D-Pad UP ↑ -psx.input.port4.dualanalog.up - -;psx, Virtual Port 4, DualShock: Analog(mode toggle) -psx.input.port4.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 4. -psx.input.port4.dualshock.axis_scale 1.00 - -;psx, Virtual Port 4, DualShock: ○ (right) -psx.input.port4.dualshock.circle - -;psx, Virtual Port 4, DualShock: x (lower) -psx.input.port4.dualshock.cross - -;psx, Virtual Port 4, DualShock: D-Pad DOWN ↓ -psx.input.port4.dualshock.down - -;psx, Virtual Port 4, DualShock: L1 (front left shoulder) -psx.input.port4.dualshock.l1 - -;psx, Virtual Port 4, DualShock: L2 (rear left shoulder) -psx.input.port4.dualshock.l2 - -;psx, Virtual Port 4, DualShock: Left Stick, Button(L3) -psx.input.port4.dualshock.l3 - -;psx, Virtual Port 4, DualShock: D-Pad LEFT ← -psx.input.port4.dualshock.left - -;psx, Virtual Port 4, DualShock: Left Stick DOWN ↓ -psx.input.port4.dualshock.lstick_down - -;psx, Virtual Port 4, DualShock: Left Stick LEFT ← -psx.input.port4.dualshock.lstick_left - -;psx, Virtual Port 4, DualShock: Left Stick RIGHT → -psx.input.port4.dualshock.lstick_right - -;psx, Virtual Port 4, DualShock: Left Stick UP ↑ -psx.input.port4.dualshock.lstick_up - -;psx, Virtual Port 4, DualShock: R1 (front right shoulder) -psx.input.port4.dualshock.r1 - -;psx, Virtual Port 4, DualShock: R2 (rear right shoulder) -psx.input.port4.dualshock.r2 - -;psx, Virtual Port 4, DualShock: Right stick, Button(R3) -psx.input.port4.dualshock.r3 - -;psx, Virtual Port 4, DualShock: Rapid ○ (right) -psx.input.port4.dualshock.rapid_circle - -;psx, Virtual Port 4, DualShock: Rapid x (lower) -psx.input.port4.dualshock.rapid_cross - -;psx, Virtual Port 4, DualShock: Rapid □ (left) -psx.input.port4.dualshock.rapid_square - -;psx, Virtual Port 4, DualShock: Rapid △ (upper) -psx.input.port4.dualshock.rapid_triangle - -;psx, Virtual Port 4, DualShock: D-Pad RIGHT → -psx.input.port4.dualshock.right - -;psx, Virtual Port 4, DualShock: Right Stick DOWN ↓ -psx.input.port4.dualshock.rstick_down - -;psx, Virtual Port 4, DualShock: Right Stick LEFT ← -psx.input.port4.dualshock.rstick_left - -;psx, Virtual Port 4, DualShock: Right Stick RIGHT → -psx.input.port4.dualshock.rstick_right - -;psx, Virtual Port 4, DualShock: Right Stick UP ↑ -psx.input.port4.dualshock.rstick_up - -;psx, Virtual Port 4, DualShock: SELECT -psx.input.port4.dualshock.select - -;psx, Virtual Port 4, DualShock: □ (left) -psx.input.port4.dualshock.square - -;psx, Virtual Port 4, DualShock: START -psx.input.port4.dualshock.start - -;psx, Virtual Port 4, DualShock: △ (upper) -psx.input.port4.dualshock.triangle - -;psx, Virtual Port 4, DualShock: D-Pad UP ↑ -psx.input.port4.dualshock.up - -;psx, Virtual Port 4, Digital Gamepad: ○ (right) -psx.input.port4.gamepad.circle - -;psx, Virtual Port 4, Digital Gamepad: x (lower) -psx.input.port4.gamepad.cross - -;psx, Virtual Port 4, Digital Gamepad: DOWN ↓ -psx.input.port4.gamepad.down - -;psx, Virtual Port 4, Digital Gamepad: L1 (front left shoulder) -psx.input.port4.gamepad.l1 - -;psx, Virtual Port 4, Digital Gamepad: L2 (rear left shoulder) -psx.input.port4.gamepad.l2 - -;psx, Virtual Port 4, Digital Gamepad: LEFT ← -psx.input.port4.gamepad.left - -;psx, Virtual Port 4, Digital Gamepad: R1 (front right shoulder) -psx.input.port4.gamepad.r1 - -;psx, Virtual Port 4, Digital Gamepad: R2 (rear right shoulder) -psx.input.port4.gamepad.r2 - -;psx, Virtual Port 4, Digital Gamepad: Rapid ○ (right) -psx.input.port4.gamepad.rapid_circle - -;psx, Virtual Port 4, Digital Gamepad: Rapid x (lower) -psx.input.port4.gamepad.rapid_cross - -;psx, Virtual Port 4, Digital Gamepad: Rapid □ (left) -psx.input.port4.gamepad.rapid_square - -;psx, Virtual Port 4, Digital Gamepad: Rapid △ (upper) -psx.input.port4.gamepad.rapid_triangle - -;psx, Virtual Port 4, Digital Gamepad: RIGHT → -psx.input.port4.gamepad.right - -;psx, Virtual Port 4, Digital Gamepad: SELECT -psx.input.port4.gamepad.select - -;psx, Virtual Port 4, Digital Gamepad: □ (left) -psx.input.port4.gamepad.square - -;psx, Virtual Port 4, Digital Gamepad: START -psx.input.port4.gamepad.start - -;psx, Virtual Port 4, Digital Gamepad: △ (upper) -psx.input.port4.gamepad.triangle - -;psx, Virtual Port 4, Digital Gamepad: UP ↑ -psx.input.port4.gamepad.up - -;Crosshairs color for lightgun on virtual port 4. -psx.input.port4.gun_chairs 0xFF8000 - -;psx, Virtual Port 4, GunCon: A -psx.input.port4.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 4, GunCon: B -psx.input.port4.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 4, GunCon: Offscreen Shot(Simulated) -psx.input.port4.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 4, GunCon: Trigger -psx.input.port4.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 4, GunCon: X Axis -psx.input.port4.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 4, GunCon: Y Axis -psx.input.port4.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 4, Konami Justifier: O -psx.input.port4.justifier.o - -;psx, Virtual Port 4, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port4.justifier.offscreen_shot - -;psx, Virtual Port 4, Konami Justifier: Start -psx.input.port4.justifier.start - -;psx, Virtual Port 4, Konami Justifier: Trigger -psx.input.port4.justifier.trigger - -;psx, Virtual Port 4, Konami Justifier: X Axis -psx.input.port4.justifier.x_axis - -;psx, Virtual Port 4, Konami Justifier: Y Axis -psx.input.port4.justifier.y_axis - -;Emulate memory card on virtual port 4. -psx.input.port4.memcard 1 - -;psx, Virtual Port 4, Mouse: Left Button -psx.input.port4.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 4, Mouse: Motion Down -psx.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 4, Mouse: Motion Left -psx.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 4, Mouse: Motion Right -psx.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 4, Mouse: Motion Up -psx.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 4, Mouse: Right Button -psx.input.port4.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 4, neGcon: A -psx.input.port4.negcon.a - -;psx, Virtual Port 4, neGcon: B -psx.input.port4.negcon.b - -;psx, Virtual Port 4, neGcon: D-Pad DOWN ↓ -psx.input.port4.negcon.down - -;psx, Virtual Port 4, neGcon: I (Analog) -psx.input.port4.negcon.i - -;psx, Virtual Port 4, neGcon: II (Analog) -psx.input.port4.negcon.ii - -;psx, Virtual Port 4, neGcon: Left Shoulder (Analog) -psx.input.port4.negcon.l - -;psx, Virtual Port 4, neGcon: D-Pad LEFT ← -psx.input.port4.negcon.left - -;psx, Virtual Port 4, neGcon: Right Shoulder -psx.input.port4.negcon.r - -;psx, Virtual Port 4, neGcon: D-Pad RIGHT → -psx.input.port4.negcon.right - -;psx, Virtual Port 4, neGcon: START -psx.input.port4.negcon.start - -;psx, Virtual Port 4, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port4.negcon.twist_ccwise - -;psx, Virtual Port 4, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port4.negcon.twist_cwise - -;psx, Virtual Port 4, neGcon: D-Pad UP ↑ -psx.input.port4.negcon.up - -;Input device for Virtual Port 5 -psx.input.port5 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 5. -psx.input.port5.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 5, Analog Joystick: Right stick, R-thumb -psx.input.port5.analogjoy.circle - -;psx, Virtual Port 5, Analog Joystick: Right stick, L-thumb -psx.input.port5.analogjoy.cross - -;psx, Virtual Port 5, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port5.analogjoy.down - -;psx, Virtual Port 5, Analog Joystick: Left stick, L-thumb -psx.input.port5.analogjoy.l1 - -;psx, Virtual Port 5, Analog Joystick: Left stick, Trigger -psx.input.port5.analogjoy.l2 - -;psx, Virtual Port 5, Analog Joystick: Thumbstick LEFT ← -psx.input.port5.analogjoy.left - -;psx, Virtual Port 5, Analog Joystick: Left Stick, BACK ↓ -psx.input.port5.analogjoy.lstick_down - -;psx, Virtual Port 5, Analog Joystick: Left Stick, LEFT ← -psx.input.port5.analogjoy.lstick_left - -;psx, Virtual Port 5, Analog Joystick: Left Stick, RIGHT → -psx.input.port5.analogjoy.lstick_right - -;psx, Virtual Port 5, Analog Joystick: Left Stick, FORE ↑ -psx.input.port5.analogjoy.lstick_up - -;psx, Virtual Port 5, Analog Joystick: Left stick, R-thumb -psx.input.port5.analogjoy.r1 - -;psx, Virtual Port 5, Analog Joystick: Left stick, Pinky -psx.input.port5.analogjoy.r2 - -;psx, Virtual Port 5, Analog Joystick: Thumbstick RIGHT → -psx.input.port5.analogjoy.right - -;psx, Virtual Port 5, Analog Joystick: Right Stick, BACK ↓ -psx.input.port5.analogjoy.rstick_down - -;psx, Virtual Port 5, Analog Joystick: Right Stick, LEFT ← -psx.input.port5.analogjoy.rstick_left - -;psx, Virtual Port 5, Analog Joystick: Right Stick, RIGHT → -psx.input.port5.analogjoy.rstick_right - -;psx, Virtual Port 5, Analog Joystick: Right Stick, FORE ↑ -psx.input.port5.analogjoy.rstick_up - -;psx, Virtual Port 5, Analog Joystick: SELECT -psx.input.port5.analogjoy.select - -;psx, Virtual Port 5, Analog Joystick: Right stick, Trigger -psx.input.port5.analogjoy.square - -;psx, Virtual Port 5, Analog Joystick: START -psx.input.port5.analogjoy.start - -;psx, Virtual Port 5, Analog Joystick: Right stick, Pinky -psx.input.port5.analogjoy.triangle - -;psx, Virtual Port 5, Analog Joystick: Thumbstick UP ↑ -psx.input.port5.analogjoy.up - -;psx, Virtual Port 5, Dance Pad: ○ (upper right) -psx.input.port5.dancepad.circle - -;psx, Virtual Port 5, Dance Pad: x (upper left) -psx.input.port5.dancepad.cross - -;psx, Virtual Port 5, Dance Pad: DOWN ↓ -psx.input.port5.dancepad.down - -;psx, Virtual Port 5, Dance Pad: LEFT ← -psx.input.port5.dancepad.left - -;psx, Virtual Port 5, Dance Pad: RIGHT → -psx.input.port5.dancepad.right - -;psx, Virtual Port 5, Dance Pad: SELECT -psx.input.port5.dancepad.select - -;psx, Virtual Port 5, Dance Pad: □ (lower right) -psx.input.port5.dancepad.square - -;psx, Virtual Port 5, Dance Pad: START -psx.input.port5.dancepad.start - -;psx, Virtual Port 5, Dance Pad: △ (lower left) -psx.input.port5.dancepad.triangle - -;psx, Virtual Port 5, Dance Pad: UP ↑ -psx.input.port5.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 5. -psx.input.port5.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 5, Dual Analog: ○ (right) -psx.input.port5.dualanalog.circle - -;psx, Virtual Port 5, Dual Analog: x (lower) -psx.input.port5.dualanalog.cross - -;psx, Virtual Port 5, Dual Analog: D-Pad DOWN ↓ -psx.input.port5.dualanalog.down - -;psx, Virtual Port 5, Dual Analog: L1 (front left shoulder) -psx.input.port5.dualanalog.l1 - -;psx, Virtual Port 5, Dual Analog: L2 (rear left shoulder) -psx.input.port5.dualanalog.l2 - -;psx, Virtual Port 5, Dual Analog: Left Stick, Button(L3) -psx.input.port5.dualanalog.l3 - -;psx, Virtual Port 5, Dual Analog: D-Pad LEFT ← -psx.input.port5.dualanalog.left - -;psx, Virtual Port 5, Dual Analog: Left Stick DOWN ↓ -psx.input.port5.dualanalog.lstick_down - -;psx, Virtual Port 5, Dual Analog: Left Stick LEFT ← -psx.input.port5.dualanalog.lstick_left - -;psx, Virtual Port 5, Dual Analog: Left Stick RIGHT → -psx.input.port5.dualanalog.lstick_right - -;psx, Virtual Port 5, Dual Analog: Left Stick UP ↑ -psx.input.port5.dualanalog.lstick_up - -;psx, Virtual Port 5, Dual Analog: R1 (front right shoulder) -psx.input.port5.dualanalog.r1 - -;psx, Virtual Port 5, Dual Analog: R2 (rear right shoulder) -psx.input.port5.dualanalog.r2 - -;psx, Virtual Port 5, Dual Analog: Right stick, Button(R3) -psx.input.port5.dualanalog.r3 - -;psx, Virtual Port 5, Dual Analog: Rapid ○ (right) -psx.input.port5.dualanalog.rapid_circle - -;psx, Virtual Port 5, Dual Analog: Rapid x (lower) -psx.input.port5.dualanalog.rapid_cross - -;psx, Virtual Port 5, Dual Analog: Rapid □ (left) -psx.input.port5.dualanalog.rapid_square - -;psx, Virtual Port 5, Dual Analog: Rapid △ (upper) -psx.input.port5.dualanalog.rapid_triangle - -;psx, Virtual Port 5, Dual Analog: D-Pad RIGHT → -psx.input.port5.dualanalog.right - -;psx, Virtual Port 5, Dual Analog: Right Stick DOWN ↓ -psx.input.port5.dualanalog.rstick_down - -;psx, Virtual Port 5, Dual Analog: Right Stick LEFT ← -psx.input.port5.dualanalog.rstick_left - -;psx, Virtual Port 5, Dual Analog: Right Stick RIGHT → -psx.input.port5.dualanalog.rstick_right - -;psx, Virtual Port 5, Dual Analog: Right Stick UP ↑ -psx.input.port5.dualanalog.rstick_up - -;psx, Virtual Port 5, Dual Analog: SELECT -psx.input.port5.dualanalog.select - -;psx, Virtual Port 5, Dual Analog: □ (left) -psx.input.port5.dualanalog.square - -;psx, Virtual Port 5, Dual Analog: START -psx.input.port5.dualanalog.start - -;psx, Virtual Port 5, Dual Analog: △ (upper) -psx.input.port5.dualanalog.triangle - -;psx, Virtual Port 5, Dual Analog: D-Pad UP ↑ -psx.input.port5.dualanalog.up - -;psx, Virtual Port 5, DualShock: Analog(mode toggle) -psx.input.port5.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 5. -psx.input.port5.dualshock.axis_scale 1.00 - -;psx, Virtual Port 5, DualShock: ○ (right) -psx.input.port5.dualshock.circle - -;psx, Virtual Port 5, DualShock: x (lower) -psx.input.port5.dualshock.cross - -;psx, Virtual Port 5, DualShock: D-Pad DOWN ↓ -psx.input.port5.dualshock.down - -;psx, Virtual Port 5, DualShock: L1 (front left shoulder) -psx.input.port5.dualshock.l1 - -;psx, Virtual Port 5, DualShock: L2 (rear left shoulder) -psx.input.port5.dualshock.l2 - -;psx, Virtual Port 5, DualShock: Left Stick, Button(L3) -psx.input.port5.dualshock.l3 - -;psx, Virtual Port 5, DualShock: D-Pad LEFT ← -psx.input.port5.dualshock.left - -;psx, Virtual Port 5, DualShock: Left Stick DOWN ↓ -psx.input.port5.dualshock.lstick_down - -;psx, Virtual Port 5, DualShock: Left Stick LEFT ← -psx.input.port5.dualshock.lstick_left - -;psx, Virtual Port 5, DualShock: Left Stick RIGHT → -psx.input.port5.dualshock.lstick_right - -;psx, Virtual Port 5, DualShock: Left Stick UP ↑ -psx.input.port5.dualshock.lstick_up - -;psx, Virtual Port 5, DualShock: R1 (front right shoulder) -psx.input.port5.dualshock.r1 - -;psx, Virtual Port 5, DualShock: R2 (rear right shoulder) -psx.input.port5.dualshock.r2 - -;psx, Virtual Port 5, DualShock: Right stick, Button(R3) -psx.input.port5.dualshock.r3 - -;psx, Virtual Port 5, DualShock: Rapid ○ (right) -psx.input.port5.dualshock.rapid_circle - -;psx, Virtual Port 5, DualShock: Rapid x (lower) -psx.input.port5.dualshock.rapid_cross - -;psx, Virtual Port 5, DualShock: Rapid □ (left) -psx.input.port5.dualshock.rapid_square - -;psx, Virtual Port 5, DualShock: Rapid △ (upper) -psx.input.port5.dualshock.rapid_triangle - -;psx, Virtual Port 5, DualShock: D-Pad RIGHT → -psx.input.port5.dualshock.right - -;psx, Virtual Port 5, DualShock: Right Stick DOWN ↓ -psx.input.port5.dualshock.rstick_down - -;psx, Virtual Port 5, DualShock: Right Stick LEFT ← -psx.input.port5.dualshock.rstick_left - -;psx, Virtual Port 5, DualShock: Right Stick RIGHT → -psx.input.port5.dualshock.rstick_right - -;psx, Virtual Port 5, DualShock: Right Stick UP ↑ -psx.input.port5.dualshock.rstick_up - -;psx, Virtual Port 5, DualShock: SELECT -psx.input.port5.dualshock.select - -;psx, Virtual Port 5, DualShock: □ (left) -psx.input.port5.dualshock.square - -;psx, Virtual Port 5, DualShock: START -psx.input.port5.dualshock.start - -;psx, Virtual Port 5, DualShock: △ (upper) -psx.input.port5.dualshock.triangle - -;psx, Virtual Port 5, DualShock: D-Pad UP ↑ -psx.input.port5.dualshock.up - -;psx, Virtual Port 5, Digital Gamepad: ○ (right) -psx.input.port5.gamepad.circle - -;psx, Virtual Port 5, Digital Gamepad: x (lower) -psx.input.port5.gamepad.cross - -;psx, Virtual Port 5, Digital Gamepad: DOWN ↓ -psx.input.port5.gamepad.down - -;psx, Virtual Port 5, Digital Gamepad: L1 (front left shoulder) -psx.input.port5.gamepad.l1 - -;psx, Virtual Port 5, Digital Gamepad: L2 (rear left shoulder) -psx.input.port5.gamepad.l2 - -;psx, Virtual Port 5, Digital Gamepad: LEFT ← -psx.input.port5.gamepad.left - -;psx, Virtual Port 5, Digital Gamepad: R1 (front right shoulder) -psx.input.port5.gamepad.r1 - -;psx, Virtual Port 5, Digital Gamepad: R2 (rear right shoulder) -psx.input.port5.gamepad.r2 - -;psx, Virtual Port 5, Digital Gamepad: Rapid ○ (right) -psx.input.port5.gamepad.rapid_circle - -;psx, Virtual Port 5, Digital Gamepad: Rapid x (lower) -psx.input.port5.gamepad.rapid_cross - -;psx, Virtual Port 5, Digital Gamepad: Rapid □ (left) -psx.input.port5.gamepad.rapid_square - -;psx, Virtual Port 5, Digital Gamepad: Rapid △ (upper) -psx.input.port5.gamepad.rapid_triangle - -;psx, Virtual Port 5, Digital Gamepad: RIGHT → -psx.input.port5.gamepad.right - -;psx, Virtual Port 5, Digital Gamepad: SELECT -psx.input.port5.gamepad.select - -;psx, Virtual Port 5, Digital Gamepad: □ (left) -psx.input.port5.gamepad.square - -;psx, Virtual Port 5, Digital Gamepad: START -psx.input.port5.gamepad.start - -;psx, Virtual Port 5, Digital Gamepad: △ (upper) -psx.input.port5.gamepad.triangle - -;psx, Virtual Port 5, Digital Gamepad: UP ↑ -psx.input.port5.gamepad.up - -;Crosshairs color for lightgun on virtual port 5. -psx.input.port5.gun_chairs 0xFFFF00 - -;psx, Virtual Port 5, GunCon: A -psx.input.port5.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 5, GunCon: B -psx.input.port5.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 5, GunCon: Offscreen Shot(Simulated) -psx.input.port5.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 5, GunCon: Trigger -psx.input.port5.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 5, GunCon: X Axis -psx.input.port5.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 5, GunCon: Y Axis -psx.input.port5.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 5, Konami Justifier: O -psx.input.port5.justifier.o - -;psx, Virtual Port 5, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port5.justifier.offscreen_shot - -;psx, Virtual Port 5, Konami Justifier: Start -psx.input.port5.justifier.start - -;psx, Virtual Port 5, Konami Justifier: Trigger -psx.input.port5.justifier.trigger - -;psx, Virtual Port 5, Konami Justifier: X Axis -psx.input.port5.justifier.x_axis - -;psx, Virtual Port 5, Konami Justifier: Y Axis -psx.input.port5.justifier.y_axis - -;Emulate memory card on virtual port 5. -psx.input.port5.memcard 1 - -;psx, Virtual Port 5, Mouse: Left Button -psx.input.port5.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 5, Mouse: Motion Down -psx.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 5, Mouse: Motion Left -psx.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 5, Mouse: Motion Right -psx.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 5, Mouse: Motion Up -psx.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 5, Mouse: Right Button -psx.input.port5.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 5, neGcon: A -psx.input.port5.negcon.a - -;psx, Virtual Port 5, neGcon: B -psx.input.port5.negcon.b - -;psx, Virtual Port 5, neGcon: D-Pad DOWN ↓ -psx.input.port5.negcon.down - -;psx, Virtual Port 5, neGcon: I (Analog) -psx.input.port5.negcon.i - -;psx, Virtual Port 5, neGcon: II (Analog) -psx.input.port5.negcon.ii - -;psx, Virtual Port 5, neGcon: Left Shoulder (Analog) -psx.input.port5.negcon.l - -;psx, Virtual Port 5, neGcon: D-Pad LEFT ← -psx.input.port5.negcon.left - -;psx, Virtual Port 5, neGcon: Right Shoulder -psx.input.port5.negcon.r - -;psx, Virtual Port 5, neGcon: D-Pad RIGHT → -psx.input.port5.negcon.right - -;psx, Virtual Port 5, neGcon: START -psx.input.port5.negcon.start - -;psx, Virtual Port 5, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port5.negcon.twist_ccwise - -;psx, Virtual Port 5, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port5.negcon.twist_cwise - -;psx, Virtual Port 5, neGcon: D-Pad UP ↑ -psx.input.port5.negcon.up - -;Input device for Virtual Port 6 -psx.input.port6 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 6. -psx.input.port6.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 6, Analog Joystick: Right stick, R-thumb -psx.input.port6.analogjoy.circle - -;psx, Virtual Port 6, Analog Joystick: Right stick, L-thumb -psx.input.port6.analogjoy.cross - -;psx, Virtual Port 6, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port6.analogjoy.down - -;psx, Virtual Port 6, Analog Joystick: Left stick, L-thumb -psx.input.port6.analogjoy.l1 - -;psx, Virtual Port 6, Analog Joystick: Left stick, Trigger -psx.input.port6.analogjoy.l2 - -;psx, Virtual Port 6, Analog Joystick: Thumbstick LEFT ← -psx.input.port6.analogjoy.left - -;psx, Virtual Port 6, Analog Joystick: Left Stick, BACK ↓ -psx.input.port6.analogjoy.lstick_down - -;psx, Virtual Port 6, Analog Joystick: Left Stick, LEFT ← -psx.input.port6.analogjoy.lstick_left - -;psx, Virtual Port 6, Analog Joystick: Left Stick, RIGHT → -psx.input.port6.analogjoy.lstick_right - -;psx, Virtual Port 6, Analog Joystick: Left Stick, FORE ↑ -psx.input.port6.analogjoy.lstick_up - -;psx, Virtual Port 6, Analog Joystick: Left stick, R-thumb -psx.input.port6.analogjoy.r1 - -;psx, Virtual Port 6, Analog Joystick: Left stick, Pinky -psx.input.port6.analogjoy.r2 - -;psx, Virtual Port 6, Analog Joystick: Thumbstick RIGHT → -psx.input.port6.analogjoy.right - -;psx, Virtual Port 6, Analog Joystick: Right Stick, BACK ↓ -psx.input.port6.analogjoy.rstick_down - -;psx, Virtual Port 6, Analog Joystick: Right Stick, LEFT ← -psx.input.port6.analogjoy.rstick_left - -;psx, Virtual Port 6, Analog Joystick: Right Stick, RIGHT → -psx.input.port6.analogjoy.rstick_right - -;psx, Virtual Port 6, Analog Joystick: Right Stick, FORE ↑ -psx.input.port6.analogjoy.rstick_up - -;psx, Virtual Port 6, Analog Joystick: SELECT -psx.input.port6.analogjoy.select - -;psx, Virtual Port 6, Analog Joystick: Right stick, Trigger -psx.input.port6.analogjoy.square - -;psx, Virtual Port 6, Analog Joystick: START -psx.input.port6.analogjoy.start - -;psx, Virtual Port 6, Analog Joystick: Right stick, Pinky -psx.input.port6.analogjoy.triangle - -;psx, Virtual Port 6, Analog Joystick: Thumbstick UP ↑ -psx.input.port6.analogjoy.up - -;psx, Virtual Port 6, Dance Pad: ○ (upper right) -psx.input.port6.dancepad.circle - -;psx, Virtual Port 6, Dance Pad: x (upper left) -psx.input.port6.dancepad.cross - -;psx, Virtual Port 6, Dance Pad: DOWN ↓ -psx.input.port6.dancepad.down - -;psx, Virtual Port 6, Dance Pad: LEFT ← -psx.input.port6.dancepad.left - -;psx, Virtual Port 6, Dance Pad: RIGHT → -psx.input.port6.dancepad.right - -;psx, Virtual Port 6, Dance Pad: SELECT -psx.input.port6.dancepad.select - -;psx, Virtual Port 6, Dance Pad: □ (lower right) -psx.input.port6.dancepad.square - -;psx, Virtual Port 6, Dance Pad: START -psx.input.port6.dancepad.start - -;psx, Virtual Port 6, Dance Pad: △ (lower left) -psx.input.port6.dancepad.triangle - -;psx, Virtual Port 6, Dance Pad: UP ↑ -psx.input.port6.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 6. -psx.input.port6.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 6, Dual Analog: ○ (right) -psx.input.port6.dualanalog.circle - -;psx, Virtual Port 6, Dual Analog: x (lower) -psx.input.port6.dualanalog.cross - -;psx, Virtual Port 6, Dual Analog: D-Pad DOWN ↓ -psx.input.port6.dualanalog.down - -;psx, Virtual Port 6, Dual Analog: L1 (front left shoulder) -psx.input.port6.dualanalog.l1 - -;psx, Virtual Port 6, Dual Analog: L2 (rear left shoulder) -psx.input.port6.dualanalog.l2 - -;psx, Virtual Port 6, Dual Analog: Left Stick, Button(L3) -psx.input.port6.dualanalog.l3 - -;psx, Virtual Port 6, Dual Analog: D-Pad LEFT ← -psx.input.port6.dualanalog.left - -;psx, Virtual Port 6, Dual Analog: Left Stick DOWN ↓ -psx.input.port6.dualanalog.lstick_down - -;psx, Virtual Port 6, Dual Analog: Left Stick LEFT ← -psx.input.port6.dualanalog.lstick_left - -;psx, Virtual Port 6, Dual Analog: Left Stick RIGHT → -psx.input.port6.dualanalog.lstick_right - -;psx, Virtual Port 6, Dual Analog: Left Stick UP ↑ -psx.input.port6.dualanalog.lstick_up - -;psx, Virtual Port 6, Dual Analog: R1 (front right shoulder) -psx.input.port6.dualanalog.r1 - -;psx, Virtual Port 6, Dual Analog: R2 (rear right shoulder) -psx.input.port6.dualanalog.r2 - -;psx, Virtual Port 6, Dual Analog: Right stick, Button(R3) -psx.input.port6.dualanalog.r3 - -;psx, Virtual Port 6, Dual Analog: Rapid ○ (right) -psx.input.port6.dualanalog.rapid_circle - -;psx, Virtual Port 6, Dual Analog: Rapid x (lower) -psx.input.port6.dualanalog.rapid_cross - -;psx, Virtual Port 6, Dual Analog: Rapid □ (left) -psx.input.port6.dualanalog.rapid_square - -;psx, Virtual Port 6, Dual Analog: Rapid △ (upper) -psx.input.port6.dualanalog.rapid_triangle - -;psx, Virtual Port 6, Dual Analog: D-Pad RIGHT → -psx.input.port6.dualanalog.right - -;psx, Virtual Port 6, Dual Analog: Right Stick DOWN ↓ -psx.input.port6.dualanalog.rstick_down - -;psx, Virtual Port 6, Dual Analog: Right Stick LEFT ← -psx.input.port6.dualanalog.rstick_left - -;psx, Virtual Port 6, Dual Analog: Right Stick RIGHT → -psx.input.port6.dualanalog.rstick_right - -;psx, Virtual Port 6, Dual Analog: Right Stick UP ↑ -psx.input.port6.dualanalog.rstick_up - -;psx, Virtual Port 6, Dual Analog: SELECT -psx.input.port6.dualanalog.select - -;psx, Virtual Port 6, Dual Analog: □ (left) -psx.input.port6.dualanalog.square - -;psx, Virtual Port 6, Dual Analog: START -psx.input.port6.dualanalog.start - -;psx, Virtual Port 6, Dual Analog: △ (upper) -psx.input.port6.dualanalog.triangle - -;psx, Virtual Port 6, Dual Analog: D-Pad UP ↑ -psx.input.port6.dualanalog.up - -;psx, Virtual Port 6, DualShock: Analog(mode toggle) -psx.input.port6.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 6. -psx.input.port6.dualshock.axis_scale 1.00 - -;psx, Virtual Port 6, DualShock: ○ (right) -psx.input.port6.dualshock.circle - -;psx, Virtual Port 6, DualShock: x (lower) -psx.input.port6.dualshock.cross - -;psx, Virtual Port 6, DualShock: D-Pad DOWN ↓ -psx.input.port6.dualshock.down - -;psx, Virtual Port 6, DualShock: L1 (front left shoulder) -psx.input.port6.dualshock.l1 - -;psx, Virtual Port 6, DualShock: L2 (rear left shoulder) -psx.input.port6.dualshock.l2 - -;psx, Virtual Port 6, DualShock: Left Stick, Button(L3) -psx.input.port6.dualshock.l3 - -;psx, Virtual Port 6, DualShock: D-Pad LEFT ← -psx.input.port6.dualshock.left - -;psx, Virtual Port 6, DualShock: Left Stick DOWN ↓ -psx.input.port6.dualshock.lstick_down - -;psx, Virtual Port 6, DualShock: Left Stick LEFT ← -psx.input.port6.dualshock.lstick_left - -;psx, Virtual Port 6, DualShock: Left Stick RIGHT → -psx.input.port6.dualshock.lstick_right - -;psx, Virtual Port 6, DualShock: Left Stick UP ↑ -psx.input.port6.dualshock.lstick_up - -;psx, Virtual Port 6, DualShock: R1 (front right shoulder) -psx.input.port6.dualshock.r1 - -;psx, Virtual Port 6, DualShock: R2 (rear right shoulder) -psx.input.port6.dualshock.r2 - -;psx, Virtual Port 6, DualShock: Right stick, Button(R3) -psx.input.port6.dualshock.r3 - -;psx, Virtual Port 6, DualShock: Rapid ○ (right) -psx.input.port6.dualshock.rapid_circle - -;psx, Virtual Port 6, DualShock: Rapid x (lower) -psx.input.port6.dualshock.rapid_cross - -;psx, Virtual Port 6, DualShock: Rapid □ (left) -psx.input.port6.dualshock.rapid_square - -;psx, Virtual Port 6, DualShock: Rapid △ (upper) -psx.input.port6.dualshock.rapid_triangle - -;psx, Virtual Port 6, DualShock: D-Pad RIGHT → -psx.input.port6.dualshock.right - -;psx, Virtual Port 6, DualShock: Right Stick DOWN ↓ -psx.input.port6.dualshock.rstick_down - -;psx, Virtual Port 6, DualShock: Right Stick LEFT ← -psx.input.port6.dualshock.rstick_left - -;psx, Virtual Port 6, DualShock: Right Stick RIGHT → -psx.input.port6.dualshock.rstick_right - -;psx, Virtual Port 6, DualShock: Right Stick UP ↑ -psx.input.port6.dualshock.rstick_up - -;psx, Virtual Port 6, DualShock: SELECT -psx.input.port6.dualshock.select - -;psx, Virtual Port 6, DualShock: □ (left) -psx.input.port6.dualshock.square - -;psx, Virtual Port 6, DualShock: START -psx.input.port6.dualshock.start - -;psx, Virtual Port 6, DualShock: △ (upper) -psx.input.port6.dualshock.triangle - -;psx, Virtual Port 6, DualShock: D-Pad UP ↑ -psx.input.port6.dualshock.up - -;psx, Virtual Port 6, Digital Gamepad: ○ (right) -psx.input.port6.gamepad.circle - -;psx, Virtual Port 6, Digital Gamepad: x (lower) -psx.input.port6.gamepad.cross - -;psx, Virtual Port 6, Digital Gamepad: DOWN ↓ -psx.input.port6.gamepad.down - -;psx, Virtual Port 6, Digital Gamepad: L1 (front left shoulder) -psx.input.port6.gamepad.l1 - -;psx, Virtual Port 6, Digital Gamepad: L2 (rear left shoulder) -psx.input.port6.gamepad.l2 - -;psx, Virtual Port 6, Digital Gamepad: LEFT ← -psx.input.port6.gamepad.left - -;psx, Virtual Port 6, Digital Gamepad: R1 (front right shoulder) -psx.input.port6.gamepad.r1 - -;psx, Virtual Port 6, Digital Gamepad: R2 (rear right shoulder) -psx.input.port6.gamepad.r2 - -;psx, Virtual Port 6, Digital Gamepad: Rapid ○ (right) -psx.input.port6.gamepad.rapid_circle - -;psx, Virtual Port 6, Digital Gamepad: Rapid x (lower) -psx.input.port6.gamepad.rapid_cross - -;psx, Virtual Port 6, Digital Gamepad: Rapid □ (left) -psx.input.port6.gamepad.rapid_square - -;psx, Virtual Port 6, Digital Gamepad: Rapid △ (upper) -psx.input.port6.gamepad.rapid_triangle - -;psx, Virtual Port 6, Digital Gamepad: RIGHT → -psx.input.port6.gamepad.right - -;psx, Virtual Port 6, Digital Gamepad: SELECT -psx.input.port6.gamepad.select - -;psx, Virtual Port 6, Digital Gamepad: □ (left) -psx.input.port6.gamepad.square - -;psx, Virtual Port 6, Digital Gamepad: START -psx.input.port6.gamepad.start - -;psx, Virtual Port 6, Digital Gamepad: △ (upper) -psx.input.port6.gamepad.triangle - -;psx, Virtual Port 6, Digital Gamepad: UP ↑ -psx.input.port6.gamepad.up - -;Crosshairs color for lightgun on virtual port 6. -psx.input.port6.gun_chairs 0x00FFFF - -;psx, Virtual Port 6, GunCon: A -psx.input.port6.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 6, GunCon: B -psx.input.port6.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 6, GunCon: Offscreen Shot(Simulated) -psx.input.port6.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 6, GunCon: Trigger -psx.input.port6.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 6, GunCon: X Axis -psx.input.port6.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 6, GunCon: Y Axis -psx.input.port6.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 6, Konami Justifier: O -psx.input.port6.justifier.o - -;psx, Virtual Port 6, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port6.justifier.offscreen_shot - -;psx, Virtual Port 6, Konami Justifier: Start -psx.input.port6.justifier.start - -;psx, Virtual Port 6, Konami Justifier: Trigger -psx.input.port6.justifier.trigger - -;psx, Virtual Port 6, Konami Justifier: X Axis -psx.input.port6.justifier.x_axis - -;psx, Virtual Port 6, Konami Justifier: Y Axis -psx.input.port6.justifier.y_axis - -;Emulate memory card on virtual port 6. -psx.input.port6.memcard 1 - -;psx, Virtual Port 6, Mouse: Left Button -psx.input.port6.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 6, Mouse: Motion Down -psx.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 6, Mouse: Motion Left -psx.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 6, Mouse: Motion Right -psx.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 6, Mouse: Motion Up -psx.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 6, Mouse: Right Button -psx.input.port6.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 6, neGcon: A -psx.input.port6.negcon.a - -;psx, Virtual Port 6, neGcon: B -psx.input.port6.negcon.b - -;psx, Virtual Port 6, neGcon: D-Pad DOWN ↓ -psx.input.port6.negcon.down - -;psx, Virtual Port 6, neGcon: I (Analog) -psx.input.port6.negcon.i - -;psx, Virtual Port 6, neGcon: II (Analog) -psx.input.port6.negcon.ii - -;psx, Virtual Port 6, neGcon: Left Shoulder (Analog) -psx.input.port6.negcon.l - -;psx, Virtual Port 6, neGcon: D-Pad LEFT ← -psx.input.port6.negcon.left - -;psx, Virtual Port 6, neGcon: Right Shoulder -psx.input.port6.negcon.r - -;psx, Virtual Port 6, neGcon: D-Pad RIGHT → -psx.input.port6.negcon.right - -;psx, Virtual Port 6, neGcon: START -psx.input.port6.negcon.start - -;psx, Virtual Port 6, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port6.negcon.twist_ccwise - -;psx, Virtual Port 6, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port6.negcon.twist_cwise - -;psx, Virtual Port 6, neGcon: D-Pad UP ↑ -psx.input.port6.negcon.up - -;Input device for Virtual Port 7 -psx.input.port7 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 7. -psx.input.port7.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 7, Analog Joystick: Right stick, R-thumb -psx.input.port7.analogjoy.circle - -;psx, Virtual Port 7, Analog Joystick: Right stick, L-thumb -psx.input.port7.analogjoy.cross - -;psx, Virtual Port 7, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port7.analogjoy.down - -;psx, Virtual Port 7, Analog Joystick: Left stick, L-thumb -psx.input.port7.analogjoy.l1 - -;psx, Virtual Port 7, Analog Joystick: Left stick, Trigger -psx.input.port7.analogjoy.l2 - -;psx, Virtual Port 7, Analog Joystick: Thumbstick LEFT ← -psx.input.port7.analogjoy.left - -;psx, Virtual Port 7, Analog Joystick: Left Stick, BACK ↓ -psx.input.port7.analogjoy.lstick_down - -;psx, Virtual Port 7, Analog Joystick: Left Stick, LEFT ← -psx.input.port7.analogjoy.lstick_left - -;psx, Virtual Port 7, Analog Joystick: Left Stick, RIGHT → -psx.input.port7.analogjoy.lstick_right - -;psx, Virtual Port 7, Analog Joystick: Left Stick, FORE ↑ -psx.input.port7.analogjoy.lstick_up - -;psx, Virtual Port 7, Analog Joystick: Left stick, R-thumb -psx.input.port7.analogjoy.r1 - -;psx, Virtual Port 7, Analog Joystick: Left stick, Pinky -psx.input.port7.analogjoy.r2 - -;psx, Virtual Port 7, Analog Joystick: Thumbstick RIGHT → -psx.input.port7.analogjoy.right - -;psx, Virtual Port 7, Analog Joystick: Right Stick, BACK ↓ -psx.input.port7.analogjoy.rstick_down - -;psx, Virtual Port 7, Analog Joystick: Right Stick, LEFT ← -psx.input.port7.analogjoy.rstick_left - -;psx, Virtual Port 7, Analog Joystick: Right Stick, RIGHT → -psx.input.port7.analogjoy.rstick_right - -;psx, Virtual Port 7, Analog Joystick: Right Stick, FORE ↑ -psx.input.port7.analogjoy.rstick_up - -;psx, Virtual Port 7, Analog Joystick: SELECT -psx.input.port7.analogjoy.select - -;psx, Virtual Port 7, Analog Joystick: Right stick, Trigger -psx.input.port7.analogjoy.square - -;psx, Virtual Port 7, Analog Joystick: START -psx.input.port7.analogjoy.start - -;psx, Virtual Port 7, Analog Joystick: Right stick, Pinky -psx.input.port7.analogjoy.triangle - -;psx, Virtual Port 7, Analog Joystick: Thumbstick UP ↑ -psx.input.port7.analogjoy.up - -;psx, Virtual Port 7, Dance Pad: ○ (upper right) -psx.input.port7.dancepad.circle - -;psx, Virtual Port 7, Dance Pad: x (upper left) -psx.input.port7.dancepad.cross - -;psx, Virtual Port 7, Dance Pad: DOWN ↓ -psx.input.port7.dancepad.down - -;psx, Virtual Port 7, Dance Pad: LEFT ← -psx.input.port7.dancepad.left - -;psx, Virtual Port 7, Dance Pad: RIGHT → -psx.input.port7.dancepad.right - -;psx, Virtual Port 7, Dance Pad: SELECT -psx.input.port7.dancepad.select - -;psx, Virtual Port 7, Dance Pad: □ (lower right) -psx.input.port7.dancepad.square - -;psx, Virtual Port 7, Dance Pad: START -psx.input.port7.dancepad.start - -;psx, Virtual Port 7, Dance Pad: △ (lower left) -psx.input.port7.dancepad.triangle - -;psx, Virtual Port 7, Dance Pad: UP ↑ -psx.input.port7.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 7. -psx.input.port7.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 7, Dual Analog: ○ (right) -psx.input.port7.dualanalog.circle - -;psx, Virtual Port 7, Dual Analog: x (lower) -psx.input.port7.dualanalog.cross - -;psx, Virtual Port 7, Dual Analog: D-Pad DOWN ↓ -psx.input.port7.dualanalog.down - -;psx, Virtual Port 7, Dual Analog: L1 (front left shoulder) -psx.input.port7.dualanalog.l1 - -;psx, Virtual Port 7, Dual Analog: L2 (rear left shoulder) -psx.input.port7.dualanalog.l2 - -;psx, Virtual Port 7, Dual Analog: Left Stick, Button(L3) -psx.input.port7.dualanalog.l3 - -;psx, Virtual Port 7, Dual Analog: D-Pad LEFT ← -psx.input.port7.dualanalog.left - -;psx, Virtual Port 7, Dual Analog: Left Stick DOWN ↓ -psx.input.port7.dualanalog.lstick_down - -;psx, Virtual Port 7, Dual Analog: Left Stick LEFT ← -psx.input.port7.dualanalog.lstick_left - -;psx, Virtual Port 7, Dual Analog: Left Stick RIGHT → -psx.input.port7.dualanalog.lstick_right - -;psx, Virtual Port 7, Dual Analog: Left Stick UP ↑ -psx.input.port7.dualanalog.lstick_up - -;psx, Virtual Port 7, Dual Analog: R1 (front right shoulder) -psx.input.port7.dualanalog.r1 - -;psx, Virtual Port 7, Dual Analog: R2 (rear right shoulder) -psx.input.port7.dualanalog.r2 - -;psx, Virtual Port 7, Dual Analog: Right stick, Button(R3) -psx.input.port7.dualanalog.r3 - -;psx, Virtual Port 7, Dual Analog: Rapid ○ (right) -psx.input.port7.dualanalog.rapid_circle - -;psx, Virtual Port 7, Dual Analog: Rapid x (lower) -psx.input.port7.dualanalog.rapid_cross - -;psx, Virtual Port 7, Dual Analog: Rapid □ (left) -psx.input.port7.dualanalog.rapid_square - -;psx, Virtual Port 7, Dual Analog: Rapid △ (upper) -psx.input.port7.dualanalog.rapid_triangle - -;psx, Virtual Port 7, Dual Analog: D-Pad RIGHT → -psx.input.port7.dualanalog.right - -;psx, Virtual Port 7, Dual Analog: Right Stick DOWN ↓ -psx.input.port7.dualanalog.rstick_down - -;psx, Virtual Port 7, Dual Analog: Right Stick LEFT ← -psx.input.port7.dualanalog.rstick_left - -;psx, Virtual Port 7, Dual Analog: Right Stick RIGHT → -psx.input.port7.dualanalog.rstick_right - -;psx, Virtual Port 7, Dual Analog: Right Stick UP ↑ -psx.input.port7.dualanalog.rstick_up - -;psx, Virtual Port 7, Dual Analog: SELECT -psx.input.port7.dualanalog.select - -;psx, Virtual Port 7, Dual Analog: □ (left) -psx.input.port7.dualanalog.square - -;psx, Virtual Port 7, Dual Analog: START -psx.input.port7.dualanalog.start - -;psx, Virtual Port 7, Dual Analog: △ (upper) -psx.input.port7.dualanalog.triangle - -;psx, Virtual Port 7, Dual Analog: D-Pad UP ↑ -psx.input.port7.dualanalog.up - -;psx, Virtual Port 7, DualShock: Analog(mode toggle) -psx.input.port7.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 7. -psx.input.port7.dualshock.axis_scale 1.00 - -;psx, Virtual Port 7, DualShock: ○ (right) -psx.input.port7.dualshock.circle - -;psx, Virtual Port 7, DualShock: x (lower) -psx.input.port7.dualshock.cross - -;psx, Virtual Port 7, DualShock: D-Pad DOWN ↓ -psx.input.port7.dualshock.down - -;psx, Virtual Port 7, DualShock: L1 (front left shoulder) -psx.input.port7.dualshock.l1 - -;psx, Virtual Port 7, DualShock: L2 (rear left shoulder) -psx.input.port7.dualshock.l2 - -;psx, Virtual Port 7, DualShock: Left Stick, Button(L3) -psx.input.port7.dualshock.l3 - -;psx, Virtual Port 7, DualShock: D-Pad LEFT ← -psx.input.port7.dualshock.left - -;psx, Virtual Port 7, DualShock: Left Stick DOWN ↓ -psx.input.port7.dualshock.lstick_down - -;psx, Virtual Port 7, DualShock: Left Stick LEFT ← -psx.input.port7.dualshock.lstick_left - -;psx, Virtual Port 7, DualShock: Left Stick RIGHT → -psx.input.port7.dualshock.lstick_right - -;psx, Virtual Port 7, DualShock: Left Stick UP ↑ -psx.input.port7.dualshock.lstick_up - -;psx, Virtual Port 7, DualShock: R1 (front right shoulder) -psx.input.port7.dualshock.r1 - -;psx, Virtual Port 7, DualShock: R2 (rear right shoulder) -psx.input.port7.dualshock.r2 - -;psx, Virtual Port 7, DualShock: Right stick, Button(R3) -psx.input.port7.dualshock.r3 - -;psx, Virtual Port 7, DualShock: Rapid ○ (right) -psx.input.port7.dualshock.rapid_circle - -;psx, Virtual Port 7, DualShock: Rapid x (lower) -psx.input.port7.dualshock.rapid_cross - -;psx, Virtual Port 7, DualShock: Rapid □ (left) -psx.input.port7.dualshock.rapid_square - -;psx, Virtual Port 7, DualShock: Rapid △ (upper) -psx.input.port7.dualshock.rapid_triangle - -;psx, Virtual Port 7, DualShock: D-Pad RIGHT → -psx.input.port7.dualshock.right - -;psx, Virtual Port 7, DualShock: Right Stick DOWN ↓ -psx.input.port7.dualshock.rstick_down - -;psx, Virtual Port 7, DualShock: Right Stick LEFT ← -psx.input.port7.dualshock.rstick_left - -;psx, Virtual Port 7, DualShock: Right Stick RIGHT → -psx.input.port7.dualshock.rstick_right - -;psx, Virtual Port 7, DualShock: Right Stick UP ↑ -psx.input.port7.dualshock.rstick_up - -;psx, Virtual Port 7, DualShock: SELECT -psx.input.port7.dualshock.select - -;psx, Virtual Port 7, DualShock: □ (left) -psx.input.port7.dualshock.square - -;psx, Virtual Port 7, DualShock: START -psx.input.port7.dualshock.start - -;psx, Virtual Port 7, DualShock: △ (upper) -psx.input.port7.dualshock.triangle - -;psx, Virtual Port 7, DualShock: D-Pad UP ↑ -psx.input.port7.dualshock.up - -;psx, Virtual Port 7, Digital Gamepad: ○ (right) -psx.input.port7.gamepad.circle - -;psx, Virtual Port 7, Digital Gamepad: x (lower) -psx.input.port7.gamepad.cross - -;psx, Virtual Port 7, Digital Gamepad: DOWN ↓ -psx.input.port7.gamepad.down - -;psx, Virtual Port 7, Digital Gamepad: L1 (front left shoulder) -psx.input.port7.gamepad.l1 - -;psx, Virtual Port 7, Digital Gamepad: L2 (rear left shoulder) -psx.input.port7.gamepad.l2 - -;psx, Virtual Port 7, Digital Gamepad: LEFT ← -psx.input.port7.gamepad.left - -;psx, Virtual Port 7, Digital Gamepad: R1 (front right shoulder) -psx.input.port7.gamepad.r1 - -;psx, Virtual Port 7, Digital Gamepad: R2 (rear right shoulder) -psx.input.port7.gamepad.r2 - -;psx, Virtual Port 7, Digital Gamepad: Rapid ○ (right) -psx.input.port7.gamepad.rapid_circle - -;psx, Virtual Port 7, Digital Gamepad: Rapid x (lower) -psx.input.port7.gamepad.rapid_cross - -;psx, Virtual Port 7, Digital Gamepad: Rapid □ (left) -psx.input.port7.gamepad.rapid_square - -;psx, Virtual Port 7, Digital Gamepad: Rapid △ (upper) -psx.input.port7.gamepad.rapid_triangle - -;psx, Virtual Port 7, Digital Gamepad: RIGHT → -psx.input.port7.gamepad.right - -;psx, Virtual Port 7, Digital Gamepad: SELECT -psx.input.port7.gamepad.select - -;psx, Virtual Port 7, Digital Gamepad: □ (left) -psx.input.port7.gamepad.square - -;psx, Virtual Port 7, Digital Gamepad: START -psx.input.port7.gamepad.start - -;psx, Virtual Port 7, Digital Gamepad: △ (upper) -psx.input.port7.gamepad.triangle - -;psx, Virtual Port 7, Digital Gamepad: UP ↑ -psx.input.port7.gamepad.up - -;Crosshairs color for lightgun on virtual port 7. -psx.input.port7.gun_chairs 0x0080FF - -;psx, Virtual Port 7, GunCon: A -psx.input.port7.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 7, GunCon: B -psx.input.port7.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 7, GunCon: Offscreen Shot(Simulated) -psx.input.port7.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 7, GunCon: Trigger -psx.input.port7.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 7, GunCon: X Axis -psx.input.port7.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 7, GunCon: Y Axis -psx.input.port7.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 7, Konami Justifier: O -psx.input.port7.justifier.o - -;psx, Virtual Port 7, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port7.justifier.offscreen_shot - -;psx, Virtual Port 7, Konami Justifier: Start -psx.input.port7.justifier.start - -;psx, Virtual Port 7, Konami Justifier: Trigger -psx.input.port7.justifier.trigger - -;psx, Virtual Port 7, Konami Justifier: X Axis -psx.input.port7.justifier.x_axis - -;psx, Virtual Port 7, Konami Justifier: Y Axis -psx.input.port7.justifier.y_axis - -;Emulate memory card on virtual port 7. -psx.input.port7.memcard 1 - -;psx, Virtual Port 7, Mouse: Left Button -psx.input.port7.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 7, Mouse: Motion Down -psx.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 7, Mouse: Motion Left -psx.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 7, Mouse: Motion Right -psx.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 7, Mouse: Motion Up -psx.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 7, Mouse: Right Button -psx.input.port7.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 7, neGcon: A -psx.input.port7.negcon.a - -;psx, Virtual Port 7, neGcon: B -psx.input.port7.negcon.b - -;psx, Virtual Port 7, neGcon: D-Pad DOWN ↓ -psx.input.port7.negcon.down - -;psx, Virtual Port 7, neGcon: I (Analog) -psx.input.port7.negcon.i - -;psx, Virtual Port 7, neGcon: II (Analog) -psx.input.port7.negcon.ii - -;psx, Virtual Port 7, neGcon: Left Shoulder (Analog) -psx.input.port7.negcon.l - -;psx, Virtual Port 7, neGcon: D-Pad LEFT ← -psx.input.port7.negcon.left - -;psx, Virtual Port 7, neGcon: Right Shoulder -psx.input.port7.negcon.r - -;psx, Virtual Port 7, neGcon: D-Pad RIGHT → -psx.input.port7.negcon.right - -;psx, Virtual Port 7, neGcon: START -psx.input.port7.negcon.start - -;psx, Virtual Port 7, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port7.negcon.twist_ccwise - -;psx, Virtual Port 7, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port7.negcon.twist_cwise - -;psx, Virtual Port 7, neGcon: D-Pad UP ↑ -psx.input.port7.negcon.up - -;Input device for Virtual Port 8 -psx.input.port8 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 8. -psx.input.port8.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 8, Analog Joystick: Right stick, R-thumb -psx.input.port8.analogjoy.circle - -;psx, Virtual Port 8, Analog Joystick: Right stick, L-thumb -psx.input.port8.analogjoy.cross - -;psx, Virtual Port 8, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port8.analogjoy.down - -;psx, Virtual Port 8, Analog Joystick: Left stick, L-thumb -psx.input.port8.analogjoy.l1 - -;psx, Virtual Port 8, Analog Joystick: Left stick, Trigger -psx.input.port8.analogjoy.l2 - -;psx, Virtual Port 8, Analog Joystick: Thumbstick LEFT ← -psx.input.port8.analogjoy.left - -;psx, Virtual Port 8, Analog Joystick: Left Stick, BACK ↓ -psx.input.port8.analogjoy.lstick_down - -;psx, Virtual Port 8, Analog Joystick: Left Stick, LEFT ← -psx.input.port8.analogjoy.lstick_left - -;psx, Virtual Port 8, Analog Joystick: Left Stick, RIGHT → -psx.input.port8.analogjoy.lstick_right - -;psx, Virtual Port 8, Analog Joystick: Left Stick, FORE ↑ -psx.input.port8.analogjoy.lstick_up - -;psx, Virtual Port 8, Analog Joystick: Left stick, R-thumb -psx.input.port8.analogjoy.r1 - -;psx, Virtual Port 8, Analog Joystick: Left stick, Pinky -psx.input.port8.analogjoy.r2 - -;psx, Virtual Port 8, Analog Joystick: Thumbstick RIGHT → -psx.input.port8.analogjoy.right - -;psx, Virtual Port 8, Analog Joystick: Right Stick, BACK ↓ -psx.input.port8.analogjoy.rstick_down - -;psx, Virtual Port 8, Analog Joystick: Right Stick, LEFT ← -psx.input.port8.analogjoy.rstick_left - -;psx, Virtual Port 8, Analog Joystick: Right Stick, RIGHT → -psx.input.port8.analogjoy.rstick_right - -;psx, Virtual Port 8, Analog Joystick: Right Stick, FORE ↑ -psx.input.port8.analogjoy.rstick_up - -;psx, Virtual Port 8, Analog Joystick: SELECT -psx.input.port8.analogjoy.select - -;psx, Virtual Port 8, Analog Joystick: Right stick, Trigger -psx.input.port8.analogjoy.square - -;psx, Virtual Port 8, Analog Joystick: START -psx.input.port8.analogjoy.start - -;psx, Virtual Port 8, Analog Joystick: Right stick, Pinky -psx.input.port8.analogjoy.triangle - -;psx, Virtual Port 8, Analog Joystick: Thumbstick UP ↑ -psx.input.port8.analogjoy.up - -;psx, Virtual Port 8, Dance Pad: ○ (upper right) -psx.input.port8.dancepad.circle - -;psx, Virtual Port 8, Dance Pad: x (upper left) -psx.input.port8.dancepad.cross - -;psx, Virtual Port 8, Dance Pad: DOWN ↓ -psx.input.port8.dancepad.down - -;psx, Virtual Port 8, Dance Pad: LEFT ← -psx.input.port8.dancepad.left - -;psx, Virtual Port 8, Dance Pad: RIGHT → -psx.input.port8.dancepad.right - -;psx, Virtual Port 8, Dance Pad: SELECT -psx.input.port8.dancepad.select - -;psx, Virtual Port 8, Dance Pad: □ (lower right) -psx.input.port8.dancepad.square - -;psx, Virtual Port 8, Dance Pad: START -psx.input.port8.dancepad.start - -;psx, Virtual Port 8, Dance Pad: △ (lower left) -psx.input.port8.dancepad.triangle - -;psx, Virtual Port 8, Dance Pad: UP ↑ -psx.input.port8.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 8. -psx.input.port8.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 8, Dual Analog: ○ (right) -psx.input.port8.dualanalog.circle - -;psx, Virtual Port 8, Dual Analog: x (lower) -psx.input.port8.dualanalog.cross - -;psx, Virtual Port 8, Dual Analog: D-Pad DOWN ↓ -psx.input.port8.dualanalog.down - -;psx, Virtual Port 8, Dual Analog: L1 (front left shoulder) -psx.input.port8.dualanalog.l1 - -;psx, Virtual Port 8, Dual Analog: L2 (rear left shoulder) -psx.input.port8.dualanalog.l2 - -;psx, Virtual Port 8, Dual Analog: Left Stick, Button(L3) -psx.input.port8.dualanalog.l3 - -;psx, Virtual Port 8, Dual Analog: D-Pad LEFT ← -psx.input.port8.dualanalog.left - -;psx, Virtual Port 8, Dual Analog: Left Stick DOWN ↓ -psx.input.port8.dualanalog.lstick_down - -;psx, Virtual Port 8, Dual Analog: Left Stick LEFT ← -psx.input.port8.dualanalog.lstick_left - -;psx, Virtual Port 8, Dual Analog: Left Stick RIGHT → -psx.input.port8.dualanalog.lstick_right - -;psx, Virtual Port 8, Dual Analog: Left Stick UP ↑ -psx.input.port8.dualanalog.lstick_up - -;psx, Virtual Port 8, Dual Analog: R1 (front right shoulder) -psx.input.port8.dualanalog.r1 - -;psx, Virtual Port 8, Dual Analog: R2 (rear right shoulder) -psx.input.port8.dualanalog.r2 - -;psx, Virtual Port 8, Dual Analog: Right stick, Button(R3) -psx.input.port8.dualanalog.r3 - -;psx, Virtual Port 8, Dual Analog: Rapid ○ (right) -psx.input.port8.dualanalog.rapid_circle - -;psx, Virtual Port 8, Dual Analog: Rapid x (lower) -psx.input.port8.dualanalog.rapid_cross - -;psx, Virtual Port 8, Dual Analog: Rapid □ (left) -psx.input.port8.dualanalog.rapid_square - -;psx, Virtual Port 8, Dual Analog: Rapid △ (upper) -psx.input.port8.dualanalog.rapid_triangle - -;psx, Virtual Port 8, Dual Analog: D-Pad RIGHT → -psx.input.port8.dualanalog.right - -;psx, Virtual Port 8, Dual Analog: Right Stick DOWN ↓ -psx.input.port8.dualanalog.rstick_down - -;psx, Virtual Port 8, Dual Analog: Right Stick LEFT ← -psx.input.port8.dualanalog.rstick_left - -;psx, Virtual Port 8, Dual Analog: Right Stick RIGHT → -psx.input.port8.dualanalog.rstick_right - -;psx, Virtual Port 8, Dual Analog: Right Stick UP ↑ -psx.input.port8.dualanalog.rstick_up - -;psx, Virtual Port 8, Dual Analog: SELECT -psx.input.port8.dualanalog.select - -;psx, Virtual Port 8, Dual Analog: □ (left) -psx.input.port8.dualanalog.square - -;psx, Virtual Port 8, Dual Analog: START -psx.input.port8.dualanalog.start - -;psx, Virtual Port 8, Dual Analog: △ (upper) -psx.input.port8.dualanalog.triangle - -;psx, Virtual Port 8, Dual Analog: D-Pad UP ↑ -psx.input.port8.dualanalog.up - -;psx, Virtual Port 8, DualShock: Analog(mode toggle) -psx.input.port8.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 8. -psx.input.port8.dualshock.axis_scale 1.00 - -;psx, Virtual Port 8, DualShock: ○ (right) -psx.input.port8.dualshock.circle - -;psx, Virtual Port 8, DualShock: x (lower) -psx.input.port8.dualshock.cross - -;psx, Virtual Port 8, DualShock: D-Pad DOWN ↓ -psx.input.port8.dualshock.down - -;psx, Virtual Port 8, DualShock: L1 (front left shoulder) -psx.input.port8.dualshock.l1 - -;psx, Virtual Port 8, DualShock: L2 (rear left shoulder) -psx.input.port8.dualshock.l2 - -;psx, Virtual Port 8, DualShock: Left Stick, Button(L3) -psx.input.port8.dualshock.l3 - -;psx, Virtual Port 8, DualShock: D-Pad LEFT ← -psx.input.port8.dualshock.left - -;psx, Virtual Port 8, DualShock: Left Stick DOWN ↓ -psx.input.port8.dualshock.lstick_down - -;psx, Virtual Port 8, DualShock: Left Stick LEFT ← -psx.input.port8.dualshock.lstick_left - -;psx, Virtual Port 8, DualShock: Left Stick RIGHT → -psx.input.port8.dualshock.lstick_right - -;psx, Virtual Port 8, DualShock: Left Stick UP ↑ -psx.input.port8.dualshock.lstick_up - -;psx, Virtual Port 8, DualShock: R1 (front right shoulder) -psx.input.port8.dualshock.r1 - -;psx, Virtual Port 8, DualShock: R2 (rear right shoulder) -psx.input.port8.dualshock.r2 - -;psx, Virtual Port 8, DualShock: Right stick, Button(R3) -psx.input.port8.dualshock.r3 - -;psx, Virtual Port 8, DualShock: Rapid ○ (right) -psx.input.port8.dualshock.rapid_circle - -;psx, Virtual Port 8, DualShock: Rapid x (lower) -psx.input.port8.dualshock.rapid_cross - -;psx, Virtual Port 8, DualShock: Rapid □ (left) -psx.input.port8.dualshock.rapid_square - -;psx, Virtual Port 8, DualShock: Rapid △ (upper) -psx.input.port8.dualshock.rapid_triangle - -;psx, Virtual Port 8, DualShock: D-Pad RIGHT → -psx.input.port8.dualshock.right - -;psx, Virtual Port 8, DualShock: Right Stick DOWN ↓ -psx.input.port8.dualshock.rstick_down - -;psx, Virtual Port 8, DualShock: Right Stick LEFT ← -psx.input.port8.dualshock.rstick_left - -;psx, Virtual Port 8, DualShock: Right Stick RIGHT → -psx.input.port8.dualshock.rstick_right - -;psx, Virtual Port 8, DualShock: Right Stick UP ↑ -psx.input.port8.dualshock.rstick_up - -;psx, Virtual Port 8, DualShock: SELECT -psx.input.port8.dualshock.select - -;psx, Virtual Port 8, DualShock: □ (left) -psx.input.port8.dualshock.square - -;psx, Virtual Port 8, DualShock: START -psx.input.port8.dualshock.start - -;psx, Virtual Port 8, DualShock: △ (upper) -psx.input.port8.dualshock.triangle - -;psx, Virtual Port 8, DualShock: D-Pad UP ↑ -psx.input.port8.dualshock.up - -;psx, Virtual Port 8, Digital Gamepad: ○ (right) -psx.input.port8.gamepad.circle - -;psx, Virtual Port 8, Digital Gamepad: x (lower) -psx.input.port8.gamepad.cross - -;psx, Virtual Port 8, Digital Gamepad: DOWN ↓ -psx.input.port8.gamepad.down - -;psx, Virtual Port 8, Digital Gamepad: L1 (front left shoulder) -psx.input.port8.gamepad.l1 - -;psx, Virtual Port 8, Digital Gamepad: L2 (rear left shoulder) -psx.input.port8.gamepad.l2 - -;psx, Virtual Port 8, Digital Gamepad: LEFT ← -psx.input.port8.gamepad.left - -;psx, Virtual Port 8, Digital Gamepad: R1 (front right shoulder) -psx.input.port8.gamepad.r1 - -;psx, Virtual Port 8, Digital Gamepad: R2 (rear right shoulder) -psx.input.port8.gamepad.r2 - -;psx, Virtual Port 8, Digital Gamepad: Rapid ○ (right) -psx.input.port8.gamepad.rapid_circle - -;psx, Virtual Port 8, Digital Gamepad: Rapid x (lower) -psx.input.port8.gamepad.rapid_cross - -;psx, Virtual Port 8, Digital Gamepad: Rapid □ (left) -psx.input.port8.gamepad.rapid_square - -;psx, Virtual Port 8, Digital Gamepad: Rapid △ (upper) -psx.input.port8.gamepad.rapid_triangle - -;psx, Virtual Port 8, Digital Gamepad: RIGHT → -psx.input.port8.gamepad.right - -;psx, Virtual Port 8, Digital Gamepad: SELECT -psx.input.port8.gamepad.select - -;psx, Virtual Port 8, Digital Gamepad: □ (left) -psx.input.port8.gamepad.square - -;psx, Virtual Port 8, Digital Gamepad: START -psx.input.port8.gamepad.start - -;psx, Virtual Port 8, Digital Gamepad: △ (upper) -psx.input.port8.gamepad.triangle - -;psx, Virtual Port 8, Digital Gamepad: UP ↑ -psx.input.port8.gamepad.up - -;Crosshairs color for lightgun on virtual port 8. -psx.input.port8.gun_chairs 0x8000FF - -;psx, Virtual Port 8, GunCon: A -psx.input.port8.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 8, GunCon: B -psx.input.port8.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 8, GunCon: Offscreen Shot(Simulated) -psx.input.port8.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 8, GunCon: Trigger -psx.input.port8.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 8, GunCon: X Axis -psx.input.port8.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 8, GunCon: Y Axis -psx.input.port8.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 8, Konami Justifier: O -psx.input.port8.justifier.o - -;psx, Virtual Port 8, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port8.justifier.offscreen_shot - -;psx, Virtual Port 8, Konami Justifier: Start -psx.input.port8.justifier.start - -;psx, Virtual Port 8, Konami Justifier: Trigger -psx.input.port8.justifier.trigger - -;psx, Virtual Port 8, Konami Justifier: X Axis -psx.input.port8.justifier.x_axis - -;psx, Virtual Port 8, Konami Justifier: Y Axis -psx.input.port8.justifier.y_axis - -;Emulate memory card on virtual port 8. -psx.input.port8.memcard 1 - -;psx, Virtual Port 8, Mouse: Left Button -psx.input.port8.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 8, Mouse: Motion Down -psx.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 8, Mouse: Motion Left -psx.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 8, Mouse: Motion Right -psx.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 8, Mouse: Motion Up -psx.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 8, Mouse: Right Button -psx.input.port8.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 8, neGcon: A -psx.input.port8.negcon.a - -;psx, Virtual Port 8, neGcon: B -psx.input.port8.negcon.b - -;psx, Virtual Port 8, neGcon: D-Pad DOWN ↓ -psx.input.port8.negcon.down - -;psx, Virtual Port 8, neGcon: I (Analog) -psx.input.port8.negcon.i - -;psx, Virtual Port 8, neGcon: II (Analog) -psx.input.port8.negcon.ii - -;psx, Virtual Port 8, neGcon: Left Shoulder (Analog) -psx.input.port8.negcon.l - -;psx, Virtual Port 8, neGcon: D-Pad LEFT ← -psx.input.port8.negcon.left - -;psx, Virtual Port 8, neGcon: Right Shoulder -psx.input.port8.negcon.r - -;psx, Virtual Port 8, neGcon: D-Pad RIGHT → -psx.input.port8.negcon.right - -;psx, Virtual Port 8, neGcon: START -psx.input.port8.negcon.start - -;psx, Virtual Port 8, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port8.negcon.twist_ccwise - -;psx, Virtual Port 8, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port8.negcon.twist_cwise - -;psx, Virtual Port 8, neGcon: D-Pad UP ↑ -psx.input.port8.negcon.up - -;Enable multitap on PSX port 1. -psx.input.pport1.multitap 0 - -;Enable multitap on PSX port 2. -psx.input.pport2.multitap 0 - -;Attempt to auto-detect region of game. -psx.region_autodetect 1 - -;Default region to use. -psx.region_default jp - -;Enable scanlines with specified opacity. -psx.scanlines 0 - -;Enable specified OpenGL shader. -psx.shader none - -;Force interlaced video to be treated as progressive. -psx.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -psx.shader.goat.hdiv 0.50 - -;Mask pattern. -psx.shader.goat.pat goatron - -;Enable scanlines effect. -psx.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -psx.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -psx.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -psx.slend 239 - -;Last displayed scanline in PAL mode. -psx.slendp 287 - -;First displayed scanline in NTSC mode. -psx.slstart 0 - -;First displayed scanline in PAL mode. -psx.slstartp 0 - -;Enable specified special video scaler. -psx.special none - -;SPU output resampler quality. -psx.spu.resamp_quality 5 - -;Stretch to fill screen. -psx.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -psx.tblur 0 - -;Accumulate color data rather than discarding it. -psx.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -psx.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -psx.videoip 1 - -;Full-screen horizontal resolution. -psx.xres 0 - -;Scaling factor for the X axis in windowed mode. -psx.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -psx.xscalefs 1.000000 - -;Full-screen vertical resolution. -psx.yres 0 - -;Scaling factor for the Y axis in windowed mode. -psx.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -psx.yscalefs 1.000000 - -;Double the raw image's height if it's below this threshold. -qtrecord.h_double_threshold 256 - -;Video codec to use. -qtrecord.vcodec cscd - -;Double the raw image's width if it's below this threshold. -qtrecord.w_double_threshold 384 - -;SLOW-forwarding speed multiplier. -sfspeed 0.75 - -;Treat the SLOW-forward button as a toggle. -sftoggle 0 - -;Enable (automatic) usage of this module. -sms.enable 1 - -;Enable FM sound emulation when playing domestic/Japan-region games. -sms.fm 1 - -;Force monophonic sound output. -sms.forcemono 0 - -;sms, Port 1, Gamepad: DOWN ↓ -sms.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;sms, Port 1, Gamepad: Fire 1/Start -sms.input.port1.gamepad.fire1 joystick 0x0003045e028e01010008000b00000000 button_0 - -;sms, Port 1, Gamepad: Fire 2 -sms.input.port1.gamepad.fire2 joystick 0x0003045e028e01010008000b00000000 button_1 - -;sms, Port 1, Gamepad: LEFT ← -sms.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;sms, Port 1, Gamepad: Pause -sms.input.port1.gamepad.pause joystick 0x0003045e028e01010008000b00000000 button_7 - -;sms, Port 1, Gamepad: Rapid Fire 1/Start -sms.input.port1.gamepad.rapid_fire1 joystick 0x0003045e028e01010008000b00000000 button_2 - -;sms, Port 1, Gamepad: Rapid Fire 2 -sms.input.port1.gamepad.rapid_fire2 joystick 0x0003045e028e01010008000b00000000 button_3 - -;sms, Port 1, Gamepad: RIGHT → -sms.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;sms, Port 1, Gamepad: UP ↑ -sms.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;sms, Port 2, Gamepad: DOWN ↓ -sms.input.port2.gamepad.down - -;sms, Port 2, Gamepad: Fire 1/Start -sms.input.port2.gamepad.fire1 - -;sms, Port 2, Gamepad: Fire 2 -sms.input.port2.gamepad.fire2 - -;sms, Port 2, Gamepad: LEFT ← -sms.input.port2.gamepad.left - -;sms, Port 2, Gamepad: Pause -sms.input.port2.gamepad.pause - -;sms, Port 2, Gamepad: Rapid Fire 1/Start -sms.input.port2.gamepad.rapid_fire1 - -;sms, Port 2, Gamepad: Rapid Fire 2 -sms.input.port2.gamepad.rapid_fire2 - -;sms, Port 2, Gamepad: RIGHT → -sms.input.port2.gamepad.right - -;sms, Port 2, Gamepad: UP ↑ -sms.input.port2.gamepad.up - -;Enable scanlines with specified opacity. -sms.scanlines 0 - -;Enable specified OpenGL shader. -sms.shader sabr - -;Force interlaced video to be treated as progressive. -sms.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -sms.shader.goat.hdiv 0.50 - -;Mask pattern. -sms.shader.goat.pat goatron - -;Enable scanlines effect. -sms.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -sms.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -sms.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -sms.slend 239 - -;Last displayed scanline in PAL mode. -sms.slendp 239 - -;First displayed scanline in NTSC mode. -sms.slstart 0 - -;First displayed scanline in PAL mode. -sms.slstartp 0 - -;Enable specified special video scaler. -sms.special none - -;Stretch to fill screen. -sms.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -sms.tblur 0 - -;Accumulate color data rather than discarding it. -sms.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -sms.tblur.accum.amount 50 - -;System territory/region. -sms.territory export - -;Enable (bi)linear interpolation. -sms.videoip 0 - -;Full-screen horizontal resolution. -sms.xres 0 - -;Scaling factor for the X axis in windowed mode. -sms.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -sms.xscalefs 1.000000 - -;Full-screen vertical resolution. -sms.yres 0 - -;Scaling factor for the Y axis in windowed mode. -sms.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -sms.yscalefs 1.000000 - -;APU output resampler quality. -snes.apu.resamp_quality 5 - -;Correct the aspect ratio. -snes.correct_aspect 0 - -;Enable (automatic) usage of this module. -snes.enable 1 - -;Force monophonic sound output. -snes.forcemono 0 - -;Enable horizontal blend(blur) filter. -snes.h_blend 0 - -;Input device for Port 1/1A -snes.input.port1 gamepad - -;snes, Port 1/1A, Gamepad: A (right) -snes.input.port1.gamepad.a keyboard 0x0 94 - -;snes, Port 1/1A, Gamepad: B (center, lower) -snes.input.port1.gamepad.b keyboard 0x0 90 - -;snes, Port 1/1A, Gamepad: DOWN ↓ -snes.input.port1.gamepad.down keyboard 0x0 22 - -;snes, Port 1/1A, Gamepad: Left Shoulder -snes.input.port1.gamepad.l keyboard 0x0 95 - -;snes, Port 1/1A, Gamepad: LEFT ← -snes.input.port1.gamepad.left keyboard 0x0 4 - -;snes, Port 1/1A, Gamepad: Right Shoulder -snes.input.port1.gamepad.r keyboard 0x0 97 - -;snes, Port 1/1A, Gamepad: Rapid A (right) -snes.input.port1.gamepad.rapid_a - -;snes, Port 1/1A, Gamepad: Rapid B (center, lower) -snes.input.port1.gamepad.rapid_b - -;snes, Port 1/1A, Gamepad: Rapid X (center, upper) -snes.input.port1.gamepad.rapid_x - -;snes, Port 1/1A, Gamepad: Rapid Y (left) -snes.input.port1.gamepad.rapid_y - -;snes, Port 1/1A, Gamepad: RIGHT → -snes.input.port1.gamepad.right keyboard 0x0 7 - -;snes, Port 1/1A, Gamepad: SELECT -snes.input.port1.gamepad.select keyboard 0x0 43 - -;snes, Port 1/1A, Gamepad: START -snes.input.port1.gamepad.start keyboard 0x0 40 - -;snes, Port 1/1A, Gamepad: UP ↑ -snes.input.port1.gamepad.up keyboard 0x0 26 - -;snes, Port 1/1A, Gamepad: X (center, upper) -snes.input.port1.gamepad.x keyboard 0x0 96 - -;snes, Port 1/1A, Gamepad: Y (left) -snes.input.port1.gamepad.y keyboard 0x0 92 - -;snes, Port 1/1A, Mouse: Left Button -snes.input.port1.mouse.left mouse 0x0 button_left - -;snes, Port 1/1A, Mouse: Motion Down -snes.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;snes, Port 1/1A, Mouse: Motion Left -snes.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;snes, Port 1/1A, Mouse: Motion Right -snes.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;snes, Port 1/1A, Mouse: Motion Up -snes.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;snes, Port 1/1A, Mouse: Right Button -snes.input.port1.mouse.right mouse 0x0 button_right - -;Enable multitap on SNES port 1. -snes.input.port1.multitap 0 - -;Input device for Port 2/2A -snes.input.port2 gamepad - -;snes, Port 2/2A, Gamepad: A (right) -snes.input.port2.gamepad.a - -;snes, Port 2/2A, Gamepad: B (center, lower) -snes.input.port2.gamepad.b - -;snes, Port 2/2A, Gamepad: DOWN ↓ -snes.input.port2.gamepad.down - -;snes, Port 2/2A, Gamepad: Left Shoulder -snes.input.port2.gamepad.l - -;snes, Port 2/2A, Gamepad: LEFT ← -snes.input.port2.gamepad.left - -;snes, Port 2/2A, Gamepad: Right Shoulder -snes.input.port2.gamepad.r - -;snes, Port 2/2A, Gamepad: Rapid A (right) -snes.input.port2.gamepad.rapid_a - -;snes, Port 2/2A, Gamepad: Rapid B (center, lower) -snes.input.port2.gamepad.rapid_b - -;snes, Port 2/2A, Gamepad: Rapid X (center, upper) -snes.input.port2.gamepad.rapid_x - -;snes, Port 2/2A, Gamepad: Rapid Y (left) -snes.input.port2.gamepad.rapid_y - -;snes, Port 2/2A, Gamepad: RIGHT → -snes.input.port2.gamepad.right - -;snes, Port 2/2A, Gamepad: SELECT -snes.input.port2.gamepad.select - -;snes, Port 2/2A, Gamepad: START -snes.input.port2.gamepad.start - -;snes, Port 2/2A, Gamepad: UP ↑ -snes.input.port2.gamepad.up - -;snes, Port 2/2A, Gamepad: X (center, upper) -snes.input.port2.gamepad.x - -;snes, Port 2/2A, Gamepad: Y (left) -snes.input.port2.gamepad.y - -;snes, Port 2/2A, Mouse: Left Button -snes.input.port2.mouse.left mouse 0x0 button_left - -;snes, Port 2/2A, Mouse: Motion Down -snes.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;snes, Port 2/2A, Mouse: Motion Left -snes.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;snes, Port 2/2A, Mouse: Motion Right -snes.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;snes, Port 2/2A, Mouse: Motion Up -snes.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;snes, Port 2/2A, Mouse: Right Button -snes.input.port2.mouse.right mouse 0x0 button_right - -;Enable multitap on SNES port 2. -snes.input.port2.multitap 0 - -;snes, Port 2/2A, Super Scope: Cursor -snes.input.port2.superscope.cursor mouse 0x0 button_right - -;snes, Port 2/2A, Super Scope: Offscreen Shot(Simulated) -snes.input.port2.superscope.offscreen_shot keyboard 0x0 44 - -;snes, Port 2/2A, Super Scope: Pause -snes.input.port2.superscope.pause mouse 0x0 button_middle - -;snes, Port 2/2A, Super Scope: Trigger -snes.input.port2.superscope.trigger mouse 0x0 button_left - -;snes, Port 2/2A, Super Scope: Turbo -snes.input.port2.superscope.turbo keyboard 0x0 77 - -;snes, Port 2/2A, Super Scope: X Axis -snes.input.port2.superscope.x_axis mouse 0x0 cursor_x-+ - -;snes, Port 2/2A, Super Scope: Y Axis -snes.input.port2.superscope.y_axis mouse 0x0 cursor_y-+ - -;snes, Port 2B, Gamepad: A (right) -snes.input.port3.gamepad.a - -;snes, Port 2B, Gamepad: B (center, lower) -snes.input.port3.gamepad.b - -;snes, Port 2B, Gamepad: DOWN ↓ -snes.input.port3.gamepad.down - -;snes, Port 2B, Gamepad: Left Shoulder -snes.input.port3.gamepad.l - -;snes, Port 2B, Gamepad: LEFT ← -snes.input.port3.gamepad.left - -;snes, Port 2B, Gamepad: Right Shoulder -snes.input.port3.gamepad.r - -;snes, Port 2B, Gamepad: Rapid A (right) -snes.input.port3.gamepad.rapid_a - -;snes, Port 2B, Gamepad: Rapid B (center, lower) -snes.input.port3.gamepad.rapid_b - -;snes, Port 2B, Gamepad: Rapid X (center, upper) -snes.input.port3.gamepad.rapid_x - -;snes, Port 2B, Gamepad: Rapid Y (left) -snes.input.port3.gamepad.rapid_y - -;snes, Port 2B, Gamepad: RIGHT → -snes.input.port3.gamepad.right - -;snes, Port 2B, Gamepad: SELECT -snes.input.port3.gamepad.select - -;snes, Port 2B, Gamepad: START -snes.input.port3.gamepad.start - -;snes, Port 2B, Gamepad: UP ↑ -snes.input.port3.gamepad.up - -;snes, Port 2B, Gamepad: X (center, upper) -snes.input.port3.gamepad.x - -;snes, Port 2B, Gamepad: Y (left) -snes.input.port3.gamepad.y - -;snes, Port 2C, Gamepad: A (right) -snes.input.port4.gamepad.a - -;snes, Port 2C, Gamepad: B (center, lower) -snes.input.port4.gamepad.b - -;snes, Port 2C, Gamepad: DOWN ↓ -snes.input.port4.gamepad.down - -;snes, Port 2C, Gamepad: Left Shoulder -snes.input.port4.gamepad.l - -;snes, Port 2C, Gamepad: LEFT ← -snes.input.port4.gamepad.left - -;snes, Port 2C, Gamepad: Right Shoulder -snes.input.port4.gamepad.r - -;snes, Port 2C, Gamepad: Rapid A (right) -snes.input.port4.gamepad.rapid_a - -;snes, Port 2C, Gamepad: Rapid B (center, lower) -snes.input.port4.gamepad.rapid_b - -;snes, Port 2C, Gamepad: Rapid X (center, upper) -snes.input.port4.gamepad.rapid_x - -;snes, Port 2C, Gamepad: Rapid Y (left) -snes.input.port4.gamepad.rapid_y - -;snes, Port 2C, Gamepad: RIGHT → -snes.input.port4.gamepad.right - -;snes, Port 2C, Gamepad: SELECT -snes.input.port4.gamepad.select - -;snes, Port 2C, Gamepad: START -snes.input.port4.gamepad.start - -;snes, Port 2C, Gamepad: UP ↑ -snes.input.port4.gamepad.up - -;snes, Port 2C, Gamepad: X (center, upper) -snes.input.port4.gamepad.x - -;snes, Port 2C, Gamepad: Y (left) -snes.input.port4.gamepad.y - -;snes, Port 2D, Gamepad: A (right) -snes.input.port5.gamepad.a - -;snes, Port 2D, Gamepad: B (center, lower) -snes.input.port5.gamepad.b - -;snes, Port 2D, Gamepad: DOWN ↓ -snes.input.port5.gamepad.down - -;snes, Port 2D, Gamepad: Left Shoulder -snes.input.port5.gamepad.l - -;snes, Port 2D, Gamepad: LEFT ← -snes.input.port5.gamepad.left - -;snes, Port 2D, Gamepad: Right Shoulder -snes.input.port5.gamepad.r - -;snes, Port 2D, Gamepad: Rapid A (right) -snes.input.port5.gamepad.rapid_a - -;snes, Port 2D, Gamepad: Rapid B (center, lower) -snes.input.port5.gamepad.rapid_b - -;snes, Port 2D, Gamepad: Rapid X (center, upper) -snes.input.port5.gamepad.rapid_x - -;snes, Port 2D, Gamepad: Rapid Y (left) -snes.input.port5.gamepad.rapid_y - -;snes, Port 2D, Gamepad: RIGHT → -snes.input.port5.gamepad.right - -;snes, Port 2D, Gamepad: SELECT -snes.input.port5.gamepad.select - -;snes, Port 2D, Gamepad: START -snes.input.port5.gamepad.start - -;snes, Port 2D, Gamepad: UP ↑ -snes.input.port5.gamepad.up - -;snes, Port 2D, Gamepad: X (center, upper) -snes.input.port5.gamepad.x - -;snes, Port 2D, Gamepad: Y (left) -snes.input.port5.gamepad.y - -;snes, Port 1B, Gamepad: A (right) -snes.input.port6.gamepad.a - -;snes, Port 1B, Gamepad: B (center, lower) -snes.input.port6.gamepad.b - -;snes, Port 1B, Gamepad: DOWN ↓ -snes.input.port6.gamepad.down - -;snes, Port 1B, Gamepad: Left Shoulder -snes.input.port6.gamepad.l - -;snes, Port 1B, Gamepad: LEFT ← -snes.input.port6.gamepad.left - -;snes, Port 1B, Gamepad: Right Shoulder -snes.input.port6.gamepad.r - -;snes, Port 1B, Gamepad: Rapid A (right) -snes.input.port6.gamepad.rapid_a - -;snes, Port 1B, Gamepad: Rapid B (center, lower) -snes.input.port6.gamepad.rapid_b - -;snes, Port 1B, Gamepad: Rapid X (center, upper) -snes.input.port6.gamepad.rapid_x - -;snes, Port 1B, Gamepad: Rapid Y (left) -snes.input.port6.gamepad.rapid_y - -;snes, Port 1B, Gamepad: RIGHT → -snes.input.port6.gamepad.right - -;snes, Port 1B, Gamepad: SELECT -snes.input.port6.gamepad.select - -;snes, Port 1B, Gamepad: START -snes.input.port6.gamepad.start - -;snes, Port 1B, Gamepad: UP ↑ -snes.input.port6.gamepad.up - -;snes, Port 1B, Gamepad: X (center, upper) -snes.input.port6.gamepad.x - -;snes, Port 1B, Gamepad: Y (left) -snes.input.port6.gamepad.y - -;snes, Port 1C, Gamepad: A (right) -snes.input.port7.gamepad.a - -;snes, Port 1C, Gamepad: B (center, lower) -snes.input.port7.gamepad.b - -;snes, Port 1C, Gamepad: DOWN ↓ -snes.input.port7.gamepad.down - -;snes, Port 1C, Gamepad: Left Shoulder -snes.input.port7.gamepad.l - -;snes, Port 1C, Gamepad: LEFT ← -snes.input.port7.gamepad.left - -;snes, Port 1C, Gamepad: Right Shoulder -snes.input.port7.gamepad.r - -;snes, Port 1C, Gamepad: Rapid A (right) -snes.input.port7.gamepad.rapid_a - -;snes, Port 1C, Gamepad: Rapid B (center, lower) -snes.input.port7.gamepad.rapid_b - -;snes, Port 1C, Gamepad: Rapid X (center, upper) -snes.input.port7.gamepad.rapid_x - -;snes, Port 1C, Gamepad: Rapid Y (left) -snes.input.port7.gamepad.rapid_y - -;snes, Port 1C, Gamepad: RIGHT → -snes.input.port7.gamepad.right - -;snes, Port 1C, Gamepad: SELECT -snes.input.port7.gamepad.select - -;snes, Port 1C, Gamepad: START -snes.input.port7.gamepad.start - -;snes, Port 1C, Gamepad: UP ↑ -snes.input.port7.gamepad.up - -;snes, Port 1C, Gamepad: X (center, upper) -snes.input.port7.gamepad.x - -;snes, Port 1C, Gamepad: Y (left) -snes.input.port7.gamepad.y - -;snes, Port 1D, Gamepad: A (right) -snes.input.port8.gamepad.a - -;snes, Port 1D, Gamepad: B (center, lower) -snes.input.port8.gamepad.b - -;snes, Port 1D, Gamepad: DOWN ↓ -snes.input.port8.gamepad.down - -;snes, Port 1D, Gamepad: Left Shoulder -snes.input.port8.gamepad.l - -;snes, Port 1D, Gamepad: LEFT ← -snes.input.port8.gamepad.left - -;snes, Port 1D, Gamepad: Right Shoulder -snes.input.port8.gamepad.r - -;snes, Port 1D, Gamepad: Rapid A (right) -snes.input.port8.gamepad.rapid_a - -;snes, Port 1D, Gamepad: Rapid B (center, lower) -snes.input.port8.gamepad.rapid_b - -;snes, Port 1D, Gamepad: Rapid X (center, upper) -snes.input.port8.gamepad.rapid_x - -;snes, Port 1D, Gamepad: Rapid Y (left) -snes.input.port8.gamepad.rapid_y - -;snes, Port 1D, Gamepad: RIGHT → -snes.input.port8.gamepad.right - -;snes, Port 1D, Gamepad: SELECT -snes.input.port8.gamepad.select - -;snes, Port 1D, Gamepad: START -snes.input.port8.gamepad.start - -;snes, Port 1D, Gamepad: UP ↑ -snes.input.port8.gamepad.up - -;snes, Port 1D, Gamepad: X (center, upper) -snes.input.port8.gamepad.x - -;snes, Port 1D, Gamepad: Y (left) -snes.input.port8.gamepad.y - -;Emulated mouse sensitivity. -snes.mouse_sensitivity 0.50 - -;Enable scanlines with specified opacity. -snes.scanlines 0 - -;Enable specified OpenGL shader. -snes.shader none - -;Force interlaced video to be treated as progressive. -snes.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -snes.shader.goat.hdiv 0.50 - -;Mask pattern. -snes.shader.goat.pat goatron - -;Enable scanlines effect. -snes.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -snes.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -snes.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -snes.special none - -;Stretch to fill screen. -snes.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -snes.tblur 0 - -;Accumulate color data rather than discarding it. -snes.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -snes.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -snes.videoip 0 - -;Full-screen horizontal resolution. -snes.xres 0 - -;Scaling factor for the X axis in windowed mode. -snes.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -snes.xscalefs 1.000000 - -;Full-screen vertical resolution. -snes.yres 0 - -;Scaling factor for the Y axis in windowed mode. -snes.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -snes.yscalefs 1.000000 - -;MSU1 audio read thread CPU affinity mask. -snes_faust.affinity.msu1.audio 0 - -;MSU1 data read thread CPU affinity mask. -snes_faust.affinity.msu1.data 0 - -;PPU rendering thread CPU affinity mask. -snes_faust.affinity.ppu 0 - -;Correct aspect ratio. -snes_faust.correct_aspect 1 - -;CX4 clock rate, specified in percentage of normal. -snes_faust.cx4.clock_rate 100 - -;Enable (automatic) usage of this module. -snes_faust.enable 1 - -;Force monophonic sound output. -snes_faust.forcemono 0 - -;Horizontal blending/doubling filter. -snes_faust.h_filter none - -;Emulated mouse sensitivity. -snes_faust.input.mouse_sensitivity 0.50 - -;Input device for Virtual Port 1 -snes_faust.input.port1 gamepad - -;snes_faust, Virtual Port 1, Gamepad: A (right) -snes_faust.input.port1.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;snes_faust, Virtual Port 1, Gamepad: B (center, lower) -snes_faust.input.port1.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;snes_faust, Virtual Port 1, Gamepad: DOWN ↓ -snes_faust.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;snes_faust, Virtual Port 1, Gamepad: Left Shoulder -snes_faust.input.port1.gamepad.l joystick 0x0003045e028e01010008000b00000000 button_4 - -;snes_faust, Virtual Port 1, Gamepad: LEFT ← -snes_faust.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;snes_faust, Virtual Port 1, Gamepad: Right Shoulder -snes_faust.input.port1.gamepad.r joystick 0x0003045e028e01010008000b00000000 button_5 - -;snes_faust, Virtual Port 1, Gamepad: Rapid A (right) -snes_faust.input.port1.gamepad.rapid_a keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: Rapid B (center, lower) -snes_faust.input.port1.gamepad.rapid_b keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: Rapid X (center, upper) -snes_faust.input.port1.gamepad.rapid_x keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: Rapid Y (left) -snes_faust.input.port1.gamepad.rapid_y keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: RIGHT → -snes_faust.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;snes_faust, Virtual Port 1, Gamepad: SELECT -snes_faust.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;snes_faust, Virtual Port 1, Gamepad: START -snes_faust.input.port1.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;snes_faust, Virtual Port 1, Gamepad: UP ↑ -snes_faust.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;snes_faust, Virtual Port 1, Gamepad: X (center, upper) -snes_faust.input.port1.gamepad.x joystick 0x0003045e028e01010008000b00000000 button_3 - -;snes_faust, Virtual Port 1, Gamepad: Y (left) -snes_faust.input.port1.gamepad.y joystick 0x0003045e028e01010008000b00000000 button_2 - -;snes_faust, Virtual Port 1, Mouse: Left Button -snes_faust.input.port1.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 1, Mouse: Motion Down -snes_faust.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 1, Mouse: Motion Left -snes_faust.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 1, Mouse: Motion Right -snes_faust.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 1, Mouse: Motion Up -snes_faust.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 1, Mouse: Right Button -snes_faust.input.port1.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 2 -snes_faust.input.port2 gamepad - -;snes_faust, Virtual Port 2, Gamepad: A (right) -snes_faust.input.port2.gamepad.a - -;snes_faust, Virtual Port 2, Gamepad: B (center, lower) -snes_faust.input.port2.gamepad.b - -;snes_faust, Virtual Port 2, Gamepad: DOWN ↓ -snes_faust.input.port2.gamepad.down - -;snes_faust, Virtual Port 2, Gamepad: Left Shoulder -snes_faust.input.port2.gamepad.l - -;snes_faust, Virtual Port 2, Gamepad: LEFT ← -snes_faust.input.port2.gamepad.left - -;snes_faust, Virtual Port 2, Gamepad: Right Shoulder -snes_faust.input.port2.gamepad.r - -;snes_faust, Virtual Port 2, Gamepad: Rapid A (right) -snes_faust.input.port2.gamepad.rapid_a - -;snes_faust, Virtual Port 2, Gamepad: Rapid B (center, lower) -snes_faust.input.port2.gamepad.rapid_b - -;snes_faust, Virtual Port 2, Gamepad: Rapid X (center, upper) -snes_faust.input.port2.gamepad.rapid_x - -;snes_faust, Virtual Port 2, Gamepad: Rapid Y (left) -snes_faust.input.port2.gamepad.rapid_y - -;snes_faust, Virtual Port 2, Gamepad: RIGHT → -snes_faust.input.port2.gamepad.right - -;snes_faust, Virtual Port 2, Gamepad: SELECT -snes_faust.input.port2.gamepad.select - -;snes_faust, Virtual Port 2, Gamepad: START -snes_faust.input.port2.gamepad.start - -;snes_faust, Virtual Port 2, Gamepad: UP ↑ -snes_faust.input.port2.gamepad.up - -;snes_faust, Virtual Port 2, Gamepad: X (center, upper) -snes_faust.input.port2.gamepad.x - -;snes_faust, Virtual Port 2, Gamepad: Y (left) -snes_faust.input.port2.gamepad.y - -;snes_faust, Virtual Port 2, Mouse: Left Button -snes_faust.input.port2.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 2, Mouse: Motion Down -snes_faust.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 2, Mouse: Motion Left -snes_faust.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 2, Mouse: Motion Right -snes_faust.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 2, Mouse: Motion Up -snes_faust.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 2, Mouse: Right Button -snes_faust.input.port2.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 3 -snes_faust.input.port3 gamepad - -;snes_faust, Virtual Port 3, Gamepad: A (right) -snes_faust.input.port3.gamepad.a - -;snes_faust, Virtual Port 3, Gamepad: B (center, lower) -snes_faust.input.port3.gamepad.b - -;snes_faust, Virtual Port 3, Gamepad: DOWN ↓ -snes_faust.input.port3.gamepad.down - -;snes_faust, Virtual Port 3, Gamepad: Left Shoulder -snes_faust.input.port3.gamepad.l - -;snes_faust, Virtual Port 3, Gamepad: LEFT ← -snes_faust.input.port3.gamepad.left - -;snes_faust, Virtual Port 3, Gamepad: Right Shoulder -snes_faust.input.port3.gamepad.r - -;snes_faust, Virtual Port 3, Gamepad: Rapid A (right) -snes_faust.input.port3.gamepad.rapid_a - -;snes_faust, Virtual Port 3, Gamepad: Rapid B (center, lower) -snes_faust.input.port3.gamepad.rapid_b - -;snes_faust, Virtual Port 3, Gamepad: Rapid X (center, upper) -snes_faust.input.port3.gamepad.rapid_x - -;snes_faust, Virtual Port 3, Gamepad: Rapid Y (left) -snes_faust.input.port3.gamepad.rapid_y - -;snes_faust, Virtual Port 3, Gamepad: RIGHT → -snes_faust.input.port3.gamepad.right - -;snes_faust, Virtual Port 3, Gamepad: SELECT -snes_faust.input.port3.gamepad.select - -;snes_faust, Virtual Port 3, Gamepad: START -snes_faust.input.port3.gamepad.start - -;snes_faust, Virtual Port 3, Gamepad: UP ↑ -snes_faust.input.port3.gamepad.up - -;snes_faust, Virtual Port 3, Gamepad: X (center, upper) -snes_faust.input.port3.gamepad.x - -;snes_faust, Virtual Port 3, Gamepad: Y (left) -snes_faust.input.port3.gamepad.y - -;snes_faust, Virtual Port 3, Mouse: Left Button -snes_faust.input.port3.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 3, Mouse: Motion Down -snes_faust.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 3, Mouse: Motion Left -snes_faust.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 3, Mouse: Motion Right -snes_faust.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 3, Mouse: Motion Up -snes_faust.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 3, Mouse: Right Button -snes_faust.input.port3.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 4 -snes_faust.input.port4 gamepad - -;snes_faust, Virtual Port 4, Gamepad: A (right) -snes_faust.input.port4.gamepad.a - -;snes_faust, Virtual Port 4, Gamepad: B (center, lower) -snes_faust.input.port4.gamepad.b - -;snes_faust, Virtual Port 4, Gamepad: DOWN ↓ -snes_faust.input.port4.gamepad.down - -;snes_faust, Virtual Port 4, Gamepad: Left Shoulder -snes_faust.input.port4.gamepad.l - -;snes_faust, Virtual Port 4, Gamepad: LEFT ← -snes_faust.input.port4.gamepad.left - -;snes_faust, Virtual Port 4, Gamepad: Right Shoulder -snes_faust.input.port4.gamepad.r - -;snes_faust, Virtual Port 4, Gamepad: Rapid A (right) -snes_faust.input.port4.gamepad.rapid_a - -;snes_faust, Virtual Port 4, Gamepad: Rapid B (center, lower) -snes_faust.input.port4.gamepad.rapid_b - -;snes_faust, Virtual Port 4, Gamepad: Rapid X (center, upper) -snes_faust.input.port4.gamepad.rapid_x - -;snes_faust, Virtual Port 4, Gamepad: Rapid Y (left) -snes_faust.input.port4.gamepad.rapid_y - -;snes_faust, Virtual Port 4, Gamepad: RIGHT → -snes_faust.input.port4.gamepad.right - -;snes_faust, Virtual Port 4, Gamepad: SELECT -snes_faust.input.port4.gamepad.select - -;snes_faust, Virtual Port 4, Gamepad: START -snes_faust.input.port4.gamepad.start - -;snes_faust, Virtual Port 4, Gamepad: UP ↑ -snes_faust.input.port4.gamepad.up - -;snes_faust, Virtual Port 4, Gamepad: X (center, upper) -snes_faust.input.port4.gamepad.x - -;snes_faust, Virtual Port 4, Gamepad: Y (left) -snes_faust.input.port4.gamepad.y - -;snes_faust, Virtual Port 4, Mouse: Left Button -snes_faust.input.port4.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 4, Mouse: Motion Down -snes_faust.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 4, Mouse: Motion Left -snes_faust.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 4, Mouse: Motion Right -snes_faust.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 4, Mouse: Motion Up -snes_faust.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 4, Mouse: Right Button -snes_faust.input.port4.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 5 -snes_faust.input.port5 gamepad - -;snes_faust, Virtual Port 5, Gamepad: A (right) -snes_faust.input.port5.gamepad.a - -;snes_faust, Virtual Port 5, Gamepad: B (center, lower) -snes_faust.input.port5.gamepad.b - -;snes_faust, Virtual Port 5, Gamepad: DOWN ↓ -snes_faust.input.port5.gamepad.down - -;snes_faust, Virtual Port 5, Gamepad: Left Shoulder -snes_faust.input.port5.gamepad.l - -;snes_faust, Virtual Port 5, Gamepad: LEFT ← -snes_faust.input.port5.gamepad.left - -;snes_faust, Virtual Port 5, Gamepad: Right Shoulder -snes_faust.input.port5.gamepad.r - -;snes_faust, Virtual Port 5, Gamepad: Rapid A (right) -snes_faust.input.port5.gamepad.rapid_a - -;snes_faust, Virtual Port 5, Gamepad: Rapid B (center, lower) -snes_faust.input.port5.gamepad.rapid_b - -;snes_faust, Virtual Port 5, Gamepad: Rapid X (center, upper) -snes_faust.input.port5.gamepad.rapid_x - -;snes_faust, Virtual Port 5, Gamepad: Rapid Y (left) -snes_faust.input.port5.gamepad.rapid_y - -;snes_faust, Virtual Port 5, Gamepad: RIGHT → -snes_faust.input.port5.gamepad.right - -;snes_faust, Virtual Port 5, Gamepad: SELECT -snes_faust.input.port5.gamepad.select - -;snes_faust, Virtual Port 5, Gamepad: START -snes_faust.input.port5.gamepad.start - -;snes_faust, Virtual Port 5, Gamepad: UP ↑ -snes_faust.input.port5.gamepad.up - -;snes_faust, Virtual Port 5, Gamepad: X (center, upper) -snes_faust.input.port5.gamepad.x - -;snes_faust, Virtual Port 5, Gamepad: Y (left) -snes_faust.input.port5.gamepad.y - -;snes_faust, Virtual Port 5, Mouse: Left Button -snes_faust.input.port5.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 5, Mouse: Motion Down -snes_faust.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 5, Mouse: Motion Left -snes_faust.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 5, Mouse: Motion Right -snes_faust.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 5, Mouse: Motion Up -snes_faust.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 5, Mouse: Right Button -snes_faust.input.port5.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 6 -snes_faust.input.port6 gamepad - -;snes_faust, Virtual Port 6, Gamepad: A (right) -snes_faust.input.port6.gamepad.a - -;snes_faust, Virtual Port 6, Gamepad: B (center, lower) -snes_faust.input.port6.gamepad.b - -;snes_faust, Virtual Port 6, Gamepad: DOWN ↓ -snes_faust.input.port6.gamepad.down - -;snes_faust, Virtual Port 6, Gamepad: Left Shoulder -snes_faust.input.port6.gamepad.l - -;snes_faust, Virtual Port 6, Gamepad: LEFT ← -snes_faust.input.port6.gamepad.left - -;snes_faust, Virtual Port 6, Gamepad: Right Shoulder -snes_faust.input.port6.gamepad.r - -;snes_faust, Virtual Port 6, Gamepad: Rapid A (right) -snes_faust.input.port6.gamepad.rapid_a - -;snes_faust, Virtual Port 6, Gamepad: Rapid B (center, lower) -snes_faust.input.port6.gamepad.rapid_b - -;snes_faust, Virtual Port 6, Gamepad: Rapid X (center, upper) -snes_faust.input.port6.gamepad.rapid_x - -;snes_faust, Virtual Port 6, Gamepad: Rapid Y (left) -snes_faust.input.port6.gamepad.rapid_y - -;snes_faust, Virtual Port 6, Gamepad: RIGHT → -snes_faust.input.port6.gamepad.right - -;snes_faust, Virtual Port 6, Gamepad: SELECT -snes_faust.input.port6.gamepad.select - -;snes_faust, Virtual Port 6, Gamepad: START -snes_faust.input.port6.gamepad.start - -;snes_faust, Virtual Port 6, Gamepad: UP ↑ -snes_faust.input.port6.gamepad.up - -;snes_faust, Virtual Port 6, Gamepad: X (center, upper) -snes_faust.input.port6.gamepad.x - -;snes_faust, Virtual Port 6, Gamepad: Y (left) -snes_faust.input.port6.gamepad.y - -;snes_faust, Virtual Port 6, Mouse: Left Button -snes_faust.input.port6.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 6, Mouse: Motion Down -snes_faust.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 6, Mouse: Motion Left -snes_faust.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 6, Mouse: Motion Right -snes_faust.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 6, Mouse: Motion Up -snes_faust.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 6, Mouse: Right Button -snes_faust.input.port6.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 7 -snes_faust.input.port7 gamepad - -;snes_faust, Virtual Port 7, Gamepad: A (right) -snes_faust.input.port7.gamepad.a - -;snes_faust, Virtual Port 7, Gamepad: B (center, lower) -snes_faust.input.port7.gamepad.b - -;snes_faust, Virtual Port 7, Gamepad: DOWN ↓ -snes_faust.input.port7.gamepad.down - -;snes_faust, Virtual Port 7, Gamepad: Left Shoulder -snes_faust.input.port7.gamepad.l - -;snes_faust, Virtual Port 7, Gamepad: LEFT ← -snes_faust.input.port7.gamepad.left - -;snes_faust, Virtual Port 7, Gamepad: Right Shoulder -snes_faust.input.port7.gamepad.r - -;snes_faust, Virtual Port 7, Gamepad: Rapid A (right) -snes_faust.input.port7.gamepad.rapid_a - -;snes_faust, Virtual Port 7, Gamepad: Rapid B (center, lower) -snes_faust.input.port7.gamepad.rapid_b - -;snes_faust, Virtual Port 7, Gamepad: Rapid X (center, upper) -snes_faust.input.port7.gamepad.rapid_x - -;snes_faust, Virtual Port 7, Gamepad: Rapid Y (left) -snes_faust.input.port7.gamepad.rapid_y - -;snes_faust, Virtual Port 7, Gamepad: RIGHT → -snes_faust.input.port7.gamepad.right - -;snes_faust, Virtual Port 7, Gamepad: SELECT -snes_faust.input.port7.gamepad.select - -;snes_faust, Virtual Port 7, Gamepad: START -snes_faust.input.port7.gamepad.start - -;snes_faust, Virtual Port 7, Gamepad: UP ↑ -snes_faust.input.port7.gamepad.up - -;snes_faust, Virtual Port 7, Gamepad: X (center, upper) -snes_faust.input.port7.gamepad.x - -;snes_faust, Virtual Port 7, Gamepad: Y (left) -snes_faust.input.port7.gamepad.y - -;snes_faust, Virtual Port 7, Mouse: Left Button -snes_faust.input.port7.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 7, Mouse: Motion Down -snes_faust.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 7, Mouse: Motion Left -snes_faust.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 7, Mouse: Motion Right -snes_faust.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 7, Mouse: Motion Up -snes_faust.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 7, Mouse: Right Button -snes_faust.input.port7.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 8 -snes_faust.input.port8 gamepad - -;snes_faust, Virtual Port 8, Gamepad: A (right) -snes_faust.input.port8.gamepad.a - -;snes_faust, Virtual Port 8, Gamepad: B (center, lower) -snes_faust.input.port8.gamepad.b - -;snes_faust, Virtual Port 8, Gamepad: DOWN ↓ -snes_faust.input.port8.gamepad.down - -;snes_faust, Virtual Port 8, Gamepad: Left Shoulder -snes_faust.input.port8.gamepad.l - -;snes_faust, Virtual Port 8, Gamepad: LEFT ← -snes_faust.input.port8.gamepad.left - -;snes_faust, Virtual Port 8, Gamepad: Right Shoulder -snes_faust.input.port8.gamepad.r - -;snes_faust, Virtual Port 8, Gamepad: Rapid A (right) -snes_faust.input.port8.gamepad.rapid_a - -;snes_faust, Virtual Port 8, Gamepad: Rapid B (center, lower) -snes_faust.input.port8.gamepad.rapid_b - -;snes_faust, Virtual Port 8, Gamepad: Rapid X (center, upper) -snes_faust.input.port8.gamepad.rapid_x - -;snes_faust, Virtual Port 8, Gamepad: Rapid Y (left) -snes_faust.input.port8.gamepad.rapid_y - -;snes_faust, Virtual Port 8, Gamepad: RIGHT → -snes_faust.input.port8.gamepad.right - -;snes_faust, Virtual Port 8, Gamepad: SELECT -snes_faust.input.port8.gamepad.select - -;snes_faust, Virtual Port 8, Gamepad: START -snes_faust.input.port8.gamepad.start - -;snes_faust, Virtual Port 8, Gamepad: UP ↑ -snes_faust.input.port8.gamepad.up - -;snes_faust, Virtual Port 8, Gamepad: X (center, upper) -snes_faust.input.port8.gamepad.x - -;snes_faust, Virtual Port 8, Gamepad: Y (left) -snes_faust.input.port8.gamepad.y - -;snes_faust, Virtual Port 8, Mouse: Left Button -snes_faust.input.port8.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 8, Mouse: Motion Down -snes_faust.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 8, Mouse: Motion Left -snes_faust.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 8, Mouse: Motion Right -snes_faust.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 8, Mouse: Motion Up -snes_faust.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 8, Mouse: Right Button -snes_faust.input.port8.mouse.right mouse 0x0 button_right - -;Enable multitap on SNES port 1. -snes_faust.input.sport1.multitap 0 - -;Enable multitap on SNES port 2. -snes_faust.input.sport2.multitap 0 - -;MSU1 sound quality. -snes_faust.msu1.resamp_quality 4 - -;Region of SNES to emulate. -snes_faust.region auto - -;PPU renderer. -snes_faust.renderer st - -;Sound quality. -snes_faust.resamp_quality 3 - -;Sound output rate tolerance. -snes_faust.resamp_rate_error 0.000035 - -;Enable scanlines with specified opacity. -snes_faust.scanlines 0 - -;Enable specified OpenGL shader. -snes_faust.shader sabr - -;Force interlaced video to be treated as progressive. -snes_faust.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -snes_faust.shader.goat.hdiv 0.50 - -;Mask pattern. -snes_faust.shader.goat.pat goatron - -;Enable scanlines effect. -snes_faust.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -snes_faust.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -snes_faust.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -snes_faust.slend 223 - -;Last displayed scanline in PAL mode. -snes_faust.slendp 238 - -;First displayed scanline in NTSC mode. -snes_faust.slstart 0 - -;First displayed scanline in PAL mode. -snes_faust.slstartp 0 - -;Enable specified special video scaler. -snes_faust.special none - -;Enable 1-frame speculative execution for video output. -snes_faust.spex 0 - -;Enable speculative execution for sound output too. -snes_faust.spex.sound 1 - -;Stretch to fill screen. -snes_faust.stretch aspect - -;Super FX clock rate, specified in percentage of normal. -snes_faust.superfx.clock_rate 100 - -;Enable SuperFX instruction cache emulation. -snes_faust.superfx.icache 0 - -;Enable video temporal blur(50/50 previous/current frame by default). -snes_faust.tblur 0 - -;Accumulate color data rather than discarding it. -snes_faust.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -snes_faust.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -snes_faust.videoip 1 - -;Full-screen horizontal resolution. -snes_faust.xres 0 - -;Scaling factor for the X axis in windowed mode. -snes_faust.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -snes_faust.xscalefs 1.000000 - -;Full-screen vertical resolution. -snes_faust.yres 0 - -;Scaling factor for the Y axis in windowed mode. -snes_faust.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -snes_faust.yscalefs 1.000000 - -;Enable sound output. -sound 1 - -;Desired buffer size in milliseconds(ms). -sound.buffer_time 0 - -;Select sound output device. -sound.device sexyal-literal-default - -;Select sound driver. -sound.driver default - -;Desired period size in microseconds(μs). -sound.period_time 0 - -;Specifies the sound playback rate, in sound frames per second("Hz"). -sound.rate 48000 - -;Sound volume level, in percent. -sound.volume 100 - -;DO NOT USE UNLESS YOU'RE A SPACE GOAT -srwautoenable 0 - -;Number of frames to keep states for when state rewinding is enabled. -srwframes 600 - -;VDP2 rendering thread CPU affinity mask. -ss.affinity.vdp2 0 - -;Path to the Japan ROM BIOS -ss.bios_jp /storage/roms/bios/sega_101.bin - -;Path to the North America and Europe ROM BIOS -ss.bios_na_eu /storage/roms/bios/mpr-17933.bin - -;Enable BIOS ROM image sanity checks. -ss.bios_sanity 1 - -;Path to the Europe ST-V ROM BIOS -ss.bios_stv_eu /storage/roms/bios/epr-17954a.ic8 - -;Path to the Japan ST-V ROM BIOS -ss.bios_stv_jp /storage/roms/bios/epr-20091.ic8 - -;Path to the North America ST-V ROM BIOS -ss.bios_stv_na /storage/roms/bios/epr-17952a.ic8 - -;Expansion cart. -ss.cart none - -;Default expansion cart when autodetection fails. -ss.cart.auto_default backup - -;Path to KoF 95 ROM image. -ss.cart.kof95_path /storage/roms/bios/mpr-18811-mx.ic1 - -;Path to Ultraman ROM image. -ss.cart.ultraman_path /storage/roms/bios/mpr-19367-mx.ic1 - -;Enable CD (image) sanity checks. -ss.cd_sanity 1 - -;Correct aspect ratio. -ss.correct_aspect 1 - -;CD image to use with bootable cart ROM image loading. -ss.dbg_exe_cdpath - -;Disassembly font size. -ss.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -ss.debugger.memcharenc SJIS - -;Enable (automatic) usage of this module. -ss.enable 1 - -;Force monophonic sound output. -ss.forcemono 0 - -;Enable horizontal blend(blur) filter. -ss.h_blend 0 - -;Show horizontal overscan area. -ss.h_overscan 1 - -;ss, Builtin, builtin: SMPC Reset -ss.input.builtin.builtin.smpc_reset - -;ss, Builtin, builtin: ST-V Pause -ss.input.builtin.builtin.stv_pause keyboard 0x0 86 && keyboard 0x0 88 - -;ss, Builtin, builtin: ST-V Service -ss.input.builtin.builtin.stv_service keyboard 0x0 86 && keyboard 0x0 87 - -;ss, Builtin, builtin: ST-V Test -ss.input.builtin.builtin.stv_test keyboard 0x0 86 && keyboard 0x0 84 - -;Emulated mouse sensitivity. -ss.input.mouse_sensitivity 0.50 - -;Input device for Virtual Port 1 -ss.input.port1 gamepad - -;ss, Virtual Port 1, 3D Control Pad: A -ss.input.port1.3dpad.a joystick 0x0003045e028e01010008000b00000000 button_0 - -;ss, Virtual Port 1, 3D Control Pad: Analog DOWN ↓ -ss.input.port1.3dpad.analog_down joystick 0x0003045e028e01010008000b00000000 abs_1+ - -;ss, Virtual Port 1, 3D Control Pad: Analog LEFT ← -ss.input.port1.3dpad.analog_left joystick 0x0003045e028e01010008000b00000000 abs_0- - -;ss, Virtual Port 1, 3D Control Pad: Analog RIGHT → -ss.input.port1.3dpad.analog_right joystick 0x0003045e028e01010008000b00000000 abs_0+ - -;ss, Virtual Port 1, 3D Control Pad: Analog UP ↑ -ss.input.port1.3dpad.analog_up joystick 0x0003045e028e01010008000b00000000 abs_1- - -;ss, Virtual Port 1, 3D Control Pad: B -ss.input.port1.3dpad.b joystick 0x0003045e028e01010008000b00000000 button_1 - -;ss, Virtual Port 1, 3D Control Pad: C -ss.input.port1.3dpad.c joystick 0x0003045e028e01010008000b00000000 button_5 - -;ss, Virtual Port 1, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port1.3dpad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;ss, Virtual Port 1, 3D Control Pad: D-Pad LEFT ← -ss.input.port1.3dpad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;ss, Virtual Port 1, 3D Control Pad: Left Shoulder (Analog) -ss.input.port1.3dpad.ls keyboard 0x0 39 || joystick 0x0003045e028e01010008000b00000000 abs_2+ || joystick 0x0003045e028e01010008000b00000000 abs_2- - -;ss, Virtual Port 1, 3D Control Pad: Mode -ss.input.port1.3dpad.mode joystick 0x0003045e028e01010008000b00000000 button_8 - -;Default position for switch "Mode". -ss.input.port1.3dpad.mode.defpos analog - -;ss, Virtual Port 1, 3D Control Pad: D-Pad RIGHT → -ss.input.port1.3dpad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;ss, Virtual Port 1, 3D Control Pad: Right Shoulder (Analog) -ss.input.port1.3dpad.rs joystick 0x0003045e028e01010008000b00000000 abs_5+ || joystick 0x0003045e028e01010008000b00000000 abs_5- - -;ss, Virtual Port 1, 3D Control Pad: START -ss.input.port1.3dpad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;ss, Virtual Port 1, 3D Control Pad: D-Pad UP ↑ -ss.input.port1.3dpad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;ss, Virtual Port 1, 3D Control Pad: X -ss.input.port1.3dpad.x joystick 0x0003045e028e01010008000b00000000 button_2 - -;ss, Virtual Port 1, 3D Control Pad: Y -ss.input.port1.3dpad.y joystick 0x0003045e028e01010008000b00000000 button_3 - -;ss, Virtual Port 1, 3D Control Pad: Z -ss.input.port1.3dpad.z joystick 0x0003045e028e01010008000b00000000 button_4 - -;ss, Virtual Port 1, Dual Mission: A (R Stick Trigger) -ss.input.port1.dmission.a - -;ss, Virtual Port 1, Dual Mission: A AF -ss.input.port1.dmission.afa - -;Default position for switch "A AF". -ss.input.port1.dmission.afa.defpos off - -;ss, Virtual Port 1, Dual Mission: B AF -ss.input.port1.dmission.afb - -;Default position for switch "B AF". -ss.input.port1.dmission.afb.defpos off - -;ss, Virtual Port 1, Dual Mission: C AF -ss.input.port1.dmission.afc - -;Default position for switch "C AF". -ss.input.port1.dmission.afc.defpos off - -;ss, Virtual Port 1, Dual Mission: L AF -ss.input.port1.dmission.afl - -;Default position for switch "L AF". -ss.input.port1.dmission.afl.defpos off - -;ss, Virtual Port 1, Dual Mission: R AF -ss.input.port1.dmission.afr - -;Default position for switch "R AF". -ss.input.port1.dmission.afr.defpos off - -;ss, Virtual Port 1, Dual Mission: Autofire Speed -ss.input.port1.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port1.dmission.afspeed.defpos 1 - -;ss, Virtual Port 1, Dual Mission: X AF -ss.input.port1.dmission.afx - -;Default position for switch "X AF". -ss.input.port1.dmission.afx.defpos off - -;ss, Virtual Port 1, Dual Mission: Y AF -ss.input.port1.dmission.afy - -;Default position for switch "Y AF". -ss.input.port1.dmission.afy.defpos off - -;ss, Virtual Port 1, Dual Mission: Z AF -ss.input.port1.dmission.afz - -;Default position for switch "Z AF". -ss.input.port1.dmission.afz.defpos off - -;ss, Virtual Port 1, Dual Mission: B (R Stick Left Button) -ss.input.port1.dmission.b - -;ss, Virtual Port 1, Dual Mission: C (R Stick Right Button) -ss.input.port1.dmission.c - -;ss, Virtual Port 1, Dual Mission: L -ss.input.port1.dmission.l - -;ss, Virtual Port 1, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port1.dmission.lstick_back - -;ss, Virtual Port 1, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port1.dmission.lstick_fore - -;ss, Virtual Port 1, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port1.dmission.lstick_left - -;ss, Virtual Port 1, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port1.dmission.lstick_right - -;ss, Virtual Port 1, Dual Mission: L Throttle Down (Analog) -ss.input.port1.dmission.lthrottle_down - -;ss, Virtual Port 1, Dual Mission: L Throttle Up (Analog) -ss.input.port1.dmission.lthrottle_up - -;ss, Virtual Port 1, Dual Mission: R -ss.input.port1.dmission.r - -;ss, Virtual Port 1, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port1.dmission.rstick_back - -;ss, Virtual Port 1, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port1.dmission.rstick_fore - -;ss, Virtual Port 1, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port1.dmission.rstick_left - -;ss, Virtual Port 1, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port1.dmission.rstick_right - -;ss, Virtual Port 1, Dual Mission: R Throttle Down (Analog) -ss.input.port1.dmission.rthrottle_down - -;ss, Virtual Port 1, Dual Mission: R Throttle Up (Analog) -ss.input.port1.dmission.rthrottle_up - -;ss, Virtual Port 1, Dual Mission: START -ss.input.port1.dmission.start - -;ss, Virtual Port 1, Dual Mission: X (L Stick Trigger) -ss.input.port1.dmission.x - -;ss, Virtual Port 1, Dual Mission: Y (L Stick Left Button) -ss.input.port1.dmission.y - -;ss, Virtual Port 1, Dual Mission: Z (L Stick Right Button) -ss.input.port1.dmission.z - -;ss, Virtual Port 1, Digital Gamepad: A -ss.input.port1.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;ss, Virtual Port 1, Digital Gamepad: B -ss.input.port1.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;ss, Virtual Port 1, Digital Gamepad: C -ss.input.port1.gamepad.c joystick 0x0003045e028e01010008000b00000000 button_2 - -;ss, Virtual Port 1, Digital Gamepad: DOWN ↓ -ss.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;ss, Virtual Port 1, Digital Gamepad: LEFT ← -ss.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;ss, Virtual Port 1, Digital Gamepad: Left Shoulder -ss.input.port1.gamepad.ls keyboard 0x0 9 - -;ss, Virtual Port 1, Digital Gamepad: RIGHT → -ss.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;ss, Virtual Port 1, Digital Gamepad: Right Shoulder -ss.input.port1.gamepad.rs keyboard 0x0 10 - -;ss, Virtual Port 1, Digital Gamepad: START -ss.input.port1.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;ss, Virtual Port 1, Digital Gamepad: UP ↑ -ss.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;ss, Virtual Port 1, Digital Gamepad: X -ss.input.port1.gamepad.x joystick 0x0003045e028e01010008000b00000000 button_3 - -;ss, Virtual Port 1, Digital Gamepad: Y -ss.input.port1.gamepad.y joystick 0x0003045e028e01010008000b00000000 button_4 - -;ss, Virtual Port 1, Digital Gamepad: Z -ss.input.port1.gamepad.z joystick 0x0003045e028e01010008000b00000000 button_5 - -;ss, Virtual Port 1, Light Gun: Offscreen Shot(Simulated) -ss.input.port1.gun.offscreen_shot joystick 0x0003045e028e01010008000b00000000 button_3 - -;ss, Virtual Port 1, Light Gun: START -ss.input.port1.gun.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;ss, Virtual Port 1, Light Gun: Trigger -ss.input.port1.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 1, Light Gun: X Axis -ss.input.port1.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 1, Light Gun: Y Axis -ss.input.port1.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 1. -ss.input.port1.gun_chairs 0xFF0000 - -;ss, Virtual Port 1, Keyboard (JP): 0(Zero) -ss.input.port1.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 1, Keyboard (JP): 1(One) -ss.input.port1.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 1, Keyboard (JP): 2 -ss.input.port1.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 1, Keyboard (JP): 3 -ss.input.port1.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 1, Keyboard (JP): 4 -ss.input.port1.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 1, Keyboard (JP): 5 -ss.input.port1.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 1, Keyboard (JP): 6 -ss.input.port1.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 1, Keyboard (JP): 7 -ss.input.port1.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 1, Keyboard (JP): 8 -ss.input.port1.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 1, Keyboard (JP): 9 -ss.input.port1.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 1, Keyboard (JP): A -ss.input.port1.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 1, Keyboard (JP): At @ -ss.input.port1.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 1, Keyboard (JP): B -ss.input.port1.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 1, Keyboard (JP): Backslash \ -ss.input.port1.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 1, Keyboard (JP): Backspace -ss.input.port1.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 1, Keyboard (JP): C -ss.input.port1.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 1, Keyboard (JP): Caps Lock/英数 -ss.input.port1.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 1, Keyboard (JP): Circumflex ^ -ss.input.port1.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 1, Keyboard (JP): Colon : -ss.input.port1.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 1, Keyboard (JP): Comma , -ss.input.port1.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 1, Keyboard (JP): 変換 -ss.input.port1.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 1, Keyboard (JP): D -ss.input.port1.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 1, Keyboard (JP): Delete -ss.input.port1.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 1, Keyboard (JP): Down -ss.input.port1.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 1, Keyboard (JP): E -ss.input.port1.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 1, Keyboard (JP): End -ss.input.port1.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 1, Keyboard (JP): Enter -ss.input.port1.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 1, Keyboard (JP): Escape -ss.input.port1.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 1, Keyboard (JP): F -ss.input.port1.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 1, Keyboard (JP): F1 -ss.input.port1.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 1, Keyboard (JP): F10 -ss.input.port1.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 1, Keyboard (JP): F11 -ss.input.port1.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 1, Keyboard (JP): F12 -ss.input.port1.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 1, Keyboard (JP): F2 -ss.input.port1.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 1, Keyboard (JP): F3 -ss.input.port1.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 1, Keyboard (JP): F4 -ss.input.port1.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 1, Keyboard (JP): F5 -ss.input.port1.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 1, Keyboard (JP): F6 -ss.input.port1.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 1, Keyboard (JP): F7 -ss.input.port1.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 1, Keyboard (JP): F8 -ss.input.port1.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 1, Keyboard (JP): F9 -ss.input.port1.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 1, Keyboard (JP): G -ss.input.port1.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 1, Keyboard (JP): H -ss.input.port1.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 1, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port1.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 1, Keyboard (JP): Home -ss.input.port1.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 1, Keyboard (JP): 半角/全角/漢字 -ss.input.port1.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 1, Keyboard (JP): I -ss.input.port1.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 1, Keyboard (JP): Insert -ss.input.port1.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 1, Keyboard (JP): J -ss.input.port1.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 1, Keyboard (JP): K -ss.input.port1.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 1, Keyboard (JP): L -ss.input.port1.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 1, Keyboard (JP): Left Alt -ss.input.port1.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 1, Keyboard (JP): Left Ctrl -ss.input.port1.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 1, Keyboard (JP): Cursor Left -ss.input.port1.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 1, Keyboard (JP): Left Bracket [ -ss.input.port1.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 1, Keyboard (JP): Left Shift -ss.input.port1.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 1, Keyboard (JP): M -ss.input.port1.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 1, Keyboard (JP): Minus - -ss.input.port1.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 1, Keyboard (JP): N -ss.input.port1.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 1, Keyboard (JP): 無変換 -ss.input.port1.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 1, Keyboard (JP): O -ss.input.port1.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 1, Keyboard (JP): P -ss.input.port1.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 1, Keyboard (JP): Page Down -ss.input.port1.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 1, Keyboard (JP): Page Up -ss.input.port1.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 1, Keyboard (JP): Pause -ss.input.port1.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 1, Keyboard (JP): Period . -ss.input.port1.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 1, Keyboard (JP): Print Screen -ss.input.port1.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 1, Keyboard (JP): Q -ss.input.port1.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 1, Keyboard (JP): R -ss.input.port1.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 1, Keyboard (JP): Right Alt -ss.input.port1.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 1, Keyboard (JP): Right Ctrl -ss.input.port1.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 1, Keyboard (JP): Right -ss.input.port1.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 1, Keyboard (JP): Right Bracket ] -ss.input.port1.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 1, Keyboard (JP): Right Shift -ss.input.port1.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 1, Keyboard (JP): S -ss.input.port1.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 1, Keyboard (JP): Scroll Lock -ss.input.port1.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 1, Keyboard (JP): Semicolon ; -ss.input.port1.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 1, Keyboard (JP): Slash / -ss.input.port1.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 1, Keyboard (JP): Space -ss.input.port1.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 1, Keyboard (JP): T -ss.input.port1.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 1, Keyboard (JP): Tab -ss.input.port1.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 1, Keyboard (JP): U -ss.input.port1.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 1, Keyboard (JP): Up -ss.input.port1.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 1, Keyboard (JP): V -ss.input.port1.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 1, Keyboard (JP): W -ss.input.port1.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 1, Keyboard (JP): X -ss.input.port1.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 1, Keyboard (JP): Y -ss.input.port1.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 1, Keyboard (JP): Yen ¥ -ss.input.port1.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 1, Keyboard (JP): Z -ss.input.port1.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 1, Keyboard (US): 0(Zero) -ss.input.port1.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 1, Keyboard (US): 1(One) -ss.input.port1.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 1, Keyboard (US): 2 -ss.input.port1.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 1, Keyboard (US): 3 -ss.input.port1.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 1, Keyboard (US): 4 -ss.input.port1.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 1, Keyboard (US): 5 -ss.input.port1.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 1, Keyboard (US): 6 -ss.input.port1.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 1, Keyboard (US): 7 -ss.input.port1.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 1, Keyboard (US): 8 -ss.input.port1.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 1, Keyboard (US): 9 -ss.input.port1.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 1, Keyboard (US): A -ss.input.port1.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 1, Keyboard (US): B -ss.input.port1.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 1, Keyboard (US): Backslash \ -ss.input.port1.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 1, Keyboard (US): Backspace -ss.input.port1.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 1, Keyboard (US): C -ss.input.port1.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 1, Keyboard (US): Caps Lock -ss.input.port1.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 1, Keyboard (US): Comma , -ss.input.port1.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 1, Keyboard (US): D -ss.input.port1.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 1, Keyboard (US): Delete -ss.input.port1.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 1, Keyboard (US): Down -ss.input.port1.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 1, Keyboard (US): E -ss.input.port1.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 1, Keyboard (US): End -ss.input.port1.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 1, Keyboard (US): Enter -ss.input.port1.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 1, Keyboard (US): Equals = -ss.input.port1.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 1, Keyboard (US): Escape -ss.input.port1.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 1, Keyboard (US): F -ss.input.port1.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 1, Keyboard (US): F1 -ss.input.port1.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 1, Keyboard (US): F10 -ss.input.port1.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 1, Keyboard (US): F11 -ss.input.port1.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 1, Keyboard (US): F12 -ss.input.port1.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 1, Keyboard (US): F2 -ss.input.port1.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 1, Keyboard (US): F3 -ss.input.port1.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 1, Keyboard (US): F4 -ss.input.port1.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 1, Keyboard (US): F5 -ss.input.port1.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 1, Keyboard (US): F6 -ss.input.port1.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 1, Keyboard (US): F7 -ss.input.port1.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 1, Keyboard (US): F8 -ss.input.port1.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 1, Keyboard (US): F9 -ss.input.port1.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 1, Keyboard (US): G -ss.input.port1.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 1, Keyboard (US): Grave ` -ss.input.port1.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 1, Keyboard (US): H -ss.input.port1.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 1, Keyboard (US): Home -ss.input.port1.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 1, Keyboard (US): I -ss.input.port1.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 1, Keyboard (US): Insert -ss.input.port1.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 1, Keyboard (US): J -ss.input.port1.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 1, Keyboard (US): K -ss.input.port1.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 1, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port1.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 1, Keyboard (US): Keypad Center/5 -ss.input.port1.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 1, Keyboard (US): Keypad Delete -ss.input.port1.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 1, Keyboard (US): Keypad Down/2 -ss.input.port1.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 1, Keyboard (US): Keypad End/1 -ss.input.port1.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 1, Keyboard (US): Keypad Enter -ss.input.port1.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 1, Keyboard (US): Keypad Home/7 -ss.input.port1.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 1, Keyboard (US): Keypad Insert/0 -ss.input.port1.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 1, Keyboard (US): Keypad Left/4 -ss.input.port1.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 1, Keyboard (US): Keypad Minus -ss.input.port1.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 1, Keyboard (US): Keypad Pagedown/3 -ss.input.port1.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 1, Keyboard (US): Keypad Pageup/9 -ss.input.port1.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 1, Keyboard (US): Keypad Plus -ss.input.port1.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 1, Keyboard (US): Keypad Right/6 -ss.input.port1.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 1, Keyboard (US): Keypad Slash(Divide) -ss.input.port1.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 1, Keyboard (US): Keypad Up/8 -ss.input.port1.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 1, Keyboard (US): L -ss.input.port1.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 1, Keyboard (US): Left Alt -ss.input.port1.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 1, Keyboard (US): Left Ctrl -ss.input.port1.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 1, Keyboard (US): Cursor Left -ss.input.port1.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 1, Keyboard (US): Left Bracket [ -ss.input.port1.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 1, Keyboard (US): Left Shift -ss.input.port1.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 1, Keyboard (US): M -ss.input.port1.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 1, Keyboard (US): Minus - -ss.input.port1.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 1, Keyboard (US): N -ss.input.port1.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 1, Keyboard (US): Num Lock -ss.input.port1.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 1, Keyboard (US): O -ss.input.port1.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 1, Keyboard (US): P -ss.input.port1.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 1, Keyboard (US): Page Down -ss.input.port1.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 1, Keyboard (US): Page Up -ss.input.port1.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 1, Keyboard (US): Pause -ss.input.port1.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 1, Keyboard (US): Period . -ss.input.port1.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 1, Keyboard (US): Print Screen -ss.input.port1.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 1, Keyboard (US): Q -ss.input.port1.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 1, Keyboard (US): Quote ' -ss.input.port1.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 1, Keyboard (US): R -ss.input.port1.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 1, Keyboard (US): Right Alt -ss.input.port1.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 1, Keyboard (US): Right Ctrl -ss.input.port1.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 1, Keyboard (US): Right -ss.input.port1.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 1, Keyboard (US): Right Bracket ] -ss.input.port1.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 1, Keyboard (US): Right Shift -ss.input.port1.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 1, Keyboard (US): S -ss.input.port1.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 1, Keyboard (US): Scroll Lock -ss.input.port1.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 1, Keyboard (US): Semicolon ; -ss.input.port1.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 1, Keyboard (US): Slash / -ss.input.port1.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 1, Keyboard (US): Space -ss.input.port1.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 1, Keyboard (US): T -ss.input.port1.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 1, Keyboard (US): Tab -ss.input.port1.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 1, Keyboard (US): U -ss.input.port1.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 1, Keyboard (US): Up -ss.input.port1.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 1, Keyboard (US): V -ss.input.port1.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 1, Keyboard (US): W -ss.input.port1.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 1, Keyboard (US): X -ss.input.port1.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 1, Keyboard (US): Y -ss.input.port1.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 1, Keyboard (US): Z -ss.input.port1.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 1, Mission Stick: A (Stick Trigger) -ss.input.port1.mission.a - -;ss, Virtual Port 1, Mission Stick: A AF -ss.input.port1.mission.afa - -;Default position for switch "A AF". -ss.input.port1.mission.afa.defpos off - -;ss, Virtual Port 1, Mission Stick: B AF -ss.input.port1.mission.afb - -;Default position for switch "B AF". -ss.input.port1.mission.afb.defpos off - -;ss, Virtual Port 1, Mission Stick: C AF -ss.input.port1.mission.afc - -;Default position for switch "C AF". -ss.input.port1.mission.afc.defpos off - -;ss, Virtual Port 1, Mission Stick: L AF -ss.input.port1.mission.afl - -;Default position for switch "L AF". -ss.input.port1.mission.afl.defpos off - -;ss, Virtual Port 1, Mission Stick: R AF -ss.input.port1.mission.afr - -;Default position for switch "R AF". -ss.input.port1.mission.afr.defpos off - -;ss, Virtual Port 1, Mission Stick: AF Speed -ss.input.port1.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port1.mission.afspeed.defpos 1 - -;ss, Virtual Port 1, Mission Stick: X AF -ss.input.port1.mission.afx - -;Default position for switch "X AF". -ss.input.port1.mission.afx.defpos off - -;ss, Virtual Port 1, Mission Stick: Y AF -ss.input.port1.mission.afy - -;Default position for switch "Y AF". -ss.input.port1.mission.afy.defpos off - -;ss, Virtual Port 1, Mission Stick: Z AF -ss.input.port1.mission.afz - -;Default position for switch "Z AF". -ss.input.port1.mission.afz.defpos off - -;ss, Virtual Port 1, Mission Stick: B (Stick Left Button) -ss.input.port1.mission.b - -;ss, Virtual Port 1, Mission Stick: C (Stick Right Button) -ss.input.port1.mission.c - -;ss, Virtual Port 1, Mission Stick: L -ss.input.port1.mission.l - -;ss, Virtual Port 1, Mission Stick: R -ss.input.port1.mission.r - -;ss, Virtual Port 1, Mission Stick: START -ss.input.port1.mission.start - -;ss, Virtual Port 1, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port1.mission.stick_back - -;ss, Virtual Port 1, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port1.mission.stick_fore - -;ss, Virtual Port 1, Mission Stick: Stick LEFT ← (Analog) -ss.input.port1.mission.stick_left - -;ss, Virtual Port 1, Mission Stick: Stick RIGHT → (Analog) -ss.input.port1.mission.stick_right - -;ss, Virtual Port 1, Mission Stick: Throttle Down (Analog) -ss.input.port1.mission.throttle_down - -;ss, Virtual Port 1, Mission Stick: Throttle Up (Analog) -ss.input.port1.mission.throttle_up - -;ss, Virtual Port 1, Mission Stick: X -ss.input.port1.mission.x - -;ss, Virtual Port 1, Mission Stick: Y -ss.input.port1.mission.y - -;ss, Virtual Port 1, Mission Stick: Z -ss.input.port1.mission.z - -;ss, Virtual Port 1, Mouse: Left Button -ss.input.port1.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 1, Mouse: Middle Button -ss.input.port1.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 1, Mouse: Motion Down -ss.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 1, Mouse: Motion Left -ss.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 1, Mouse: Motion Right -ss.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 1, Mouse: Motion Up -ss.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 1, Mouse: Right Button -ss.input.port1.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 1, Mouse: Start -ss.input.port1.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 1, Steering Wheel: A (R Group) -ss.input.port1.wheel.a - -;ss, Virtual Port 1, Steering Wheel: Analog LEFT ← -ss.input.port1.wheel.analog_left - -;ss, Virtual Port 1, Steering Wheel: Analog RIGHT → -ss.input.port1.wheel.analog_right - -;ss, Virtual Port 1, Steering Wheel: B (R Group) -ss.input.port1.wheel.b - -;ss, Virtual Port 1, Steering Wheel: C (R Group) -ss.input.port1.wheel.c - -;ss, Virtual Port 1, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port1.wheel.down - -;ss, Virtual Port 1, Steering Wheel: START -ss.input.port1.wheel.start - -;ss, Virtual Port 1, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port1.wheel.up - -;ss, Virtual Port 1, Steering Wheel: X (L Group) -ss.input.port1.wheel.x - -;ss, Virtual Port 1, Steering Wheel: Y (L Group) -ss.input.port1.wheel.y - -;ss, Virtual Port 1, Steering Wheel: Z (L Group) -ss.input.port1.wheel.z - -;Input device for Virtual Port 10 -ss.input.port10 gamepad - -;ss, Virtual Port 10, 3D Control Pad: A -ss.input.port10.3dpad.a - -;ss, Virtual Port 10, 3D Control Pad: Analog DOWN ↓ -ss.input.port10.3dpad.analog_down - -;ss, Virtual Port 10, 3D Control Pad: Analog LEFT ← -ss.input.port10.3dpad.analog_left - -;ss, Virtual Port 10, 3D Control Pad: Analog RIGHT → -ss.input.port10.3dpad.analog_right - -;ss, Virtual Port 10, 3D Control Pad: Analog UP ↑ -ss.input.port10.3dpad.analog_up - -;ss, Virtual Port 10, 3D Control Pad: B -ss.input.port10.3dpad.b - -;ss, Virtual Port 10, 3D Control Pad: C -ss.input.port10.3dpad.c - -;ss, Virtual Port 10, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port10.3dpad.down - -;ss, Virtual Port 10, 3D Control Pad: D-Pad LEFT ← -ss.input.port10.3dpad.left - -;ss, Virtual Port 10, 3D Control Pad: Left Shoulder (Analog) -ss.input.port10.3dpad.ls - -;ss, Virtual Port 10, 3D Control Pad: Mode -ss.input.port10.3dpad.mode - -;Default position for switch "Mode". -ss.input.port10.3dpad.mode.defpos digital - -;ss, Virtual Port 10, 3D Control Pad: D-Pad RIGHT → -ss.input.port10.3dpad.right - -;ss, Virtual Port 10, 3D Control Pad: Right Shoulder (Analog) -ss.input.port10.3dpad.rs - -;ss, Virtual Port 10, 3D Control Pad: START -ss.input.port10.3dpad.start - -;ss, Virtual Port 10, 3D Control Pad: D-Pad UP ↑ -ss.input.port10.3dpad.up - -;ss, Virtual Port 10, 3D Control Pad: X -ss.input.port10.3dpad.x - -;ss, Virtual Port 10, 3D Control Pad: Y -ss.input.port10.3dpad.y - -;ss, Virtual Port 10, 3D Control Pad: Z -ss.input.port10.3dpad.z - -;ss, Virtual Port 10, Dual Mission: A (R Stick Trigger) -ss.input.port10.dmission.a - -;ss, Virtual Port 10, Dual Mission: A AF -ss.input.port10.dmission.afa - -;Default position for switch "A AF". -ss.input.port10.dmission.afa.defpos off - -;ss, Virtual Port 10, Dual Mission: B AF -ss.input.port10.dmission.afb - -;Default position for switch "B AF". -ss.input.port10.dmission.afb.defpos off - -;ss, Virtual Port 10, Dual Mission: C AF -ss.input.port10.dmission.afc - -;Default position for switch "C AF". -ss.input.port10.dmission.afc.defpos off - -;ss, Virtual Port 10, Dual Mission: L AF -ss.input.port10.dmission.afl - -;Default position for switch "L AF". -ss.input.port10.dmission.afl.defpos off - -;ss, Virtual Port 10, Dual Mission: R AF -ss.input.port10.dmission.afr - -;Default position for switch "R AF". -ss.input.port10.dmission.afr.defpos off - -;ss, Virtual Port 10, Dual Mission: Autofire Speed -ss.input.port10.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port10.dmission.afspeed.defpos 1 - -;ss, Virtual Port 10, Dual Mission: X AF -ss.input.port10.dmission.afx - -;Default position for switch "X AF". -ss.input.port10.dmission.afx.defpos off - -;ss, Virtual Port 10, Dual Mission: Y AF -ss.input.port10.dmission.afy - -;Default position for switch "Y AF". -ss.input.port10.dmission.afy.defpos off - -;ss, Virtual Port 10, Dual Mission: Z AF -ss.input.port10.dmission.afz - -;Default position for switch "Z AF". -ss.input.port10.dmission.afz.defpos off - -;ss, Virtual Port 10, Dual Mission: B (R Stick Left Button) -ss.input.port10.dmission.b - -;ss, Virtual Port 10, Dual Mission: C (R Stick Right Button) -ss.input.port10.dmission.c - -;ss, Virtual Port 10, Dual Mission: L -ss.input.port10.dmission.l - -;ss, Virtual Port 10, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port10.dmission.lstick_back - -;ss, Virtual Port 10, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port10.dmission.lstick_fore - -;ss, Virtual Port 10, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port10.dmission.lstick_left - -;ss, Virtual Port 10, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port10.dmission.lstick_right - -;ss, Virtual Port 10, Dual Mission: L Throttle Down (Analog) -ss.input.port10.dmission.lthrottle_down - -;ss, Virtual Port 10, Dual Mission: L Throttle Up (Analog) -ss.input.port10.dmission.lthrottle_up - -;ss, Virtual Port 10, Dual Mission: R -ss.input.port10.dmission.r - -;ss, Virtual Port 10, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port10.dmission.rstick_back - -;ss, Virtual Port 10, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port10.dmission.rstick_fore - -;ss, Virtual Port 10, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port10.dmission.rstick_left - -;ss, Virtual Port 10, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port10.dmission.rstick_right - -;ss, Virtual Port 10, Dual Mission: R Throttle Down (Analog) -ss.input.port10.dmission.rthrottle_down - -;ss, Virtual Port 10, Dual Mission: R Throttle Up (Analog) -ss.input.port10.dmission.rthrottle_up - -;ss, Virtual Port 10, Dual Mission: START -ss.input.port10.dmission.start - -;ss, Virtual Port 10, Dual Mission: X (L Stick Trigger) -ss.input.port10.dmission.x - -;ss, Virtual Port 10, Dual Mission: Y (L Stick Left Button) -ss.input.port10.dmission.y - -;ss, Virtual Port 10, Dual Mission: Z (L Stick Right Button) -ss.input.port10.dmission.z - -;ss, Virtual Port 10, Digital Gamepad: A -ss.input.port10.gamepad.a - -;ss, Virtual Port 10, Digital Gamepad: B -ss.input.port10.gamepad.b - -;ss, Virtual Port 10, Digital Gamepad: C -ss.input.port10.gamepad.c - -;ss, Virtual Port 10, Digital Gamepad: DOWN ↓ -ss.input.port10.gamepad.down - -;ss, Virtual Port 10, Digital Gamepad: LEFT ← -ss.input.port10.gamepad.left - -;ss, Virtual Port 10, Digital Gamepad: Left Shoulder -ss.input.port10.gamepad.ls - -;ss, Virtual Port 10, Digital Gamepad: RIGHT → -ss.input.port10.gamepad.right - -;ss, Virtual Port 10, Digital Gamepad: Right Shoulder -ss.input.port10.gamepad.rs - -;ss, Virtual Port 10, Digital Gamepad: START -ss.input.port10.gamepad.start - -;ss, Virtual Port 10, Digital Gamepad: UP ↑ -ss.input.port10.gamepad.up - -;ss, Virtual Port 10, Digital Gamepad: X -ss.input.port10.gamepad.x - -;ss, Virtual Port 10, Digital Gamepad: Y -ss.input.port10.gamepad.y - -;ss, Virtual Port 10, Digital Gamepad: Z -ss.input.port10.gamepad.z - -;ss, Virtual Port 10, Light Gun: Offscreen Shot(Simulated) -ss.input.port10.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 10, Light Gun: START -ss.input.port10.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 10, Light Gun: Trigger -ss.input.port10.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 10, Light Gun: X Axis -ss.input.port10.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 10, Light Gun: Y Axis -ss.input.port10.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 10. -ss.input.port10.gun_chairs 0x00FF80 - -;ss, Virtual Port 10, Keyboard (JP): 0(Zero) -ss.input.port10.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 10, Keyboard (JP): 1(One) -ss.input.port10.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 10, Keyboard (JP): 2 -ss.input.port10.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 10, Keyboard (JP): 3 -ss.input.port10.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 10, Keyboard (JP): 4 -ss.input.port10.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 10, Keyboard (JP): 5 -ss.input.port10.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 10, Keyboard (JP): 6 -ss.input.port10.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 10, Keyboard (JP): 7 -ss.input.port10.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 10, Keyboard (JP): 8 -ss.input.port10.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 10, Keyboard (JP): 9 -ss.input.port10.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 10, Keyboard (JP): A -ss.input.port10.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 10, Keyboard (JP): At @ -ss.input.port10.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 10, Keyboard (JP): B -ss.input.port10.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 10, Keyboard (JP): Backslash \ -ss.input.port10.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 10, Keyboard (JP): Backspace -ss.input.port10.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 10, Keyboard (JP): C -ss.input.port10.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 10, Keyboard (JP): Caps Lock/英数 -ss.input.port10.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 10, Keyboard (JP): Circumflex ^ -ss.input.port10.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 10, Keyboard (JP): Colon : -ss.input.port10.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 10, Keyboard (JP): Comma , -ss.input.port10.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 10, Keyboard (JP): 変換 -ss.input.port10.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 10, Keyboard (JP): D -ss.input.port10.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 10, Keyboard (JP): Delete -ss.input.port10.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 10, Keyboard (JP): Down -ss.input.port10.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 10, Keyboard (JP): E -ss.input.port10.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 10, Keyboard (JP): End -ss.input.port10.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 10, Keyboard (JP): Enter -ss.input.port10.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 10, Keyboard (JP): Escape -ss.input.port10.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 10, Keyboard (JP): F -ss.input.port10.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 10, Keyboard (JP): F1 -ss.input.port10.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 10, Keyboard (JP): F10 -ss.input.port10.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 10, Keyboard (JP): F11 -ss.input.port10.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 10, Keyboard (JP): F12 -ss.input.port10.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 10, Keyboard (JP): F2 -ss.input.port10.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 10, Keyboard (JP): F3 -ss.input.port10.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 10, Keyboard (JP): F4 -ss.input.port10.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 10, Keyboard (JP): F5 -ss.input.port10.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 10, Keyboard (JP): F6 -ss.input.port10.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 10, Keyboard (JP): F7 -ss.input.port10.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 10, Keyboard (JP): F8 -ss.input.port10.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 10, Keyboard (JP): F9 -ss.input.port10.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 10, Keyboard (JP): G -ss.input.port10.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 10, Keyboard (JP): H -ss.input.port10.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 10, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port10.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 10, Keyboard (JP): Home -ss.input.port10.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 10, Keyboard (JP): 半角/全角/漢字 -ss.input.port10.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 10, Keyboard (JP): I -ss.input.port10.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 10, Keyboard (JP): Insert -ss.input.port10.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 10, Keyboard (JP): J -ss.input.port10.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 10, Keyboard (JP): K -ss.input.port10.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 10, Keyboard (JP): L -ss.input.port10.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 10, Keyboard (JP): Left Alt -ss.input.port10.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 10, Keyboard (JP): Left Ctrl -ss.input.port10.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 10, Keyboard (JP): Cursor Left -ss.input.port10.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 10, Keyboard (JP): Left Bracket [ -ss.input.port10.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 10, Keyboard (JP): Left Shift -ss.input.port10.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 10, Keyboard (JP): M -ss.input.port10.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 10, Keyboard (JP): Minus - -ss.input.port10.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 10, Keyboard (JP): N -ss.input.port10.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 10, Keyboard (JP): 無変換 -ss.input.port10.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 10, Keyboard (JP): O -ss.input.port10.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 10, Keyboard (JP): P -ss.input.port10.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 10, Keyboard (JP): Page Down -ss.input.port10.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 10, Keyboard (JP): Page Up -ss.input.port10.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 10, Keyboard (JP): Pause -ss.input.port10.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 10, Keyboard (JP): Period . -ss.input.port10.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 10, Keyboard (JP): Print Screen -ss.input.port10.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 10, Keyboard (JP): Q -ss.input.port10.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 10, Keyboard (JP): R -ss.input.port10.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 10, Keyboard (JP): Right Alt -ss.input.port10.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 10, Keyboard (JP): Right Ctrl -ss.input.port10.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 10, Keyboard (JP): Right -ss.input.port10.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 10, Keyboard (JP): Right Bracket ] -ss.input.port10.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 10, Keyboard (JP): Right Shift -ss.input.port10.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 10, Keyboard (JP): S -ss.input.port10.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 10, Keyboard (JP): Scroll Lock -ss.input.port10.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 10, Keyboard (JP): Semicolon ; -ss.input.port10.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 10, Keyboard (JP): Slash / -ss.input.port10.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 10, Keyboard (JP): Space -ss.input.port10.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 10, Keyboard (JP): T -ss.input.port10.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 10, Keyboard (JP): Tab -ss.input.port10.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 10, Keyboard (JP): U -ss.input.port10.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 10, Keyboard (JP): Up -ss.input.port10.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 10, Keyboard (JP): V -ss.input.port10.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 10, Keyboard (JP): W -ss.input.port10.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 10, Keyboard (JP): X -ss.input.port10.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 10, Keyboard (JP): Y -ss.input.port10.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 10, Keyboard (JP): Yen ¥ -ss.input.port10.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 10, Keyboard (JP): Z -ss.input.port10.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 10, Keyboard (US): 0(Zero) -ss.input.port10.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 10, Keyboard (US): 1(One) -ss.input.port10.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 10, Keyboard (US): 2 -ss.input.port10.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 10, Keyboard (US): 3 -ss.input.port10.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 10, Keyboard (US): 4 -ss.input.port10.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 10, Keyboard (US): 5 -ss.input.port10.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 10, Keyboard (US): 6 -ss.input.port10.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 10, Keyboard (US): 7 -ss.input.port10.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 10, Keyboard (US): 8 -ss.input.port10.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 10, Keyboard (US): 9 -ss.input.port10.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 10, Keyboard (US): A -ss.input.port10.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 10, Keyboard (US): B -ss.input.port10.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 10, Keyboard (US): Backslash \ -ss.input.port10.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 10, Keyboard (US): Backspace -ss.input.port10.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 10, Keyboard (US): C -ss.input.port10.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 10, Keyboard (US): Caps Lock -ss.input.port10.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 10, Keyboard (US): Comma , -ss.input.port10.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 10, Keyboard (US): D -ss.input.port10.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 10, Keyboard (US): Delete -ss.input.port10.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 10, Keyboard (US): Down -ss.input.port10.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 10, Keyboard (US): E -ss.input.port10.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 10, Keyboard (US): End -ss.input.port10.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 10, Keyboard (US): Enter -ss.input.port10.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 10, Keyboard (US): Equals = -ss.input.port10.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 10, Keyboard (US): Escape -ss.input.port10.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 10, Keyboard (US): F -ss.input.port10.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 10, Keyboard (US): F1 -ss.input.port10.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 10, Keyboard (US): F10 -ss.input.port10.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 10, Keyboard (US): F11 -ss.input.port10.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 10, Keyboard (US): F12 -ss.input.port10.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 10, Keyboard (US): F2 -ss.input.port10.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 10, Keyboard (US): F3 -ss.input.port10.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 10, Keyboard (US): F4 -ss.input.port10.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 10, Keyboard (US): F5 -ss.input.port10.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 10, Keyboard (US): F6 -ss.input.port10.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 10, Keyboard (US): F7 -ss.input.port10.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 10, Keyboard (US): F8 -ss.input.port10.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 10, Keyboard (US): F9 -ss.input.port10.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 10, Keyboard (US): G -ss.input.port10.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 10, Keyboard (US): Grave ` -ss.input.port10.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 10, Keyboard (US): H -ss.input.port10.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 10, Keyboard (US): Home -ss.input.port10.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 10, Keyboard (US): I -ss.input.port10.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 10, Keyboard (US): Insert -ss.input.port10.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 10, Keyboard (US): J -ss.input.port10.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 10, Keyboard (US): K -ss.input.port10.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 10, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port10.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 10, Keyboard (US): Keypad Center/5 -ss.input.port10.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 10, Keyboard (US): Keypad Delete -ss.input.port10.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 10, Keyboard (US): Keypad Down/2 -ss.input.port10.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 10, Keyboard (US): Keypad End/1 -ss.input.port10.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 10, Keyboard (US): Keypad Enter -ss.input.port10.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 10, Keyboard (US): Keypad Home/7 -ss.input.port10.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 10, Keyboard (US): Keypad Insert/0 -ss.input.port10.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 10, Keyboard (US): Keypad Left/4 -ss.input.port10.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 10, Keyboard (US): Keypad Minus -ss.input.port10.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 10, Keyboard (US): Keypad Pagedown/3 -ss.input.port10.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 10, Keyboard (US): Keypad Pageup/9 -ss.input.port10.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 10, Keyboard (US): Keypad Plus -ss.input.port10.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 10, Keyboard (US): Keypad Right/6 -ss.input.port10.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 10, Keyboard (US): Keypad Slash(Divide) -ss.input.port10.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 10, Keyboard (US): Keypad Up/8 -ss.input.port10.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 10, Keyboard (US): L -ss.input.port10.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 10, Keyboard (US): Left Alt -ss.input.port10.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 10, Keyboard (US): Left Ctrl -ss.input.port10.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 10, Keyboard (US): Cursor Left -ss.input.port10.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 10, Keyboard (US): Left Bracket [ -ss.input.port10.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 10, Keyboard (US): Left Shift -ss.input.port10.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 10, Keyboard (US): M -ss.input.port10.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 10, Keyboard (US): Minus - -ss.input.port10.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 10, Keyboard (US): N -ss.input.port10.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 10, Keyboard (US): Num Lock -ss.input.port10.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 10, Keyboard (US): O -ss.input.port10.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 10, Keyboard (US): P -ss.input.port10.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 10, Keyboard (US): Page Down -ss.input.port10.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 10, Keyboard (US): Page Up -ss.input.port10.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 10, Keyboard (US): Pause -ss.input.port10.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 10, Keyboard (US): Period . -ss.input.port10.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 10, Keyboard (US): Print Screen -ss.input.port10.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 10, Keyboard (US): Q -ss.input.port10.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 10, Keyboard (US): Quote ' -ss.input.port10.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 10, Keyboard (US): R -ss.input.port10.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 10, Keyboard (US): Right Alt -ss.input.port10.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 10, Keyboard (US): Right Ctrl -ss.input.port10.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 10, Keyboard (US): Right -ss.input.port10.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 10, Keyboard (US): Right Bracket ] -ss.input.port10.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 10, Keyboard (US): Right Shift -ss.input.port10.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 10, Keyboard (US): S -ss.input.port10.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 10, Keyboard (US): Scroll Lock -ss.input.port10.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 10, Keyboard (US): Semicolon ; -ss.input.port10.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 10, Keyboard (US): Slash / -ss.input.port10.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 10, Keyboard (US): Space -ss.input.port10.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 10, Keyboard (US): T -ss.input.port10.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 10, Keyboard (US): Tab -ss.input.port10.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 10, Keyboard (US): U -ss.input.port10.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 10, Keyboard (US): Up -ss.input.port10.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 10, Keyboard (US): V -ss.input.port10.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 10, Keyboard (US): W -ss.input.port10.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 10, Keyboard (US): X -ss.input.port10.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 10, Keyboard (US): Y -ss.input.port10.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 10, Keyboard (US): Z -ss.input.port10.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 10, Mission Stick: A (Stick Trigger) -ss.input.port10.mission.a - -;ss, Virtual Port 10, Mission Stick: A AF -ss.input.port10.mission.afa - -;Default position for switch "A AF". -ss.input.port10.mission.afa.defpos off - -;ss, Virtual Port 10, Mission Stick: B AF -ss.input.port10.mission.afb - -;Default position for switch "B AF". -ss.input.port10.mission.afb.defpos off - -;ss, Virtual Port 10, Mission Stick: C AF -ss.input.port10.mission.afc - -;Default position for switch "C AF". -ss.input.port10.mission.afc.defpos off - -;ss, Virtual Port 10, Mission Stick: L AF -ss.input.port10.mission.afl - -;Default position for switch "L AF". -ss.input.port10.mission.afl.defpos off - -;ss, Virtual Port 10, Mission Stick: R AF -ss.input.port10.mission.afr - -;Default position for switch "R AF". -ss.input.port10.mission.afr.defpos off - -;ss, Virtual Port 10, Mission Stick: AF Speed -ss.input.port10.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port10.mission.afspeed.defpos 1 - -;ss, Virtual Port 10, Mission Stick: X AF -ss.input.port10.mission.afx - -;Default position for switch "X AF". -ss.input.port10.mission.afx.defpos off - -;ss, Virtual Port 10, Mission Stick: Y AF -ss.input.port10.mission.afy - -;Default position for switch "Y AF". -ss.input.port10.mission.afy.defpos off - -;ss, Virtual Port 10, Mission Stick: Z AF -ss.input.port10.mission.afz - -;Default position for switch "Z AF". -ss.input.port10.mission.afz.defpos off - -;ss, Virtual Port 10, Mission Stick: B (Stick Left Button) -ss.input.port10.mission.b - -;ss, Virtual Port 10, Mission Stick: C (Stick Right Button) -ss.input.port10.mission.c - -;ss, Virtual Port 10, Mission Stick: L -ss.input.port10.mission.l - -;ss, Virtual Port 10, Mission Stick: R -ss.input.port10.mission.r - -;ss, Virtual Port 10, Mission Stick: START -ss.input.port10.mission.start - -;ss, Virtual Port 10, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port10.mission.stick_back - -;ss, Virtual Port 10, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port10.mission.stick_fore - -;ss, Virtual Port 10, Mission Stick: Stick LEFT ← (Analog) -ss.input.port10.mission.stick_left - -;ss, Virtual Port 10, Mission Stick: Stick RIGHT → (Analog) -ss.input.port10.mission.stick_right - -;ss, Virtual Port 10, Mission Stick: Throttle Down (Analog) -ss.input.port10.mission.throttle_down - -;ss, Virtual Port 10, Mission Stick: Throttle Up (Analog) -ss.input.port10.mission.throttle_up - -;ss, Virtual Port 10, Mission Stick: X -ss.input.port10.mission.x - -;ss, Virtual Port 10, Mission Stick: Y -ss.input.port10.mission.y - -;ss, Virtual Port 10, Mission Stick: Z -ss.input.port10.mission.z - -;ss, Virtual Port 10, Mouse: Left Button -ss.input.port10.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 10, Mouse: Middle Button -ss.input.port10.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 10, Mouse: Motion Down -ss.input.port10.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 10, Mouse: Motion Left -ss.input.port10.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 10, Mouse: Motion Right -ss.input.port10.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 10, Mouse: Motion Up -ss.input.port10.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 10, Mouse: Right Button -ss.input.port10.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 10, Mouse: Start -ss.input.port10.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 10, Steering Wheel: A (R Group) -ss.input.port10.wheel.a - -;ss, Virtual Port 10, Steering Wheel: Analog LEFT ← -ss.input.port10.wheel.analog_left - -;ss, Virtual Port 10, Steering Wheel: Analog RIGHT → -ss.input.port10.wheel.analog_right - -;ss, Virtual Port 10, Steering Wheel: B (R Group) -ss.input.port10.wheel.b - -;ss, Virtual Port 10, Steering Wheel: C (R Group) -ss.input.port10.wheel.c - -;ss, Virtual Port 10, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port10.wheel.down - -;ss, Virtual Port 10, Steering Wheel: START -ss.input.port10.wheel.start - -;ss, Virtual Port 10, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port10.wheel.up - -;ss, Virtual Port 10, Steering Wheel: X (L Group) -ss.input.port10.wheel.x - -;ss, Virtual Port 10, Steering Wheel: Y (L Group) -ss.input.port10.wheel.y - -;ss, Virtual Port 10, Steering Wheel: Z (L Group) -ss.input.port10.wheel.z - -;Input device for Virtual Port 11 -ss.input.port11 gamepad - -;ss, Virtual Port 11, 3D Control Pad: A -ss.input.port11.3dpad.a - -;ss, Virtual Port 11, 3D Control Pad: Analog DOWN ↓ -ss.input.port11.3dpad.analog_down - -;ss, Virtual Port 11, 3D Control Pad: Analog LEFT ← -ss.input.port11.3dpad.analog_left - -;ss, Virtual Port 11, 3D Control Pad: Analog RIGHT → -ss.input.port11.3dpad.analog_right - -;ss, Virtual Port 11, 3D Control Pad: Analog UP ↑ -ss.input.port11.3dpad.analog_up - -;ss, Virtual Port 11, 3D Control Pad: B -ss.input.port11.3dpad.b - -;ss, Virtual Port 11, 3D Control Pad: C -ss.input.port11.3dpad.c - -;ss, Virtual Port 11, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port11.3dpad.down - -;ss, Virtual Port 11, 3D Control Pad: D-Pad LEFT ← -ss.input.port11.3dpad.left - -;ss, Virtual Port 11, 3D Control Pad: Left Shoulder (Analog) -ss.input.port11.3dpad.ls - -;ss, Virtual Port 11, 3D Control Pad: Mode -ss.input.port11.3dpad.mode - -;Default position for switch "Mode". -ss.input.port11.3dpad.mode.defpos digital - -;ss, Virtual Port 11, 3D Control Pad: D-Pad RIGHT → -ss.input.port11.3dpad.right - -;ss, Virtual Port 11, 3D Control Pad: Right Shoulder (Analog) -ss.input.port11.3dpad.rs - -;ss, Virtual Port 11, 3D Control Pad: START -ss.input.port11.3dpad.start - -;ss, Virtual Port 11, 3D Control Pad: D-Pad UP ↑ -ss.input.port11.3dpad.up - -;ss, Virtual Port 11, 3D Control Pad: X -ss.input.port11.3dpad.x - -;ss, Virtual Port 11, 3D Control Pad: Y -ss.input.port11.3dpad.y - -;ss, Virtual Port 11, 3D Control Pad: Z -ss.input.port11.3dpad.z - -;ss, Virtual Port 11, Dual Mission: A (R Stick Trigger) -ss.input.port11.dmission.a - -;ss, Virtual Port 11, Dual Mission: A AF -ss.input.port11.dmission.afa - -;Default position for switch "A AF". -ss.input.port11.dmission.afa.defpos off - -;ss, Virtual Port 11, Dual Mission: B AF -ss.input.port11.dmission.afb - -;Default position for switch "B AF". -ss.input.port11.dmission.afb.defpos off - -;ss, Virtual Port 11, Dual Mission: C AF -ss.input.port11.dmission.afc - -;Default position for switch "C AF". -ss.input.port11.dmission.afc.defpos off - -;ss, Virtual Port 11, Dual Mission: L AF -ss.input.port11.dmission.afl - -;Default position for switch "L AF". -ss.input.port11.dmission.afl.defpos off - -;ss, Virtual Port 11, Dual Mission: R AF -ss.input.port11.dmission.afr - -;Default position for switch "R AF". -ss.input.port11.dmission.afr.defpos off - -;ss, Virtual Port 11, Dual Mission: Autofire Speed -ss.input.port11.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port11.dmission.afspeed.defpos 1 - -;ss, Virtual Port 11, Dual Mission: X AF -ss.input.port11.dmission.afx - -;Default position for switch "X AF". -ss.input.port11.dmission.afx.defpos off - -;ss, Virtual Port 11, Dual Mission: Y AF -ss.input.port11.dmission.afy - -;Default position for switch "Y AF". -ss.input.port11.dmission.afy.defpos off - -;ss, Virtual Port 11, Dual Mission: Z AF -ss.input.port11.dmission.afz - -;Default position for switch "Z AF". -ss.input.port11.dmission.afz.defpos off - -;ss, Virtual Port 11, Dual Mission: B (R Stick Left Button) -ss.input.port11.dmission.b - -;ss, Virtual Port 11, Dual Mission: C (R Stick Right Button) -ss.input.port11.dmission.c - -;ss, Virtual Port 11, Dual Mission: L -ss.input.port11.dmission.l - -;ss, Virtual Port 11, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port11.dmission.lstick_back - -;ss, Virtual Port 11, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port11.dmission.lstick_fore - -;ss, Virtual Port 11, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port11.dmission.lstick_left - -;ss, Virtual Port 11, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port11.dmission.lstick_right - -;ss, Virtual Port 11, Dual Mission: L Throttle Down (Analog) -ss.input.port11.dmission.lthrottle_down - -;ss, Virtual Port 11, Dual Mission: L Throttle Up (Analog) -ss.input.port11.dmission.lthrottle_up - -;ss, Virtual Port 11, Dual Mission: R -ss.input.port11.dmission.r - -;ss, Virtual Port 11, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port11.dmission.rstick_back - -;ss, Virtual Port 11, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port11.dmission.rstick_fore - -;ss, Virtual Port 11, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port11.dmission.rstick_left - -;ss, Virtual Port 11, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port11.dmission.rstick_right - -;ss, Virtual Port 11, Dual Mission: R Throttle Down (Analog) -ss.input.port11.dmission.rthrottle_down - -;ss, Virtual Port 11, Dual Mission: R Throttle Up (Analog) -ss.input.port11.dmission.rthrottle_up - -;ss, Virtual Port 11, Dual Mission: START -ss.input.port11.dmission.start - -;ss, Virtual Port 11, Dual Mission: X (L Stick Trigger) -ss.input.port11.dmission.x - -;ss, Virtual Port 11, Dual Mission: Y (L Stick Left Button) -ss.input.port11.dmission.y - -;ss, Virtual Port 11, Dual Mission: Z (L Stick Right Button) -ss.input.port11.dmission.z - -;ss, Virtual Port 11, Digital Gamepad: A -ss.input.port11.gamepad.a - -;ss, Virtual Port 11, Digital Gamepad: B -ss.input.port11.gamepad.b - -;ss, Virtual Port 11, Digital Gamepad: C -ss.input.port11.gamepad.c - -;ss, Virtual Port 11, Digital Gamepad: DOWN ↓ -ss.input.port11.gamepad.down - -;ss, Virtual Port 11, Digital Gamepad: LEFT ← -ss.input.port11.gamepad.left - -;ss, Virtual Port 11, Digital Gamepad: Left Shoulder -ss.input.port11.gamepad.ls - -;ss, Virtual Port 11, Digital Gamepad: RIGHT → -ss.input.port11.gamepad.right - -;ss, Virtual Port 11, Digital Gamepad: Right Shoulder -ss.input.port11.gamepad.rs - -;ss, Virtual Port 11, Digital Gamepad: START -ss.input.port11.gamepad.start - -;ss, Virtual Port 11, Digital Gamepad: UP ↑ -ss.input.port11.gamepad.up - -;ss, Virtual Port 11, Digital Gamepad: X -ss.input.port11.gamepad.x - -;ss, Virtual Port 11, Digital Gamepad: Y -ss.input.port11.gamepad.y - -;ss, Virtual Port 11, Digital Gamepad: Z -ss.input.port11.gamepad.z - -;ss, Virtual Port 11, Light Gun: Offscreen Shot(Simulated) -ss.input.port11.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 11, Light Gun: START -ss.input.port11.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 11, Light Gun: Trigger -ss.input.port11.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 11, Light Gun: X Axis -ss.input.port11.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 11, Light Gun: Y Axis -ss.input.port11.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 11. -ss.input.port11.gun_chairs 0x8080FF - -;ss, Virtual Port 11, Keyboard (JP): 0(Zero) -ss.input.port11.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 11, Keyboard (JP): 1(One) -ss.input.port11.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 11, Keyboard (JP): 2 -ss.input.port11.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 11, Keyboard (JP): 3 -ss.input.port11.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 11, Keyboard (JP): 4 -ss.input.port11.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 11, Keyboard (JP): 5 -ss.input.port11.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 11, Keyboard (JP): 6 -ss.input.port11.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 11, Keyboard (JP): 7 -ss.input.port11.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 11, Keyboard (JP): 8 -ss.input.port11.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 11, Keyboard (JP): 9 -ss.input.port11.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 11, Keyboard (JP): A -ss.input.port11.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 11, Keyboard (JP): At @ -ss.input.port11.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 11, Keyboard (JP): B -ss.input.port11.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 11, Keyboard (JP): Backslash \ -ss.input.port11.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 11, Keyboard (JP): Backspace -ss.input.port11.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 11, Keyboard (JP): C -ss.input.port11.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 11, Keyboard (JP): Caps Lock/英数 -ss.input.port11.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 11, Keyboard (JP): Circumflex ^ -ss.input.port11.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 11, Keyboard (JP): Colon : -ss.input.port11.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 11, Keyboard (JP): Comma , -ss.input.port11.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 11, Keyboard (JP): 変換 -ss.input.port11.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 11, Keyboard (JP): D -ss.input.port11.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 11, Keyboard (JP): Delete -ss.input.port11.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 11, Keyboard (JP): Down -ss.input.port11.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 11, Keyboard (JP): E -ss.input.port11.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 11, Keyboard (JP): End -ss.input.port11.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 11, Keyboard (JP): Enter -ss.input.port11.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 11, Keyboard (JP): Escape -ss.input.port11.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 11, Keyboard (JP): F -ss.input.port11.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 11, Keyboard (JP): F1 -ss.input.port11.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 11, Keyboard (JP): F10 -ss.input.port11.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 11, Keyboard (JP): F11 -ss.input.port11.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 11, Keyboard (JP): F12 -ss.input.port11.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 11, Keyboard (JP): F2 -ss.input.port11.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 11, Keyboard (JP): F3 -ss.input.port11.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 11, Keyboard (JP): F4 -ss.input.port11.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 11, Keyboard (JP): F5 -ss.input.port11.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 11, Keyboard (JP): F6 -ss.input.port11.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 11, Keyboard (JP): F7 -ss.input.port11.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 11, Keyboard (JP): F8 -ss.input.port11.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 11, Keyboard (JP): F9 -ss.input.port11.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 11, Keyboard (JP): G -ss.input.port11.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 11, Keyboard (JP): H -ss.input.port11.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 11, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port11.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 11, Keyboard (JP): Home -ss.input.port11.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 11, Keyboard (JP): 半角/全角/漢字 -ss.input.port11.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 11, Keyboard (JP): I -ss.input.port11.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 11, Keyboard (JP): Insert -ss.input.port11.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 11, Keyboard (JP): J -ss.input.port11.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 11, Keyboard (JP): K -ss.input.port11.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 11, Keyboard (JP): L -ss.input.port11.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 11, Keyboard (JP): Left Alt -ss.input.port11.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 11, Keyboard (JP): Left Ctrl -ss.input.port11.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 11, Keyboard (JP): Cursor Left -ss.input.port11.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 11, Keyboard (JP): Left Bracket [ -ss.input.port11.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 11, Keyboard (JP): Left Shift -ss.input.port11.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 11, Keyboard (JP): M -ss.input.port11.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 11, Keyboard (JP): Minus - -ss.input.port11.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 11, Keyboard (JP): N -ss.input.port11.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 11, Keyboard (JP): 無変換 -ss.input.port11.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 11, Keyboard (JP): O -ss.input.port11.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 11, Keyboard (JP): P -ss.input.port11.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 11, Keyboard (JP): Page Down -ss.input.port11.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 11, Keyboard (JP): Page Up -ss.input.port11.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 11, Keyboard (JP): Pause -ss.input.port11.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 11, Keyboard (JP): Period . -ss.input.port11.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 11, Keyboard (JP): Print Screen -ss.input.port11.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 11, Keyboard (JP): Q -ss.input.port11.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 11, Keyboard (JP): R -ss.input.port11.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 11, Keyboard (JP): Right Alt -ss.input.port11.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 11, Keyboard (JP): Right Ctrl -ss.input.port11.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 11, Keyboard (JP): Right -ss.input.port11.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 11, Keyboard (JP): Right Bracket ] -ss.input.port11.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 11, Keyboard (JP): Right Shift -ss.input.port11.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 11, Keyboard (JP): S -ss.input.port11.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 11, Keyboard (JP): Scroll Lock -ss.input.port11.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 11, Keyboard (JP): Semicolon ; -ss.input.port11.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 11, Keyboard (JP): Slash / -ss.input.port11.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 11, Keyboard (JP): Space -ss.input.port11.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 11, Keyboard (JP): T -ss.input.port11.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 11, Keyboard (JP): Tab -ss.input.port11.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 11, Keyboard (JP): U -ss.input.port11.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 11, Keyboard (JP): Up -ss.input.port11.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 11, Keyboard (JP): V -ss.input.port11.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 11, Keyboard (JP): W -ss.input.port11.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 11, Keyboard (JP): X -ss.input.port11.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 11, Keyboard (JP): Y -ss.input.port11.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 11, Keyboard (JP): Yen ¥ -ss.input.port11.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 11, Keyboard (JP): Z -ss.input.port11.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 11, Keyboard (US): 0(Zero) -ss.input.port11.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 11, Keyboard (US): 1(One) -ss.input.port11.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 11, Keyboard (US): 2 -ss.input.port11.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 11, Keyboard (US): 3 -ss.input.port11.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 11, Keyboard (US): 4 -ss.input.port11.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 11, Keyboard (US): 5 -ss.input.port11.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 11, Keyboard (US): 6 -ss.input.port11.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 11, Keyboard (US): 7 -ss.input.port11.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 11, Keyboard (US): 8 -ss.input.port11.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 11, Keyboard (US): 9 -ss.input.port11.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 11, Keyboard (US): A -ss.input.port11.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 11, Keyboard (US): B -ss.input.port11.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 11, Keyboard (US): Backslash \ -ss.input.port11.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 11, Keyboard (US): Backspace -ss.input.port11.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 11, Keyboard (US): C -ss.input.port11.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 11, Keyboard (US): Caps Lock -ss.input.port11.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 11, Keyboard (US): Comma , -ss.input.port11.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 11, Keyboard (US): D -ss.input.port11.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 11, Keyboard (US): Delete -ss.input.port11.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 11, Keyboard (US): Down -ss.input.port11.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 11, Keyboard (US): E -ss.input.port11.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 11, Keyboard (US): End -ss.input.port11.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 11, Keyboard (US): Enter -ss.input.port11.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 11, Keyboard (US): Equals = -ss.input.port11.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 11, Keyboard (US): Escape -ss.input.port11.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 11, Keyboard (US): F -ss.input.port11.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 11, Keyboard (US): F1 -ss.input.port11.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 11, Keyboard (US): F10 -ss.input.port11.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 11, Keyboard (US): F11 -ss.input.port11.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 11, Keyboard (US): F12 -ss.input.port11.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 11, Keyboard (US): F2 -ss.input.port11.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 11, Keyboard (US): F3 -ss.input.port11.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 11, Keyboard (US): F4 -ss.input.port11.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 11, Keyboard (US): F5 -ss.input.port11.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 11, Keyboard (US): F6 -ss.input.port11.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 11, Keyboard (US): F7 -ss.input.port11.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 11, Keyboard (US): F8 -ss.input.port11.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 11, Keyboard (US): F9 -ss.input.port11.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 11, Keyboard (US): G -ss.input.port11.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 11, Keyboard (US): Grave ` -ss.input.port11.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 11, Keyboard (US): H -ss.input.port11.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 11, Keyboard (US): Home -ss.input.port11.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 11, Keyboard (US): I -ss.input.port11.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 11, Keyboard (US): Insert -ss.input.port11.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 11, Keyboard (US): J -ss.input.port11.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 11, Keyboard (US): K -ss.input.port11.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 11, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port11.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 11, Keyboard (US): Keypad Center/5 -ss.input.port11.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 11, Keyboard (US): Keypad Delete -ss.input.port11.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 11, Keyboard (US): Keypad Down/2 -ss.input.port11.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 11, Keyboard (US): Keypad End/1 -ss.input.port11.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 11, Keyboard (US): Keypad Enter -ss.input.port11.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 11, Keyboard (US): Keypad Home/7 -ss.input.port11.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 11, Keyboard (US): Keypad Insert/0 -ss.input.port11.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 11, Keyboard (US): Keypad Left/4 -ss.input.port11.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 11, Keyboard (US): Keypad Minus -ss.input.port11.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 11, Keyboard (US): Keypad Pagedown/3 -ss.input.port11.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 11, Keyboard (US): Keypad Pageup/9 -ss.input.port11.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 11, Keyboard (US): Keypad Plus -ss.input.port11.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 11, Keyboard (US): Keypad Right/6 -ss.input.port11.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 11, Keyboard (US): Keypad Slash(Divide) -ss.input.port11.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 11, Keyboard (US): Keypad Up/8 -ss.input.port11.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 11, Keyboard (US): L -ss.input.port11.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 11, Keyboard (US): Left Alt -ss.input.port11.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 11, Keyboard (US): Left Ctrl -ss.input.port11.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 11, Keyboard (US): Cursor Left -ss.input.port11.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 11, Keyboard (US): Left Bracket [ -ss.input.port11.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 11, Keyboard (US): Left Shift -ss.input.port11.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 11, Keyboard (US): M -ss.input.port11.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 11, Keyboard (US): Minus - -ss.input.port11.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 11, Keyboard (US): N -ss.input.port11.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 11, Keyboard (US): Num Lock -ss.input.port11.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 11, Keyboard (US): O -ss.input.port11.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 11, Keyboard (US): P -ss.input.port11.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 11, Keyboard (US): Page Down -ss.input.port11.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 11, Keyboard (US): Page Up -ss.input.port11.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 11, Keyboard (US): Pause -ss.input.port11.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 11, Keyboard (US): Period . -ss.input.port11.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 11, Keyboard (US): Print Screen -ss.input.port11.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 11, Keyboard (US): Q -ss.input.port11.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 11, Keyboard (US): Quote ' -ss.input.port11.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 11, Keyboard (US): R -ss.input.port11.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 11, Keyboard (US): Right Alt -ss.input.port11.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 11, Keyboard (US): Right Ctrl -ss.input.port11.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 11, Keyboard (US): Right -ss.input.port11.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 11, Keyboard (US): Right Bracket ] -ss.input.port11.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 11, Keyboard (US): Right Shift -ss.input.port11.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 11, Keyboard (US): S -ss.input.port11.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 11, Keyboard (US): Scroll Lock -ss.input.port11.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 11, Keyboard (US): Semicolon ; -ss.input.port11.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 11, Keyboard (US): Slash / -ss.input.port11.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 11, Keyboard (US): Space -ss.input.port11.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 11, Keyboard (US): T -ss.input.port11.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 11, Keyboard (US): Tab -ss.input.port11.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 11, Keyboard (US): U -ss.input.port11.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 11, Keyboard (US): Up -ss.input.port11.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 11, Keyboard (US): V -ss.input.port11.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 11, Keyboard (US): W -ss.input.port11.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 11, Keyboard (US): X -ss.input.port11.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 11, Keyboard (US): Y -ss.input.port11.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 11, Keyboard (US): Z -ss.input.port11.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 11, Mission Stick: A (Stick Trigger) -ss.input.port11.mission.a - -;ss, Virtual Port 11, Mission Stick: A AF -ss.input.port11.mission.afa - -;Default position for switch "A AF". -ss.input.port11.mission.afa.defpos off - -;ss, Virtual Port 11, Mission Stick: B AF -ss.input.port11.mission.afb - -;Default position for switch "B AF". -ss.input.port11.mission.afb.defpos off - -;ss, Virtual Port 11, Mission Stick: C AF -ss.input.port11.mission.afc - -;Default position for switch "C AF". -ss.input.port11.mission.afc.defpos off - -;ss, Virtual Port 11, Mission Stick: L AF -ss.input.port11.mission.afl - -;Default position for switch "L AF". -ss.input.port11.mission.afl.defpos off - -;ss, Virtual Port 11, Mission Stick: R AF -ss.input.port11.mission.afr - -;Default position for switch "R AF". -ss.input.port11.mission.afr.defpos off - -;ss, Virtual Port 11, Mission Stick: AF Speed -ss.input.port11.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port11.mission.afspeed.defpos 1 - -;ss, Virtual Port 11, Mission Stick: X AF -ss.input.port11.mission.afx - -;Default position for switch "X AF". -ss.input.port11.mission.afx.defpos off - -;ss, Virtual Port 11, Mission Stick: Y AF -ss.input.port11.mission.afy - -;Default position for switch "Y AF". -ss.input.port11.mission.afy.defpos off - -;ss, Virtual Port 11, Mission Stick: Z AF -ss.input.port11.mission.afz - -;Default position for switch "Z AF". -ss.input.port11.mission.afz.defpos off - -;ss, Virtual Port 11, Mission Stick: B (Stick Left Button) -ss.input.port11.mission.b - -;ss, Virtual Port 11, Mission Stick: C (Stick Right Button) -ss.input.port11.mission.c - -;ss, Virtual Port 11, Mission Stick: L -ss.input.port11.mission.l - -;ss, Virtual Port 11, Mission Stick: R -ss.input.port11.mission.r - -;ss, Virtual Port 11, Mission Stick: START -ss.input.port11.mission.start - -;ss, Virtual Port 11, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port11.mission.stick_back - -;ss, Virtual Port 11, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port11.mission.stick_fore - -;ss, Virtual Port 11, Mission Stick: Stick LEFT ← (Analog) -ss.input.port11.mission.stick_left - -;ss, Virtual Port 11, Mission Stick: Stick RIGHT → (Analog) -ss.input.port11.mission.stick_right - -;ss, Virtual Port 11, Mission Stick: Throttle Down (Analog) -ss.input.port11.mission.throttle_down - -;ss, Virtual Port 11, Mission Stick: Throttle Up (Analog) -ss.input.port11.mission.throttle_up - -;ss, Virtual Port 11, Mission Stick: X -ss.input.port11.mission.x - -;ss, Virtual Port 11, Mission Stick: Y -ss.input.port11.mission.y - -;ss, Virtual Port 11, Mission Stick: Z -ss.input.port11.mission.z - -;ss, Virtual Port 11, Mouse: Left Button -ss.input.port11.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 11, Mouse: Middle Button -ss.input.port11.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 11, Mouse: Motion Down -ss.input.port11.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 11, Mouse: Motion Left -ss.input.port11.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 11, Mouse: Motion Right -ss.input.port11.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 11, Mouse: Motion Up -ss.input.port11.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 11, Mouse: Right Button -ss.input.port11.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 11, Mouse: Start -ss.input.port11.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 11, Steering Wheel: A (R Group) -ss.input.port11.wheel.a - -;ss, Virtual Port 11, Steering Wheel: Analog LEFT ← -ss.input.port11.wheel.analog_left - -;ss, Virtual Port 11, Steering Wheel: Analog RIGHT → -ss.input.port11.wheel.analog_right - -;ss, Virtual Port 11, Steering Wheel: B (R Group) -ss.input.port11.wheel.b - -;ss, Virtual Port 11, Steering Wheel: C (R Group) -ss.input.port11.wheel.c - -;ss, Virtual Port 11, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port11.wheel.down - -;ss, Virtual Port 11, Steering Wheel: START -ss.input.port11.wheel.start - -;ss, Virtual Port 11, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port11.wheel.up - -;ss, Virtual Port 11, Steering Wheel: X (L Group) -ss.input.port11.wheel.x - -;ss, Virtual Port 11, Steering Wheel: Y (L Group) -ss.input.port11.wheel.y - -;ss, Virtual Port 11, Steering Wheel: Z (L Group) -ss.input.port11.wheel.z - -;Input device for Virtual Port 12 -ss.input.port12 gamepad - -;ss, Virtual Port 12, 3D Control Pad: A -ss.input.port12.3dpad.a - -;ss, Virtual Port 12, 3D Control Pad: Analog DOWN ↓ -ss.input.port12.3dpad.analog_down - -;ss, Virtual Port 12, 3D Control Pad: Analog LEFT ← -ss.input.port12.3dpad.analog_left - -;ss, Virtual Port 12, 3D Control Pad: Analog RIGHT → -ss.input.port12.3dpad.analog_right - -;ss, Virtual Port 12, 3D Control Pad: Analog UP ↑ -ss.input.port12.3dpad.analog_up - -;ss, Virtual Port 12, 3D Control Pad: B -ss.input.port12.3dpad.b - -;ss, Virtual Port 12, 3D Control Pad: C -ss.input.port12.3dpad.c - -;ss, Virtual Port 12, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port12.3dpad.down - -;ss, Virtual Port 12, 3D Control Pad: D-Pad LEFT ← -ss.input.port12.3dpad.left - -;ss, Virtual Port 12, 3D Control Pad: Left Shoulder (Analog) -ss.input.port12.3dpad.ls - -;ss, Virtual Port 12, 3D Control Pad: Mode -ss.input.port12.3dpad.mode - -;Default position for switch "Mode". -ss.input.port12.3dpad.mode.defpos digital - -;ss, Virtual Port 12, 3D Control Pad: D-Pad RIGHT → -ss.input.port12.3dpad.right - -;ss, Virtual Port 12, 3D Control Pad: Right Shoulder (Analog) -ss.input.port12.3dpad.rs - -;ss, Virtual Port 12, 3D Control Pad: START -ss.input.port12.3dpad.start - -;ss, Virtual Port 12, 3D Control Pad: D-Pad UP ↑ -ss.input.port12.3dpad.up - -;ss, Virtual Port 12, 3D Control Pad: X -ss.input.port12.3dpad.x - -;ss, Virtual Port 12, 3D Control Pad: Y -ss.input.port12.3dpad.y - -;ss, Virtual Port 12, 3D Control Pad: Z -ss.input.port12.3dpad.z - -;ss, Virtual Port 12, Dual Mission: A (R Stick Trigger) -ss.input.port12.dmission.a - -;ss, Virtual Port 12, Dual Mission: A AF -ss.input.port12.dmission.afa - -;Default position for switch "A AF". -ss.input.port12.dmission.afa.defpos off - -;ss, Virtual Port 12, Dual Mission: B AF -ss.input.port12.dmission.afb - -;Default position for switch "B AF". -ss.input.port12.dmission.afb.defpos off - -;ss, Virtual Port 12, Dual Mission: C AF -ss.input.port12.dmission.afc - -;Default position for switch "C AF". -ss.input.port12.dmission.afc.defpos off - -;ss, Virtual Port 12, Dual Mission: L AF -ss.input.port12.dmission.afl - -;Default position for switch "L AF". -ss.input.port12.dmission.afl.defpos off - -;ss, Virtual Port 12, Dual Mission: R AF -ss.input.port12.dmission.afr - -;Default position for switch "R AF". -ss.input.port12.dmission.afr.defpos off - -;ss, Virtual Port 12, Dual Mission: Autofire Speed -ss.input.port12.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port12.dmission.afspeed.defpos 1 - -;ss, Virtual Port 12, Dual Mission: X AF -ss.input.port12.dmission.afx - -;Default position for switch "X AF". -ss.input.port12.dmission.afx.defpos off - -;ss, Virtual Port 12, Dual Mission: Y AF -ss.input.port12.dmission.afy - -;Default position for switch "Y AF". -ss.input.port12.dmission.afy.defpos off - -;ss, Virtual Port 12, Dual Mission: Z AF -ss.input.port12.dmission.afz - -;Default position for switch "Z AF". -ss.input.port12.dmission.afz.defpos off - -;ss, Virtual Port 12, Dual Mission: B (R Stick Left Button) -ss.input.port12.dmission.b - -;ss, Virtual Port 12, Dual Mission: C (R Stick Right Button) -ss.input.port12.dmission.c - -;ss, Virtual Port 12, Dual Mission: L -ss.input.port12.dmission.l - -;ss, Virtual Port 12, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port12.dmission.lstick_back - -;ss, Virtual Port 12, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port12.dmission.lstick_fore - -;ss, Virtual Port 12, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port12.dmission.lstick_left - -;ss, Virtual Port 12, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port12.dmission.lstick_right - -;ss, Virtual Port 12, Dual Mission: L Throttle Down (Analog) -ss.input.port12.dmission.lthrottle_down - -;ss, Virtual Port 12, Dual Mission: L Throttle Up (Analog) -ss.input.port12.dmission.lthrottle_up - -;ss, Virtual Port 12, Dual Mission: R -ss.input.port12.dmission.r - -;ss, Virtual Port 12, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port12.dmission.rstick_back - -;ss, Virtual Port 12, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port12.dmission.rstick_fore - -;ss, Virtual Port 12, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port12.dmission.rstick_left - -;ss, Virtual Port 12, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port12.dmission.rstick_right - -;ss, Virtual Port 12, Dual Mission: R Throttle Down (Analog) -ss.input.port12.dmission.rthrottle_down - -;ss, Virtual Port 12, Dual Mission: R Throttle Up (Analog) -ss.input.port12.dmission.rthrottle_up - -;ss, Virtual Port 12, Dual Mission: START -ss.input.port12.dmission.start - -;ss, Virtual Port 12, Dual Mission: X (L Stick Trigger) -ss.input.port12.dmission.x - -;ss, Virtual Port 12, Dual Mission: Y (L Stick Left Button) -ss.input.port12.dmission.y - -;ss, Virtual Port 12, Dual Mission: Z (L Stick Right Button) -ss.input.port12.dmission.z - -;ss, Virtual Port 12, Digital Gamepad: A -ss.input.port12.gamepad.a - -;ss, Virtual Port 12, Digital Gamepad: B -ss.input.port12.gamepad.b - -;ss, Virtual Port 12, Digital Gamepad: C -ss.input.port12.gamepad.c - -;ss, Virtual Port 12, Digital Gamepad: DOWN ↓ -ss.input.port12.gamepad.down - -;ss, Virtual Port 12, Digital Gamepad: LEFT ← -ss.input.port12.gamepad.left - -;ss, Virtual Port 12, Digital Gamepad: Left Shoulder -ss.input.port12.gamepad.ls - -;ss, Virtual Port 12, Digital Gamepad: RIGHT → -ss.input.port12.gamepad.right - -;ss, Virtual Port 12, Digital Gamepad: Right Shoulder -ss.input.port12.gamepad.rs - -;ss, Virtual Port 12, Digital Gamepad: START -ss.input.port12.gamepad.start - -;ss, Virtual Port 12, Digital Gamepad: UP ↑ -ss.input.port12.gamepad.up - -;ss, Virtual Port 12, Digital Gamepad: X -ss.input.port12.gamepad.x - -;ss, Virtual Port 12, Digital Gamepad: Y -ss.input.port12.gamepad.y - -;ss, Virtual Port 12, Digital Gamepad: Z -ss.input.port12.gamepad.z - -;ss, Virtual Port 12, Light Gun: Offscreen Shot(Simulated) -ss.input.port12.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 12, Light Gun: START -ss.input.port12.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 12, Light Gun: Trigger -ss.input.port12.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 12, Light Gun: X Axis -ss.input.port12.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 12, Light Gun: Y Axis -ss.input.port12.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 12. -ss.input.port12.gun_chairs 0xFF8080 - -;ss, Virtual Port 12, Keyboard (JP): 0(Zero) -ss.input.port12.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 12, Keyboard (JP): 1(One) -ss.input.port12.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 12, Keyboard (JP): 2 -ss.input.port12.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 12, Keyboard (JP): 3 -ss.input.port12.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 12, Keyboard (JP): 4 -ss.input.port12.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 12, Keyboard (JP): 5 -ss.input.port12.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 12, Keyboard (JP): 6 -ss.input.port12.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 12, Keyboard (JP): 7 -ss.input.port12.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 12, Keyboard (JP): 8 -ss.input.port12.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 12, Keyboard (JP): 9 -ss.input.port12.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 12, Keyboard (JP): A -ss.input.port12.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 12, Keyboard (JP): At @ -ss.input.port12.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 12, Keyboard (JP): B -ss.input.port12.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 12, Keyboard (JP): Backslash \ -ss.input.port12.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 12, Keyboard (JP): Backspace -ss.input.port12.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 12, Keyboard (JP): C -ss.input.port12.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 12, Keyboard (JP): Caps Lock/英数 -ss.input.port12.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 12, Keyboard (JP): Circumflex ^ -ss.input.port12.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 12, Keyboard (JP): Colon : -ss.input.port12.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 12, Keyboard (JP): Comma , -ss.input.port12.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 12, Keyboard (JP): 変換 -ss.input.port12.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 12, Keyboard (JP): D -ss.input.port12.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 12, Keyboard (JP): Delete -ss.input.port12.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 12, Keyboard (JP): Down -ss.input.port12.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 12, Keyboard (JP): E -ss.input.port12.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 12, Keyboard (JP): End -ss.input.port12.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 12, Keyboard (JP): Enter -ss.input.port12.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 12, Keyboard (JP): Escape -ss.input.port12.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 12, Keyboard (JP): F -ss.input.port12.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 12, Keyboard (JP): F1 -ss.input.port12.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 12, Keyboard (JP): F10 -ss.input.port12.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 12, Keyboard (JP): F11 -ss.input.port12.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 12, Keyboard (JP): F12 -ss.input.port12.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 12, Keyboard (JP): F2 -ss.input.port12.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 12, Keyboard (JP): F3 -ss.input.port12.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 12, Keyboard (JP): F4 -ss.input.port12.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 12, Keyboard (JP): F5 -ss.input.port12.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 12, Keyboard (JP): F6 -ss.input.port12.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 12, Keyboard (JP): F7 -ss.input.port12.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 12, Keyboard (JP): F8 -ss.input.port12.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 12, Keyboard (JP): F9 -ss.input.port12.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 12, Keyboard (JP): G -ss.input.port12.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 12, Keyboard (JP): H -ss.input.port12.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 12, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port12.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 12, Keyboard (JP): Home -ss.input.port12.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 12, Keyboard (JP): 半角/全角/漢字 -ss.input.port12.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 12, Keyboard (JP): I -ss.input.port12.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 12, Keyboard (JP): Insert -ss.input.port12.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 12, Keyboard (JP): J -ss.input.port12.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 12, Keyboard (JP): K -ss.input.port12.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 12, Keyboard (JP): L -ss.input.port12.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 12, Keyboard (JP): Left Alt -ss.input.port12.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 12, Keyboard (JP): Left Ctrl -ss.input.port12.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 12, Keyboard (JP): Cursor Left -ss.input.port12.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 12, Keyboard (JP): Left Bracket [ -ss.input.port12.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 12, Keyboard (JP): Left Shift -ss.input.port12.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 12, Keyboard (JP): M -ss.input.port12.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 12, Keyboard (JP): Minus - -ss.input.port12.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 12, Keyboard (JP): N -ss.input.port12.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 12, Keyboard (JP): 無変換 -ss.input.port12.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 12, Keyboard (JP): O -ss.input.port12.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 12, Keyboard (JP): P -ss.input.port12.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 12, Keyboard (JP): Page Down -ss.input.port12.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 12, Keyboard (JP): Page Up -ss.input.port12.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 12, Keyboard (JP): Pause -ss.input.port12.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 12, Keyboard (JP): Period . -ss.input.port12.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 12, Keyboard (JP): Print Screen -ss.input.port12.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 12, Keyboard (JP): Q -ss.input.port12.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 12, Keyboard (JP): R -ss.input.port12.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 12, Keyboard (JP): Right Alt -ss.input.port12.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 12, Keyboard (JP): Right Ctrl -ss.input.port12.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 12, Keyboard (JP): Right -ss.input.port12.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 12, Keyboard (JP): Right Bracket ] -ss.input.port12.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 12, Keyboard (JP): Right Shift -ss.input.port12.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 12, Keyboard (JP): S -ss.input.port12.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 12, Keyboard (JP): Scroll Lock -ss.input.port12.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 12, Keyboard (JP): Semicolon ; -ss.input.port12.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 12, Keyboard (JP): Slash / -ss.input.port12.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 12, Keyboard (JP): Space -ss.input.port12.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 12, Keyboard (JP): T -ss.input.port12.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 12, Keyboard (JP): Tab -ss.input.port12.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 12, Keyboard (JP): U -ss.input.port12.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 12, Keyboard (JP): Up -ss.input.port12.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 12, Keyboard (JP): V -ss.input.port12.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 12, Keyboard (JP): W -ss.input.port12.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 12, Keyboard (JP): X -ss.input.port12.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 12, Keyboard (JP): Y -ss.input.port12.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 12, Keyboard (JP): Yen ¥ -ss.input.port12.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 12, Keyboard (JP): Z -ss.input.port12.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 12, Keyboard (US): 0(Zero) -ss.input.port12.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 12, Keyboard (US): 1(One) -ss.input.port12.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 12, Keyboard (US): 2 -ss.input.port12.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 12, Keyboard (US): 3 -ss.input.port12.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 12, Keyboard (US): 4 -ss.input.port12.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 12, Keyboard (US): 5 -ss.input.port12.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 12, Keyboard (US): 6 -ss.input.port12.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 12, Keyboard (US): 7 -ss.input.port12.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 12, Keyboard (US): 8 -ss.input.port12.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 12, Keyboard (US): 9 -ss.input.port12.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 12, Keyboard (US): A -ss.input.port12.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 12, Keyboard (US): B -ss.input.port12.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 12, Keyboard (US): Backslash \ -ss.input.port12.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 12, Keyboard (US): Backspace -ss.input.port12.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 12, Keyboard (US): C -ss.input.port12.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 12, Keyboard (US): Caps Lock -ss.input.port12.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 12, Keyboard (US): Comma , -ss.input.port12.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 12, Keyboard (US): D -ss.input.port12.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 12, Keyboard (US): Delete -ss.input.port12.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 12, Keyboard (US): Down -ss.input.port12.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 12, Keyboard (US): E -ss.input.port12.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 12, Keyboard (US): End -ss.input.port12.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 12, Keyboard (US): Enter -ss.input.port12.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 12, Keyboard (US): Equals = -ss.input.port12.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 12, Keyboard (US): Escape -ss.input.port12.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 12, Keyboard (US): F -ss.input.port12.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 12, Keyboard (US): F1 -ss.input.port12.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 12, Keyboard (US): F10 -ss.input.port12.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 12, Keyboard (US): F11 -ss.input.port12.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 12, Keyboard (US): F12 -ss.input.port12.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 12, Keyboard (US): F2 -ss.input.port12.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 12, Keyboard (US): F3 -ss.input.port12.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 12, Keyboard (US): F4 -ss.input.port12.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 12, Keyboard (US): F5 -ss.input.port12.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 12, Keyboard (US): F6 -ss.input.port12.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 12, Keyboard (US): F7 -ss.input.port12.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 12, Keyboard (US): F8 -ss.input.port12.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 12, Keyboard (US): F9 -ss.input.port12.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 12, Keyboard (US): G -ss.input.port12.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 12, Keyboard (US): Grave ` -ss.input.port12.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 12, Keyboard (US): H -ss.input.port12.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 12, Keyboard (US): Home -ss.input.port12.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 12, Keyboard (US): I -ss.input.port12.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 12, Keyboard (US): Insert -ss.input.port12.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 12, Keyboard (US): J -ss.input.port12.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 12, Keyboard (US): K -ss.input.port12.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 12, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port12.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 12, Keyboard (US): Keypad Center/5 -ss.input.port12.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 12, Keyboard (US): Keypad Delete -ss.input.port12.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 12, Keyboard (US): Keypad Down/2 -ss.input.port12.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 12, Keyboard (US): Keypad End/1 -ss.input.port12.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 12, Keyboard (US): Keypad Enter -ss.input.port12.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 12, Keyboard (US): Keypad Home/7 -ss.input.port12.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 12, Keyboard (US): Keypad Insert/0 -ss.input.port12.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 12, Keyboard (US): Keypad Left/4 -ss.input.port12.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 12, Keyboard (US): Keypad Minus -ss.input.port12.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 12, Keyboard (US): Keypad Pagedown/3 -ss.input.port12.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 12, Keyboard (US): Keypad Pageup/9 -ss.input.port12.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 12, Keyboard (US): Keypad Plus -ss.input.port12.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 12, Keyboard (US): Keypad Right/6 -ss.input.port12.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 12, Keyboard (US): Keypad Slash(Divide) -ss.input.port12.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 12, Keyboard (US): Keypad Up/8 -ss.input.port12.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 12, Keyboard (US): L -ss.input.port12.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 12, Keyboard (US): Left Alt -ss.input.port12.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 12, Keyboard (US): Left Ctrl -ss.input.port12.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 12, Keyboard (US): Cursor Left -ss.input.port12.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 12, Keyboard (US): Left Bracket [ -ss.input.port12.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 12, Keyboard (US): Left Shift -ss.input.port12.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 12, Keyboard (US): M -ss.input.port12.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 12, Keyboard (US): Minus - -ss.input.port12.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 12, Keyboard (US): N -ss.input.port12.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 12, Keyboard (US): Num Lock -ss.input.port12.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 12, Keyboard (US): O -ss.input.port12.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 12, Keyboard (US): P -ss.input.port12.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 12, Keyboard (US): Page Down -ss.input.port12.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 12, Keyboard (US): Page Up -ss.input.port12.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 12, Keyboard (US): Pause -ss.input.port12.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 12, Keyboard (US): Period . -ss.input.port12.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 12, Keyboard (US): Print Screen -ss.input.port12.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 12, Keyboard (US): Q -ss.input.port12.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 12, Keyboard (US): Quote ' -ss.input.port12.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 12, Keyboard (US): R -ss.input.port12.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 12, Keyboard (US): Right Alt -ss.input.port12.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 12, Keyboard (US): Right Ctrl -ss.input.port12.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 12, Keyboard (US): Right -ss.input.port12.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 12, Keyboard (US): Right Bracket ] -ss.input.port12.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 12, Keyboard (US): Right Shift -ss.input.port12.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 12, Keyboard (US): S -ss.input.port12.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 12, Keyboard (US): Scroll Lock -ss.input.port12.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 12, Keyboard (US): Semicolon ; -ss.input.port12.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 12, Keyboard (US): Slash / -ss.input.port12.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 12, Keyboard (US): Space -ss.input.port12.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 12, Keyboard (US): T -ss.input.port12.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 12, Keyboard (US): Tab -ss.input.port12.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 12, Keyboard (US): U -ss.input.port12.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 12, Keyboard (US): Up -ss.input.port12.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 12, Keyboard (US): V -ss.input.port12.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 12, Keyboard (US): W -ss.input.port12.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 12, Keyboard (US): X -ss.input.port12.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 12, Keyboard (US): Y -ss.input.port12.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 12, Keyboard (US): Z -ss.input.port12.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 12, Mission Stick: A (Stick Trigger) -ss.input.port12.mission.a - -;ss, Virtual Port 12, Mission Stick: A AF -ss.input.port12.mission.afa - -;Default position for switch "A AF". -ss.input.port12.mission.afa.defpos off - -;ss, Virtual Port 12, Mission Stick: B AF -ss.input.port12.mission.afb - -;Default position for switch "B AF". -ss.input.port12.mission.afb.defpos off - -;ss, Virtual Port 12, Mission Stick: C AF -ss.input.port12.mission.afc - -;Default position for switch "C AF". -ss.input.port12.mission.afc.defpos off - -;ss, Virtual Port 12, Mission Stick: L AF -ss.input.port12.mission.afl - -;Default position for switch "L AF". -ss.input.port12.mission.afl.defpos off - -;ss, Virtual Port 12, Mission Stick: R AF -ss.input.port12.mission.afr - -;Default position for switch "R AF". -ss.input.port12.mission.afr.defpos off - -;ss, Virtual Port 12, Mission Stick: AF Speed -ss.input.port12.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port12.mission.afspeed.defpos 1 - -;ss, Virtual Port 12, Mission Stick: X AF -ss.input.port12.mission.afx - -;Default position for switch "X AF". -ss.input.port12.mission.afx.defpos off - -;ss, Virtual Port 12, Mission Stick: Y AF -ss.input.port12.mission.afy - -;Default position for switch "Y AF". -ss.input.port12.mission.afy.defpos off - -;ss, Virtual Port 12, Mission Stick: Z AF -ss.input.port12.mission.afz - -;Default position for switch "Z AF". -ss.input.port12.mission.afz.defpos off - -;ss, Virtual Port 12, Mission Stick: B (Stick Left Button) -ss.input.port12.mission.b - -;ss, Virtual Port 12, Mission Stick: C (Stick Right Button) -ss.input.port12.mission.c - -;ss, Virtual Port 12, Mission Stick: L -ss.input.port12.mission.l - -;ss, Virtual Port 12, Mission Stick: R -ss.input.port12.mission.r - -;ss, Virtual Port 12, Mission Stick: START -ss.input.port12.mission.start - -;ss, Virtual Port 12, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port12.mission.stick_back - -;ss, Virtual Port 12, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port12.mission.stick_fore - -;ss, Virtual Port 12, Mission Stick: Stick LEFT ← (Analog) -ss.input.port12.mission.stick_left - -;ss, Virtual Port 12, Mission Stick: Stick RIGHT → (Analog) -ss.input.port12.mission.stick_right - -;ss, Virtual Port 12, Mission Stick: Throttle Down (Analog) -ss.input.port12.mission.throttle_down - -;ss, Virtual Port 12, Mission Stick: Throttle Up (Analog) -ss.input.port12.mission.throttle_up - -;ss, Virtual Port 12, Mission Stick: X -ss.input.port12.mission.x - -;ss, Virtual Port 12, Mission Stick: Y -ss.input.port12.mission.y - -;ss, Virtual Port 12, Mission Stick: Z -ss.input.port12.mission.z - -;ss, Virtual Port 12, Mouse: Left Button -ss.input.port12.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 12, Mouse: Middle Button -ss.input.port12.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 12, Mouse: Motion Down -ss.input.port12.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 12, Mouse: Motion Left -ss.input.port12.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 12, Mouse: Motion Right -ss.input.port12.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 12, Mouse: Motion Up -ss.input.port12.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 12, Mouse: Right Button -ss.input.port12.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 12, Mouse: Start -ss.input.port12.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 12, Steering Wheel: A (R Group) -ss.input.port12.wheel.a - -;ss, Virtual Port 12, Steering Wheel: Analog LEFT ← -ss.input.port12.wheel.analog_left - -;ss, Virtual Port 12, Steering Wheel: Analog RIGHT → -ss.input.port12.wheel.analog_right - -;ss, Virtual Port 12, Steering Wheel: B (R Group) -ss.input.port12.wheel.b - -;ss, Virtual Port 12, Steering Wheel: C (R Group) -ss.input.port12.wheel.c - -;ss, Virtual Port 12, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port12.wheel.down - -;ss, Virtual Port 12, Steering Wheel: START -ss.input.port12.wheel.start - -;ss, Virtual Port 12, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port12.wheel.up - -;ss, Virtual Port 12, Steering Wheel: X (L Group) -ss.input.port12.wheel.x - -;ss, Virtual Port 12, Steering Wheel: Y (L Group) -ss.input.port12.wheel.y - -;ss, Virtual Port 12, Steering Wheel: Z (L Group) -ss.input.port12.wheel.z - -;Input device for Virtual Port 2 -ss.input.port2 gamepad - -;ss, Virtual Port 2, 3D Control Pad: A -ss.input.port2.3dpad.a - -;ss, Virtual Port 2, 3D Control Pad: Analog DOWN ↓ -ss.input.port2.3dpad.analog_down - -;ss, Virtual Port 2, 3D Control Pad: Analog LEFT ← -ss.input.port2.3dpad.analog_left - -;ss, Virtual Port 2, 3D Control Pad: Analog RIGHT → -ss.input.port2.3dpad.analog_right - -;ss, Virtual Port 2, 3D Control Pad: Analog UP ↑ -ss.input.port2.3dpad.analog_up - -;ss, Virtual Port 2, 3D Control Pad: B -ss.input.port2.3dpad.b - -;ss, Virtual Port 2, 3D Control Pad: C -ss.input.port2.3dpad.c - -;ss, Virtual Port 2, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port2.3dpad.down - -;ss, Virtual Port 2, 3D Control Pad: D-Pad LEFT ← -ss.input.port2.3dpad.left - -;ss, Virtual Port 2, 3D Control Pad: Left Shoulder (Analog) -ss.input.port2.3dpad.ls - -;ss, Virtual Port 2, 3D Control Pad: Mode -ss.input.port2.3dpad.mode - -;Default position for switch "Mode". -ss.input.port2.3dpad.mode.defpos digital - -;ss, Virtual Port 2, 3D Control Pad: D-Pad RIGHT → -ss.input.port2.3dpad.right - -;ss, Virtual Port 2, 3D Control Pad: Right Shoulder (Analog) -ss.input.port2.3dpad.rs - -;ss, Virtual Port 2, 3D Control Pad: START -ss.input.port2.3dpad.start - -;ss, Virtual Port 2, 3D Control Pad: D-Pad UP ↑ -ss.input.port2.3dpad.up - -;ss, Virtual Port 2, 3D Control Pad: X -ss.input.port2.3dpad.x - -;ss, Virtual Port 2, 3D Control Pad: Y -ss.input.port2.3dpad.y - -;ss, Virtual Port 2, 3D Control Pad: Z -ss.input.port2.3dpad.z - -;ss, Virtual Port 2, Dual Mission: A (R Stick Trigger) -ss.input.port2.dmission.a - -;ss, Virtual Port 2, Dual Mission: A AF -ss.input.port2.dmission.afa - -;Default position for switch "A AF". -ss.input.port2.dmission.afa.defpos off - -;ss, Virtual Port 2, Dual Mission: B AF -ss.input.port2.dmission.afb - -;Default position for switch "B AF". -ss.input.port2.dmission.afb.defpos off - -;ss, Virtual Port 2, Dual Mission: C AF -ss.input.port2.dmission.afc - -;Default position for switch "C AF". -ss.input.port2.dmission.afc.defpos off - -;ss, Virtual Port 2, Dual Mission: L AF -ss.input.port2.dmission.afl - -;Default position for switch "L AF". -ss.input.port2.dmission.afl.defpos off - -;ss, Virtual Port 2, Dual Mission: R AF -ss.input.port2.dmission.afr - -;Default position for switch "R AF". -ss.input.port2.dmission.afr.defpos off - -;ss, Virtual Port 2, Dual Mission: Autofire Speed -ss.input.port2.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port2.dmission.afspeed.defpos 1 - -;ss, Virtual Port 2, Dual Mission: X AF -ss.input.port2.dmission.afx - -;Default position for switch "X AF". -ss.input.port2.dmission.afx.defpos off - -;ss, Virtual Port 2, Dual Mission: Y AF -ss.input.port2.dmission.afy - -;Default position for switch "Y AF". -ss.input.port2.dmission.afy.defpos off - -;ss, Virtual Port 2, Dual Mission: Z AF -ss.input.port2.dmission.afz - -;Default position for switch "Z AF". -ss.input.port2.dmission.afz.defpos off - -;ss, Virtual Port 2, Dual Mission: B (R Stick Left Button) -ss.input.port2.dmission.b - -;ss, Virtual Port 2, Dual Mission: C (R Stick Right Button) -ss.input.port2.dmission.c - -;ss, Virtual Port 2, Dual Mission: L -ss.input.port2.dmission.l - -;ss, Virtual Port 2, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port2.dmission.lstick_back - -;ss, Virtual Port 2, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port2.dmission.lstick_fore - -;ss, Virtual Port 2, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port2.dmission.lstick_left - -;ss, Virtual Port 2, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port2.dmission.lstick_right - -;ss, Virtual Port 2, Dual Mission: L Throttle Down (Analog) -ss.input.port2.dmission.lthrottle_down - -;ss, Virtual Port 2, Dual Mission: L Throttle Up (Analog) -ss.input.port2.dmission.lthrottle_up - -;ss, Virtual Port 2, Dual Mission: R -ss.input.port2.dmission.r - -;ss, Virtual Port 2, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port2.dmission.rstick_back - -;ss, Virtual Port 2, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port2.dmission.rstick_fore - -;ss, Virtual Port 2, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port2.dmission.rstick_left - -;ss, Virtual Port 2, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port2.dmission.rstick_right - -;ss, Virtual Port 2, Dual Mission: R Throttle Down (Analog) -ss.input.port2.dmission.rthrottle_down - -;ss, Virtual Port 2, Dual Mission: R Throttle Up (Analog) -ss.input.port2.dmission.rthrottle_up - -;ss, Virtual Port 2, Dual Mission: START -ss.input.port2.dmission.start - -;ss, Virtual Port 2, Dual Mission: X (L Stick Trigger) -ss.input.port2.dmission.x - -;ss, Virtual Port 2, Dual Mission: Y (L Stick Left Button) -ss.input.port2.dmission.y - -;ss, Virtual Port 2, Dual Mission: Z (L Stick Right Button) -ss.input.port2.dmission.z - -;ss, Virtual Port 2, Digital Gamepad: A -ss.input.port2.gamepad.a - -;ss, Virtual Port 2, Digital Gamepad: B -ss.input.port2.gamepad.b - -;ss, Virtual Port 2, Digital Gamepad: C -ss.input.port2.gamepad.c - -;ss, Virtual Port 2, Digital Gamepad: DOWN ↓ -ss.input.port2.gamepad.down - -;ss, Virtual Port 2, Digital Gamepad: LEFT ← -ss.input.port2.gamepad.left - -;ss, Virtual Port 2, Digital Gamepad: Left Shoulder -ss.input.port2.gamepad.ls - -;ss, Virtual Port 2, Digital Gamepad: RIGHT → -ss.input.port2.gamepad.right - -;ss, Virtual Port 2, Digital Gamepad: Right Shoulder -ss.input.port2.gamepad.rs - -;ss, Virtual Port 2, Digital Gamepad: START -ss.input.port2.gamepad.start - -;ss, Virtual Port 2, Digital Gamepad: UP ↑ -ss.input.port2.gamepad.up - -;ss, Virtual Port 2, Digital Gamepad: X -ss.input.port2.gamepad.x - -;ss, Virtual Port 2, Digital Gamepad: Y -ss.input.port2.gamepad.y - -;ss, Virtual Port 2, Digital Gamepad: Z -ss.input.port2.gamepad.z - -;ss, Virtual Port 2, Light Gun: Offscreen Shot(Simulated) -ss.input.port2.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 2, Light Gun: START -ss.input.port2.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 2, Light Gun: Trigger -ss.input.port2.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 2, Light Gun: X Axis -ss.input.port2.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 2, Light Gun: Y Axis -ss.input.port2.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 2. -ss.input.port2.gun_chairs 0x00FF00 - -;ss, Virtual Port 2, Keyboard (JP): 0(Zero) -ss.input.port2.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 2, Keyboard (JP): 1(One) -ss.input.port2.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 2, Keyboard (JP): 2 -ss.input.port2.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 2, Keyboard (JP): 3 -ss.input.port2.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 2, Keyboard (JP): 4 -ss.input.port2.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 2, Keyboard (JP): 5 -ss.input.port2.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 2, Keyboard (JP): 6 -ss.input.port2.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 2, Keyboard (JP): 7 -ss.input.port2.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 2, Keyboard (JP): 8 -ss.input.port2.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 2, Keyboard (JP): 9 -ss.input.port2.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 2, Keyboard (JP): A -ss.input.port2.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 2, Keyboard (JP): At @ -ss.input.port2.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 2, Keyboard (JP): B -ss.input.port2.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 2, Keyboard (JP): Backslash \ -ss.input.port2.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 2, Keyboard (JP): Backspace -ss.input.port2.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 2, Keyboard (JP): C -ss.input.port2.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 2, Keyboard (JP): Caps Lock/英数 -ss.input.port2.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 2, Keyboard (JP): Circumflex ^ -ss.input.port2.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 2, Keyboard (JP): Colon : -ss.input.port2.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 2, Keyboard (JP): Comma , -ss.input.port2.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 2, Keyboard (JP): 変換 -ss.input.port2.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 2, Keyboard (JP): D -ss.input.port2.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 2, Keyboard (JP): Delete -ss.input.port2.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 2, Keyboard (JP): Down -ss.input.port2.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 2, Keyboard (JP): E -ss.input.port2.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 2, Keyboard (JP): End -ss.input.port2.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 2, Keyboard (JP): Enter -ss.input.port2.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 2, Keyboard (JP): Escape -ss.input.port2.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 2, Keyboard (JP): F -ss.input.port2.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 2, Keyboard (JP): F1 -ss.input.port2.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 2, Keyboard (JP): F10 -ss.input.port2.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 2, Keyboard (JP): F11 -ss.input.port2.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 2, Keyboard (JP): F12 -ss.input.port2.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 2, Keyboard (JP): F2 -ss.input.port2.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 2, Keyboard (JP): F3 -ss.input.port2.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 2, Keyboard (JP): F4 -ss.input.port2.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 2, Keyboard (JP): F5 -ss.input.port2.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 2, Keyboard (JP): F6 -ss.input.port2.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 2, Keyboard (JP): F7 -ss.input.port2.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 2, Keyboard (JP): F8 -ss.input.port2.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 2, Keyboard (JP): F9 -ss.input.port2.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 2, Keyboard (JP): G -ss.input.port2.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 2, Keyboard (JP): H -ss.input.port2.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 2, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port2.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 2, Keyboard (JP): Home -ss.input.port2.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 2, Keyboard (JP): 半角/全角/漢字 -ss.input.port2.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 2, Keyboard (JP): I -ss.input.port2.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 2, Keyboard (JP): Insert -ss.input.port2.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 2, Keyboard (JP): J -ss.input.port2.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 2, Keyboard (JP): K -ss.input.port2.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 2, Keyboard (JP): L -ss.input.port2.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 2, Keyboard (JP): Left Alt -ss.input.port2.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 2, Keyboard (JP): Left Ctrl -ss.input.port2.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 2, Keyboard (JP): Cursor Left -ss.input.port2.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 2, Keyboard (JP): Left Bracket [ -ss.input.port2.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 2, Keyboard (JP): Left Shift -ss.input.port2.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 2, Keyboard (JP): M -ss.input.port2.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 2, Keyboard (JP): Minus - -ss.input.port2.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 2, Keyboard (JP): N -ss.input.port2.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 2, Keyboard (JP): 無変換 -ss.input.port2.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 2, Keyboard (JP): O -ss.input.port2.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 2, Keyboard (JP): P -ss.input.port2.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 2, Keyboard (JP): Page Down -ss.input.port2.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 2, Keyboard (JP): Page Up -ss.input.port2.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 2, Keyboard (JP): Pause -ss.input.port2.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 2, Keyboard (JP): Period . -ss.input.port2.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 2, Keyboard (JP): Print Screen -ss.input.port2.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 2, Keyboard (JP): Q -ss.input.port2.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 2, Keyboard (JP): R -ss.input.port2.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 2, Keyboard (JP): Right Alt -ss.input.port2.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 2, Keyboard (JP): Right Ctrl -ss.input.port2.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 2, Keyboard (JP): Right -ss.input.port2.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 2, Keyboard (JP): Right Bracket ] -ss.input.port2.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 2, Keyboard (JP): Right Shift -ss.input.port2.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 2, Keyboard (JP): S -ss.input.port2.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 2, Keyboard (JP): Scroll Lock -ss.input.port2.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 2, Keyboard (JP): Semicolon ; -ss.input.port2.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 2, Keyboard (JP): Slash / -ss.input.port2.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 2, Keyboard (JP): Space -ss.input.port2.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 2, Keyboard (JP): T -ss.input.port2.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 2, Keyboard (JP): Tab -ss.input.port2.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 2, Keyboard (JP): U -ss.input.port2.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 2, Keyboard (JP): Up -ss.input.port2.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 2, Keyboard (JP): V -ss.input.port2.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 2, Keyboard (JP): W -ss.input.port2.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 2, Keyboard (JP): X -ss.input.port2.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 2, Keyboard (JP): Y -ss.input.port2.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 2, Keyboard (JP): Yen ¥ -ss.input.port2.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 2, Keyboard (JP): Z -ss.input.port2.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 2, Keyboard (US): 0(Zero) -ss.input.port2.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 2, Keyboard (US): 1(One) -ss.input.port2.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 2, Keyboard (US): 2 -ss.input.port2.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 2, Keyboard (US): 3 -ss.input.port2.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 2, Keyboard (US): 4 -ss.input.port2.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 2, Keyboard (US): 5 -ss.input.port2.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 2, Keyboard (US): 6 -ss.input.port2.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 2, Keyboard (US): 7 -ss.input.port2.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 2, Keyboard (US): 8 -ss.input.port2.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 2, Keyboard (US): 9 -ss.input.port2.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 2, Keyboard (US): A -ss.input.port2.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 2, Keyboard (US): B -ss.input.port2.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 2, Keyboard (US): Backslash \ -ss.input.port2.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 2, Keyboard (US): Backspace -ss.input.port2.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 2, Keyboard (US): C -ss.input.port2.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 2, Keyboard (US): Caps Lock -ss.input.port2.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 2, Keyboard (US): Comma , -ss.input.port2.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 2, Keyboard (US): D -ss.input.port2.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 2, Keyboard (US): Delete -ss.input.port2.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 2, Keyboard (US): Down -ss.input.port2.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 2, Keyboard (US): E -ss.input.port2.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 2, Keyboard (US): End -ss.input.port2.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 2, Keyboard (US): Enter -ss.input.port2.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 2, Keyboard (US): Equals = -ss.input.port2.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 2, Keyboard (US): Escape -ss.input.port2.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 2, Keyboard (US): F -ss.input.port2.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 2, Keyboard (US): F1 -ss.input.port2.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 2, Keyboard (US): F10 -ss.input.port2.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 2, Keyboard (US): F11 -ss.input.port2.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 2, Keyboard (US): F12 -ss.input.port2.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 2, Keyboard (US): F2 -ss.input.port2.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 2, Keyboard (US): F3 -ss.input.port2.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 2, Keyboard (US): F4 -ss.input.port2.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 2, Keyboard (US): F5 -ss.input.port2.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 2, Keyboard (US): F6 -ss.input.port2.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 2, Keyboard (US): F7 -ss.input.port2.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 2, Keyboard (US): F8 -ss.input.port2.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 2, Keyboard (US): F9 -ss.input.port2.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 2, Keyboard (US): G -ss.input.port2.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 2, Keyboard (US): Grave ` -ss.input.port2.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 2, Keyboard (US): H -ss.input.port2.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 2, Keyboard (US): Home -ss.input.port2.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 2, Keyboard (US): I -ss.input.port2.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 2, Keyboard (US): Insert -ss.input.port2.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 2, Keyboard (US): J -ss.input.port2.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 2, Keyboard (US): K -ss.input.port2.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 2, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port2.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 2, Keyboard (US): Keypad Center/5 -ss.input.port2.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 2, Keyboard (US): Keypad Delete -ss.input.port2.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 2, Keyboard (US): Keypad Down/2 -ss.input.port2.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 2, Keyboard (US): Keypad End/1 -ss.input.port2.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 2, Keyboard (US): Keypad Enter -ss.input.port2.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 2, Keyboard (US): Keypad Home/7 -ss.input.port2.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 2, Keyboard (US): Keypad Insert/0 -ss.input.port2.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 2, Keyboard (US): Keypad Left/4 -ss.input.port2.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 2, Keyboard (US): Keypad Minus -ss.input.port2.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 2, Keyboard (US): Keypad Pagedown/3 -ss.input.port2.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 2, Keyboard (US): Keypad Pageup/9 -ss.input.port2.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 2, Keyboard (US): Keypad Plus -ss.input.port2.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 2, Keyboard (US): Keypad Right/6 -ss.input.port2.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 2, Keyboard (US): Keypad Slash(Divide) -ss.input.port2.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 2, Keyboard (US): Keypad Up/8 -ss.input.port2.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 2, Keyboard (US): L -ss.input.port2.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 2, Keyboard (US): Left Alt -ss.input.port2.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 2, Keyboard (US): Left Ctrl -ss.input.port2.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 2, Keyboard (US): Cursor Left -ss.input.port2.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 2, Keyboard (US): Left Bracket [ -ss.input.port2.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 2, Keyboard (US): Left Shift -ss.input.port2.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 2, Keyboard (US): M -ss.input.port2.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 2, Keyboard (US): Minus - -ss.input.port2.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 2, Keyboard (US): N -ss.input.port2.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 2, Keyboard (US): Num Lock -ss.input.port2.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 2, Keyboard (US): O -ss.input.port2.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 2, Keyboard (US): P -ss.input.port2.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 2, Keyboard (US): Page Down -ss.input.port2.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 2, Keyboard (US): Page Up -ss.input.port2.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 2, Keyboard (US): Pause -ss.input.port2.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 2, Keyboard (US): Period . -ss.input.port2.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 2, Keyboard (US): Print Screen -ss.input.port2.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 2, Keyboard (US): Q -ss.input.port2.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 2, Keyboard (US): Quote ' -ss.input.port2.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 2, Keyboard (US): R -ss.input.port2.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 2, Keyboard (US): Right Alt -ss.input.port2.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 2, Keyboard (US): Right Ctrl -ss.input.port2.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 2, Keyboard (US): Right -ss.input.port2.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 2, Keyboard (US): Right Bracket ] -ss.input.port2.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 2, Keyboard (US): Right Shift -ss.input.port2.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 2, Keyboard (US): S -ss.input.port2.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 2, Keyboard (US): Scroll Lock -ss.input.port2.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 2, Keyboard (US): Semicolon ; -ss.input.port2.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 2, Keyboard (US): Slash / -ss.input.port2.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 2, Keyboard (US): Space -ss.input.port2.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 2, Keyboard (US): T -ss.input.port2.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 2, Keyboard (US): Tab -ss.input.port2.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 2, Keyboard (US): U -ss.input.port2.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 2, Keyboard (US): Up -ss.input.port2.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 2, Keyboard (US): V -ss.input.port2.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 2, Keyboard (US): W -ss.input.port2.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 2, Keyboard (US): X -ss.input.port2.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 2, Keyboard (US): Y -ss.input.port2.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 2, Keyboard (US): Z -ss.input.port2.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 2, Mission Stick: A (Stick Trigger) -ss.input.port2.mission.a - -;ss, Virtual Port 2, Mission Stick: A AF -ss.input.port2.mission.afa - -;Default position for switch "A AF". -ss.input.port2.mission.afa.defpos off - -;ss, Virtual Port 2, Mission Stick: B AF -ss.input.port2.mission.afb - -;Default position for switch "B AF". -ss.input.port2.mission.afb.defpos off - -;ss, Virtual Port 2, Mission Stick: C AF -ss.input.port2.mission.afc - -;Default position for switch "C AF". -ss.input.port2.mission.afc.defpos off - -;ss, Virtual Port 2, Mission Stick: L AF -ss.input.port2.mission.afl - -;Default position for switch "L AF". -ss.input.port2.mission.afl.defpos off - -;ss, Virtual Port 2, Mission Stick: R AF -ss.input.port2.mission.afr - -;Default position for switch "R AF". -ss.input.port2.mission.afr.defpos off - -;ss, Virtual Port 2, Mission Stick: AF Speed -ss.input.port2.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port2.mission.afspeed.defpos 1 - -;ss, Virtual Port 2, Mission Stick: X AF -ss.input.port2.mission.afx - -;Default position for switch "X AF". -ss.input.port2.mission.afx.defpos off - -;ss, Virtual Port 2, Mission Stick: Y AF -ss.input.port2.mission.afy - -;Default position for switch "Y AF". -ss.input.port2.mission.afy.defpos off - -;ss, Virtual Port 2, Mission Stick: Z AF -ss.input.port2.mission.afz - -;Default position for switch "Z AF". -ss.input.port2.mission.afz.defpos off - -;ss, Virtual Port 2, Mission Stick: B (Stick Left Button) -ss.input.port2.mission.b - -;ss, Virtual Port 2, Mission Stick: C (Stick Right Button) -ss.input.port2.mission.c - -;ss, Virtual Port 2, Mission Stick: L -ss.input.port2.mission.l - -;ss, Virtual Port 2, Mission Stick: R -ss.input.port2.mission.r - -;ss, Virtual Port 2, Mission Stick: START -ss.input.port2.mission.start - -;ss, Virtual Port 2, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port2.mission.stick_back - -;ss, Virtual Port 2, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port2.mission.stick_fore - -;ss, Virtual Port 2, Mission Stick: Stick LEFT ← (Analog) -ss.input.port2.mission.stick_left - -;ss, Virtual Port 2, Mission Stick: Stick RIGHT → (Analog) -ss.input.port2.mission.stick_right - -;ss, Virtual Port 2, Mission Stick: Throttle Down (Analog) -ss.input.port2.mission.throttle_down - -;ss, Virtual Port 2, Mission Stick: Throttle Up (Analog) -ss.input.port2.mission.throttle_up - -;ss, Virtual Port 2, Mission Stick: X -ss.input.port2.mission.x - -;ss, Virtual Port 2, Mission Stick: Y -ss.input.port2.mission.y - -;ss, Virtual Port 2, Mission Stick: Z -ss.input.port2.mission.z - -;ss, Virtual Port 2, Mouse: Left Button -ss.input.port2.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 2, Mouse: Middle Button -ss.input.port2.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 2, Mouse: Motion Down -ss.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 2, Mouse: Motion Left -ss.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 2, Mouse: Motion Right -ss.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 2, Mouse: Motion Up -ss.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 2, Mouse: Right Button -ss.input.port2.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 2, Mouse: Start -ss.input.port2.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 2, Steering Wheel: A (R Group) -ss.input.port2.wheel.a - -;ss, Virtual Port 2, Steering Wheel: Analog LEFT ← -ss.input.port2.wheel.analog_left - -;ss, Virtual Port 2, Steering Wheel: Analog RIGHT → -ss.input.port2.wheel.analog_right - -;ss, Virtual Port 2, Steering Wheel: B (R Group) -ss.input.port2.wheel.b - -;ss, Virtual Port 2, Steering Wheel: C (R Group) -ss.input.port2.wheel.c - -;ss, Virtual Port 2, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port2.wheel.down - -;ss, Virtual Port 2, Steering Wheel: START -ss.input.port2.wheel.start - -;ss, Virtual Port 2, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port2.wheel.up - -;ss, Virtual Port 2, Steering Wheel: X (L Group) -ss.input.port2.wheel.x - -;ss, Virtual Port 2, Steering Wheel: Y (L Group) -ss.input.port2.wheel.y - -;ss, Virtual Port 2, Steering Wheel: Z (L Group) -ss.input.port2.wheel.z - -;Input device for Virtual Port 3 -ss.input.port3 gamepad - -;ss, Virtual Port 3, 3D Control Pad: A -ss.input.port3.3dpad.a - -;ss, Virtual Port 3, 3D Control Pad: Analog DOWN ↓ -ss.input.port3.3dpad.analog_down - -;ss, Virtual Port 3, 3D Control Pad: Analog LEFT ← -ss.input.port3.3dpad.analog_left - -;ss, Virtual Port 3, 3D Control Pad: Analog RIGHT → -ss.input.port3.3dpad.analog_right - -;ss, Virtual Port 3, 3D Control Pad: Analog UP ↑ -ss.input.port3.3dpad.analog_up - -;ss, Virtual Port 3, 3D Control Pad: B -ss.input.port3.3dpad.b - -;ss, Virtual Port 3, 3D Control Pad: C -ss.input.port3.3dpad.c - -;ss, Virtual Port 3, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port3.3dpad.down - -;ss, Virtual Port 3, 3D Control Pad: D-Pad LEFT ← -ss.input.port3.3dpad.left - -;ss, Virtual Port 3, 3D Control Pad: Left Shoulder (Analog) -ss.input.port3.3dpad.ls - -;ss, Virtual Port 3, 3D Control Pad: Mode -ss.input.port3.3dpad.mode - -;Default position for switch "Mode". -ss.input.port3.3dpad.mode.defpos digital - -;ss, Virtual Port 3, 3D Control Pad: D-Pad RIGHT → -ss.input.port3.3dpad.right - -;ss, Virtual Port 3, 3D Control Pad: Right Shoulder (Analog) -ss.input.port3.3dpad.rs - -;ss, Virtual Port 3, 3D Control Pad: START -ss.input.port3.3dpad.start - -;ss, Virtual Port 3, 3D Control Pad: D-Pad UP ↑ -ss.input.port3.3dpad.up - -;ss, Virtual Port 3, 3D Control Pad: X -ss.input.port3.3dpad.x - -;ss, Virtual Port 3, 3D Control Pad: Y -ss.input.port3.3dpad.y - -;ss, Virtual Port 3, 3D Control Pad: Z -ss.input.port3.3dpad.z - -;ss, Virtual Port 3, Dual Mission: A (R Stick Trigger) -ss.input.port3.dmission.a - -;ss, Virtual Port 3, Dual Mission: A AF -ss.input.port3.dmission.afa - -;Default position for switch "A AF". -ss.input.port3.dmission.afa.defpos off - -;ss, Virtual Port 3, Dual Mission: B AF -ss.input.port3.dmission.afb - -;Default position for switch "B AF". -ss.input.port3.dmission.afb.defpos off - -;ss, Virtual Port 3, Dual Mission: C AF -ss.input.port3.dmission.afc - -;Default position for switch "C AF". -ss.input.port3.dmission.afc.defpos off - -;ss, Virtual Port 3, Dual Mission: L AF -ss.input.port3.dmission.afl - -;Default position for switch "L AF". -ss.input.port3.dmission.afl.defpos off - -;ss, Virtual Port 3, Dual Mission: R AF -ss.input.port3.dmission.afr - -;Default position for switch "R AF". -ss.input.port3.dmission.afr.defpos off - -;ss, Virtual Port 3, Dual Mission: Autofire Speed -ss.input.port3.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port3.dmission.afspeed.defpos 1 - -;ss, Virtual Port 3, Dual Mission: X AF -ss.input.port3.dmission.afx - -;Default position for switch "X AF". -ss.input.port3.dmission.afx.defpos off - -;ss, Virtual Port 3, Dual Mission: Y AF -ss.input.port3.dmission.afy - -;Default position for switch "Y AF". -ss.input.port3.dmission.afy.defpos off - -;ss, Virtual Port 3, Dual Mission: Z AF -ss.input.port3.dmission.afz - -;Default position for switch "Z AF". -ss.input.port3.dmission.afz.defpos off - -;ss, Virtual Port 3, Dual Mission: B (R Stick Left Button) -ss.input.port3.dmission.b - -;ss, Virtual Port 3, Dual Mission: C (R Stick Right Button) -ss.input.port3.dmission.c - -;ss, Virtual Port 3, Dual Mission: L -ss.input.port3.dmission.l - -;ss, Virtual Port 3, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port3.dmission.lstick_back - -;ss, Virtual Port 3, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port3.dmission.lstick_fore - -;ss, Virtual Port 3, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port3.dmission.lstick_left - -;ss, Virtual Port 3, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port3.dmission.lstick_right - -;ss, Virtual Port 3, Dual Mission: L Throttle Down (Analog) -ss.input.port3.dmission.lthrottle_down - -;ss, Virtual Port 3, Dual Mission: L Throttle Up (Analog) -ss.input.port3.dmission.lthrottle_up - -;ss, Virtual Port 3, Dual Mission: R -ss.input.port3.dmission.r - -;ss, Virtual Port 3, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port3.dmission.rstick_back - -;ss, Virtual Port 3, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port3.dmission.rstick_fore - -;ss, Virtual Port 3, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port3.dmission.rstick_left - -;ss, Virtual Port 3, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port3.dmission.rstick_right - -;ss, Virtual Port 3, Dual Mission: R Throttle Down (Analog) -ss.input.port3.dmission.rthrottle_down - -;ss, Virtual Port 3, Dual Mission: R Throttle Up (Analog) -ss.input.port3.dmission.rthrottle_up - -;ss, Virtual Port 3, Dual Mission: START -ss.input.port3.dmission.start - -;ss, Virtual Port 3, Dual Mission: X (L Stick Trigger) -ss.input.port3.dmission.x - -;ss, Virtual Port 3, Dual Mission: Y (L Stick Left Button) -ss.input.port3.dmission.y - -;ss, Virtual Port 3, Dual Mission: Z (L Stick Right Button) -ss.input.port3.dmission.z - -;ss, Virtual Port 3, Digital Gamepad: A -ss.input.port3.gamepad.a - -;ss, Virtual Port 3, Digital Gamepad: B -ss.input.port3.gamepad.b - -;ss, Virtual Port 3, Digital Gamepad: C -ss.input.port3.gamepad.c - -;ss, Virtual Port 3, Digital Gamepad: DOWN ↓ -ss.input.port3.gamepad.down - -;ss, Virtual Port 3, Digital Gamepad: LEFT ← -ss.input.port3.gamepad.left - -;ss, Virtual Port 3, Digital Gamepad: Left Shoulder -ss.input.port3.gamepad.ls - -;ss, Virtual Port 3, Digital Gamepad: RIGHT → -ss.input.port3.gamepad.right - -;ss, Virtual Port 3, Digital Gamepad: Right Shoulder -ss.input.port3.gamepad.rs - -;ss, Virtual Port 3, Digital Gamepad: START -ss.input.port3.gamepad.start - -;ss, Virtual Port 3, Digital Gamepad: UP ↑ -ss.input.port3.gamepad.up - -;ss, Virtual Port 3, Digital Gamepad: X -ss.input.port3.gamepad.x - -;ss, Virtual Port 3, Digital Gamepad: Y -ss.input.port3.gamepad.y - -;ss, Virtual Port 3, Digital Gamepad: Z -ss.input.port3.gamepad.z - -;ss, Virtual Port 3, Light Gun: Offscreen Shot(Simulated) -ss.input.port3.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 3, Light Gun: START -ss.input.port3.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 3, Light Gun: Trigger -ss.input.port3.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 3, Light Gun: X Axis -ss.input.port3.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 3, Light Gun: Y Axis -ss.input.port3.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 3. -ss.input.port3.gun_chairs 0xFF00FF - -;ss, Virtual Port 3, Keyboard (JP): 0(Zero) -ss.input.port3.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 3, Keyboard (JP): 1(One) -ss.input.port3.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 3, Keyboard (JP): 2 -ss.input.port3.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 3, Keyboard (JP): 3 -ss.input.port3.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 3, Keyboard (JP): 4 -ss.input.port3.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 3, Keyboard (JP): 5 -ss.input.port3.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 3, Keyboard (JP): 6 -ss.input.port3.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 3, Keyboard (JP): 7 -ss.input.port3.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 3, Keyboard (JP): 8 -ss.input.port3.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 3, Keyboard (JP): 9 -ss.input.port3.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 3, Keyboard (JP): A -ss.input.port3.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 3, Keyboard (JP): At @ -ss.input.port3.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 3, Keyboard (JP): B -ss.input.port3.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 3, Keyboard (JP): Backslash \ -ss.input.port3.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 3, Keyboard (JP): Backspace -ss.input.port3.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 3, Keyboard (JP): C -ss.input.port3.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 3, Keyboard (JP): Caps Lock/英数 -ss.input.port3.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 3, Keyboard (JP): Circumflex ^ -ss.input.port3.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 3, Keyboard (JP): Colon : -ss.input.port3.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 3, Keyboard (JP): Comma , -ss.input.port3.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 3, Keyboard (JP): 変換 -ss.input.port3.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 3, Keyboard (JP): D -ss.input.port3.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 3, Keyboard (JP): Delete -ss.input.port3.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 3, Keyboard (JP): Down -ss.input.port3.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 3, Keyboard (JP): E -ss.input.port3.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 3, Keyboard (JP): End -ss.input.port3.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 3, Keyboard (JP): Enter -ss.input.port3.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 3, Keyboard (JP): Escape -ss.input.port3.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 3, Keyboard (JP): F -ss.input.port3.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 3, Keyboard (JP): F1 -ss.input.port3.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 3, Keyboard (JP): F10 -ss.input.port3.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 3, Keyboard (JP): F11 -ss.input.port3.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 3, Keyboard (JP): F12 -ss.input.port3.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 3, Keyboard (JP): F2 -ss.input.port3.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 3, Keyboard (JP): F3 -ss.input.port3.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 3, Keyboard (JP): F4 -ss.input.port3.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 3, Keyboard (JP): F5 -ss.input.port3.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 3, Keyboard (JP): F6 -ss.input.port3.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 3, Keyboard (JP): F7 -ss.input.port3.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 3, Keyboard (JP): F8 -ss.input.port3.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 3, Keyboard (JP): F9 -ss.input.port3.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 3, Keyboard (JP): G -ss.input.port3.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 3, Keyboard (JP): H -ss.input.port3.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 3, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port3.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 3, Keyboard (JP): Home -ss.input.port3.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 3, Keyboard (JP): 半角/全角/漢字 -ss.input.port3.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 3, Keyboard (JP): I -ss.input.port3.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 3, Keyboard (JP): Insert -ss.input.port3.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 3, Keyboard (JP): J -ss.input.port3.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 3, Keyboard (JP): K -ss.input.port3.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 3, Keyboard (JP): L -ss.input.port3.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 3, Keyboard (JP): Left Alt -ss.input.port3.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 3, Keyboard (JP): Left Ctrl -ss.input.port3.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 3, Keyboard (JP): Cursor Left -ss.input.port3.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 3, Keyboard (JP): Left Bracket [ -ss.input.port3.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 3, Keyboard (JP): Left Shift -ss.input.port3.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 3, Keyboard (JP): M -ss.input.port3.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 3, Keyboard (JP): Minus - -ss.input.port3.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 3, Keyboard (JP): N -ss.input.port3.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 3, Keyboard (JP): 無変換 -ss.input.port3.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 3, Keyboard (JP): O -ss.input.port3.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 3, Keyboard (JP): P -ss.input.port3.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 3, Keyboard (JP): Page Down -ss.input.port3.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 3, Keyboard (JP): Page Up -ss.input.port3.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 3, Keyboard (JP): Pause -ss.input.port3.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 3, Keyboard (JP): Period . -ss.input.port3.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 3, Keyboard (JP): Print Screen -ss.input.port3.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 3, Keyboard (JP): Q -ss.input.port3.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 3, Keyboard (JP): R -ss.input.port3.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 3, Keyboard (JP): Right Alt -ss.input.port3.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 3, Keyboard (JP): Right Ctrl -ss.input.port3.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 3, Keyboard (JP): Right -ss.input.port3.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 3, Keyboard (JP): Right Bracket ] -ss.input.port3.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 3, Keyboard (JP): Right Shift -ss.input.port3.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 3, Keyboard (JP): S -ss.input.port3.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 3, Keyboard (JP): Scroll Lock -ss.input.port3.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 3, Keyboard (JP): Semicolon ; -ss.input.port3.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 3, Keyboard (JP): Slash / -ss.input.port3.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 3, Keyboard (JP): Space -ss.input.port3.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 3, Keyboard (JP): T -ss.input.port3.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 3, Keyboard (JP): Tab -ss.input.port3.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 3, Keyboard (JP): U -ss.input.port3.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 3, Keyboard (JP): Up -ss.input.port3.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 3, Keyboard (JP): V -ss.input.port3.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 3, Keyboard (JP): W -ss.input.port3.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 3, Keyboard (JP): X -ss.input.port3.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 3, Keyboard (JP): Y -ss.input.port3.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 3, Keyboard (JP): Yen ¥ -ss.input.port3.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 3, Keyboard (JP): Z -ss.input.port3.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 3, Keyboard (US): 0(Zero) -ss.input.port3.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 3, Keyboard (US): 1(One) -ss.input.port3.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 3, Keyboard (US): 2 -ss.input.port3.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 3, Keyboard (US): 3 -ss.input.port3.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 3, Keyboard (US): 4 -ss.input.port3.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 3, Keyboard (US): 5 -ss.input.port3.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 3, Keyboard (US): 6 -ss.input.port3.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 3, Keyboard (US): 7 -ss.input.port3.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 3, Keyboard (US): 8 -ss.input.port3.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 3, Keyboard (US): 9 -ss.input.port3.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 3, Keyboard (US): A -ss.input.port3.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 3, Keyboard (US): B -ss.input.port3.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 3, Keyboard (US): Backslash \ -ss.input.port3.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 3, Keyboard (US): Backspace -ss.input.port3.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 3, Keyboard (US): C -ss.input.port3.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 3, Keyboard (US): Caps Lock -ss.input.port3.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 3, Keyboard (US): Comma , -ss.input.port3.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 3, Keyboard (US): D -ss.input.port3.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 3, Keyboard (US): Delete -ss.input.port3.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 3, Keyboard (US): Down -ss.input.port3.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 3, Keyboard (US): E -ss.input.port3.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 3, Keyboard (US): End -ss.input.port3.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 3, Keyboard (US): Enter -ss.input.port3.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 3, Keyboard (US): Equals = -ss.input.port3.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 3, Keyboard (US): Escape -ss.input.port3.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 3, Keyboard (US): F -ss.input.port3.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 3, Keyboard (US): F1 -ss.input.port3.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 3, Keyboard (US): F10 -ss.input.port3.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 3, Keyboard (US): F11 -ss.input.port3.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 3, Keyboard (US): F12 -ss.input.port3.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 3, Keyboard (US): F2 -ss.input.port3.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 3, Keyboard (US): F3 -ss.input.port3.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 3, Keyboard (US): F4 -ss.input.port3.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 3, Keyboard (US): F5 -ss.input.port3.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 3, Keyboard (US): F6 -ss.input.port3.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 3, Keyboard (US): F7 -ss.input.port3.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 3, Keyboard (US): F8 -ss.input.port3.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 3, Keyboard (US): F9 -ss.input.port3.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 3, Keyboard (US): G -ss.input.port3.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 3, Keyboard (US): Grave ` -ss.input.port3.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 3, Keyboard (US): H -ss.input.port3.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 3, Keyboard (US): Home -ss.input.port3.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 3, Keyboard (US): I -ss.input.port3.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 3, Keyboard (US): Insert -ss.input.port3.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 3, Keyboard (US): J -ss.input.port3.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 3, Keyboard (US): K -ss.input.port3.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 3, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port3.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 3, Keyboard (US): Keypad Center/5 -ss.input.port3.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 3, Keyboard (US): Keypad Delete -ss.input.port3.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 3, Keyboard (US): Keypad Down/2 -ss.input.port3.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 3, Keyboard (US): Keypad End/1 -ss.input.port3.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 3, Keyboard (US): Keypad Enter -ss.input.port3.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 3, Keyboard (US): Keypad Home/7 -ss.input.port3.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 3, Keyboard (US): Keypad Insert/0 -ss.input.port3.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 3, Keyboard (US): Keypad Left/4 -ss.input.port3.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 3, Keyboard (US): Keypad Minus -ss.input.port3.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 3, Keyboard (US): Keypad Pagedown/3 -ss.input.port3.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 3, Keyboard (US): Keypad Pageup/9 -ss.input.port3.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 3, Keyboard (US): Keypad Plus -ss.input.port3.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 3, Keyboard (US): Keypad Right/6 -ss.input.port3.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 3, Keyboard (US): Keypad Slash(Divide) -ss.input.port3.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 3, Keyboard (US): Keypad Up/8 -ss.input.port3.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 3, Keyboard (US): L -ss.input.port3.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 3, Keyboard (US): Left Alt -ss.input.port3.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 3, Keyboard (US): Left Ctrl -ss.input.port3.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 3, Keyboard (US): Cursor Left -ss.input.port3.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 3, Keyboard (US): Left Bracket [ -ss.input.port3.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 3, Keyboard (US): Left Shift -ss.input.port3.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 3, Keyboard (US): M -ss.input.port3.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 3, Keyboard (US): Minus - -ss.input.port3.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 3, Keyboard (US): N -ss.input.port3.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 3, Keyboard (US): Num Lock -ss.input.port3.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 3, Keyboard (US): O -ss.input.port3.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 3, Keyboard (US): P -ss.input.port3.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 3, Keyboard (US): Page Down -ss.input.port3.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 3, Keyboard (US): Page Up -ss.input.port3.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 3, Keyboard (US): Pause -ss.input.port3.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 3, Keyboard (US): Period . -ss.input.port3.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 3, Keyboard (US): Print Screen -ss.input.port3.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 3, Keyboard (US): Q -ss.input.port3.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 3, Keyboard (US): Quote ' -ss.input.port3.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 3, Keyboard (US): R -ss.input.port3.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 3, Keyboard (US): Right Alt -ss.input.port3.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 3, Keyboard (US): Right Ctrl -ss.input.port3.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 3, Keyboard (US): Right -ss.input.port3.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 3, Keyboard (US): Right Bracket ] -ss.input.port3.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 3, Keyboard (US): Right Shift -ss.input.port3.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 3, Keyboard (US): S -ss.input.port3.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 3, Keyboard (US): Scroll Lock -ss.input.port3.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 3, Keyboard (US): Semicolon ; -ss.input.port3.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 3, Keyboard (US): Slash / -ss.input.port3.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 3, Keyboard (US): Space -ss.input.port3.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 3, Keyboard (US): T -ss.input.port3.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 3, Keyboard (US): Tab -ss.input.port3.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 3, Keyboard (US): U -ss.input.port3.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 3, Keyboard (US): Up -ss.input.port3.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 3, Keyboard (US): V -ss.input.port3.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 3, Keyboard (US): W -ss.input.port3.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 3, Keyboard (US): X -ss.input.port3.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 3, Keyboard (US): Y -ss.input.port3.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 3, Keyboard (US): Z -ss.input.port3.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 3, Mission Stick: A (Stick Trigger) -ss.input.port3.mission.a - -;ss, Virtual Port 3, Mission Stick: A AF -ss.input.port3.mission.afa - -;Default position for switch "A AF". -ss.input.port3.mission.afa.defpos off - -;ss, Virtual Port 3, Mission Stick: B AF -ss.input.port3.mission.afb - -;Default position for switch "B AF". -ss.input.port3.mission.afb.defpos off - -;ss, Virtual Port 3, Mission Stick: C AF -ss.input.port3.mission.afc - -;Default position for switch "C AF". -ss.input.port3.mission.afc.defpos off - -;ss, Virtual Port 3, Mission Stick: L AF -ss.input.port3.mission.afl - -;Default position for switch "L AF". -ss.input.port3.mission.afl.defpos off - -;ss, Virtual Port 3, Mission Stick: R AF -ss.input.port3.mission.afr - -;Default position for switch "R AF". -ss.input.port3.mission.afr.defpos off - -;ss, Virtual Port 3, Mission Stick: AF Speed -ss.input.port3.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port3.mission.afspeed.defpos 1 - -;ss, Virtual Port 3, Mission Stick: X AF -ss.input.port3.mission.afx - -;Default position for switch "X AF". -ss.input.port3.mission.afx.defpos off - -;ss, Virtual Port 3, Mission Stick: Y AF -ss.input.port3.mission.afy - -;Default position for switch "Y AF". -ss.input.port3.mission.afy.defpos off - -;ss, Virtual Port 3, Mission Stick: Z AF -ss.input.port3.mission.afz - -;Default position for switch "Z AF". -ss.input.port3.mission.afz.defpos off - -;ss, Virtual Port 3, Mission Stick: B (Stick Left Button) -ss.input.port3.mission.b - -;ss, Virtual Port 3, Mission Stick: C (Stick Right Button) -ss.input.port3.mission.c - -;ss, Virtual Port 3, Mission Stick: L -ss.input.port3.mission.l - -;ss, Virtual Port 3, Mission Stick: R -ss.input.port3.mission.r - -;ss, Virtual Port 3, Mission Stick: START -ss.input.port3.mission.start - -;ss, Virtual Port 3, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port3.mission.stick_back - -;ss, Virtual Port 3, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port3.mission.stick_fore - -;ss, Virtual Port 3, Mission Stick: Stick LEFT ← (Analog) -ss.input.port3.mission.stick_left - -;ss, Virtual Port 3, Mission Stick: Stick RIGHT → (Analog) -ss.input.port3.mission.stick_right - -;ss, Virtual Port 3, Mission Stick: Throttle Down (Analog) -ss.input.port3.mission.throttle_down - -;ss, Virtual Port 3, Mission Stick: Throttle Up (Analog) -ss.input.port3.mission.throttle_up - -;ss, Virtual Port 3, Mission Stick: X -ss.input.port3.mission.x - -;ss, Virtual Port 3, Mission Stick: Y -ss.input.port3.mission.y - -;ss, Virtual Port 3, Mission Stick: Z -ss.input.port3.mission.z - -;ss, Virtual Port 3, Mouse: Left Button -ss.input.port3.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 3, Mouse: Middle Button -ss.input.port3.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 3, Mouse: Motion Down -ss.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 3, Mouse: Motion Left -ss.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 3, Mouse: Motion Right -ss.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 3, Mouse: Motion Up -ss.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 3, Mouse: Right Button -ss.input.port3.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 3, Mouse: Start -ss.input.port3.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 3, Steering Wheel: A (R Group) -ss.input.port3.wheel.a - -;ss, Virtual Port 3, Steering Wheel: Analog LEFT ← -ss.input.port3.wheel.analog_left - -;ss, Virtual Port 3, Steering Wheel: Analog RIGHT → -ss.input.port3.wheel.analog_right - -;ss, Virtual Port 3, Steering Wheel: B (R Group) -ss.input.port3.wheel.b - -;ss, Virtual Port 3, Steering Wheel: C (R Group) -ss.input.port3.wheel.c - -;ss, Virtual Port 3, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port3.wheel.down - -;ss, Virtual Port 3, Steering Wheel: START -ss.input.port3.wheel.start - -;ss, Virtual Port 3, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port3.wheel.up - -;ss, Virtual Port 3, Steering Wheel: X (L Group) -ss.input.port3.wheel.x - -;ss, Virtual Port 3, Steering Wheel: Y (L Group) -ss.input.port3.wheel.y - -;ss, Virtual Port 3, Steering Wheel: Z (L Group) -ss.input.port3.wheel.z - -;Input device for Virtual Port 4 -ss.input.port4 gamepad - -;ss, Virtual Port 4, 3D Control Pad: A -ss.input.port4.3dpad.a - -;ss, Virtual Port 4, 3D Control Pad: Analog DOWN ↓ -ss.input.port4.3dpad.analog_down - -;ss, Virtual Port 4, 3D Control Pad: Analog LEFT ← -ss.input.port4.3dpad.analog_left - -;ss, Virtual Port 4, 3D Control Pad: Analog RIGHT → -ss.input.port4.3dpad.analog_right - -;ss, Virtual Port 4, 3D Control Pad: Analog UP ↑ -ss.input.port4.3dpad.analog_up - -;ss, Virtual Port 4, 3D Control Pad: B -ss.input.port4.3dpad.b - -;ss, Virtual Port 4, 3D Control Pad: C -ss.input.port4.3dpad.c - -;ss, Virtual Port 4, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port4.3dpad.down - -;ss, Virtual Port 4, 3D Control Pad: D-Pad LEFT ← -ss.input.port4.3dpad.left - -;ss, Virtual Port 4, 3D Control Pad: Left Shoulder (Analog) -ss.input.port4.3dpad.ls - -;ss, Virtual Port 4, 3D Control Pad: Mode -ss.input.port4.3dpad.mode - -;Default position for switch "Mode". -ss.input.port4.3dpad.mode.defpos digital - -;ss, Virtual Port 4, 3D Control Pad: D-Pad RIGHT → -ss.input.port4.3dpad.right - -;ss, Virtual Port 4, 3D Control Pad: Right Shoulder (Analog) -ss.input.port4.3dpad.rs - -;ss, Virtual Port 4, 3D Control Pad: START -ss.input.port4.3dpad.start - -;ss, Virtual Port 4, 3D Control Pad: D-Pad UP ↑ -ss.input.port4.3dpad.up - -;ss, Virtual Port 4, 3D Control Pad: X -ss.input.port4.3dpad.x - -;ss, Virtual Port 4, 3D Control Pad: Y -ss.input.port4.3dpad.y - -;ss, Virtual Port 4, 3D Control Pad: Z -ss.input.port4.3dpad.z - -;ss, Virtual Port 4, Dual Mission: A (R Stick Trigger) -ss.input.port4.dmission.a - -;ss, Virtual Port 4, Dual Mission: A AF -ss.input.port4.dmission.afa - -;Default position for switch "A AF". -ss.input.port4.dmission.afa.defpos off - -;ss, Virtual Port 4, Dual Mission: B AF -ss.input.port4.dmission.afb - -;Default position for switch "B AF". -ss.input.port4.dmission.afb.defpos off - -;ss, Virtual Port 4, Dual Mission: C AF -ss.input.port4.dmission.afc - -;Default position for switch "C AF". -ss.input.port4.dmission.afc.defpos off - -;ss, Virtual Port 4, Dual Mission: L AF -ss.input.port4.dmission.afl - -;Default position for switch "L AF". -ss.input.port4.dmission.afl.defpos off - -;ss, Virtual Port 4, Dual Mission: R AF -ss.input.port4.dmission.afr - -;Default position for switch "R AF". -ss.input.port4.dmission.afr.defpos off - -;ss, Virtual Port 4, Dual Mission: Autofire Speed -ss.input.port4.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port4.dmission.afspeed.defpos 1 - -;ss, Virtual Port 4, Dual Mission: X AF -ss.input.port4.dmission.afx - -;Default position for switch "X AF". -ss.input.port4.dmission.afx.defpos off - -;ss, Virtual Port 4, Dual Mission: Y AF -ss.input.port4.dmission.afy - -;Default position for switch "Y AF". -ss.input.port4.dmission.afy.defpos off - -;ss, Virtual Port 4, Dual Mission: Z AF -ss.input.port4.dmission.afz - -;Default position for switch "Z AF". -ss.input.port4.dmission.afz.defpos off - -;ss, Virtual Port 4, Dual Mission: B (R Stick Left Button) -ss.input.port4.dmission.b - -;ss, Virtual Port 4, Dual Mission: C (R Stick Right Button) -ss.input.port4.dmission.c - -;ss, Virtual Port 4, Dual Mission: L -ss.input.port4.dmission.l - -;ss, Virtual Port 4, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port4.dmission.lstick_back - -;ss, Virtual Port 4, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port4.dmission.lstick_fore - -;ss, Virtual Port 4, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port4.dmission.lstick_left - -;ss, Virtual Port 4, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port4.dmission.lstick_right - -;ss, Virtual Port 4, Dual Mission: L Throttle Down (Analog) -ss.input.port4.dmission.lthrottle_down - -;ss, Virtual Port 4, Dual Mission: L Throttle Up (Analog) -ss.input.port4.dmission.lthrottle_up - -;ss, Virtual Port 4, Dual Mission: R -ss.input.port4.dmission.r - -;ss, Virtual Port 4, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port4.dmission.rstick_back - -;ss, Virtual Port 4, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port4.dmission.rstick_fore - -;ss, Virtual Port 4, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port4.dmission.rstick_left - -;ss, Virtual Port 4, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port4.dmission.rstick_right - -;ss, Virtual Port 4, Dual Mission: R Throttle Down (Analog) -ss.input.port4.dmission.rthrottle_down - -;ss, Virtual Port 4, Dual Mission: R Throttle Up (Analog) -ss.input.port4.dmission.rthrottle_up - -;ss, Virtual Port 4, Dual Mission: START -ss.input.port4.dmission.start - -;ss, Virtual Port 4, Dual Mission: X (L Stick Trigger) -ss.input.port4.dmission.x - -;ss, Virtual Port 4, Dual Mission: Y (L Stick Left Button) -ss.input.port4.dmission.y - -;ss, Virtual Port 4, Dual Mission: Z (L Stick Right Button) -ss.input.port4.dmission.z - -;ss, Virtual Port 4, Digital Gamepad: A -ss.input.port4.gamepad.a - -;ss, Virtual Port 4, Digital Gamepad: B -ss.input.port4.gamepad.b - -;ss, Virtual Port 4, Digital Gamepad: C -ss.input.port4.gamepad.c - -;ss, Virtual Port 4, Digital Gamepad: DOWN ↓ -ss.input.port4.gamepad.down - -;ss, Virtual Port 4, Digital Gamepad: LEFT ← -ss.input.port4.gamepad.left - -;ss, Virtual Port 4, Digital Gamepad: Left Shoulder -ss.input.port4.gamepad.ls - -;ss, Virtual Port 4, Digital Gamepad: RIGHT → -ss.input.port4.gamepad.right - -;ss, Virtual Port 4, Digital Gamepad: Right Shoulder -ss.input.port4.gamepad.rs - -;ss, Virtual Port 4, Digital Gamepad: START -ss.input.port4.gamepad.start - -;ss, Virtual Port 4, Digital Gamepad: UP ↑ -ss.input.port4.gamepad.up - -;ss, Virtual Port 4, Digital Gamepad: X -ss.input.port4.gamepad.x - -;ss, Virtual Port 4, Digital Gamepad: Y -ss.input.port4.gamepad.y - -;ss, Virtual Port 4, Digital Gamepad: Z -ss.input.port4.gamepad.z - -;ss, Virtual Port 4, Light Gun: Offscreen Shot(Simulated) -ss.input.port4.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 4, Light Gun: START -ss.input.port4.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 4, Light Gun: Trigger -ss.input.port4.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 4, Light Gun: X Axis -ss.input.port4.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 4, Light Gun: Y Axis -ss.input.port4.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 4. -ss.input.port4.gun_chairs 0xFF8000 - -;ss, Virtual Port 4, Keyboard (JP): 0(Zero) -ss.input.port4.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 4, Keyboard (JP): 1(One) -ss.input.port4.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 4, Keyboard (JP): 2 -ss.input.port4.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 4, Keyboard (JP): 3 -ss.input.port4.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 4, Keyboard (JP): 4 -ss.input.port4.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 4, Keyboard (JP): 5 -ss.input.port4.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 4, Keyboard (JP): 6 -ss.input.port4.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 4, Keyboard (JP): 7 -ss.input.port4.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 4, Keyboard (JP): 8 -ss.input.port4.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 4, Keyboard (JP): 9 -ss.input.port4.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 4, Keyboard (JP): A -ss.input.port4.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 4, Keyboard (JP): At @ -ss.input.port4.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 4, Keyboard (JP): B -ss.input.port4.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 4, Keyboard (JP): Backslash \ -ss.input.port4.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 4, Keyboard (JP): Backspace -ss.input.port4.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 4, Keyboard (JP): C -ss.input.port4.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 4, Keyboard (JP): Caps Lock/英数 -ss.input.port4.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 4, Keyboard (JP): Circumflex ^ -ss.input.port4.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 4, Keyboard (JP): Colon : -ss.input.port4.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 4, Keyboard (JP): Comma , -ss.input.port4.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 4, Keyboard (JP): 変換 -ss.input.port4.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 4, Keyboard (JP): D -ss.input.port4.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 4, Keyboard (JP): Delete -ss.input.port4.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 4, Keyboard (JP): Down -ss.input.port4.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 4, Keyboard (JP): E -ss.input.port4.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 4, Keyboard (JP): End -ss.input.port4.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 4, Keyboard (JP): Enter -ss.input.port4.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 4, Keyboard (JP): Escape -ss.input.port4.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 4, Keyboard (JP): F -ss.input.port4.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 4, Keyboard (JP): F1 -ss.input.port4.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 4, Keyboard (JP): F10 -ss.input.port4.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 4, Keyboard (JP): F11 -ss.input.port4.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 4, Keyboard (JP): F12 -ss.input.port4.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 4, Keyboard (JP): F2 -ss.input.port4.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 4, Keyboard (JP): F3 -ss.input.port4.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 4, Keyboard (JP): F4 -ss.input.port4.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 4, Keyboard (JP): F5 -ss.input.port4.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 4, Keyboard (JP): F6 -ss.input.port4.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 4, Keyboard (JP): F7 -ss.input.port4.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 4, Keyboard (JP): F8 -ss.input.port4.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 4, Keyboard (JP): F9 -ss.input.port4.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 4, Keyboard (JP): G -ss.input.port4.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 4, Keyboard (JP): H -ss.input.port4.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 4, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port4.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 4, Keyboard (JP): Home -ss.input.port4.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 4, Keyboard (JP): 半角/全角/漢字 -ss.input.port4.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 4, Keyboard (JP): I -ss.input.port4.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 4, Keyboard (JP): Insert -ss.input.port4.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 4, Keyboard (JP): J -ss.input.port4.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 4, Keyboard (JP): K -ss.input.port4.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 4, Keyboard (JP): L -ss.input.port4.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 4, Keyboard (JP): Left Alt -ss.input.port4.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 4, Keyboard (JP): Left Ctrl -ss.input.port4.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 4, Keyboard (JP): Cursor Left -ss.input.port4.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 4, Keyboard (JP): Left Bracket [ -ss.input.port4.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 4, Keyboard (JP): Left Shift -ss.input.port4.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 4, Keyboard (JP): M -ss.input.port4.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 4, Keyboard (JP): Minus - -ss.input.port4.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 4, Keyboard (JP): N -ss.input.port4.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 4, Keyboard (JP): 無変換 -ss.input.port4.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 4, Keyboard (JP): O -ss.input.port4.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 4, Keyboard (JP): P -ss.input.port4.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 4, Keyboard (JP): Page Down -ss.input.port4.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 4, Keyboard (JP): Page Up -ss.input.port4.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 4, Keyboard (JP): Pause -ss.input.port4.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 4, Keyboard (JP): Period . -ss.input.port4.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 4, Keyboard (JP): Print Screen -ss.input.port4.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 4, Keyboard (JP): Q -ss.input.port4.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 4, Keyboard (JP): R -ss.input.port4.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 4, Keyboard (JP): Right Alt -ss.input.port4.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 4, Keyboard (JP): Right Ctrl -ss.input.port4.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 4, Keyboard (JP): Right -ss.input.port4.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 4, Keyboard (JP): Right Bracket ] -ss.input.port4.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 4, Keyboard (JP): Right Shift -ss.input.port4.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 4, Keyboard (JP): S -ss.input.port4.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 4, Keyboard (JP): Scroll Lock -ss.input.port4.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 4, Keyboard (JP): Semicolon ; -ss.input.port4.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 4, Keyboard (JP): Slash / -ss.input.port4.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 4, Keyboard (JP): Space -ss.input.port4.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 4, Keyboard (JP): T -ss.input.port4.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 4, Keyboard (JP): Tab -ss.input.port4.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 4, Keyboard (JP): U -ss.input.port4.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 4, Keyboard (JP): Up -ss.input.port4.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 4, Keyboard (JP): V -ss.input.port4.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 4, Keyboard (JP): W -ss.input.port4.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 4, Keyboard (JP): X -ss.input.port4.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 4, Keyboard (JP): Y -ss.input.port4.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 4, Keyboard (JP): Yen ¥ -ss.input.port4.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 4, Keyboard (JP): Z -ss.input.port4.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 4, Keyboard (US): 0(Zero) -ss.input.port4.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 4, Keyboard (US): 1(One) -ss.input.port4.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 4, Keyboard (US): 2 -ss.input.port4.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 4, Keyboard (US): 3 -ss.input.port4.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 4, Keyboard (US): 4 -ss.input.port4.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 4, Keyboard (US): 5 -ss.input.port4.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 4, Keyboard (US): 6 -ss.input.port4.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 4, Keyboard (US): 7 -ss.input.port4.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 4, Keyboard (US): 8 -ss.input.port4.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 4, Keyboard (US): 9 -ss.input.port4.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 4, Keyboard (US): A -ss.input.port4.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 4, Keyboard (US): B -ss.input.port4.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 4, Keyboard (US): Backslash \ -ss.input.port4.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 4, Keyboard (US): Backspace -ss.input.port4.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 4, Keyboard (US): C -ss.input.port4.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 4, Keyboard (US): Caps Lock -ss.input.port4.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 4, Keyboard (US): Comma , -ss.input.port4.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 4, Keyboard (US): D -ss.input.port4.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 4, Keyboard (US): Delete -ss.input.port4.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 4, Keyboard (US): Down -ss.input.port4.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 4, Keyboard (US): E -ss.input.port4.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 4, Keyboard (US): End -ss.input.port4.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 4, Keyboard (US): Enter -ss.input.port4.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 4, Keyboard (US): Equals = -ss.input.port4.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 4, Keyboard (US): Escape -ss.input.port4.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 4, Keyboard (US): F -ss.input.port4.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 4, Keyboard (US): F1 -ss.input.port4.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 4, Keyboard (US): F10 -ss.input.port4.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 4, Keyboard (US): F11 -ss.input.port4.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 4, Keyboard (US): F12 -ss.input.port4.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 4, Keyboard (US): F2 -ss.input.port4.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 4, Keyboard (US): F3 -ss.input.port4.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 4, Keyboard (US): F4 -ss.input.port4.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 4, Keyboard (US): F5 -ss.input.port4.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 4, Keyboard (US): F6 -ss.input.port4.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 4, Keyboard (US): F7 -ss.input.port4.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 4, Keyboard (US): F8 -ss.input.port4.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 4, Keyboard (US): F9 -ss.input.port4.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 4, Keyboard (US): G -ss.input.port4.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 4, Keyboard (US): Grave ` -ss.input.port4.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 4, Keyboard (US): H -ss.input.port4.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 4, Keyboard (US): Home -ss.input.port4.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 4, Keyboard (US): I -ss.input.port4.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 4, Keyboard (US): Insert -ss.input.port4.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 4, Keyboard (US): J -ss.input.port4.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 4, Keyboard (US): K -ss.input.port4.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 4, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port4.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 4, Keyboard (US): Keypad Center/5 -ss.input.port4.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 4, Keyboard (US): Keypad Delete -ss.input.port4.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 4, Keyboard (US): Keypad Down/2 -ss.input.port4.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 4, Keyboard (US): Keypad End/1 -ss.input.port4.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 4, Keyboard (US): Keypad Enter -ss.input.port4.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 4, Keyboard (US): Keypad Home/7 -ss.input.port4.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 4, Keyboard (US): Keypad Insert/0 -ss.input.port4.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 4, Keyboard (US): Keypad Left/4 -ss.input.port4.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 4, Keyboard (US): Keypad Minus -ss.input.port4.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 4, Keyboard (US): Keypad Pagedown/3 -ss.input.port4.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 4, Keyboard (US): Keypad Pageup/9 -ss.input.port4.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 4, Keyboard (US): Keypad Plus -ss.input.port4.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 4, Keyboard (US): Keypad Right/6 -ss.input.port4.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 4, Keyboard (US): Keypad Slash(Divide) -ss.input.port4.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 4, Keyboard (US): Keypad Up/8 -ss.input.port4.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 4, Keyboard (US): L -ss.input.port4.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 4, Keyboard (US): Left Alt -ss.input.port4.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 4, Keyboard (US): Left Ctrl -ss.input.port4.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 4, Keyboard (US): Cursor Left -ss.input.port4.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 4, Keyboard (US): Left Bracket [ -ss.input.port4.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 4, Keyboard (US): Left Shift -ss.input.port4.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 4, Keyboard (US): M -ss.input.port4.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 4, Keyboard (US): Minus - -ss.input.port4.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 4, Keyboard (US): N -ss.input.port4.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 4, Keyboard (US): Num Lock -ss.input.port4.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 4, Keyboard (US): O -ss.input.port4.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 4, Keyboard (US): P -ss.input.port4.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 4, Keyboard (US): Page Down -ss.input.port4.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 4, Keyboard (US): Page Up -ss.input.port4.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 4, Keyboard (US): Pause -ss.input.port4.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 4, Keyboard (US): Period . -ss.input.port4.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 4, Keyboard (US): Print Screen -ss.input.port4.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 4, Keyboard (US): Q -ss.input.port4.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 4, Keyboard (US): Quote ' -ss.input.port4.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 4, Keyboard (US): R -ss.input.port4.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 4, Keyboard (US): Right Alt -ss.input.port4.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 4, Keyboard (US): Right Ctrl -ss.input.port4.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 4, Keyboard (US): Right -ss.input.port4.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 4, Keyboard (US): Right Bracket ] -ss.input.port4.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 4, Keyboard (US): Right Shift -ss.input.port4.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 4, Keyboard (US): S -ss.input.port4.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 4, Keyboard (US): Scroll Lock -ss.input.port4.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 4, Keyboard (US): Semicolon ; -ss.input.port4.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 4, Keyboard (US): Slash / -ss.input.port4.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 4, Keyboard (US): Space -ss.input.port4.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 4, Keyboard (US): T -ss.input.port4.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 4, Keyboard (US): Tab -ss.input.port4.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 4, Keyboard (US): U -ss.input.port4.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 4, Keyboard (US): Up -ss.input.port4.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 4, Keyboard (US): V -ss.input.port4.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 4, Keyboard (US): W -ss.input.port4.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 4, Keyboard (US): X -ss.input.port4.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 4, Keyboard (US): Y -ss.input.port4.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 4, Keyboard (US): Z -ss.input.port4.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 4, Mission Stick: A (Stick Trigger) -ss.input.port4.mission.a - -;ss, Virtual Port 4, Mission Stick: A AF -ss.input.port4.mission.afa - -;Default position for switch "A AF". -ss.input.port4.mission.afa.defpos off - -;ss, Virtual Port 4, Mission Stick: B AF -ss.input.port4.mission.afb - -;Default position for switch "B AF". -ss.input.port4.mission.afb.defpos off - -;ss, Virtual Port 4, Mission Stick: C AF -ss.input.port4.mission.afc - -;Default position for switch "C AF". -ss.input.port4.mission.afc.defpos off - -;ss, Virtual Port 4, Mission Stick: L AF -ss.input.port4.mission.afl - -;Default position for switch "L AF". -ss.input.port4.mission.afl.defpos off - -;ss, Virtual Port 4, Mission Stick: R AF -ss.input.port4.mission.afr - -;Default position for switch "R AF". -ss.input.port4.mission.afr.defpos off - -;ss, Virtual Port 4, Mission Stick: AF Speed -ss.input.port4.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port4.mission.afspeed.defpos 1 - -;ss, Virtual Port 4, Mission Stick: X AF -ss.input.port4.mission.afx - -;Default position for switch "X AF". -ss.input.port4.mission.afx.defpos off - -;ss, Virtual Port 4, Mission Stick: Y AF -ss.input.port4.mission.afy - -;Default position for switch "Y AF". -ss.input.port4.mission.afy.defpos off - -;ss, Virtual Port 4, Mission Stick: Z AF -ss.input.port4.mission.afz - -;Default position for switch "Z AF". -ss.input.port4.mission.afz.defpos off - -;ss, Virtual Port 4, Mission Stick: B (Stick Left Button) -ss.input.port4.mission.b - -;ss, Virtual Port 4, Mission Stick: C (Stick Right Button) -ss.input.port4.mission.c - -;ss, Virtual Port 4, Mission Stick: L -ss.input.port4.mission.l - -;ss, Virtual Port 4, Mission Stick: R -ss.input.port4.mission.r - -;ss, Virtual Port 4, Mission Stick: START -ss.input.port4.mission.start - -;ss, Virtual Port 4, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port4.mission.stick_back - -;ss, Virtual Port 4, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port4.mission.stick_fore - -;ss, Virtual Port 4, Mission Stick: Stick LEFT ← (Analog) -ss.input.port4.mission.stick_left - -;ss, Virtual Port 4, Mission Stick: Stick RIGHT → (Analog) -ss.input.port4.mission.stick_right - -;ss, Virtual Port 4, Mission Stick: Throttle Down (Analog) -ss.input.port4.mission.throttle_down - -;ss, Virtual Port 4, Mission Stick: Throttle Up (Analog) -ss.input.port4.mission.throttle_up - -;ss, Virtual Port 4, Mission Stick: X -ss.input.port4.mission.x - -;ss, Virtual Port 4, Mission Stick: Y -ss.input.port4.mission.y - -;ss, Virtual Port 4, Mission Stick: Z -ss.input.port4.mission.z - -;ss, Virtual Port 4, Mouse: Left Button -ss.input.port4.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 4, Mouse: Middle Button -ss.input.port4.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 4, Mouse: Motion Down -ss.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 4, Mouse: Motion Left -ss.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 4, Mouse: Motion Right -ss.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 4, Mouse: Motion Up -ss.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 4, Mouse: Right Button -ss.input.port4.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 4, Mouse: Start -ss.input.port4.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 4, Steering Wheel: A (R Group) -ss.input.port4.wheel.a - -;ss, Virtual Port 4, Steering Wheel: Analog LEFT ← -ss.input.port4.wheel.analog_left - -;ss, Virtual Port 4, Steering Wheel: Analog RIGHT → -ss.input.port4.wheel.analog_right - -;ss, Virtual Port 4, Steering Wheel: B (R Group) -ss.input.port4.wheel.b - -;ss, Virtual Port 4, Steering Wheel: C (R Group) -ss.input.port4.wheel.c - -;ss, Virtual Port 4, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port4.wheel.down - -;ss, Virtual Port 4, Steering Wheel: START -ss.input.port4.wheel.start - -;ss, Virtual Port 4, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port4.wheel.up - -;ss, Virtual Port 4, Steering Wheel: X (L Group) -ss.input.port4.wheel.x - -;ss, Virtual Port 4, Steering Wheel: Y (L Group) -ss.input.port4.wheel.y - -;ss, Virtual Port 4, Steering Wheel: Z (L Group) -ss.input.port4.wheel.z - -;Input device for Virtual Port 5 -ss.input.port5 gamepad - -;ss, Virtual Port 5, 3D Control Pad: A -ss.input.port5.3dpad.a - -;ss, Virtual Port 5, 3D Control Pad: Analog DOWN ↓ -ss.input.port5.3dpad.analog_down - -;ss, Virtual Port 5, 3D Control Pad: Analog LEFT ← -ss.input.port5.3dpad.analog_left - -;ss, Virtual Port 5, 3D Control Pad: Analog RIGHT → -ss.input.port5.3dpad.analog_right - -;ss, Virtual Port 5, 3D Control Pad: Analog UP ↑ -ss.input.port5.3dpad.analog_up - -;ss, Virtual Port 5, 3D Control Pad: B -ss.input.port5.3dpad.b - -;ss, Virtual Port 5, 3D Control Pad: C -ss.input.port5.3dpad.c - -;ss, Virtual Port 5, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port5.3dpad.down - -;ss, Virtual Port 5, 3D Control Pad: D-Pad LEFT ← -ss.input.port5.3dpad.left - -;ss, Virtual Port 5, 3D Control Pad: Left Shoulder (Analog) -ss.input.port5.3dpad.ls - -;ss, Virtual Port 5, 3D Control Pad: Mode -ss.input.port5.3dpad.mode - -;Default position for switch "Mode". -ss.input.port5.3dpad.mode.defpos digital - -;ss, Virtual Port 5, 3D Control Pad: D-Pad RIGHT → -ss.input.port5.3dpad.right - -;ss, Virtual Port 5, 3D Control Pad: Right Shoulder (Analog) -ss.input.port5.3dpad.rs - -;ss, Virtual Port 5, 3D Control Pad: START -ss.input.port5.3dpad.start - -;ss, Virtual Port 5, 3D Control Pad: D-Pad UP ↑ -ss.input.port5.3dpad.up - -;ss, Virtual Port 5, 3D Control Pad: X -ss.input.port5.3dpad.x - -;ss, Virtual Port 5, 3D Control Pad: Y -ss.input.port5.3dpad.y - -;ss, Virtual Port 5, 3D Control Pad: Z -ss.input.port5.3dpad.z - -;ss, Virtual Port 5, Dual Mission: A (R Stick Trigger) -ss.input.port5.dmission.a - -;ss, Virtual Port 5, Dual Mission: A AF -ss.input.port5.dmission.afa - -;Default position for switch "A AF". -ss.input.port5.dmission.afa.defpos off - -;ss, Virtual Port 5, Dual Mission: B AF -ss.input.port5.dmission.afb - -;Default position for switch "B AF". -ss.input.port5.dmission.afb.defpos off - -;ss, Virtual Port 5, Dual Mission: C AF -ss.input.port5.dmission.afc - -;Default position for switch "C AF". -ss.input.port5.dmission.afc.defpos off - -;ss, Virtual Port 5, Dual Mission: L AF -ss.input.port5.dmission.afl - -;Default position for switch "L AF". -ss.input.port5.dmission.afl.defpos off - -;ss, Virtual Port 5, Dual Mission: R AF -ss.input.port5.dmission.afr - -;Default position for switch "R AF". -ss.input.port5.dmission.afr.defpos off - -;ss, Virtual Port 5, Dual Mission: Autofire Speed -ss.input.port5.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port5.dmission.afspeed.defpos 1 - -;ss, Virtual Port 5, Dual Mission: X AF -ss.input.port5.dmission.afx - -;Default position for switch "X AF". -ss.input.port5.dmission.afx.defpos off - -;ss, Virtual Port 5, Dual Mission: Y AF -ss.input.port5.dmission.afy - -;Default position for switch "Y AF". -ss.input.port5.dmission.afy.defpos off - -;ss, Virtual Port 5, Dual Mission: Z AF -ss.input.port5.dmission.afz - -;Default position for switch "Z AF". -ss.input.port5.dmission.afz.defpos off - -;ss, Virtual Port 5, Dual Mission: B (R Stick Left Button) -ss.input.port5.dmission.b - -;ss, Virtual Port 5, Dual Mission: C (R Stick Right Button) -ss.input.port5.dmission.c - -;ss, Virtual Port 5, Dual Mission: L -ss.input.port5.dmission.l - -;ss, Virtual Port 5, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port5.dmission.lstick_back - -;ss, Virtual Port 5, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port5.dmission.lstick_fore - -;ss, Virtual Port 5, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port5.dmission.lstick_left - -;ss, Virtual Port 5, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port5.dmission.lstick_right - -;ss, Virtual Port 5, Dual Mission: L Throttle Down (Analog) -ss.input.port5.dmission.lthrottle_down - -;ss, Virtual Port 5, Dual Mission: L Throttle Up (Analog) -ss.input.port5.dmission.lthrottle_up - -;ss, Virtual Port 5, Dual Mission: R -ss.input.port5.dmission.r - -;ss, Virtual Port 5, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port5.dmission.rstick_back - -;ss, Virtual Port 5, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port5.dmission.rstick_fore - -;ss, Virtual Port 5, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port5.dmission.rstick_left - -;ss, Virtual Port 5, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port5.dmission.rstick_right - -;ss, Virtual Port 5, Dual Mission: R Throttle Down (Analog) -ss.input.port5.dmission.rthrottle_down - -;ss, Virtual Port 5, Dual Mission: R Throttle Up (Analog) -ss.input.port5.dmission.rthrottle_up - -;ss, Virtual Port 5, Dual Mission: START -ss.input.port5.dmission.start - -;ss, Virtual Port 5, Dual Mission: X (L Stick Trigger) -ss.input.port5.dmission.x - -;ss, Virtual Port 5, Dual Mission: Y (L Stick Left Button) -ss.input.port5.dmission.y - -;ss, Virtual Port 5, Dual Mission: Z (L Stick Right Button) -ss.input.port5.dmission.z - -;ss, Virtual Port 5, Digital Gamepad: A -ss.input.port5.gamepad.a - -;ss, Virtual Port 5, Digital Gamepad: B -ss.input.port5.gamepad.b - -;ss, Virtual Port 5, Digital Gamepad: C -ss.input.port5.gamepad.c - -;ss, Virtual Port 5, Digital Gamepad: DOWN ↓ -ss.input.port5.gamepad.down - -;ss, Virtual Port 5, Digital Gamepad: LEFT ← -ss.input.port5.gamepad.left - -;ss, Virtual Port 5, Digital Gamepad: Left Shoulder -ss.input.port5.gamepad.ls - -;ss, Virtual Port 5, Digital Gamepad: RIGHT → -ss.input.port5.gamepad.right - -;ss, Virtual Port 5, Digital Gamepad: Right Shoulder -ss.input.port5.gamepad.rs - -;ss, Virtual Port 5, Digital Gamepad: START -ss.input.port5.gamepad.start - -;ss, Virtual Port 5, Digital Gamepad: UP ↑ -ss.input.port5.gamepad.up - -;ss, Virtual Port 5, Digital Gamepad: X -ss.input.port5.gamepad.x - -;ss, Virtual Port 5, Digital Gamepad: Y -ss.input.port5.gamepad.y - -;ss, Virtual Port 5, Digital Gamepad: Z -ss.input.port5.gamepad.z - -;ss, Virtual Port 5, Light Gun: Offscreen Shot(Simulated) -ss.input.port5.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 5, Light Gun: START -ss.input.port5.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 5, Light Gun: Trigger -ss.input.port5.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 5, Light Gun: X Axis -ss.input.port5.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 5, Light Gun: Y Axis -ss.input.port5.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 5. -ss.input.port5.gun_chairs 0xFFFF00 - -;ss, Virtual Port 5, Keyboard (JP): 0(Zero) -ss.input.port5.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 5, Keyboard (JP): 1(One) -ss.input.port5.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 5, Keyboard (JP): 2 -ss.input.port5.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 5, Keyboard (JP): 3 -ss.input.port5.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 5, Keyboard (JP): 4 -ss.input.port5.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 5, Keyboard (JP): 5 -ss.input.port5.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 5, Keyboard (JP): 6 -ss.input.port5.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 5, Keyboard (JP): 7 -ss.input.port5.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 5, Keyboard (JP): 8 -ss.input.port5.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 5, Keyboard (JP): 9 -ss.input.port5.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 5, Keyboard (JP): A -ss.input.port5.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 5, Keyboard (JP): At @ -ss.input.port5.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 5, Keyboard (JP): B -ss.input.port5.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 5, Keyboard (JP): Backslash \ -ss.input.port5.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 5, Keyboard (JP): Backspace -ss.input.port5.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 5, Keyboard (JP): C -ss.input.port5.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 5, Keyboard (JP): Caps Lock/英数 -ss.input.port5.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 5, Keyboard (JP): Circumflex ^ -ss.input.port5.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 5, Keyboard (JP): Colon : -ss.input.port5.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 5, Keyboard (JP): Comma , -ss.input.port5.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 5, Keyboard (JP): 変換 -ss.input.port5.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 5, Keyboard (JP): D -ss.input.port5.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 5, Keyboard (JP): Delete -ss.input.port5.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 5, Keyboard (JP): Down -ss.input.port5.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 5, Keyboard (JP): E -ss.input.port5.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 5, Keyboard (JP): End -ss.input.port5.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 5, Keyboard (JP): Enter -ss.input.port5.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 5, Keyboard (JP): Escape -ss.input.port5.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 5, Keyboard (JP): F -ss.input.port5.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 5, Keyboard (JP): F1 -ss.input.port5.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 5, Keyboard (JP): F10 -ss.input.port5.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 5, Keyboard (JP): F11 -ss.input.port5.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 5, Keyboard (JP): F12 -ss.input.port5.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 5, Keyboard (JP): F2 -ss.input.port5.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 5, Keyboard (JP): F3 -ss.input.port5.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 5, Keyboard (JP): F4 -ss.input.port5.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 5, Keyboard (JP): F5 -ss.input.port5.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 5, Keyboard (JP): F6 -ss.input.port5.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 5, Keyboard (JP): F7 -ss.input.port5.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 5, Keyboard (JP): F8 -ss.input.port5.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 5, Keyboard (JP): F9 -ss.input.port5.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 5, Keyboard (JP): G -ss.input.port5.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 5, Keyboard (JP): H -ss.input.port5.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 5, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port5.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 5, Keyboard (JP): Home -ss.input.port5.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 5, Keyboard (JP): 半角/全角/漢字 -ss.input.port5.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 5, Keyboard (JP): I -ss.input.port5.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 5, Keyboard (JP): Insert -ss.input.port5.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 5, Keyboard (JP): J -ss.input.port5.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 5, Keyboard (JP): K -ss.input.port5.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 5, Keyboard (JP): L -ss.input.port5.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 5, Keyboard (JP): Left Alt -ss.input.port5.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 5, Keyboard (JP): Left Ctrl -ss.input.port5.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 5, Keyboard (JP): Cursor Left -ss.input.port5.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 5, Keyboard (JP): Left Bracket [ -ss.input.port5.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 5, Keyboard (JP): Left Shift -ss.input.port5.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 5, Keyboard (JP): M -ss.input.port5.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 5, Keyboard (JP): Minus - -ss.input.port5.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 5, Keyboard (JP): N -ss.input.port5.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 5, Keyboard (JP): 無変換 -ss.input.port5.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 5, Keyboard (JP): O -ss.input.port5.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 5, Keyboard (JP): P -ss.input.port5.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 5, Keyboard (JP): Page Down -ss.input.port5.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 5, Keyboard (JP): Page Up -ss.input.port5.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 5, Keyboard (JP): Pause -ss.input.port5.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 5, Keyboard (JP): Period . -ss.input.port5.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 5, Keyboard (JP): Print Screen -ss.input.port5.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 5, Keyboard (JP): Q -ss.input.port5.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 5, Keyboard (JP): R -ss.input.port5.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 5, Keyboard (JP): Right Alt -ss.input.port5.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 5, Keyboard (JP): Right Ctrl -ss.input.port5.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 5, Keyboard (JP): Right -ss.input.port5.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 5, Keyboard (JP): Right Bracket ] -ss.input.port5.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 5, Keyboard (JP): Right Shift -ss.input.port5.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 5, Keyboard (JP): S -ss.input.port5.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 5, Keyboard (JP): Scroll Lock -ss.input.port5.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 5, Keyboard (JP): Semicolon ; -ss.input.port5.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 5, Keyboard (JP): Slash / -ss.input.port5.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 5, Keyboard (JP): Space -ss.input.port5.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 5, Keyboard (JP): T -ss.input.port5.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 5, Keyboard (JP): Tab -ss.input.port5.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 5, Keyboard (JP): U -ss.input.port5.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 5, Keyboard (JP): Up -ss.input.port5.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 5, Keyboard (JP): V -ss.input.port5.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 5, Keyboard (JP): W -ss.input.port5.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 5, Keyboard (JP): X -ss.input.port5.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 5, Keyboard (JP): Y -ss.input.port5.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 5, Keyboard (JP): Yen ¥ -ss.input.port5.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 5, Keyboard (JP): Z -ss.input.port5.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 5, Keyboard (US): 0(Zero) -ss.input.port5.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 5, Keyboard (US): 1(One) -ss.input.port5.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 5, Keyboard (US): 2 -ss.input.port5.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 5, Keyboard (US): 3 -ss.input.port5.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 5, Keyboard (US): 4 -ss.input.port5.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 5, Keyboard (US): 5 -ss.input.port5.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 5, Keyboard (US): 6 -ss.input.port5.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 5, Keyboard (US): 7 -ss.input.port5.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 5, Keyboard (US): 8 -ss.input.port5.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 5, Keyboard (US): 9 -ss.input.port5.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 5, Keyboard (US): A -ss.input.port5.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 5, Keyboard (US): B -ss.input.port5.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 5, Keyboard (US): Backslash \ -ss.input.port5.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 5, Keyboard (US): Backspace -ss.input.port5.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 5, Keyboard (US): C -ss.input.port5.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 5, Keyboard (US): Caps Lock -ss.input.port5.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 5, Keyboard (US): Comma , -ss.input.port5.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 5, Keyboard (US): D -ss.input.port5.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 5, Keyboard (US): Delete -ss.input.port5.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 5, Keyboard (US): Down -ss.input.port5.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 5, Keyboard (US): E -ss.input.port5.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 5, Keyboard (US): End -ss.input.port5.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 5, Keyboard (US): Enter -ss.input.port5.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 5, Keyboard (US): Equals = -ss.input.port5.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 5, Keyboard (US): Escape -ss.input.port5.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 5, Keyboard (US): F -ss.input.port5.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 5, Keyboard (US): F1 -ss.input.port5.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 5, Keyboard (US): F10 -ss.input.port5.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 5, Keyboard (US): F11 -ss.input.port5.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 5, Keyboard (US): F12 -ss.input.port5.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 5, Keyboard (US): F2 -ss.input.port5.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 5, Keyboard (US): F3 -ss.input.port5.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 5, Keyboard (US): F4 -ss.input.port5.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 5, Keyboard (US): F5 -ss.input.port5.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 5, Keyboard (US): F6 -ss.input.port5.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 5, Keyboard (US): F7 -ss.input.port5.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 5, Keyboard (US): F8 -ss.input.port5.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 5, Keyboard (US): F9 -ss.input.port5.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 5, Keyboard (US): G -ss.input.port5.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 5, Keyboard (US): Grave ` -ss.input.port5.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 5, Keyboard (US): H -ss.input.port5.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 5, Keyboard (US): Home -ss.input.port5.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 5, Keyboard (US): I -ss.input.port5.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 5, Keyboard (US): Insert -ss.input.port5.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 5, Keyboard (US): J -ss.input.port5.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 5, Keyboard (US): K -ss.input.port5.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 5, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port5.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 5, Keyboard (US): Keypad Center/5 -ss.input.port5.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 5, Keyboard (US): Keypad Delete -ss.input.port5.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 5, Keyboard (US): Keypad Down/2 -ss.input.port5.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 5, Keyboard (US): Keypad End/1 -ss.input.port5.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 5, Keyboard (US): Keypad Enter -ss.input.port5.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 5, Keyboard (US): Keypad Home/7 -ss.input.port5.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 5, Keyboard (US): Keypad Insert/0 -ss.input.port5.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 5, Keyboard (US): Keypad Left/4 -ss.input.port5.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 5, Keyboard (US): Keypad Minus -ss.input.port5.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 5, Keyboard (US): Keypad Pagedown/3 -ss.input.port5.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 5, Keyboard (US): Keypad Pageup/9 -ss.input.port5.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 5, Keyboard (US): Keypad Plus -ss.input.port5.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 5, Keyboard (US): Keypad Right/6 -ss.input.port5.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 5, Keyboard (US): Keypad Slash(Divide) -ss.input.port5.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 5, Keyboard (US): Keypad Up/8 -ss.input.port5.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 5, Keyboard (US): L -ss.input.port5.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 5, Keyboard (US): Left Alt -ss.input.port5.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 5, Keyboard (US): Left Ctrl -ss.input.port5.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 5, Keyboard (US): Cursor Left -ss.input.port5.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 5, Keyboard (US): Left Bracket [ -ss.input.port5.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 5, Keyboard (US): Left Shift -ss.input.port5.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 5, Keyboard (US): M -ss.input.port5.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 5, Keyboard (US): Minus - -ss.input.port5.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 5, Keyboard (US): N -ss.input.port5.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 5, Keyboard (US): Num Lock -ss.input.port5.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 5, Keyboard (US): O -ss.input.port5.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 5, Keyboard (US): P -ss.input.port5.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 5, Keyboard (US): Page Down -ss.input.port5.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 5, Keyboard (US): Page Up -ss.input.port5.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 5, Keyboard (US): Pause -ss.input.port5.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 5, Keyboard (US): Period . -ss.input.port5.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 5, Keyboard (US): Print Screen -ss.input.port5.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 5, Keyboard (US): Q -ss.input.port5.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 5, Keyboard (US): Quote ' -ss.input.port5.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 5, Keyboard (US): R -ss.input.port5.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 5, Keyboard (US): Right Alt -ss.input.port5.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 5, Keyboard (US): Right Ctrl -ss.input.port5.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 5, Keyboard (US): Right -ss.input.port5.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 5, Keyboard (US): Right Bracket ] -ss.input.port5.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 5, Keyboard (US): Right Shift -ss.input.port5.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 5, Keyboard (US): S -ss.input.port5.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 5, Keyboard (US): Scroll Lock -ss.input.port5.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 5, Keyboard (US): Semicolon ; -ss.input.port5.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 5, Keyboard (US): Slash / -ss.input.port5.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 5, Keyboard (US): Space -ss.input.port5.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 5, Keyboard (US): T -ss.input.port5.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 5, Keyboard (US): Tab -ss.input.port5.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 5, Keyboard (US): U -ss.input.port5.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 5, Keyboard (US): Up -ss.input.port5.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 5, Keyboard (US): V -ss.input.port5.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 5, Keyboard (US): W -ss.input.port5.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 5, Keyboard (US): X -ss.input.port5.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 5, Keyboard (US): Y -ss.input.port5.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 5, Keyboard (US): Z -ss.input.port5.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 5, Mission Stick: A (Stick Trigger) -ss.input.port5.mission.a - -;ss, Virtual Port 5, Mission Stick: A AF -ss.input.port5.mission.afa - -;Default position for switch "A AF". -ss.input.port5.mission.afa.defpos off - -;ss, Virtual Port 5, Mission Stick: B AF -ss.input.port5.mission.afb - -;Default position for switch "B AF". -ss.input.port5.mission.afb.defpos off - -;ss, Virtual Port 5, Mission Stick: C AF -ss.input.port5.mission.afc - -;Default position for switch "C AF". -ss.input.port5.mission.afc.defpos off - -;ss, Virtual Port 5, Mission Stick: L AF -ss.input.port5.mission.afl - -;Default position for switch "L AF". -ss.input.port5.mission.afl.defpos off - -;ss, Virtual Port 5, Mission Stick: R AF -ss.input.port5.mission.afr - -;Default position for switch "R AF". -ss.input.port5.mission.afr.defpos off - -;ss, Virtual Port 5, Mission Stick: AF Speed -ss.input.port5.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port5.mission.afspeed.defpos 1 - -;ss, Virtual Port 5, Mission Stick: X AF -ss.input.port5.mission.afx - -;Default position for switch "X AF". -ss.input.port5.mission.afx.defpos off - -;ss, Virtual Port 5, Mission Stick: Y AF -ss.input.port5.mission.afy - -;Default position for switch "Y AF". -ss.input.port5.mission.afy.defpos off - -;ss, Virtual Port 5, Mission Stick: Z AF -ss.input.port5.mission.afz - -;Default position for switch "Z AF". -ss.input.port5.mission.afz.defpos off - -;ss, Virtual Port 5, Mission Stick: B (Stick Left Button) -ss.input.port5.mission.b - -;ss, Virtual Port 5, Mission Stick: C (Stick Right Button) -ss.input.port5.mission.c - -;ss, Virtual Port 5, Mission Stick: L -ss.input.port5.mission.l - -;ss, Virtual Port 5, Mission Stick: R -ss.input.port5.mission.r - -;ss, Virtual Port 5, Mission Stick: START -ss.input.port5.mission.start - -;ss, Virtual Port 5, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port5.mission.stick_back - -;ss, Virtual Port 5, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port5.mission.stick_fore - -;ss, Virtual Port 5, Mission Stick: Stick LEFT ← (Analog) -ss.input.port5.mission.stick_left - -;ss, Virtual Port 5, Mission Stick: Stick RIGHT → (Analog) -ss.input.port5.mission.stick_right - -;ss, Virtual Port 5, Mission Stick: Throttle Down (Analog) -ss.input.port5.mission.throttle_down - -;ss, Virtual Port 5, Mission Stick: Throttle Up (Analog) -ss.input.port5.mission.throttle_up - -;ss, Virtual Port 5, Mission Stick: X -ss.input.port5.mission.x - -;ss, Virtual Port 5, Mission Stick: Y -ss.input.port5.mission.y - -;ss, Virtual Port 5, Mission Stick: Z -ss.input.port5.mission.z - -;ss, Virtual Port 5, Mouse: Left Button -ss.input.port5.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 5, Mouse: Middle Button -ss.input.port5.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 5, Mouse: Motion Down -ss.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 5, Mouse: Motion Left -ss.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 5, Mouse: Motion Right -ss.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 5, Mouse: Motion Up -ss.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 5, Mouse: Right Button -ss.input.port5.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 5, Mouse: Start -ss.input.port5.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 5, Steering Wheel: A (R Group) -ss.input.port5.wheel.a - -;ss, Virtual Port 5, Steering Wheel: Analog LEFT ← -ss.input.port5.wheel.analog_left - -;ss, Virtual Port 5, Steering Wheel: Analog RIGHT → -ss.input.port5.wheel.analog_right - -;ss, Virtual Port 5, Steering Wheel: B (R Group) -ss.input.port5.wheel.b - -;ss, Virtual Port 5, Steering Wheel: C (R Group) -ss.input.port5.wheel.c - -;ss, Virtual Port 5, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port5.wheel.down - -;ss, Virtual Port 5, Steering Wheel: START -ss.input.port5.wheel.start - -;ss, Virtual Port 5, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port5.wheel.up - -;ss, Virtual Port 5, Steering Wheel: X (L Group) -ss.input.port5.wheel.x - -;ss, Virtual Port 5, Steering Wheel: Y (L Group) -ss.input.port5.wheel.y - -;ss, Virtual Port 5, Steering Wheel: Z (L Group) -ss.input.port5.wheel.z - -;Input device for Virtual Port 6 -ss.input.port6 gamepad - -;ss, Virtual Port 6, 3D Control Pad: A -ss.input.port6.3dpad.a - -;ss, Virtual Port 6, 3D Control Pad: Analog DOWN ↓ -ss.input.port6.3dpad.analog_down - -;ss, Virtual Port 6, 3D Control Pad: Analog LEFT ← -ss.input.port6.3dpad.analog_left - -;ss, Virtual Port 6, 3D Control Pad: Analog RIGHT → -ss.input.port6.3dpad.analog_right - -;ss, Virtual Port 6, 3D Control Pad: Analog UP ↑ -ss.input.port6.3dpad.analog_up - -;ss, Virtual Port 6, 3D Control Pad: B -ss.input.port6.3dpad.b - -;ss, Virtual Port 6, 3D Control Pad: C -ss.input.port6.3dpad.c - -;ss, Virtual Port 6, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port6.3dpad.down - -;ss, Virtual Port 6, 3D Control Pad: D-Pad LEFT ← -ss.input.port6.3dpad.left - -;ss, Virtual Port 6, 3D Control Pad: Left Shoulder (Analog) -ss.input.port6.3dpad.ls - -;ss, Virtual Port 6, 3D Control Pad: Mode -ss.input.port6.3dpad.mode - -;Default position for switch "Mode". -ss.input.port6.3dpad.mode.defpos digital - -;ss, Virtual Port 6, 3D Control Pad: D-Pad RIGHT → -ss.input.port6.3dpad.right - -;ss, Virtual Port 6, 3D Control Pad: Right Shoulder (Analog) -ss.input.port6.3dpad.rs - -;ss, Virtual Port 6, 3D Control Pad: START -ss.input.port6.3dpad.start - -;ss, Virtual Port 6, 3D Control Pad: D-Pad UP ↑ -ss.input.port6.3dpad.up - -;ss, Virtual Port 6, 3D Control Pad: X -ss.input.port6.3dpad.x - -;ss, Virtual Port 6, 3D Control Pad: Y -ss.input.port6.3dpad.y - -;ss, Virtual Port 6, 3D Control Pad: Z -ss.input.port6.3dpad.z - -;ss, Virtual Port 6, Dual Mission: A (R Stick Trigger) -ss.input.port6.dmission.a - -;ss, Virtual Port 6, Dual Mission: A AF -ss.input.port6.dmission.afa - -;Default position for switch "A AF". -ss.input.port6.dmission.afa.defpos off - -;ss, Virtual Port 6, Dual Mission: B AF -ss.input.port6.dmission.afb - -;Default position for switch "B AF". -ss.input.port6.dmission.afb.defpos off - -;ss, Virtual Port 6, Dual Mission: C AF -ss.input.port6.dmission.afc - -;Default position for switch "C AF". -ss.input.port6.dmission.afc.defpos off - -;ss, Virtual Port 6, Dual Mission: L AF -ss.input.port6.dmission.afl - -;Default position for switch "L AF". -ss.input.port6.dmission.afl.defpos off - -;ss, Virtual Port 6, Dual Mission: R AF -ss.input.port6.dmission.afr - -;Default position for switch "R AF". -ss.input.port6.dmission.afr.defpos off - -;ss, Virtual Port 6, Dual Mission: Autofire Speed -ss.input.port6.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port6.dmission.afspeed.defpos 1 - -;ss, Virtual Port 6, Dual Mission: X AF -ss.input.port6.dmission.afx - -;Default position for switch "X AF". -ss.input.port6.dmission.afx.defpos off - -;ss, Virtual Port 6, Dual Mission: Y AF -ss.input.port6.dmission.afy - -;Default position for switch "Y AF". -ss.input.port6.dmission.afy.defpos off - -;ss, Virtual Port 6, Dual Mission: Z AF -ss.input.port6.dmission.afz - -;Default position for switch "Z AF". -ss.input.port6.dmission.afz.defpos off - -;ss, Virtual Port 6, Dual Mission: B (R Stick Left Button) -ss.input.port6.dmission.b - -;ss, Virtual Port 6, Dual Mission: C (R Stick Right Button) -ss.input.port6.dmission.c - -;ss, Virtual Port 6, Dual Mission: L -ss.input.port6.dmission.l - -;ss, Virtual Port 6, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port6.dmission.lstick_back - -;ss, Virtual Port 6, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port6.dmission.lstick_fore - -;ss, Virtual Port 6, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port6.dmission.lstick_left - -;ss, Virtual Port 6, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port6.dmission.lstick_right - -;ss, Virtual Port 6, Dual Mission: L Throttle Down (Analog) -ss.input.port6.dmission.lthrottle_down - -;ss, Virtual Port 6, Dual Mission: L Throttle Up (Analog) -ss.input.port6.dmission.lthrottle_up - -;ss, Virtual Port 6, Dual Mission: R -ss.input.port6.dmission.r - -;ss, Virtual Port 6, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port6.dmission.rstick_back - -;ss, Virtual Port 6, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port6.dmission.rstick_fore - -;ss, Virtual Port 6, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port6.dmission.rstick_left - -;ss, Virtual Port 6, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port6.dmission.rstick_right - -;ss, Virtual Port 6, Dual Mission: R Throttle Down (Analog) -ss.input.port6.dmission.rthrottle_down - -;ss, Virtual Port 6, Dual Mission: R Throttle Up (Analog) -ss.input.port6.dmission.rthrottle_up - -;ss, Virtual Port 6, Dual Mission: START -ss.input.port6.dmission.start - -;ss, Virtual Port 6, Dual Mission: X (L Stick Trigger) -ss.input.port6.dmission.x - -;ss, Virtual Port 6, Dual Mission: Y (L Stick Left Button) -ss.input.port6.dmission.y - -;ss, Virtual Port 6, Dual Mission: Z (L Stick Right Button) -ss.input.port6.dmission.z - -;ss, Virtual Port 6, Digital Gamepad: A -ss.input.port6.gamepad.a - -;ss, Virtual Port 6, Digital Gamepad: B -ss.input.port6.gamepad.b - -;ss, Virtual Port 6, Digital Gamepad: C -ss.input.port6.gamepad.c - -;ss, Virtual Port 6, Digital Gamepad: DOWN ↓ -ss.input.port6.gamepad.down - -;ss, Virtual Port 6, Digital Gamepad: LEFT ← -ss.input.port6.gamepad.left - -;ss, Virtual Port 6, Digital Gamepad: Left Shoulder -ss.input.port6.gamepad.ls - -;ss, Virtual Port 6, Digital Gamepad: RIGHT → -ss.input.port6.gamepad.right - -;ss, Virtual Port 6, Digital Gamepad: Right Shoulder -ss.input.port6.gamepad.rs - -;ss, Virtual Port 6, Digital Gamepad: START -ss.input.port6.gamepad.start - -;ss, Virtual Port 6, Digital Gamepad: UP ↑ -ss.input.port6.gamepad.up - -;ss, Virtual Port 6, Digital Gamepad: X -ss.input.port6.gamepad.x - -;ss, Virtual Port 6, Digital Gamepad: Y -ss.input.port6.gamepad.y - -;ss, Virtual Port 6, Digital Gamepad: Z -ss.input.port6.gamepad.z - -;ss, Virtual Port 6, Light Gun: Offscreen Shot(Simulated) -ss.input.port6.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 6, Light Gun: START -ss.input.port6.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 6, Light Gun: Trigger -ss.input.port6.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 6, Light Gun: X Axis -ss.input.port6.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 6, Light Gun: Y Axis -ss.input.port6.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 6. -ss.input.port6.gun_chairs 0x00FFFF - -;ss, Virtual Port 6, Keyboard (JP): 0(Zero) -ss.input.port6.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 6, Keyboard (JP): 1(One) -ss.input.port6.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 6, Keyboard (JP): 2 -ss.input.port6.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 6, Keyboard (JP): 3 -ss.input.port6.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 6, Keyboard (JP): 4 -ss.input.port6.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 6, Keyboard (JP): 5 -ss.input.port6.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 6, Keyboard (JP): 6 -ss.input.port6.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 6, Keyboard (JP): 7 -ss.input.port6.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 6, Keyboard (JP): 8 -ss.input.port6.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 6, Keyboard (JP): 9 -ss.input.port6.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 6, Keyboard (JP): A -ss.input.port6.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 6, Keyboard (JP): At @ -ss.input.port6.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 6, Keyboard (JP): B -ss.input.port6.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 6, Keyboard (JP): Backslash \ -ss.input.port6.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 6, Keyboard (JP): Backspace -ss.input.port6.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 6, Keyboard (JP): C -ss.input.port6.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 6, Keyboard (JP): Caps Lock/英数 -ss.input.port6.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 6, Keyboard (JP): Circumflex ^ -ss.input.port6.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 6, Keyboard (JP): Colon : -ss.input.port6.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 6, Keyboard (JP): Comma , -ss.input.port6.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 6, Keyboard (JP): 変換 -ss.input.port6.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 6, Keyboard (JP): D -ss.input.port6.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 6, Keyboard (JP): Delete -ss.input.port6.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 6, Keyboard (JP): Down -ss.input.port6.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 6, Keyboard (JP): E -ss.input.port6.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 6, Keyboard (JP): End -ss.input.port6.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 6, Keyboard (JP): Enter -ss.input.port6.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 6, Keyboard (JP): Escape -ss.input.port6.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 6, Keyboard (JP): F -ss.input.port6.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 6, Keyboard (JP): F1 -ss.input.port6.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 6, Keyboard (JP): F10 -ss.input.port6.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 6, Keyboard (JP): F11 -ss.input.port6.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 6, Keyboard (JP): F12 -ss.input.port6.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 6, Keyboard (JP): F2 -ss.input.port6.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 6, Keyboard (JP): F3 -ss.input.port6.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 6, Keyboard (JP): F4 -ss.input.port6.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 6, Keyboard (JP): F5 -ss.input.port6.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 6, Keyboard (JP): F6 -ss.input.port6.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 6, Keyboard (JP): F7 -ss.input.port6.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 6, Keyboard (JP): F8 -ss.input.port6.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 6, Keyboard (JP): F9 -ss.input.port6.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 6, Keyboard (JP): G -ss.input.port6.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 6, Keyboard (JP): H -ss.input.port6.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 6, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port6.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 6, Keyboard (JP): Home -ss.input.port6.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 6, Keyboard (JP): 半角/全角/漢字 -ss.input.port6.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 6, Keyboard (JP): I -ss.input.port6.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 6, Keyboard (JP): Insert -ss.input.port6.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 6, Keyboard (JP): J -ss.input.port6.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 6, Keyboard (JP): K -ss.input.port6.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 6, Keyboard (JP): L -ss.input.port6.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 6, Keyboard (JP): Left Alt -ss.input.port6.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 6, Keyboard (JP): Left Ctrl -ss.input.port6.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 6, Keyboard (JP): Cursor Left -ss.input.port6.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 6, Keyboard (JP): Left Bracket [ -ss.input.port6.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 6, Keyboard (JP): Left Shift -ss.input.port6.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 6, Keyboard (JP): M -ss.input.port6.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 6, Keyboard (JP): Minus - -ss.input.port6.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 6, Keyboard (JP): N -ss.input.port6.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 6, Keyboard (JP): 無変換 -ss.input.port6.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 6, Keyboard (JP): O -ss.input.port6.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 6, Keyboard (JP): P -ss.input.port6.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 6, Keyboard (JP): Page Down -ss.input.port6.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 6, Keyboard (JP): Page Up -ss.input.port6.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 6, Keyboard (JP): Pause -ss.input.port6.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 6, Keyboard (JP): Period . -ss.input.port6.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 6, Keyboard (JP): Print Screen -ss.input.port6.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 6, Keyboard (JP): Q -ss.input.port6.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 6, Keyboard (JP): R -ss.input.port6.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 6, Keyboard (JP): Right Alt -ss.input.port6.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 6, Keyboard (JP): Right Ctrl -ss.input.port6.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 6, Keyboard (JP): Right -ss.input.port6.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 6, Keyboard (JP): Right Bracket ] -ss.input.port6.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 6, Keyboard (JP): Right Shift -ss.input.port6.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 6, Keyboard (JP): S -ss.input.port6.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 6, Keyboard (JP): Scroll Lock -ss.input.port6.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 6, Keyboard (JP): Semicolon ; -ss.input.port6.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 6, Keyboard (JP): Slash / -ss.input.port6.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 6, Keyboard (JP): Space -ss.input.port6.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 6, Keyboard (JP): T -ss.input.port6.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 6, Keyboard (JP): Tab -ss.input.port6.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 6, Keyboard (JP): U -ss.input.port6.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 6, Keyboard (JP): Up -ss.input.port6.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 6, Keyboard (JP): V -ss.input.port6.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 6, Keyboard (JP): W -ss.input.port6.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 6, Keyboard (JP): X -ss.input.port6.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 6, Keyboard (JP): Y -ss.input.port6.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 6, Keyboard (JP): Yen ¥ -ss.input.port6.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 6, Keyboard (JP): Z -ss.input.port6.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 6, Keyboard (US): 0(Zero) -ss.input.port6.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 6, Keyboard (US): 1(One) -ss.input.port6.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 6, Keyboard (US): 2 -ss.input.port6.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 6, Keyboard (US): 3 -ss.input.port6.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 6, Keyboard (US): 4 -ss.input.port6.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 6, Keyboard (US): 5 -ss.input.port6.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 6, Keyboard (US): 6 -ss.input.port6.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 6, Keyboard (US): 7 -ss.input.port6.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 6, Keyboard (US): 8 -ss.input.port6.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 6, Keyboard (US): 9 -ss.input.port6.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 6, Keyboard (US): A -ss.input.port6.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 6, Keyboard (US): B -ss.input.port6.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 6, Keyboard (US): Backslash \ -ss.input.port6.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 6, Keyboard (US): Backspace -ss.input.port6.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 6, Keyboard (US): C -ss.input.port6.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 6, Keyboard (US): Caps Lock -ss.input.port6.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 6, Keyboard (US): Comma , -ss.input.port6.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 6, Keyboard (US): D -ss.input.port6.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 6, Keyboard (US): Delete -ss.input.port6.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 6, Keyboard (US): Down -ss.input.port6.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 6, Keyboard (US): E -ss.input.port6.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 6, Keyboard (US): End -ss.input.port6.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 6, Keyboard (US): Enter -ss.input.port6.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 6, Keyboard (US): Equals = -ss.input.port6.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 6, Keyboard (US): Escape -ss.input.port6.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 6, Keyboard (US): F -ss.input.port6.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 6, Keyboard (US): F1 -ss.input.port6.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 6, Keyboard (US): F10 -ss.input.port6.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 6, Keyboard (US): F11 -ss.input.port6.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 6, Keyboard (US): F12 -ss.input.port6.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 6, Keyboard (US): F2 -ss.input.port6.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 6, Keyboard (US): F3 -ss.input.port6.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 6, Keyboard (US): F4 -ss.input.port6.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 6, Keyboard (US): F5 -ss.input.port6.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 6, Keyboard (US): F6 -ss.input.port6.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 6, Keyboard (US): F7 -ss.input.port6.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 6, Keyboard (US): F8 -ss.input.port6.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 6, Keyboard (US): F9 -ss.input.port6.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 6, Keyboard (US): G -ss.input.port6.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 6, Keyboard (US): Grave ` -ss.input.port6.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 6, Keyboard (US): H -ss.input.port6.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 6, Keyboard (US): Home -ss.input.port6.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 6, Keyboard (US): I -ss.input.port6.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 6, Keyboard (US): Insert -ss.input.port6.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 6, Keyboard (US): J -ss.input.port6.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 6, Keyboard (US): K -ss.input.port6.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 6, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port6.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 6, Keyboard (US): Keypad Center/5 -ss.input.port6.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 6, Keyboard (US): Keypad Delete -ss.input.port6.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 6, Keyboard (US): Keypad Down/2 -ss.input.port6.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 6, Keyboard (US): Keypad End/1 -ss.input.port6.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 6, Keyboard (US): Keypad Enter -ss.input.port6.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 6, Keyboard (US): Keypad Home/7 -ss.input.port6.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 6, Keyboard (US): Keypad Insert/0 -ss.input.port6.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 6, Keyboard (US): Keypad Left/4 -ss.input.port6.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 6, Keyboard (US): Keypad Minus -ss.input.port6.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 6, Keyboard (US): Keypad Pagedown/3 -ss.input.port6.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 6, Keyboard (US): Keypad Pageup/9 -ss.input.port6.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 6, Keyboard (US): Keypad Plus -ss.input.port6.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 6, Keyboard (US): Keypad Right/6 -ss.input.port6.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 6, Keyboard (US): Keypad Slash(Divide) -ss.input.port6.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 6, Keyboard (US): Keypad Up/8 -ss.input.port6.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 6, Keyboard (US): L -ss.input.port6.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 6, Keyboard (US): Left Alt -ss.input.port6.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 6, Keyboard (US): Left Ctrl -ss.input.port6.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 6, Keyboard (US): Cursor Left -ss.input.port6.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 6, Keyboard (US): Left Bracket [ -ss.input.port6.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 6, Keyboard (US): Left Shift -ss.input.port6.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 6, Keyboard (US): M -ss.input.port6.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 6, Keyboard (US): Minus - -ss.input.port6.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 6, Keyboard (US): N -ss.input.port6.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 6, Keyboard (US): Num Lock -ss.input.port6.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 6, Keyboard (US): O -ss.input.port6.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 6, Keyboard (US): P -ss.input.port6.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 6, Keyboard (US): Page Down -ss.input.port6.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 6, Keyboard (US): Page Up -ss.input.port6.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 6, Keyboard (US): Pause -ss.input.port6.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 6, Keyboard (US): Period . -ss.input.port6.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 6, Keyboard (US): Print Screen -ss.input.port6.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 6, Keyboard (US): Q -ss.input.port6.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 6, Keyboard (US): Quote ' -ss.input.port6.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 6, Keyboard (US): R -ss.input.port6.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 6, Keyboard (US): Right Alt -ss.input.port6.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 6, Keyboard (US): Right Ctrl -ss.input.port6.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 6, Keyboard (US): Right -ss.input.port6.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 6, Keyboard (US): Right Bracket ] -ss.input.port6.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 6, Keyboard (US): Right Shift -ss.input.port6.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 6, Keyboard (US): S -ss.input.port6.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 6, Keyboard (US): Scroll Lock -ss.input.port6.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 6, Keyboard (US): Semicolon ; -ss.input.port6.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 6, Keyboard (US): Slash / -ss.input.port6.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 6, Keyboard (US): Space -ss.input.port6.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 6, Keyboard (US): T -ss.input.port6.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 6, Keyboard (US): Tab -ss.input.port6.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 6, Keyboard (US): U -ss.input.port6.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 6, Keyboard (US): Up -ss.input.port6.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 6, Keyboard (US): V -ss.input.port6.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 6, Keyboard (US): W -ss.input.port6.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 6, Keyboard (US): X -ss.input.port6.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 6, Keyboard (US): Y -ss.input.port6.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 6, Keyboard (US): Z -ss.input.port6.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 6, Mission Stick: A (Stick Trigger) -ss.input.port6.mission.a - -;ss, Virtual Port 6, Mission Stick: A AF -ss.input.port6.mission.afa - -;Default position for switch "A AF". -ss.input.port6.mission.afa.defpos off - -;ss, Virtual Port 6, Mission Stick: B AF -ss.input.port6.mission.afb - -;Default position for switch "B AF". -ss.input.port6.mission.afb.defpos off - -;ss, Virtual Port 6, Mission Stick: C AF -ss.input.port6.mission.afc - -;Default position for switch "C AF". -ss.input.port6.mission.afc.defpos off - -;ss, Virtual Port 6, Mission Stick: L AF -ss.input.port6.mission.afl - -;Default position for switch "L AF". -ss.input.port6.mission.afl.defpos off - -;ss, Virtual Port 6, Mission Stick: R AF -ss.input.port6.mission.afr - -;Default position for switch "R AF". -ss.input.port6.mission.afr.defpos off - -;ss, Virtual Port 6, Mission Stick: AF Speed -ss.input.port6.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port6.mission.afspeed.defpos 1 - -;ss, Virtual Port 6, Mission Stick: X AF -ss.input.port6.mission.afx - -;Default position for switch "X AF". -ss.input.port6.mission.afx.defpos off - -;ss, Virtual Port 6, Mission Stick: Y AF -ss.input.port6.mission.afy - -;Default position for switch "Y AF". -ss.input.port6.mission.afy.defpos off - -;ss, Virtual Port 6, Mission Stick: Z AF -ss.input.port6.mission.afz - -;Default position for switch "Z AF". -ss.input.port6.mission.afz.defpos off - -;ss, Virtual Port 6, Mission Stick: B (Stick Left Button) -ss.input.port6.mission.b - -;ss, Virtual Port 6, Mission Stick: C (Stick Right Button) -ss.input.port6.mission.c - -;ss, Virtual Port 6, Mission Stick: L -ss.input.port6.mission.l - -;ss, Virtual Port 6, Mission Stick: R -ss.input.port6.mission.r - -;ss, Virtual Port 6, Mission Stick: START -ss.input.port6.mission.start - -;ss, Virtual Port 6, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port6.mission.stick_back - -;ss, Virtual Port 6, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port6.mission.stick_fore - -;ss, Virtual Port 6, Mission Stick: Stick LEFT ← (Analog) -ss.input.port6.mission.stick_left - -;ss, Virtual Port 6, Mission Stick: Stick RIGHT → (Analog) -ss.input.port6.mission.stick_right - -;ss, Virtual Port 6, Mission Stick: Throttle Down (Analog) -ss.input.port6.mission.throttle_down - -;ss, Virtual Port 6, Mission Stick: Throttle Up (Analog) -ss.input.port6.mission.throttle_up - -;ss, Virtual Port 6, Mission Stick: X -ss.input.port6.mission.x - -;ss, Virtual Port 6, Mission Stick: Y -ss.input.port6.mission.y - -;ss, Virtual Port 6, Mission Stick: Z -ss.input.port6.mission.z - -;ss, Virtual Port 6, Mouse: Left Button -ss.input.port6.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 6, Mouse: Middle Button -ss.input.port6.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 6, Mouse: Motion Down -ss.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 6, Mouse: Motion Left -ss.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 6, Mouse: Motion Right -ss.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 6, Mouse: Motion Up -ss.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 6, Mouse: Right Button -ss.input.port6.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 6, Mouse: Start -ss.input.port6.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 6, Steering Wheel: A (R Group) -ss.input.port6.wheel.a - -;ss, Virtual Port 6, Steering Wheel: Analog LEFT ← -ss.input.port6.wheel.analog_left - -;ss, Virtual Port 6, Steering Wheel: Analog RIGHT → -ss.input.port6.wheel.analog_right - -;ss, Virtual Port 6, Steering Wheel: B (R Group) -ss.input.port6.wheel.b - -;ss, Virtual Port 6, Steering Wheel: C (R Group) -ss.input.port6.wheel.c - -;ss, Virtual Port 6, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port6.wheel.down - -;ss, Virtual Port 6, Steering Wheel: START -ss.input.port6.wheel.start - -;ss, Virtual Port 6, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port6.wheel.up - -;ss, Virtual Port 6, Steering Wheel: X (L Group) -ss.input.port6.wheel.x - -;ss, Virtual Port 6, Steering Wheel: Y (L Group) -ss.input.port6.wheel.y - -;ss, Virtual Port 6, Steering Wheel: Z (L Group) -ss.input.port6.wheel.z - -;Input device for Virtual Port 7 -ss.input.port7 gamepad - -;ss, Virtual Port 7, 3D Control Pad: A -ss.input.port7.3dpad.a - -;ss, Virtual Port 7, 3D Control Pad: Analog DOWN ↓ -ss.input.port7.3dpad.analog_down - -;ss, Virtual Port 7, 3D Control Pad: Analog LEFT ← -ss.input.port7.3dpad.analog_left - -;ss, Virtual Port 7, 3D Control Pad: Analog RIGHT → -ss.input.port7.3dpad.analog_right - -;ss, Virtual Port 7, 3D Control Pad: Analog UP ↑ -ss.input.port7.3dpad.analog_up - -;ss, Virtual Port 7, 3D Control Pad: B -ss.input.port7.3dpad.b - -;ss, Virtual Port 7, 3D Control Pad: C -ss.input.port7.3dpad.c - -;ss, Virtual Port 7, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port7.3dpad.down - -;ss, Virtual Port 7, 3D Control Pad: D-Pad LEFT ← -ss.input.port7.3dpad.left - -;ss, Virtual Port 7, 3D Control Pad: Left Shoulder (Analog) -ss.input.port7.3dpad.ls - -;ss, Virtual Port 7, 3D Control Pad: Mode -ss.input.port7.3dpad.mode - -;Default position for switch "Mode". -ss.input.port7.3dpad.mode.defpos digital - -;ss, Virtual Port 7, 3D Control Pad: D-Pad RIGHT → -ss.input.port7.3dpad.right - -;ss, Virtual Port 7, 3D Control Pad: Right Shoulder (Analog) -ss.input.port7.3dpad.rs - -;ss, Virtual Port 7, 3D Control Pad: START -ss.input.port7.3dpad.start - -;ss, Virtual Port 7, 3D Control Pad: D-Pad UP ↑ -ss.input.port7.3dpad.up - -;ss, Virtual Port 7, 3D Control Pad: X -ss.input.port7.3dpad.x - -;ss, Virtual Port 7, 3D Control Pad: Y -ss.input.port7.3dpad.y - -;ss, Virtual Port 7, 3D Control Pad: Z -ss.input.port7.3dpad.z - -;ss, Virtual Port 7, Dual Mission: A (R Stick Trigger) -ss.input.port7.dmission.a - -;ss, Virtual Port 7, Dual Mission: A AF -ss.input.port7.dmission.afa - -;Default position for switch "A AF". -ss.input.port7.dmission.afa.defpos off - -;ss, Virtual Port 7, Dual Mission: B AF -ss.input.port7.dmission.afb - -;Default position for switch "B AF". -ss.input.port7.dmission.afb.defpos off - -;ss, Virtual Port 7, Dual Mission: C AF -ss.input.port7.dmission.afc - -;Default position for switch "C AF". -ss.input.port7.dmission.afc.defpos off - -;ss, Virtual Port 7, Dual Mission: L AF -ss.input.port7.dmission.afl - -;Default position for switch "L AF". -ss.input.port7.dmission.afl.defpos off - -;ss, Virtual Port 7, Dual Mission: R AF -ss.input.port7.dmission.afr - -;Default position for switch "R AF". -ss.input.port7.dmission.afr.defpos off - -;ss, Virtual Port 7, Dual Mission: Autofire Speed -ss.input.port7.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port7.dmission.afspeed.defpos 1 - -;ss, Virtual Port 7, Dual Mission: X AF -ss.input.port7.dmission.afx - -;Default position for switch "X AF". -ss.input.port7.dmission.afx.defpos off - -;ss, Virtual Port 7, Dual Mission: Y AF -ss.input.port7.dmission.afy - -;Default position for switch "Y AF". -ss.input.port7.dmission.afy.defpos off - -;ss, Virtual Port 7, Dual Mission: Z AF -ss.input.port7.dmission.afz - -;Default position for switch "Z AF". -ss.input.port7.dmission.afz.defpos off - -;ss, Virtual Port 7, Dual Mission: B (R Stick Left Button) -ss.input.port7.dmission.b - -;ss, Virtual Port 7, Dual Mission: C (R Stick Right Button) -ss.input.port7.dmission.c - -;ss, Virtual Port 7, Dual Mission: L -ss.input.port7.dmission.l - -;ss, Virtual Port 7, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port7.dmission.lstick_back - -;ss, Virtual Port 7, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port7.dmission.lstick_fore - -;ss, Virtual Port 7, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port7.dmission.lstick_left - -;ss, Virtual Port 7, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port7.dmission.lstick_right - -;ss, Virtual Port 7, Dual Mission: L Throttle Down (Analog) -ss.input.port7.dmission.lthrottle_down - -;ss, Virtual Port 7, Dual Mission: L Throttle Up (Analog) -ss.input.port7.dmission.lthrottle_up - -;ss, Virtual Port 7, Dual Mission: R -ss.input.port7.dmission.r - -;ss, Virtual Port 7, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port7.dmission.rstick_back - -;ss, Virtual Port 7, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port7.dmission.rstick_fore - -;ss, Virtual Port 7, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port7.dmission.rstick_left - -;ss, Virtual Port 7, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port7.dmission.rstick_right - -;ss, Virtual Port 7, Dual Mission: R Throttle Down (Analog) -ss.input.port7.dmission.rthrottle_down - -;ss, Virtual Port 7, Dual Mission: R Throttle Up (Analog) -ss.input.port7.dmission.rthrottle_up - -;ss, Virtual Port 7, Dual Mission: START -ss.input.port7.dmission.start - -;ss, Virtual Port 7, Dual Mission: X (L Stick Trigger) -ss.input.port7.dmission.x - -;ss, Virtual Port 7, Dual Mission: Y (L Stick Left Button) -ss.input.port7.dmission.y - -;ss, Virtual Port 7, Dual Mission: Z (L Stick Right Button) -ss.input.port7.dmission.z - -;ss, Virtual Port 7, Digital Gamepad: A -ss.input.port7.gamepad.a - -;ss, Virtual Port 7, Digital Gamepad: B -ss.input.port7.gamepad.b - -;ss, Virtual Port 7, Digital Gamepad: C -ss.input.port7.gamepad.c - -;ss, Virtual Port 7, Digital Gamepad: DOWN ↓ -ss.input.port7.gamepad.down - -;ss, Virtual Port 7, Digital Gamepad: LEFT ← -ss.input.port7.gamepad.left - -;ss, Virtual Port 7, Digital Gamepad: Left Shoulder -ss.input.port7.gamepad.ls - -;ss, Virtual Port 7, Digital Gamepad: RIGHT → -ss.input.port7.gamepad.right - -;ss, Virtual Port 7, Digital Gamepad: Right Shoulder -ss.input.port7.gamepad.rs - -;ss, Virtual Port 7, Digital Gamepad: START -ss.input.port7.gamepad.start - -;ss, Virtual Port 7, Digital Gamepad: UP ↑ -ss.input.port7.gamepad.up - -;ss, Virtual Port 7, Digital Gamepad: X -ss.input.port7.gamepad.x - -;ss, Virtual Port 7, Digital Gamepad: Y -ss.input.port7.gamepad.y - -;ss, Virtual Port 7, Digital Gamepad: Z -ss.input.port7.gamepad.z - -;ss, Virtual Port 7, Light Gun: Offscreen Shot(Simulated) -ss.input.port7.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 7, Light Gun: START -ss.input.port7.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 7, Light Gun: Trigger -ss.input.port7.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 7, Light Gun: X Axis -ss.input.port7.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 7, Light Gun: Y Axis -ss.input.port7.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 7. -ss.input.port7.gun_chairs 0x0080FF - -;ss, Virtual Port 7, Keyboard (JP): 0(Zero) -ss.input.port7.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 7, Keyboard (JP): 1(One) -ss.input.port7.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 7, Keyboard (JP): 2 -ss.input.port7.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 7, Keyboard (JP): 3 -ss.input.port7.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 7, Keyboard (JP): 4 -ss.input.port7.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 7, Keyboard (JP): 5 -ss.input.port7.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 7, Keyboard (JP): 6 -ss.input.port7.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 7, Keyboard (JP): 7 -ss.input.port7.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 7, Keyboard (JP): 8 -ss.input.port7.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 7, Keyboard (JP): 9 -ss.input.port7.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 7, Keyboard (JP): A -ss.input.port7.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 7, Keyboard (JP): At @ -ss.input.port7.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 7, Keyboard (JP): B -ss.input.port7.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 7, Keyboard (JP): Backslash \ -ss.input.port7.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 7, Keyboard (JP): Backspace -ss.input.port7.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 7, Keyboard (JP): C -ss.input.port7.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 7, Keyboard (JP): Caps Lock/英数 -ss.input.port7.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 7, Keyboard (JP): Circumflex ^ -ss.input.port7.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 7, Keyboard (JP): Colon : -ss.input.port7.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 7, Keyboard (JP): Comma , -ss.input.port7.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 7, Keyboard (JP): 変換 -ss.input.port7.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 7, Keyboard (JP): D -ss.input.port7.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 7, Keyboard (JP): Delete -ss.input.port7.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 7, Keyboard (JP): Down -ss.input.port7.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 7, Keyboard (JP): E -ss.input.port7.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 7, Keyboard (JP): End -ss.input.port7.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 7, Keyboard (JP): Enter -ss.input.port7.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 7, Keyboard (JP): Escape -ss.input.port7.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 7, Keyboard (JP): F -ss.input.port7.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 7, Keyboard (JP): F1 -ss.input.port7.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 7, Keyboard (JP): F10 -ss.input.port7.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 7, Keyboard (JP): F11 -ss.input.port7.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 7, Keyboard (JP): F12 -ss.input.port7.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 7, Keyboard (JP): F2 -ss.input.port7.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 7, Keyboard (JP): F3 -ss.input.port7.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 7, Keyboard (JP): F4 -ss.input.port7.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 7, Keyboard (JP): F5 -ss.input.port7.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 7, Keyboard (JP): F6 -ss.input.port7.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 7, Keyboard (JP): F7 -ss.input.port7.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 7, Keyboard (JP): F8 -ss.input.port7.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 7, Keyboard (JP): F9 -ss.input.port7.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 7, Keyboard (JP): G -ss.input.port7.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 7, Keyboard (JP): H -ss.input.port7.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 7, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port7.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 7, Keyboard (JP): Home -ss.input.port7.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 7, Keyboard (JP): 半角/全角/漢字 -ss.input.port7.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 7, Keyboard (JP): I -ss.input.port7.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 7, Keyboard (JP): Insert -ss.input.port7.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 7, Keyboard (JP): J -ss.input.port7.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 7, Keyboard (JP): K -ss.input.port7.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 7, Keyboard (JP): L -ss.input.port7.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 7, Keyboard (JP): Left Alt -ss.input.port7.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 7, Keyboard (JP): Left Ctrl -ss.input.port7.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 7, Keyboard (JP): Cursor Left -ss.input.port7.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 7, Keyboard (JP): Left Bracket [ -ss.input.port7.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 7, Keyboard (JP): Left Shift -ss.input.port7.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 7, Keyboard (JP): M -ss.input.port7.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 7, Keyboard (JP): Minus - -ss.input.port7.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 7, Keyboard (JP): N -ss.input.port7.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 7, Keyboard (JP): 無変換 -ss.input.port7.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 7, Keyboard (JP): O -ss.input.port7.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 7, Keyboard (JP): P -ss.input.port7.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 7, Keyboard (JP): Page Down -ss.input.port7.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 7, Keyboard (JP): Page Up -ss.input.port7.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 7, Keyboard (JP): Pause -ss.input.port7.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 7, Keyboard (JP): Period . -ss.input.port7.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 7, Keyboard (JP): Print Screen -ss.input.port7.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 7, Keyboard (JP): Q -ss.input.port7.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 7, Keyboard (JP): R -ss.input.port7.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 7, Keyboard (JP): Right Alt -ss.input.port7.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 7, Keyboard (JP): Right Ctrl -ss.input.port7.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 7, Keyboard (JP): Right -ss.input.port7.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 7, Keyboard (JP): Right Bracket ] -ss.input.port7.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 7, Keyboard (JP): Right Shift -ss.input.port7.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 7, Keyboard (JP): S -ss.input.port7.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 7, Keyboard (JP): Scroll Lock -ss.input.port7.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 7, Keyboard (JP): Semicolon ; -ss.input.port7.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 7, Keyboard (JP): Slash / -ss.input.port7.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 7, Keyboard (JP): Space -ss.input.port7.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 7, Keyboard (JP): T -ss.input.port7.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 7, Keyboard (JP): Tab -ss.input.port7.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 7, Keyboard (JP): U -ss.input.port7.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 7, Keyboard (JP): Up -ss.input.port7.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 7, Keyboard (JP): V -ss.input.port7.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 7, Keyboard (JP): W -ss.input.port7.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 7, Keyboard (JP): X -ss.input.port7.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 7, Keyboard (JP): Y -ss.input.port7.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 7, Keyboard (JP): Yen ¥ -ss.input.port7.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 7, Keyboard (JP): Z -ss.input.port7.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 7, Keyboard (US): 0(Zero) -ss.input.port7.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 7, Keyboard (US): 1(One) -ss.input.port7.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 7, Keyboard (US): 2 -ss.input.port7.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 7, Keyboard (US): 3 -ss.input.port7.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 7, Keyboard (US): 4 -ss.input.port7.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 7, Keyboard (US): 5 -ss.input.port7.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 7, Keyboard (US): 6 -ss.input.port7.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 7, Keyboard (US): 7 -ss.input.port7.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 7, Keyboard (US): 8 -ss.input.port7.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 7, Keyboard (US): 9 -ss.input.port7.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 7, Keyboard (US): A -ss.input.port7.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 7, Keyboard (US): B -ss.input.port7.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 7, Keyboard (US): Backslash \ -ss.input.port7.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 7, Keyboard (US): Backspace -ss.input.port7.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 7, Keyboard (US): C -ss.input.port7.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 7, Keyboard (US): Caps Lock -ss.input.port7.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 7, Keyboard (US): Comma , -ss.input.port7.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 7, Keyboard (US): D -ss.input.port7.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 7, Keyboard (US): Delete -ss.input.port7.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 7, Keyboard (US): Down -ss.input.port7.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 7, Keyboard (US): E -ss.input.port7.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 7, Keyboard (US): End -ss.input.port7.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 7, Keyboard (US): Enter -ss.input.port7.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 7, Keyboard (US): Equals = -ss.input.port7.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 7, Keyboard (US): Escape -ss.input.port7.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 7, Keyboard (US): F -ss.input.port7.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 7, Keyboard (US): F1 -ss.input.port7.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 7, Keyboard (US): F10 -ss.input.port7.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 7, Keyboard (US): F11 -ss.input.port7.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 7, Keyboard (US): F12 -ss.input.port7.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 7, Keyboard (US): F2 -ss.input.port7.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 7, Keyboard (US): F3 -ss.input.port7.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 7, Keyboard (US): F4 -ss.input.port7.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 7, Keyboard (US): F5 -ss.input.port7.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 7, Keyboard (US): F6 -ss.input.port7.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 7, Keyboard (US): F7 -ss.input.port7.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 7, Keyboard (US): F8 -ss.input.port7.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 7, Keyboard (US): F9 -ss.input.port7.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 7, Keyboard (US): G -ss.input.port7.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 7, Keyboard (US): Grave ` -ss.input.port7.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 7, Keyboard (US): H -ss.input.port7.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 7, Keyboard (US): Home -ss.input.port7.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 7, Keyboard (US): I -ss.input.port7.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 7, Keyboard (US): Insert -ss.input.port7.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 7, Keyboard (US): J -ss.input.port7.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 7, Keyboard (US): K -ss.input.port7.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 7, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port7.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 7, Keyboard (US): Keypad Center/5 -ss.input.port7.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 7, Keyboard (US): Keypad Delete -ss.input.port7.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 7, Keyboard (US): Keypad Down/2 -ss.input.port7.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 7, Keyboard (US): Keypad End/1 -ss.input.port7.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 7, Keyboard (US): Keypad Enter -ss.input.port7.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 7, Keyboard (US): Keypad Home/7 -ss.input.port7.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 7, Keyboard (US): Keypad Insert/0 -ss.input.port7.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 7, Keyboard (US): Keypad Left/4 -ss.input.port7.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 7, Keyboard (US): Keypad Minus -ss.input.port7.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 7, Keyboard (US): Keypad Pagedown/3 -ss.input.port7.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 7, Keyboard (US): Keypad Pageup/9 -ss.input.port7.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 7, Keyboard (US): Keypad Plus -ss.input.port7.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 7, Keyboard (US): Keypad Right/6 -ss.input.port7.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 7, Keyboard (US): Keypad Slash(Divide) -ss.input.port7.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 7, Keyboard (US): Keypad Up/8 -ss.input.port7.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 7, Keyboard (US): L -ss.input.port7.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 7, Keyboard (US): Left Alt -ss.input.port7.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 7, Keyboard (US): Left Ctrl -ss.input.port7.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 7, Keyboard (US): Cursor Left -ss.input.port7.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 7, Keyboard (US): Left Bracket [ -ss.input.port7.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 7, Keyboard (US): Left Shift -ss.input.port7.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 7, Keyboard (US): M -ss.input.port7.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 7, Keyboard (US): Minus - -ss.input.port7.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 7, Keyboard (US): N -ss.input.port7.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 7, Keyboard (US): Num Lock -ss.input.port7.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 7, Keyboard (US): O -ss.input.port7.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 7, Keyboard (US): P -ss.input.port7.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 7, Keyboard (US): Page Down -ss.input.port7.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 7, Keyboard (US): Page Up -ss.input.port7.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 7, Keyboard (US): Pause -ss.input.port7.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 7, Keyboard (US): Period . -ss.input.port7.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 7, Keyboard (US): Print Screen -ss.input.port7.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 7, Keyboard (US): Q -ss.input.port7.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 7, Keyboard (US): Quote ' -ss.input.port7.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 7, Keyboard (US): R -ss.input.port7.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 7, Keyboard (US): Right Alt -ss.input.port7.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 7, Keyboard (US): Right Ctrl -ss.input.port7.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 7, Keyboard (US): Right -ss.input.port7.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 7, Keyboard (US): Right Bracket ] -ss.input.port7.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 7, Keyboard (US): Right Shift -ss.input.port7.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 7, Keyboard (US): S -ss.input.port7.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 7, Keyboard (US): Scroll Lock -ss.input.port7.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 7, Keyboard (US): Semicolon ; -ss.input.port7.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 7, Keyboard (US): Slash / -ss.input.port7.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 7, Keyboard (US): Space -ss.input.port7.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 7, Keyboard (US): T -ss.input.port7.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 7, Keyboard (US): Tab -ss.input.port7.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 7, Keyboard (US): U -ss.input.port7.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 7, Keyboard (US): Up -ss.input.port7.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 7, Keyboard (US): V -ss.input.port7.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 7, Keyboard (US): W -ss.input.port7.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 7, Keyboard (US): X -ss.input.port7.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 7, Keyboard (US): Y -ss.input.port7.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 7, Keyboard (US): Z -ss.input.port7.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 7, Mission Stick: A (Stick Trigger) -ss.input.port7.mission.a - -;ss, Virtual Port 7, Mission Stick: A AF -ss.input.port7.mission.afa - -;Default position for switch "A AF". -ss.input.port7.mission.afa.defpos off - -;ss, Virtual Port 7, Mission Stick: B AF -ss.input.port7.mission.afb - -;Default position for switch "B AF". -ss.input.port7.mission.afb.defpos off - -;ss, Virtual Port 7, Mission Stick: C AF -ss.input.port7.mission.afc - -;Default position for switch "C AF". -ss.input.port7.mission.afc.defpos off - -;ss, Virtual Port 7, Mission Stick: L AF -ss.input.port7.mission.afl - -;Default position for switch "L AF". -ss.input.port7.mission.afl.defpos off - -;ss, Virtual Port 7, Mission Stick: R AF -ss.input.port7.mission.afr - -;Default position for switch "R AF". -ss.input.port7.mission.afr.defpos off - -;ss, Virtual Port 7, Mission Stick: AF Speed -ss.input.port7.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port7.mission.afspeed.defpos 1 - -;ss, Virtual Port 7, Mission Stick: X AF -ss.input.port7.mission.afx - -;Default position for switch "X AF". -ss.input.port7.mission.afx.defpos off - -;ss, Virtual Port 7, Mission Stick: Y AF -ss.input.port7.mission.afy - -;Default position for switch "Y AF". -ss.input.port7.mission.afy.defpos off - -;ss, Virtual Port 7, Mission Stick: Z AF -ss.input.port7.mission.afz - -;Default position for switch "Z AF". -ss.input.port7.mission.afz.defpos off - -;ss, Virtual Port 7, Mission Stick: B (Stick Left Button) -ss.input.port7.mission.b - -;ss, Virtual Port 7, Mission Stick: C (Stick Right Button) -ss.input.port7.mission.c - -;ss, Virtual Port 7, Mission Stick: L -ss.input.port7.mission.l - -;ss, Virtual Port 7, Mission Stick: R -ss.input.port7.mission.r - -;ss, Virtual Port 7, Mission Stick: START -ss.input.port7.mission.start - -;ss, Virtual Port 7, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port7.mission.stick_back - -;ss, Virtual Port 7, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port7.mission.stick_fore - -;ss, Virtual Port 7, Mission Stick: Stick LEFT ← (Analog) -ss.input.port7.mission.stick_left - -;ss, Virtual Port 7, Mission Stick: Stick RIGHT → (Analog) -ss.input.port7.mission.stick_right - -;ss, Virtual Port 7, Mission Stick: Throttle Down (Analog) -ss.input.port7.mission.throttle_down - -;ss, Virtual Port 7, Mission Stick: Throttle Up (Analog) -ss.input.port7.mission.throttle_up - -;ss, Virtual Port 7, Mission Stick: X -ss.input.port7.mission.x - -;ss, Virtual Port 7, Mission Stick: Y -ss.input.port7.mission.y - -;ss, Virtual Port 7, Mission Stick: Z -ss.input.port7.mission.z - -;ss, Virtual Port 7, Mouse: Left Button -ss.input.port7.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 7, Mouse: Middle Button -ss.input.port7.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 7, Mouse: Motion Down -ss.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 7, Mouse: Motion Left -ss.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 7, Mouse: Motion Right -ss.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 7, Mouse: Motion Up -ss.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 7, Mouse: Right Button -ss.input.port7.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 7, Mouse: Start -ss.input.port7.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 7, Steering Wheel: A (R Group) -ss.input.port7.wheel.a - -;ss, Virtual Port 7, Steering Wheel: Analog LEFT ← -ss.input.port7.wheel.analog_left - -;ss, Virtual Port 7, Steering Wheel: Analog RIGHT → -ss.input.port7.wheel.analog_right - -;ss, Virtual Port 7, Steering Wheel: B (R Group) -ss.input.port7.wheel.b - -;ss, Virtual Port 7, Steering Wheel: C (R Group) -ss.input.port7.wheel.c - -;ss, Virtual Port 7, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port7.wheel.down - -;ss, Virtual Port 7, Steering Wheel: START -ss.input.port7.wheel.start - -;ss, Virtual Port 7, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port7.wheel.up - -;ss, Virtual Port 7, Steering Wheel: X (L Group) -ss.input.port7.wheel.x - -;ss, Virtual Port 7, Steering Wheel: Y (L Group) -ss.input.port7.wheel.y - -;ss, Virtual Port 7, Steering Wheel: Z (L Group) -ss.input.port7.wheel.z - -;Input device for Virtual Port 8 -ss.input.port8 gamepad - -;ss, Virtual Port 8, 3D Control Pad: A -ss.input.port8.3dpad.a - -;ss, Virtual Port 8, 3D Control Pad: Analog DOWN ↓ -ss.input.port8.3dpad.analog_down - -;ss, Virtual Port 8, 3D Control Pad: Analog LEFT ← -ss.input.port8.3dpad.analog_left - -;ss, Virtual Port 8, 3D Control Pad: Analog RIGHT → -ss.input.port8.3dpad.analog_right - -;ss, Virtual Port 8, 3D Control Pad: Analog UP ↑ -ss.input.port8.3dpad.analog_up - -;ss, Virtual Port 8, 3D Control Pad: B -ss.input.port8.3dpad.b - -;ss, Virtual Port 8, 3D Control Pad: C -ss.input.port8.3dpad.c - -;ss, Virtual Port 8, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port8.3dpad.down - -;ss, Virtual Port 8, 3D Control Pad: D-Pad LEFT ← -ss.input.port8.3dpad.left - -;ss, Virtual Port 8, 3D Control Pad: Left Shoulder (Analog) -ss.input.port8.3dpad.ls - -;ss, Virtual Port 8, 3D Control Pad: Mode -ss.input.port8.3dpad.mode - -;Default position for switch "Mode". -ss.input.port8.3dpad.mode.defpos digital - -;ss, Virtual Port 8, 3D Control Pad: D-Pad RIGHT → -ss.input.port8.3dpad.right - -;ss, Virtual Port 8, 3D Control Pad: Right Shoulder (Analog) -ss.input.port8.3dpad.rs - -;ss, Virtual Port 8, 3D Control Pad: START -ss.input.port8.3dpad.start - -;ss, Virtual Port 8, 3D Control Pad: D-Pad UP ↑ -ss.input.port8.3dpad.up - -;ss, Virtual Port 8, 3D Control Pad: X -ss.input.port8.3dpad.x - -;ss, Virtual Port 8, 3D Control Pad: Y -ss.input.port8.3dpad.y - -;ss, Virtual Port 8, 3D Control Pad: Z -ss.input.port8.3dpad.z - -;ss, Virtual Port 8, Dual Mission: A (R Stick Trigger) -ss.input.port8.dmission.a - -;ss, Virtual Port 8, Dual Mission: A AF -ss.input.port8.dmission.afa - -;Default position for switch "A AF". -ss.input.port8.dmission.afa.defpos off - -;ss, Virtual Port 8, Dual Mission: B AF -ss.input.port8.dmission.afb - -;Default position for switch "B AF". -ss.input.port8.dmission.afb.defpos off - -;ss, Virtual Port 8, Dual Mission: C AF -ss.input.port8.dmission.afc - -;Default position for switch "C AF". -ss.input.port8.dmission.afc.defpos off - -;ss, Virtual Port 8, Dual Mission: L AF -ss.input.port8.dmission.afl - -;Default position for switch "L AF". -ss.input.port8.dmission.afl.defpos off - -;ss, Virtual Port 8, Dual Mission: R AF -ss.input.port8.dmission.afr - -;Default position for switch "R AF". -ss.input.port8.dmission.afr.defpos off - -;ss, Virtual Port 8, Dual Mission: Autofire Speed -ss.input.port8.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port8.dmission.afspeed.defpos 1 - -;ss, Virtual Port 8, Dual Mission: X AF -ss.input.port8.dmission.afx - -;Default position for switch "X AF". -ss.input.port8.dmission.afx.defpos off - -;ss, Virtual Port 8, Dual Mission: Y AF -ss.input.port8.dmission.afy - -;Default position for switch "Y AF". -ss.input.port8.dmission.afy.defpos off - -;ss, Virtual Port 8, Dual Mission: Z AF -ss.input.port8.dmission.afz - -;Default position for switch "Z AF". -ss.input.port8.dmission.afz.defpos off - -;ss, Virtual Port 8, Dual Mission: B (R Stick Left Button) -ss.input.port8.dmission.b - -;ss, Virtual Port 8, Dual Mission: C (R Stick Right Button) -ss.input.port8.dmission.c - -;ss, Virtual Port 8, Dual Mission: L -ss.input.port8.dmission.l - -;ss, Virtual Port 8, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port8.dmission.lstick_back - -;ss, Virtual Port 8, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port8.dmission.lstick_fore - -;ss, Virtual Port 8, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port8.dmission.lstick_left - -;ss, Virtual Port 8, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port8.dmission.lstick_right - -;ss, Virtual Port 8, Dual Mission: L Throttle Down (Analog) -ss.input.port8.dmission.lthrottle_down - -;ss, Virtual Port 8, Dual Mission: L Throttle Up (Analog) -ss.input.port8.dmission.lthrottle_up - -;ss, Virtual Port 8, Dual Mission: R -ss.input.port8.dmission.r - -;ss, Virtual Port 8, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port8.dmission.rstick_back - -;ss, Virtual Port 8, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port8.dmission.rstick_fore - -;ss, Virtual Port 8, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port8.dmission.rstick_left - -;ss, Virtual Port 8, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port8.dmission.rstick_right - -;ss, Virtual Port 8, Dual Mission: R Throttle Down (Analog) -ss.input.port8.dmission.rthrottle_down - -;ss, Virtual Port 8, Dual Mission: R Throttle Up (Analog) -ss.input.port8.dmission.rthrottle_up - -;ss, Virtual Port 8, Dual Mission: START -ss.input.port8.dmission.start - -;ss, Virtual Port 8, Dual Mission: X (L Stick Trigger) -ss.input.port8.dmission.x - -;ss, Virtual Port 8, Dual Mission: Y (L Stick Left Button) -ss.input.port8.dmission.y - -;ss, Virtual Port 8, Dual Mission: Z (L Stick Right Button) -ss.input.port8.dmission.z - -;ss, Virtual Port 8, Digital Gamepad: A -ss.input.port8.gamepad.a - -;ss, Virtual Port 8, Digital Gamepad: B -ss.input.port8.gamepad.b - -;ss, Virtual Port 8, Digital Gamepad: C -ss.input.port8.gamepad.c - -;ss, Virtual Port 8, Digital Gamepad: DOWN ↓ -ss.input.port8.gamepad.down - -;ss, Virtual Port 8, Digital Gamepad: LEFT ← -ss.input.port8.gamepad.left - -;ss, Virtual Port 8, Digital Gamepad: Left Shoulder -ss.input.port8.gamepad.ls - -;ss, Virtual Port 8, Digital Gamepad: RIGHT → -ss.input.port8.gamepad.right - -;ss, Virtual Port 8, Digital Gamepad: Right Shoulder -ss.input.port8.gamepad.rs - -;ss, Virtual Port 8, Digital Gamepad: START -ss.input.port8.gamepad.start - -;ss, Virtual Port 8, Digital Gamepad: UP ↑ -ss.input.port8.gamepad.up - -;ss, Virtual Port 8, Digital Gamepad: X -ss.input.port8.gamepad.x - -;ss, Virtual Port 8, Digital Gamepad: Y -ss.input.port8.gamepad.y - -;ss, Virtual Port 8, Digital Gamepad: Z -ss.input.port8.gamepad.z - -;ss, Virtual Port 8, Light Gun: Offscreen Shot(Simulated) -ss.input.port8.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 8, Light Gun: START -ss.input.port8.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 8, Light Gun: Trigger -ss.input.port8.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 8, Light Gun: X Axis -ss.input.port8.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 8, Light Gun: Y Axis -ss.input.port8.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 8. -ss.input.port8.gun_chairs 0x8000FF - -;ss, Virtual Port 8, Keyboard (JP): 0(Zero) -ss.input.port8.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 8, Keyboard (JP): 1(One) -ss.input.port8.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 8, Keyboard (JP): 2 -ss.input.port8.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 8, Keyboard (JP): 3 -ss.input.port8.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 8, Keyboard (JP): 4 -ss.input.port8.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 8, Keyboard (JP): 5 -ss.input.port8.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 8, Keyboard (JP): 6 -ss.input.port8.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 8, Keyboard (JP): 7 -ss.input.port8.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 8, Keyboard (JP): 8 -ss.input.port8.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 8, Keyboard (JP): 9 -ss.input.port8.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 8, Keyboard (JP): A -ss.input.port8.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 8, Keyboard (JP): At @ -ss.input.port8.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 8, Keyboard (JP): B -ss.input.port8.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 8, Keyboard (JP): Backslash \ -ss.input.port8.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 8, Keyboard (JP): Backspace -ss.input.port8.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 8, Keyboard (JP): C -ss.input.port8.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 8, Keyboard (JP): Caps Lock/英数 -ss.input.port8.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 8, Keyboard (JP): Circumflex ^ -ss.input.port8.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 8, Keyboard (JP): Colon : -ss.input.port8.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 8, Keyboard (JP): Comma , -ss.input.port8.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 8, Keyboard (JP): 変換 -ss.input.port8.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 8, Keyboard (JP): D -ss.input.port8.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 8, Keyboard (JP): Delete -ss.input.port8.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 8, Keyboard (JP): Down -ss.input.port8.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 8, Keyboard (JP): E -ss.input.port8.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 8, Keyboard (JP): End -ss.input.port8.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 8, Keyboard (JP): Enter -ss.input.port8.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 8, Keyboard (JP): Escape -ss.input.port8.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 8, Keyboard (JP): F -ss.input.port8.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 8, Keyboard (JP): F1 -ss.input.port8.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 8, Keyboard (JP): F10 -ss.input.port8.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 8, Keyboard (JP): F11 -ss.input.port8.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 8, Keyboard (JP): F12 -ss.input.port8.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 8, Keyboard (JP): F2 -ss.input.port8.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 8, Keyboard (JP): F3 -ss.input.port8.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 8, Keyboard (JP): F4 -ss.input.port8.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 8, Keyboard (JP): F5 -ss.input.port8.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 8, Keyboard (JP): F6 -ss.input.port8.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 8, Keyboard (JP): F7 -ss.input.port8.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 8, Keyboard (JP): F8 -ss.input.port8.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 8, Keyboard (JP): F9 -ss.input.port8.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 8, Keyboard (JP): G -ss.input.port8.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 8, Keyboard (JP): H -ss.input.port8.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 8, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port8.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 8, Keyboard (JP): Home -ss.input.port8.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 8, Keyboard (JP): 半角/全角/漢字 -ss.input.port8.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 8, Keyboard (JP): I -ss.input.port8.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 8, Keyboard (JP): Insert -ss.input.port8.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 8, Keyboard (JP): J -ss.input.port8.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 8, Keyboard (JP): K -ss.input.port8.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 8, Keyboard (JP): L -ss.input.port8.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 8, Keyboard (JP): Left Alt -ss.input.port8.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 8, Keyboard (JP): Left Ctrl -ss.input.port8.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 8, Keyboard (JP): Cursor Left -ss.input.port8.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 8, Keyboard (JP): Left Bracket [ -ss.input.port8.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 8, Keyboard (JP): Left Shift -ss.input.port8.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 8, Keyboard (JP): M -ss.input.port8.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 8, Keyboard (JP): Minus - -ss.input.port8.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 8, Keyboard (JP): N -ss.input.port8.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 8, Keyboard (JP): 無変換 -ss.input.port8.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 8, Keyboard (JP): O -ss.input.port8.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 8, Keyboard (JP): P -ss.input.port8.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 8, Keyboard (JP): Page Down -ss.input.port8.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 8, Keyboard (JP): Page Up -ss.input.port8.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 8, Keyboard (JP): Pause -ss.input.port8.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 8, Keyboard (JP): Period . -ss.input.port8.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 8, Keyboard (JP): Print Screen -ss.input.port8.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 8, Keyboard (JP): Q -ss.input.port8.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 8, Keyboard (JP): R -ss.input.port8.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 8, Keyboard (JP): Right Alt -ss.input.port8.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 8, Keyboard (JP): Right Ctrl -ss.input.port8.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 8, Keyboard (JP): Right -ss.input.port8.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 8, Keyboard (JP): Right Bracket ] -ss.input.port8.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 8, Keyboard (JP): Right Shift -ss.input.port8.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 8, Keyboard (JP): S -ss.input.port8.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 8, Keyboard (JP): Scroll Lock -ss.input.port8.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 8, Keyboard (JP): Semicolon ; -ss.input.port8.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 8, Keyboard (JP): Slash / -ss.input.port8.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 8, Keyboard (JP): Space -ss.input.port8.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 8, Keyboard (JP): T -ss.input.port8.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 8, Keyboard (JP): Tab -ss.input.port8.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 8, Keyboard (JP): U -ss.input.port8.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 8, Keyboard (JP): Up -ss.input.port8.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 8, Keyboard (JP): V -ss.input.port8.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 8, Keyboard (JP): W -ss.input.port8.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 8, Keyboard (JP): X -ss.input.port8.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 8, Keyboard (JP): Y -ss.input.port8.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 8, Keyboard (JP): Yen ¥ -ss.input.port8.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 8, Keyboard (JP): Z -ss.input.port8.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 8, Keyboard (US): 0(Zero) -ss.input.port8.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 8, Keyboard (US): 1(One) -ss.input.port8.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 8, Keyboard (US): 2 -ss.input.port8.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 8, Keyboard (US): 3 -ss.input.port8.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 8, Keyboard (US): 4 -ss.input.port8.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 8, Keyboard (US): 5 -ss.input.port8.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 8, Keyboard (US): 6 -ss.input.port8.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 8, Keyboard (US): 7 -ss.input.port8.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 8, Keyboard (US): 8 -ss.input.port8.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 8, Keyboard (US): 9 -ss.input.port8.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 8, Keyboard (US): A -ss.input.port8.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 8, Keyboard (US): B -ss.input.port8.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 8, Keyboard (US): Backslash \ -ss.input.port8.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 8, Keyboard (US): Backspace -ss.input.port8.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 8, Keyboard (US): C -ss.input.port8.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 8, Keyboard (US): Caps Lock -ss.input.port8.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 8, Keyboard (US): Comma , -ss.input.port8.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 8, Keyboard (US): D -ss.input.port8.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 8, Keyboard (US): Delete -ss.input.port8.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 8, Keyboard (US): Down -ss.input.port8.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 8, Keyboard (US): E -ss.input.port8.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 8, Keyboard (US): End -ss.input.port8.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 8, Keyboard (US): Enter -ss.input.port8.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 8, Keyboard (US): Equals = -ss.input.port8.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 8, Keyboard (US): Escape -ss.input.port8.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 8, Keyboard (US): F -ss.input.port8.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 8, Keyboard (US): F1 -ss.input.port8.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 8, Keyboard (US): F10 -ss.input.port8.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 8, Keyboard (US): F11 -ss.input.port8.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 8, Keyboard (US): F12 -ss.input.port8.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 8, Keyboard (US): F2 -ss.input.port8.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 8, Keyboard (US): F3 -ss.input.port8.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 8, Keyboard (US): F4 -ss.input.port8.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 8, Keyboard (US): F5 -ss.input.port8.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 8, Keyboard (US): F6 -ss.input.port8.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 8, Keyboard (US): F7 -ss.input.port8.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 8, Keyboard (US): F8 -ss.input.port8.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 8, Keyboard (US): F9 -ss.input.port8.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 8, Keyboard (US): G -ss.input.port8.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 8, Keyboard (US): Grave ` -ss.input.port8.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 8, Keyboard (US): H -ss.input.port8.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 8, Keyboard (US): Home -ss.input.port8.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 8, Keyboard (US): I -ss.input.port8.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 8, Keyboard (US): Insert -ss.input.port8.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 8, Keyboard (US): J -ss.input.port8.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 8, Keyboard (US): K -ss.input.port8.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 8, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port8.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 8, Keyboard (US): Keypad Center/5 -ss.input.port8.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 8, Keyboard (US): Keypad Delete -ss.input.port8.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 8, Keyboard (US): Keypad Down/2 -ss.input.port8.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 8, Keyboard (US): Keypad End/1 -ss.input.port8.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 8, Keyboard (US): Keypad Enter -ss.input.port8.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 8, Keyboard (US): Keypad Home/7 -ss.input.port8.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 8, Keyboard (US): Keypad Insert/0 -ss.input.port8.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 8, Keyboard (US): Keypad Left/4 -ss.input.port8.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 8, Keyboard (US): Keypad Minus -ss.input.port8.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 8, Keyboard (US): Keypad Pagedown/3 -ss.input.port8.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 8, Keyboard (US): Keypad Pageup/9 -ss.input.port8.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 8, Keyboard (US): Keypad Plus -ss.input.port8.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 8, Keyboard (US): Keypad Right/6 -ss.input.port8.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 8, Keyboard (US): Keypad Slash(Divide) -ss.input.port8.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 8, Keyboard (US): Keypad Up/8 -ss.input.port8.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 8, Keyboard (US): L -ss.input.port8.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 8, Keyboard (US): Left Alt -ss.input.port8.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 8, Keyboard (US): Left Ctrl -ss.input.port8.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 8, Keyboard (US): Cursor Left -ss.input.port8.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 8, Keyboard (US): Left Bracket [ -ss.input.port8.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 8, Keyboard (US): Left Shift -ss.input.port8.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 8, Keyboard (US): M -ss.input.port8.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 8, Keyboard (US): Minus - -ss.input.port8.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 8, Keyboard (US): N -ss.input.port8.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 8, Keyboard (US): Num Lock -ss.input.port8.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 8, Keyboard (US): O -ss.input.port8.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 8, Keyboard (US): P -ss.input.port8.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 8, Keyboard (US): Page Down -ss.input.port8.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 8, Keyboard (US): Page Up -ss.input.port8.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 8, Keyboard (US): Pause -ss.input.port8.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 8, Keyboard (US): Period . -ss.input.port8.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 8, Keyboard (US): Print Screen -ss.input.port8.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 8, Keyboard (US): Q -ss.input.port8.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 8, Keyboard (US): Quote ' -ss.input.port8.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 8, Keyboard (US): R -ss.input.port8.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 8, Keyboard (US): Right Alt -ss.input.port8.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 8, Keyboard (US): Right Ctrl -ss.input.port8.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 8, Keyboard (US): Right -ss.input.port8.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 8, Keyboard (US): Right Bracket ] -ss.input.port8.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 8, Keyboard (US): Right Shift -ss.input.port8.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 8, Keyboard (US): S -ss.input.port8.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 8, Keyboard (US): Scroll Lock -ss.input.port8.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 8, Keyboard (US): Semicolon ; -ss.input.port8.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 8, Keyboard (US): Slash / -ss.input.port8.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 8, Keyboard (US): Space -ss.input.port8.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 8, Keyboard (US): T -ss.input.port8.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 8, Keyboard (US): Tab -ss.input.port8.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 8, Keyboard (US): U -ss.input.port8.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 8, Keyboard (US): Up -ss.input.port8.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 8, Keyboard (US): V -ss.input.port8.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 8, Keyboard (US): W -ss.input.port8.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 8, Keyboard (US): X -ss.input.port8.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 8, Keyboard (US): Y -ss.input.port8.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 8, Keyboard (US): Z -ss.input.port8.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 8, Mission Stick: A (Stick Trigger) -ss.input.port8.mission.a - -;ss, Virtual Port 8, Mission Stick: A AF -ss.input.port8.mission.afa - -;Default position for switch "A AF". -ss.input.port8.mission.afa.defpos off - -;ss, Virtual Port 8, Mission Stick: B AF -ss.input.port8.mission.afb - -;Default position for switch "B AF". -ss.input.port8.mission.afb.defpos off - -;ss, Virtual Port 8, Mission Stick: C AF -ss.input.port8.mission.afc - -;Default position for switch "C AF". -ss.input.port8.mission.afc.defpos off - -;ss, Virtual Port 8, Mission Stick: L AF -ss.input.port8.mission.afl - -;Default position for switch "L AF". -ss.input.port8.mission.afl.defpos off - -;ss, Virtual Port 8, Mission Stick: R AF -ss.input.port8.mission.afr - -;Default position for switch "R AF". -ss.input.port8.mission.afr.defpos off - -;ss, Virtual Port 8, Mission Stick: AF Speed -ss.input.port8.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port8.mission.afspeed.defpos 1 - -;ss, Virtual Port 8, Mission Stick: X AF -ss.input.port8.mission.afx - -;Default position for switch "X AF". -ss.input.port8.mission.afx.defpos off - -;ss, Virtual Port 8, Mission Stick: Y AF -ss.input.port8.mission.afy - -;Default position for switch "Y AF". -ss.input.port8.mission.afy.defpos off - -;ss, Virtual Port 8, Mission Stick: Z AF -ss.input.port8.mission.afz - -;Default position for switch "Z AF". -ss.input.port8.mission.afz.defpos off - -;ss, Virtual Port 8, Mission Stick: B (Stick Left Button) -ss.input.port8.mission.b - -;ss, Virtual Port 8, Mission Stick: C (Stick Right Button) -ss.input.port8.mission.c - -;ss, Virtual Port 8, Mission Stick: L -ss.input.port8.mission.l - -;ss, Virtual Port 8, Mission Stick: R -ss.input.port8.mission.r - -;ss, Virtual Port 8, Mission Stick: START -ss.input.port8.mission.start - -;ss, Virtual Port 8, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port8.mission.stick_back - -;ss, Virtual Port 8, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port8.mission.stick_fore - -;ss, Virtual Port 8, Mission Stick: Stick LEFT ← (Analog) -ss.input.port8.mission.stick_left - -;ss, Virtual Port 8, Mission Stick: Stick RIGHT → (Analog) -ss.input.port8.mission.stick_right - -;ss, Virtual Port 8, Mission Stick: Throttle Down (Analog) -ss.input.port8.mission.throttle_down - -;ss, Virtual Port 8, Mission Stick: Throttle Up (Analog) -ss.input.port8.mission.throttle_up - -;ss, Virtual Port 8, Mission Stick: X -ss.input.port8.mission.x - -;ss, Virtual Port 8, Mission Stick: Y -ss.input.port8.mission.y - -;ss, Virtual Port 8, Mission Stick: Z -ss.input.port8.mission.z - -;ss, Virtual Port 8, Mouse: Left Button -ss.input.port8.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 8, Mouse: Middle Button -ss.input.port8.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 8, Mouse: Motion Down -ss.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 8, Mouse: Motion Left -ss.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 8, Mouse: Motion Right -ss.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 8, Mouse: Motion Up -ss.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 8, Mouse: Right Button -ss.input.port8.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 8, Mouse: Start -ss.input.port8.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 8, Steering Wheel: A (R Group) -ss.input.port8.wheel.a - -;ss, Virtual Port 8, Steering Wheel: Analog LEFT ← -ss.input.port8.wheel.analog_left - -;ss, Virtual Port 8, Steering Wheel: Analog RIGHT → -ss.input.port8.wheel.analog_right - -;ss, Virtual Port 8, Steering Wheel: B (R Group) -ss.input.port8.wheel.b - -;ss, Virtual Port 8, Steering Wheel: C (R Group) -ss.input.port8.wheel.c - -;ss, Virtual Port 8, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port8.wheel.down - -;ss, Virtual Port 8, Steering Wheel: START -ss.input.port8.wheel.start - -;ss, Virtual Port 8, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port8.wheel.up - -;ss, Virtual Port 8, Steering Wheel: X (L Group) -ss.input.port8.wheel.x - -;ss, Virtual Port 8, Steering Wheel: Y (L Group) -ss.input.port8.wheel.y - -;ss, Virtual Port 8, Steering Wheel: Z (L Group) -ss.input.port8.wheel.z - -;Input device for Virtual Port 9 -ss.input.port9 gamepad - -;ss, Virtual Port 9, 3D Control Pad: A -ss.input.port9.3dpad.a - -;ss, Virtual Port 9, 3D Control Pad: Analog DOWN ↓ -ss.input.port9.3dpad.analog_down - -;ss, Virtual Port 9, 3D Control Pad: Analog LEFT ← -ss.input.port9.3dpad.analog_left - -;ss, Virtual Port 9, 3D Control Pad: Analog RIGHT → -ss.input.port9.3dpad.analog_right - -;ss, Virtual Port 9, 3D Control Pad: Analog UP ↑ -ss.input.port9.3dpad.analog_up - -;ss, Virtual Port 9, 3D Control Pad: B -ss.input.port9.3dpad.b - -;ss, Virtual Port 9, 3D Control Pad: C -ss.input.port9.3dpad.c - -;ss, Virtual Port 9, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port9.3dpad.down - -;ss, Virtual Port 9, 3D Control Pad: D-Pad LEFT ← -ss.input.port9.3dpad.left - -;ss, Virtual Port 9, 3D Control Pad: Left Shoulder (Analog) -ss.input.port9.3dpad.ls - -;ss, Virtual Port 9, 3D Control Pad: Mode -ss.input.port9.3dpad.mode - -;Default position for switch "Mode". -ss.input.port9.3dpad.mode.defpos digital - -;ss, Virtual Port 9, 3D Control Pad: D-Pad RIGHT → -ss.input.port9.3dpad.right - -;ss, Virtual Port 9, 3D Control Pad: Right Shoulder (Analog) -ss.input.port9.3dpad.rs - -;ss, Virtual Port 9, 3D Control Pad: START -ss.input.port9.3dpad.start - -;ss, Virtual Port 9, 3D Control Pad: D-Pad UP ↑ -ss.input.port9.3dpad.up - -;ss, Virtual Port 9, 3D Control Pad: X -ss.input.port9.3dpad.x - -;ss, Virtual Port 9, 3D Control Pad: Y -ss.input.port9.3dpad.y - -;ss, Virtual Port 9, 3D Control Pad: Z -ss.input.port9.3dpad.z - -;ss, Virtual Port 9, Dual Mission: A (R Stick Trigger) -ss.input.port9.dmission.a - -;ss, Virtual Port 9, Dual Mission: A AF -ss.input.port9.dmission.afa - -;Default position for switch "A AF". -ss.input.port9.dmission.afa.defpos off - -;ss, Virtual Port 9, Dual Mission: B AF -ss.input.port9.dmission.afb - -;Default position for switch "B AF". -ss.input.port9.dmission.afb.defpos off - -;ss, Virtual Port 9, Dual Mission: C AF -ss.input.port9.dmission.afc - -;Default position for switch "C AF". -ss.input.port9.dmission.afc.defpos off - -;ss, Virtual Port 9, Dual Mission: L AF -ss.input.port9.dmission.afl - -;Default position for switch "L AF". -ss.input.port9.dmission.afl.defpos off - -;ss, Virtual Port 9, Dual Mission: R AF -ss.input.port9.dmission.afr - -;Default position for switch "R AF". -ss.input.port9.dmission.afr.defpos off - -;ss, Virtual Port 9, Dual Mission: Autofire Speed -ss.input.port9.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port9.dmission.afspeed.defpos 1 - -;ss, Virtual Port 9, Dual Mission: X AF -ss.input.port9.dmission.afx - -;Default position for switch "X AF". -ss.input.port9.dmission.afx.defpos off - -;ss, Virtual Port 9, Dual Mission: Y AF -ss.input.port9.dmission.afy - -;Default position for switch "Y AF". -ss.input.port9.dmission.afy.defpos off - -;ss, Virtual Port 9, Dual Mission: Z AF -ss.input.port9.dmission.afz - -;Default position for switch "Z AF". -ss.input.port9.dmission.afz.defpos off - -;ss, Virtual Port 9, Dual Mission: B (R Stick Left Button) -ss.input.port9.dmission.b - -;ss, Virtual Port 9, Dual Mission: C (R Stick Right Button) -ss.input.port9.dmission.c - -;ss, Virtual Port 9, Dual Mission: L -ss.input.port9.dmission.l - -;ss, Virtual Port 9, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port9.dmission.lstick_back - -;ss, Virtual Port 9, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port9.dmission.lstick_fore - -;ss, Virtual Port 9, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port9.dmission.lstick_left - -;ss, Virtual Port 9, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port9.dmission.lstick_right - -;ss, Virtual Port 9, Dual Mission: L Throttle Down (Analog) -ss.input.port9.dmission.lthrottle_down - -;ss, Virtual Port 9, Dual Mission: L Throttle Up (Analog) -ss.input.port9.dmission.lthrottle_up - -;ss, Virtual Port 9, Dual Mission: R -ss.input.port9.dmission.r - -;ss, Virtual Port 9, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port9.dmission.rstick_back - -;ss, Virtual Port 9, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port9.dmission.rstick_fore - -;ss, Virtual Port 9, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port9.dmission.rstick_left - -;ss, Virtual Port 9, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port9.dmission.rstick_right - -;ss, Virtual Port 9, Dual Mission: R Throttle Down (Analog) -ss.input.port9.dmission.rthrottle_down - -;ss, Virtual Port 9, Dual Mission: R Throttle Up (Analog) -ss.input.port9.dmission.rthrottle_up - -;ss, Virtual Port 9, Dual Mission: START -ss.input.port9.dmission.start - -;ss, Virtual Port 9, Dual Mission: X (L Stick Trigger) -ss.input.port9.dmission.x - -;ss, Virtual Port 9, Dual Mission: Y (L Stick Left Button) -ss.input.port9.dmission.y - -;ss, Virtual Port 9, Dual Mission: Z (L Stick Right Button) -ss.input.port9.dmission.z - -;ss, Virtual Port 9, Digital Gamepad: A -ss.input.port9.gamepad.a - -;ss, Virtual Port 9, Digital Gamepad: B -ss.input.port9.gamepad.b - -;ss, Virtual Port 9, Digital Gamepad: C -ss.input.port9.gamepad.c - -;ss, Virtual Port 9, Digital Gamepad: DOWN ↓ -ss.input.port9.gamepad.down - -;ss, Virtual Port 9, Digital Gamepad: LEFT ← -ss.input.port9.gamepad.left - -;ss, Virtual Port 9, Digital Gamepad: Left Shoulder -ss.input.port9.gamepad.ls - -;ss, Virtual Port 9, Digital Gamepad: RIGHT → -ss.input.port9.gamepad.right - -;ss, Virtual Port 9, Digital Gamepad: Right Shoulder -ss.input.port9.gamepad.rs - -;ss, Virtual Port 9, Digital Gamepad: START -ss.input.port9.gamepad.start - -;ss, Virtual Port 9, Digital Gamepad: UP ↑ -ss.input.port9.gamepad.up - -;ss, Virtual Port 9, Digital Gamepad: X -ss.input.port9.gamepad.x - -;ss, Virtual Port 9, Digital Gamepad: Y -ss.input.port9.gamepad.y - -;ss, Virtual Port 9, Digital Gamepad: Z -ss.input.port9.gamepad.z - -;ss, Virtual Port 9, Light Gun: Offscreen Shot(Simulated) -ss.input.port9.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 9, Light Gun: START -ss.input.port9.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 9, Light Gun: Trigger -ss.input.port9.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 9, Light Gun: X Axis -ss.input.port9.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 9, Light Gun: Y Axis -ss.input.port9.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 9. -ss.input.port9.gun_chairs 0xFF80FF - -;ss, Virtual Port 9, Keyboard (JP): 0(Zero) -ss.input.port9.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 9, Keyboard (JP): 1(One) -ss.input.port9.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 9, Keyboard (JP): 2 -ss.input.port9.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 9, Keyboard (JP): 3 -ss.input.port9.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 9, Keyboard (JP): 4 -ss.input.port9.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 9, Keyboard (JP): 5 -ss.input.port9.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 9, Keyboard (JP): 6 -ss.input.port9.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 9, Keyboard (JP): 7 -ss.input.port9.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 9, Keyboard (JP): 8 -ss.input.port9.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 9, Keyboard (JP): 9 -ss.input.port9.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 9, Keyboard (JP): A -ss.input.port9.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 9, Keyboard (JP): At @ -ss.input.port9.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 9, Keyboard (JP): B -ss.input.port9.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 9, Keyboard (JP): Backslash \ -ss.input.port9.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 9, Keyboard (JP): Backspace -ss.input.port9.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 9, Keyboard (JP): C -ss.input.port9.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 9, Keyboard (JP): Caps Lock/英数 -ss.input.port9.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 9, Keyboard (JP): Circumflex ^ -ss.input.port9.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 9, Keyboard (JP): Colon : -ss.input.port9.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 9, Keyboard (JP): Comma , -ss.input.port9.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 9, Keyboard (JP): 変換 -ss.input.port9.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 9, Keyboard (JP): D -ss.input.port9.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 9, Keyboard (JP): Delete -ss.input.port9.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 9, Keyboard (JP): Down -ss.input.port9.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 9, Keyboard (JP): E -ss.input.port9.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 9, Keyboard (JP): End -ss.input.port9.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 9, Keyboard (JP): Enter -ss.input.port9.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 9, Keyboard (JP): Escape -ss.input.port9.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 9, Keyboard (JP): F -ss.input.port9.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 9, Keyboard (JP): F1 -ss.input.port9.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 9, Keyboard (JP): F10 -ss.input.port9.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 9, Keyboard (JP): F11 -ss.input.port9.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 9, Keyboard (JP): F12 -ss.input.port9.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 9, Keyboard (JP): F2 -ss.input.port9.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 9, Keyboard (JP): F3 -ss.input.port9.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 9, Keyboard (JP): F4 -ss.input.port9.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 9, Keyboard (JP): F5 -ss.input.port9.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 9, Keyboard (JP): F6 -ss.input.port9.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 9, Keyboard (JP): F7 -ss.input.port9.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 9, Keyboard (JP): F8 -ss.input.port9.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 9, Keyboard (JP): F9 -ss.input.port9.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 9, Keyboard (JP): G -ss.input.port9.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 9, Keyboard (JP): H -ss.input.port9.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 9, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port9.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 9, Keyboard (JP): Home -ss.input.port9.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 9, Keyboard (JP): 半角/全角/漢字 -ss.input.port9.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 9, Keyboard (JP): I -ss.input.port9.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 9, Keyboard (JP): Insert -ss.input.port9.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 9, Keyboard (JP): J -ss.input.port9.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 9, Keyboard (JP): K -ss.input.port9.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 9, Keyboard (JP): L -ss.input.port9.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 9, Keyboard (JP): Left Alt -ss.input.port9.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 9, Keyboard (JP): Left Ctrl -ss.input.port9.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 9, Keyboard (JP): Cursor Left -ss.input.port9.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 9, Keyboard (JP): Left Bracket [ -ss.input.port9.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 9, Keyboard (JP): Left Shift -ss.input.port9.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 9, Keyboard (JP): M -ss.input.port9.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 9, Keyboard (JP): Minus - -ss.input.port9.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 9, Keyboard (JP): N -ss.input.port9.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 9, Keyboard (JP): 無変換 -ss.input.port9.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 9, Keyboard (JP): O -ss.input.port9.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 9, Keyboard (JP): P -ss.input.port9.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 9, Keyboard (JP): Page Down -ss.input.port9.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 9, Keyboard (JP): Page Up -ss.input.port9.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 9, Keyboard (JP): Pause -ss.input.port9.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 9, Keyboard (JP): Period . -ss.input.port9.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 9, Keyboard (JP): Print Screen -ss.input.port9.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 9, Keyboard (JP): Q -ss.input.port9.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 9, Keyboard (JP): R -ss.input.port9.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 9, Keyboard (JP): Right Alt -ss.input.port9.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 9, Keyboard (JP): Right Ctrl -ss.input.port9.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 9, Keyboard (JP): Right -ss.input.port9.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 9, Keyboard (JP): Right Bracket ] -ss.input.port9.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 9, Keyboard (JP): Right Shift -ss.input.port9.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 9, Keyboard (JP): S -ss.input.port9.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 9, Keyboard (JP): Scroll Lock -ss.input.port9.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 9, Keyboard (JP): Semicolon ; -ss.input.port9.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 9, Keyboard (JP): Slash / -ss.input.port9.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 9, Keyboard (JP): Space -ss.input.port9.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 9, Keyboard (JP): T -ss.input.port9.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 9, Keyboard (JP): Tab -ss.input.port9.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 9, Keyboard (JP): U -ss.input.port9.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 9, Keyboard (JP): Up -ss.input.port9.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 9, Keyboard (JP): V -ss.input.port9.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 9, Keyboard (JP): W -ss.input.port9.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 9, Keyboard (JP): X -ss.input.port9.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 9, Keyboard (JP): Y -ss.input.port9.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 9, Keyboard (JP): Yen ¥ -ss.input.port9.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 9, Keyboard (JP): Z -ss.input.port9.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 9, Keyboard (US): 0(Zero) -ss.input.port9.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 9, Keyboard (US): 1(One) -ss.input.port9.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 9, Keyboard (US): 2 -ss.input.port9.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 9, Keyboard (US): 3 -ss.input.port9.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 9, Keyboard (US): 4 -ss.input.port9.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 9, Keyboard (US): 5 -ss.input.port9.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 9, Keyboard (US): 6 -ss.input.port9.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 9, Keyboard (US): 7 -ss.input.port9.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 9, Keyboard (US): 8 -ss.input.port9.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 9, Keyboard (US): 9 -ss.input.port9.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 9, Keyboard (US): A -ss.input.port9.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 9, Keyboard (US): B -ss.input.port9.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 9, Keyboard (US): Backslash \ -ss.input.port9.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 9, Keyboard (US): Backspace -ss.input.port9.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 9, Keyboard (US): C -ss.input.port9.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 9, Keyboard (US): Caps Lock -ss.input.port9.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 9, Keyboard (US): Comma , -ss.input.port9.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 9, Keyboard (US): D -ss.input.port9.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 9, Keyboard (US): Delete -ss.input.port9.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 9, Keyboard (US): Down -ss.input.port9.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 9, Keyboard (US): E -ss.input.port9.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 9, Keyboard (US): End -ss.input.port9.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 9, Keyboard (US): Enter -ss.input.port9.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 9, Keyboard (US): Equals = -ss.input.port9.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 9, Keyboard (US): Escape -ss.input.port9.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 9, Keyboard (US): F -ss.input.port9.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 9, Keyboard (US): F1 -ss.input.port9.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 9, Keyboard (US): F10 -ss.input.port9.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 9, Keyboard (US): F11 -ss.input.port9.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 9, Keyboard (US): F12 -ss.input.port9.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 9, Keyboard (US): F2 -ss.input.port9.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 9, Keyboard (US): F3 -ss.input.port9.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 9, Keyboard (US): F4 -ss.input.port9.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 9, Keyboard (US): F5 -ss.input.port9.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 9, Keyboard (US): F6 -ss.input.port9.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 9, Keyboard (US): F7 -ss.input.port9.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 9, Keyboard (US): F8 -ss.input.port9.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 9, Keyboard (US): F9 -ss.input.port9.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 9, Keyboard (US): G -ss.input.port9.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 9, Keyboard (US): Grave ` -ss.input.port9.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 9, Keyboard (US): H -ss.input.port9.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 9, Keyboard (US): Home -ss.input.port9.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 9, Keyboard (US): I -ss.input.port9.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 9, Keyboard (US): Insert -ss.input.port9.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 9, Keyboard (US): J -ss.input.port9.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 9, Keyboard (US): K -ss.input.port9.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 9, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port9.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 9, Keyboard (US): Keypad Center/5 -ss.input.port9.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 9, Keyboard (US): Keypad Delete -ss.input.port9.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 9, Keyboard (US): Keypad Down/2 -ss.input.port9.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 9, Keyboard (US): Keypad End/1 -ss.input.port9.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 9, Keyboard (US): Keypad Enter -ss.input.port9.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 9, Keyboard (US): Keypad Home/7 -ss.input.port9.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 9, Keyboard (US): Keypad Insert/0 -ss.input.port9.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 9, Keyboard (US): Keypad Left/4 -ss.input.port9.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 9, Keyboard (US): Keypad Minus -ss.input.port9.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 9, Keyboard (US): Keypad Pagedown/3 -ss.input.port9.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 9, Keyboard (US): Keypad Pageup/9 -ss.input.port9.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 9, Keyboard (US): Keypad Plus -ss.input.port9.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 9, Keyboard (US): Keypad Right/6 -ss.input.port9.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 9, Keyboard (US): Keypad Slash(Divide) -ss.input.port9.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 9, Keyboard (US): Keypad Up/8 -ss.input.port9.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 9, Keyboard (US): L -ss.input.port9.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 9, Keyboard (US): Left Alt -ss.input.port9.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 9, Keyboard (US): Left Ctrl -ss.input.port9.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 9, Keyboard (US): Cursor Left -ss.input.port9.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 9, Keyboard (US): Left Bracket [ -ss.input.port9.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 9, Keyboard (US): Left Shift -ss.input.port9.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 9, Keyboard (US): M -ss.input.port9.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 9, Keyboard (US): Minus - -ss.input.port9.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 9, Keyboard (US): N -ss.input.port9.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 9, Keyboard (US): Num Lock -ss.input.port9.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 9, Keyboard (US): O -ss.input.port9.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 9, Keyboard (US): P -ss.input.port9.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 9, Keyboard (US): Page Down -ss.input.port9.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 9, Keyboard (US): Page Up -ss.input.port9.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 9, Keyboard (US): Pause -ss.input.port9.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 9, Keyboard (US): Period . -ss.input.port9.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 9, Keyboard (US): Print Screen -ss.input.port9.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 9, Keyboard (US): Q -ss.input.port9.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 9, Keyboard (US): Quote ' -ss.input.port9.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 9, Keyboard (US): R -ss.input.port9.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 9, Keyboard (US): Right Alt -ss.input.port9.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 9, Keyboard (US): Right Ctrl -ss.input.port9.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 9, Keyboard (US): Right -ss.input.port9.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 9, Keyboard (US): Right Bracket ] -ss.input.port9.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 9, Keyboard (US): Right Shift -ss.input.port9.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 9, Keyboard (US): S -ss.input.port9.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 9, Keyboard (US): Scroll Lock -ss.input.port9.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 9, Keyboard (US): Semicolon ; -ss.input.port9.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 9, Keyboard (US): Slash / -ss.input.port9.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 9, Keyboard (US): Space -ss.input.port9.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 9, Keyboard (US): T -ss.input.port9.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 9, Keyboard (US): Tab -ss.input.port9.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 9, Keyboard (US): U -ss.input.port9.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 9, Keyboard (US): Up -ss.input.port9.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 9, Keyboard (US): V -ss.input.port9.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 9, Keyboard (US): W -ss.input.port9.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 9, Keyboard (US): X -ss.input.port9.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 9, Keyboard (US): Y -ss.input.port9.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 9, Keyboard (US): Z -ss.input.port9.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 9, Mission Stick: A (Stick Trigger) -ss.input.port9.mission.a - -;ss, Virtual Port 9, Mission Stick: A AF -ss.input.port9.mission.afa - -;Default position for switch "A AF". -ss.input.port9.mission.afa.defpos off - -;ss, Virtual Port 9, Mission Stick: B AF -ss.input.port9.mission.afb - -;Default position for switch "B AF". -ss.input.port9.mission.afb.defpos off - -;ss, Virtual Port 9, Mission Stick: C AF -ss.input.port9.mission.afc - -;Default position for switch "C AF". -ss.input.port9.mission.afc.defpos off - -;ss, Virtual Port 9, Mission Stick: L AF -ss.input.port9.mission.afl - -;Default position for switch "L AF". -ss.input.port9.mission.afl.defpos off - -;ss, Virtual Port 9, Mission Stick: R AF -ss.input.port9.mission.afr - -;Default position for switch "R AF". -ss.input.port9.mission.afr.defpos off - -;ss, Virtual Port 9, Mission Stick: AF Speed -ss.input.port9.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port9.mission.afspeed.defpos 1 - -;ss, Virtual Port 9, Mission Stick: X AF -ss.input.port9.mission.afx - -;Default position for switch "X AF". -ss.input.port9.mission.afx.defpos off - -;ss, Virtual Port 9, Mission Stick: Y AF -ss.input.port9.mission.afy - -;Default position for switch "Y AF". -ss.input.port9.mission.afy.defpos off - -;ss, Virtual Port 9, Mission Stick: Z AF -ss.input.port9.mission.afz - -;Default position for switch "Z AF". -ss.input.port9.mission.afz.defpos off - -;ss, Virtual Port 9, Mission Stick: B (Stick Left Button) -ss.input.port9.mission.b - -;ss, Virtual Port 9, Mission Stick: C (Stick Right Button) -ss.input.port9.mission.c - -;ss, Virtual Port 9, Mission Stick: L -ss.input.port9.mission.l - -;ss, Virtual Port 9, Mission Stick: R -ss.input.port9.mission.r - -;ss, Virtual Port 9, Mission Stick: START -ss.input.port9.mission.start - -;ss, Virtual Port 9, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port9.mission.stick_back - -;ss, Virtual Port 9, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port9.mission.stick_fore - -;ss, Virtual Port 9, Mission Stick: Stick LEFT ← (Analog) -ss.input.port9.mission.stick_left - -;ss, Virtual Port 9, Mission Stick: Stick RIGHT → (Analog) -ss.input.port9.mission.stick_right - -;ss, Virtual Port 9, Mission Stick: Throttle Down (Analog) -ss.input.port9.mission.throttle_down - -;ss, Virtual Port 9, Mission Stick: Throttle Up (Analog) -ss.input.port9.mission.throttle_up - -;ss, Virtual Port 9, Mission Stick: X -ss.input.port9.mission.x - -;ss, Virtual Port 9, Mission Stick: Y -ss.input.port9.mission.y - -;ss, Virtual Port 9, Mission Stick: Z -ss.input.port9.mission.z - -;ss, Virtual Port 9, Mouse: Left Button -ss.input.port9.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 9, Mouse: Middle Button -ss.input.port9.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 9, Mouse: Motion Down -ss.input.port9.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 9, Mouse: Motion Left -ss.input.port9.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 9, Mouse: Motion Right -ss.input.port9.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 9, Mouse: Motion Up -ss.input.port9.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 9, Mouse: Right Button -ss.input.port9.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 9, Mouse: Start -ss.input.port9.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 9, Steering Wheel: A (R Group) -ss.input.port9.wheel.a - -;ss, Virtual Port 9, Steering Wheel: Analog LEFT ← -ss.input.port9.wheel.analog_left - -;ss, Virtual Port 9, Steering Wheel: Analog RIGHT → -ss.input.port9.wheel.analog_right - -;ss, Virtual Port 9, Steering Wheel: B (R Group) -ss.input.port9.wheel.b - -;ss, Virtual Port 9, Steering Wheel: C (R Group) -ss.input.port9.wheel.c - -;ss, Virtual Port 9, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port9.wheel.down - -;ss, Virtual Port 9, Steering Wheel: START -ss.input.port9.wheel.start - -;ss, Virtual Port 9, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port9.wheel.up - -;ss, Virtual Port 9, Steering Wheel: X (L Group) -ss.input.port9.wheel.x - -;ss, Virtual Port 9, Steering Wheel: Y (L Group) -ss.input.port9.wheel.y - -;ss, Virtual Port 9, Steering Wheel: Z (L Group) -ss.input.port9.wheel.z - -;Enable multitap on Saturn port 1. -ss.input.sport1.multitap 0 - -;Enable multitap on Saturn port 2. -ss.input.sport2.multitap 0 - -;Attempt to auto-detect region of game. -ss.region_autodetect 1 - -;Default region to use. -ss.region_default jp - -;Enable scanlines with specified opacity. -ss.scanlines 0 - -;SCSP output resampler quality. -ss.scsp.resamp_quality 4 - -;Enable specified OpenGL shader. -ss.shader scale2x - -;Force interlaced video to be treated as progressive. -ss.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -ss.shader.goat.hdiv 0.50 - -;Mask pattern. -ss.shader.goat.pat goatron - -;Enable scanlines effect. -ss.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -ss.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -ss.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -ss.slend 239 - -;Last displayed scanline in PAL mode. -ss.slendp 255 - -;First displayed scanline in NTSC mode. -ss.slstart 0 - -;First displayed scanline in PAL mode. -ss.slstartp 0 - -;Automatically set RTC on game load. -ss.smpc.autortc 1 - -;BIOS language. -ss.smpc.autortc.lang english - -;Enable specified special video scaler. -ss.special none - -;Stretch to fill screen. -ss.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -ss.tblur 0 - -;Accumulate color data rather than discarding it. -ss.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -ss.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -ss.videoip 1 - -;Full-screen horizontal resolution. -ss.xres 0 - -;Scaling factor for the X axis in windowed mode. -ss.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -ss.xscalefs 1.000000 - -;Full-screen vertical resolution. -ss.yres 0 - -;Scaling factor for the Y axis in windowed mode. -ss.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -ss.yscalefs 1.000000 - -;3D mode. -vb.3dmode anaglyph - -;Reverse left/right 3D views. -vb.3dreverse 0 - -;Allow draw skipping. -vb.allow_draw_skip 0 - -;Anaglyph maximum-brightness color for left view. -vb.anaglyph.lcolor 0xffba00 - -;Anaglyph preset colors. -vb.anaglyph.preset red_blue - -;Anaglyph maximum-brightness color for right view. -vb.anaglyph.rcolor 0x00baff - -;CPU emulation mode. -vb.cpu_emulation accurate - -;Disassembly font size. -vb.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -vb.debugger.memcharenc shift_jis - -;Default maximum-brightness color to use in non-anaglyph 3D modes. -vb.default_color 0xF0F0F0 - -;Disable parallax for BG and OBJ rendering. -vb.disable_parallax 0 - -;Enable (automatic) usage of this module. -vb.enable 1 - -;Force monophonic sound output. -vb.forcemono 0 - -;vb, Built-In, Gamepad: A -vb.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;vb, Built-In, Gamepad: B -vb.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;vb, Built-In, Gamepad: DOWN ↓ (Left D-Pad) -vb.input.builtin.gamepad.down-l joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;vb, Built-In, Gamepad: DOWN ↓ (Right D-Pad) -vb.input.builtin.gamepad.down-r joystick 0x0003045e028e01010008000b00000000 abs_4+ - -;vb, Built-In, Gamepad: LEFT ← (Left D-Pad) -vb.input.builtin.gamepad.left-l joystick 0x0003045e028e01010008000b00000000 abs_6- - -;vb, Built-In, Gamepad: LEFT ← (Right D-Pad) -vb.input.builtin.gamepad.left-r joystick 0x0003045e028e01010008000b00000000 abs_3- - -;vb, Built-In, Gamepad: Left-Back -vb.input.builtin.gamepad.lt joystick 0x0003045e028e01010008000b00000000 button_4 - -;vb, Built-In, Gamepad: Rapid A -vb.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;vb, Built-In, Gamepad: Rapid B -vb.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;vb, Built-In, Gamepad: RIGHT → (Left D-Pad) -vb.input.builtin.gamepad.right-l joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;vb, Built-In, Gamepad: RIGHT → (Right D-Pad) -vb.input.builtin.gamepad.right-r joystick 0x0003045e028e01010008000b00000000 abs_3+ - -;vb, Built-In, Gamepad: Right-Back -vb.input.builtin.gamepad.rt joystick 0x0003045e028e01010008000b00000000 button_5 - -;vb, Built-In, Gamepad: Select -vb.input.builtin.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;vb, Built-In, Gamepad: Start -vb.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;vb, Built-In, Gamepad: UP ↑ (Left D-Pad) -vb.input.builtin.gamepad.up-l joystick 0x0003045e028e01010008000b00000000 abs_7- - -;vb, Built-In, Gamepad: UP ↑ (Right D-Pad) -vb.input.builtin.gamepad.up-r joystick 0x0003045e028e01010008000b00000000 abs_4- - -;Input latency reduction hack. -vb.input.instant_read_hack 1 - -;vb, System, Misc: Battery Voltage -vb.input.system.misc.battery - -;Default position for switch "Battery Voltage". -vb.input.system.misc.battery.defpos normal - -;Display latency reduction hack. -vb.instant_display_hack 0 - -;LED on duration to linear RGB conversion coefficient. -vb.ledonscale 1.75 - -;Line Interlaced prescale. -vb.liprescale 2 - -;Enable scanlines with specified opacity. -vb.scanlines 0 - -;Enable specified OpenGL shader. -vb.shader sabr - -;Force interlaced video to be treated as progressive. -vb.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -vb.shader.goat.hdiv 0.50 - -;Mask pattern. -vb.shader.goat.pat goatron - -;Enable scanlines effect. -vb.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -vb.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -vb.shader.goat.vdiv 0.50 - -;Number of pixels to separate L/R views by. -vb.sidebyside.separation 0 - -;Enable specified special video scaler. -vb.special none - -;Stretch to fill screen. -vb.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -vb.tblur 0 - -;Accumulate color data rather than discarding it. -vb.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -vb.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -vb.videoip 0 - -;Full-screen horizontal resolution. -vb.xres 0 - -;Scaling factor for the X axis in windowed mode. -vb.xscale 2.000000 - -;Scaling factor for the X axis in fullscreen mode. -vb.xscalefs 1.000000 - -;Full-screen vertical resolution. -vb.yres 0 - -;Scaling factor for the Y axis in windowed mode. -vb.yscale 2.000000 - -;Scaling factor for the Y axis in fullscreen mode. -vb.yscalefs 1.000000 - -;Enable time synchronization(waiting) for frame blitting. -video.blit_timesync 1 - -;Preferred window manager cursor visibility. -video.cursorvis hidden - -;Deinterlacer to use for interlaced video. -video.deinterlacer weave - -;Attempt to disable desktop composition. -video.disable_composition 1 - -;Video output driver. -video.driver default - -;Force backbuffer clear before drawing. -video.force_bbclear 0 - -;Enable frameskip during emulation rendering. -video.frameskip 1 - -;Enable fullscreen mode. -video.fs 1 - -;Display to use with fullscreen mode. -video.fs.display -1 - -;Preferred source data pixel format for emulated video. -video.glformat auto - -;Attempt to synchronize OpenGL page flips to vertical retrace period. -video.glvsync 1 - -;Birth Day -wswan.bday 23 - -;Blood Type -wswan.blood O - -;Birth Month -wswan.bmonth 6 - -;Birth Year -wswan.byear 1989 - -;Disassembly font size. -wswan.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -wswan.debugger.memcharenc shift_jis - -;Enable (automatic) usage of this module. -wswan.enable 1 - -;Enable comms to external program. -wswan.excomm 0 - -;Comms external program path. -wswan.excomm.path wonderfence - -;Force monophonic sound output. -wswan.forcemono 0 - -;Input device for Built-In -wswan.input.builtin gamepad - -;wswan, Built-In, Gamepad: A -wswan.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;wswan, Built-In, Gamepad: B -wswan.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;wswan, Built-In, Gamepad: X3(X DOWN ↓) -wswan.input.builtin.gamepad.down-x joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;wswan, Built-In, Gamepad: Y3(Y DOWN ↓) -wswan.input.builtin.gamepad.down-y joystick 0x0003045e028e01010008000b00000000 abs_2+ || joystick 0x0003045e028e01010008000b00000000 abs_2- - -;wswan, Built-In, Gamepad: X4(X LEFT ←) -wswan.input.builtin.gamepad.left-x joystick 0x0003045e028e01010008000b00000000 abs_6- - -;wswan, Built-In, Gamepad: Y4(Y LEFT ←) -wswan.input.builtin.gamepad.left-y joystick 0x0003045e028e01010008000b00000000 button_4 - -;wswan, Built-In, Gamepad: Rapid A -wswan.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;wswan, Built-In, Gamepad: Rapid B -wswan.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;wswan, Built-In, Gamepad: X2(X RIGHT →) -wswan.input.builtin.gamepad.right-x joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;wswan, Built-In, Gamepad: Y2(Y RIGHT →) -wswan.input.builtin.gamepad.right-y joystick 0x0003045e028e01010008000b00000000 button_5 - -;wswan, Built-In, Gamepad: Start -wswan.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;wswan, Built-In, Gamepad: X1(X UP ↑) -wswan.input.builtin.gamepad.up-x joystick 0x0003045e028e01010008000b00000000 abs_7- - -;wswan, Built-In, Gamepad: Y1(Y UP ↑) -wswan.input.builtin.gamepad.up-y joystick 0x0003045e028e01010008000b00000000 abs_5- - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): A (right) -wswan.input.builtin.gamepadraa.a keyboard 0x0 91 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): A'(center, upper) -wswan.input.builtin.gamepadraa.ap keyboard 0x0 94 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): B (center, lower) -wswan.input.builtin.gamepadraa.b keyboard 0x0 90 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): B'(left) -wswan.input.builtin.gamepadraa.bp keyboard 0x0 93 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X3(X DOWN ↓) -wswan.input.builtin.gamepadraa.down-x keyboard 0x0 22 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y3(Y DOWN ↓) -wswan.input.builtin.gamepadraa.down-y keyboard 0x0 81 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X4(X LEFT ←) -wswan.input.builtin.gamepadraa.left-x keyboard 0x0 4 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y4(Y LEFT ←) -wswan.input.builtin.gamepadraa.left-y keyboard 0x0 80 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X2(X RIGHT →) -wswan.input.builtin.gamepadraa.right-x keyboard 0x0 7 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y2(Y RIGHT →) -wswan.input.builtin.gamepadraa.right-y keyboard 0x0 79 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Start -wswan.input.builtin.gamepadraa.start keyboard 0x0 40 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X1(X UP ↑) -wswan.input.builtin.gamepadraa.up-x keyboard 0x0 26 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y1(Y UP ↑) -wswan.input.builtin.gamepadraa.up-y keyboard 0x0 82 - -;Language games should display text in. -wswan.language english - -;Name -wswan.name Mednafen - -;Enable scanlines with specified opacity. -wswan.scanlines 0 - -;Sex -wswan.sex F - -;Enable specified OpenGL shader. -wswan.shader sabr - -;Force interlaced video to be treated as progressive. -wswan.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -wswan.shader.goat.hdiv 0.50 - -;Mask pattern. -wswan.shader.goat.pat goatron - -;Enable scanlines effect. -wswan.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -wswan.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -wswan.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -wswan.special none - -;Stretch to fill screen. -wswan.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -wswan.tblur 0 - -;Accumulate color data rather than discarding it. -wswan.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -wswan.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -wswan.videoip 0 - -;Full-screen horizontal resolution. -wswan.xres 0 - -;Scaling factor for the X axis in windowed mode. -wswan.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -wswan.xscalefs 1.000000 - -;Full-screen vertical resolution. -wswan.yres 0 - -;Scaling factor for the Y axis in windowed mode. -wswan.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -wswan.yscalefs 1.000000 - diff --git a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg index 5c52b44b5..228a62ab5 100644 --- a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg @@ -9,7 +9,7 @@ affinity.cd 0 ;Main emulation thread CPU affinity mask. -affinity.emu 0 +affinity.emu 0x3 ;Video blitting thread CPU affinity mask. affinity.video 0 @@ -1146,10 +1146,10 @@ md.input.port1.gamepad6.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ md.input.port1.gamepad6.c joystick @GUID1@ @DEVICE_BTN_EAST@ ;md, Virtual Port 1, 6-Button Gamepad: DOWN ↓ -md.input.port1.gamepad6.down joystick @GUID1@ @DEVICE_BTN_DOWN@ +md.input.port1.gamepad6.down joystick @GUID1@ @DEVICE_BTN_DPAD_DOWN@ ;md, Virtual Port 1, 6-Button Gamepad: LEFT ← -md.input.port1.gamepad6.left joystick @GUID1@ @DEVICE_BTN_LEFT@ +md.input.port1.gamepad6.left joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ;md, Virtual Port 1, 6-Button Gamepad: Mode md.input.port1.gamepad6.mode joystick @GUID1@ @DEVICE_BTN_SELECT@ @@ -1173,13 +1173,13 @@ md.input.port1.gamepad6.rapid_y md.input.port1.gamepad6.rapid_z ;md, Virtual Port 1, 6-Button Gamepad: RIGHT → -md.input.port1.gamepad6.right joystick @GUID1@ @DEVICE_BTN_WEST@ +md.input.port1.gamepad6.right joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ;md, Virtual Port 1, 6-Button Gamepad: Start md.input.port1.gamepad6.start joystick @GUID1@ @DEVICE_BTN_START@ ;md, Virtual Port 1, 6-Button Gamepad: UP ↑ -md.input.port1.gamepad6.up joystick @GUID1@ @DEVICE_BTN_UP@ +md.input.port1.gamepad6.up joystick @GUID1@ @DEVICE_BTN_DPAD_UP@ ;md, Virtual Port 1, 6-Button Gamepad: X md.input.port1.gamepad6.x joystick @GUID1@ @DEVICE_BTN_TL@ @@ -6021,7 +6021,7 @@ snes_faust.affinity.msu1.audio 0 snes_faust.affinity.msu1.data 0 ;PPU rendering thread CPU affinity mask. -snes_faust.affinity.ppu 0 +snes_faust.affinity.ppu 0xc ;Correct aspect ratio. snes_faust.correct_aspect 1 @@ -6756,7 +6756,7 @@ vb.debugger.memcharenc shift_jis vb.default_color 0xF0F0F0 ;Disable parallax for BG and OBJ rendering. -vb.disable_parallax 1 +vb.disable_parallax 0 ;Enable (automatic) usage of this module. vb.enable 1 @@ -9879,9 +9879,9 @@ ss.input.port1.3dpad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ ss.input.port1.3dpad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.3dpad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ +ss.input.port1.3dpad.down joystick @GUID1@ @DEVICE_BTN_DPAD_DOWN@ -ss.input.port1.3dpad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ +ss.input.port1.3dpad.left joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ss.input.port1.3dpad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ || joystick @GUID1@ @DEVICE_BTN_TL2_MINUS@ @@ -9889,13 +9889,13 @@ ss.input.port1.3dpad.mode joystick ss.input.port1.3dpad.mode.defpos analog -ss.input.port1.3dpad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ +ss.input.port1.3dpad.right joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ss.input.port1.3dpad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ || joystick @GUID1@ @DEVICE_BTN_TR2_MINUS@ ss.input.port1.3dpad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.3dpad.up joystick @GUID1@ @DEVICE_BTN_UP@ +ss.input.port1.3dpad.up joystick @GUID1@ @DEVICE_BTN_DPAD_UP@ ss.input.port1.3dpad.x joystick @GUID1@ @DEVICE_BTN_WEST@ @@ -9987,19 +9987,19 @@ ss.input.port1.gamepad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ ss.input.port1.gamepad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.gamepad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ +ss.input.port1.gamepad.down joystick @GUID1@ @DEVICE_BTN_DPAD_DOWN@ -ss.input.port1.gamepad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ +ss.input.port1.gamepad.left joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ss.input.port1.gamepad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ -ss.input.port1.gamepad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ +ss.input.port1.gamepad.right joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ss.input.port1.gamepad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ ss.input.port1.gamepad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.gamepad.up joystick @GUID1@ @DEVICE_BTN_UP@ +ss.input.port1.gamepad.up joystick @GUID1@ @DEVICE_BTN_DPAD_UP@ ss.input.port1.gamepad.x joystick @GUID1@ @DEVICE_BTN_WEST@ diff --git a/packages/emulators/standalone/mednafen/package.mk b/packages/emulators/standalone/mednafen/package.mk index 0dcdc4726..19fc7f7a6 100644 --- a/packages/emulators/standalone/mednafen/package.mk +++ b/packages/emulators/standalone/mednafen/package.mk @@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2023-present asoderq/sydarn2 (https://github.com/asoderq) +# Copyright (C) 2023-present sydarn (https://github.com/asoderq) PKG_NAME="mednafen" PKG_VERSION="1.31.0-UNSTABLE" @@ -13,18 +13,17 @@ pre_configure_target() { # unsupported modules DISABLED_MODULES+=" --disable-apple2 \ - --disable-sasplay \ + --disable-sasplay \ --disable-ssfplay" case ${DEVICE} in - RK3326) + RK3326|RK3566) DISABLED_MODULES+=" --disable-snes \ --disable-ss \ --disable-psx" ;; - RK356*) - DISABLED_MODULES+=" --disable-ss \ - --disable-psx" + S922X|RK3399|RK3588) + DISABLED_MODULES+=" --disable-ss" ;; esac @@ -37,13 +36,10 @@ makeinstall_target() { cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin chmod +x ${INSTALL}/usr/bin/start_mednafen.sh + chmod +x ${INSTALL}/usr/bin/mednafen_gen_config.sh mkdir -p ${INSTALL}/usr/config/${PKG_NAME} - if [ -d ${PKG_DIR}/config/${DEVICE} ]; then - cp ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/${PKG_NAME} - else - cp ${PKG_DIR}/config/common/* ${INSTALL}/usr/config/${PKG_NAME} - fi + cp ${PKG_DIR}/config/common/* ${INSTALL}/usr/config/${PKG_NAME} } post_install() { diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh index 99c8443dc..af492c456 100644 --- a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -51,9 +51,10 @@ DEVICE_BTN_AR_RIGHT="abs_2+" for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_DPAD_UP \ DEVICE_BTN_DPAD_DOWN DEVICE_BTN_DPAD_LEFT \ DEVICE_BTN_DPAD_RIGHT DEVICE_BTN_TL2 \ - MINUS DEVICE_BTN_TR2_MINUS DEVICE_BTN_AL_DOWN \ - DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT \ - DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP DEVICE_BTN_AR_LEFT + DEVICE_BTN_TR2_MINUS DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP \ + DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT \ + DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP DEVICE_BTN_AR_LEFT \ + DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS do sed -i -e "s/@${CONTROL}@/${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg done diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index 2fccbb806..3a1d4fb19 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -5,7 +5,7 @@ . /etc/profile export MEDNAFEN_HOME=/storage/.config/mednafen -export MEDNAFEN_CONFIG=/usr/config/mednafen.cfg +export MEDNAFEN_CONFIG=/usr/config/mednafen/mednafen.cfg if [ ! -d "$MEDNAFEN_HOME" ] then diff --git a/packages/ui/emulationstation/config/common/es_features.cfg b/packages/ui/emulationstation/config/common/es_features.cfg index 35858d580..9654ff98d 100644 --- a/packages/ui/emulationstation/config/common/es_features.cfg +++ b/packages/ui/emulationstation/config/common/es_features.cfg @@ -164,6 +164,7 @@ + diff --git a/packages/virtual/emulators/package.mk b/packages/virtual/emulators/package.mk index ade80fbd9..0231c01c5 100644 --- a/packages/virtual/emulators/package.mk +++ b/packages/virtual/emulators/package.mk @@ -33,7 +33,7 @@ case "${DEVICE}" in AMD64) [ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="lutris-wine" PKG_EMUS+=" amiberry cemu-sa citra-sa dolphin-sa duckstation-sa melonds-sa minivmacsa mupen64plus-sa kronos-sa \ - nanoboyadvance-sa pcsx2-sa primehack rpcs3-sa ryujinx-sa scummvmsa vita3k-sa xemu-sa yuzu-sa" + nanoboyadvance-sa pcsx2-sa primehack rpcs3-sa ryujinx-sa scummvmsa vita3k-sa xemu-sa yuzu-sa mednafen" LIBRETRO_CORES+=" beetle-psx-lr bsnes-hd-lr citra-lr desmume-lr dolphin-lr flycast-lr lrps2-lr mame-lr \ play-lr" ;; @@ -68,7 +68,7 @@ case "${DEVICE}" in RK3326*) [ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="flycast-lr desmume-lr gpsp-lr pcsx_rearmed-lr" PKG_DEPENDS_TARGET+=" common-shaders glsl-shaders" - PKG_EMUS+=" amiberry drastic-sa mupen64plus-sa nanoboyadvance-sa scummvmsa yabasanshiro-sa portmaster" + PKG_EMUS+=" amiberry drastic-sa mupen64plus-sa nanoboyadvance-sa scummvmsa yabasanshiro-sa portmaster mednafen" LIBRETRO_CORES+=" uae4arm flycast-lr" PKG_RETROARCH+=" retropie-shaders" ;; @@ -358,7 +358,7 @@ makeinstall_target() { add_emu_core famicom retroarch quicknes false add_emu_core famicom retroarch mesen false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core famicom mednafen nes false ;; esac @@ -369,7 +369,7 @@ makeinstall_target() { add_emu_core fds retroarch fceumm false add_emu_core fds retroarch quicknes false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core fds mednafen nes false ;; esac @@ -405,7 +405,7 @@ makeinstall_target() { add_emu_core gb retroarch mgba false add_emu_core gb retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gb mednafen gb false ;; esac @@ -419,7 +419,7 @@ makeinstall_target() { add_emu_core gbh retroarch mgba false add_emu_core gbh retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbh mednafen gb false ;; esac @@ -444,7 +444,7 @@ makeinstall_target() { ;; esac case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gba mednafen gba false ;; esac @@ -457,7 +457,7 @@ makeinstall_target() { add_emu_core gbah retroarch vba_next false add_emu_core gbah retroarch beetle_gba false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbah mednafen gba false ;; esac @@ -471,7 +471,7 @@ makeinstall_target() { add_emu_core gbc retroarch mgba false add_emu_core gbc retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbc mednafen gb false ;; esac @@ -485,7 +485,7 @@ makeinstall_target() { add_emu_core gbch retroarch mgba false add_emu_core gbch retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbch mednafen gb false ;; esac @@ -546,7 +546,7 @@ makeinstall_target() { add_emu_core gamegear retroarch picodrive false add_emu_core gamegear retroarch smsplus false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gamegear mednafen gg false ;; esac @@ -558,7 +558,7 @@ makeinstall_target() { add_emu_core ggh retroarch picodrive false add_emu_core ggh retroarch smsplus false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core ggh mednafen gg false ;; esac @@ -580,7 +580,7 @@ makeinstall_target() { add_emu_core atarilynx retroarch handy true add_emu_core atarilynx retroarch beetle_lynx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core atarilynx mednafen lynx false ;; esac @@ -605,7 +605,7 @@ makeinstall_target() { add_emu_core megadrive-japan retroarch genesis_plus_gx_wide false add_emu_core megadrive-japan retroarch picodrive case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core megadrive-japan mednafen md false ;; esac @@ -620,7 +620,7 @@ makeinstall_target() { add_emu_core snesmsu1 retroarch snes9x true add_emu_core snesmsu1 retroarch beetle_supafaust false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core snesmsu1 mednafen snes_faust false ;; esac @@ -680,7 +680,7 @@ makeinstall_target() { add_emu_core ngp retroarch beetle_ngp true add_emu_core ngp retroarch race false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core ngp mednafen ngp false ;; esac @@ -690,7 +690,7 @@ makeinstall_target() { add_emu_core ngpc retroarch beetle_ngp true add_emu_core ngpc retroarch race false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core ngpc mednafen ngp false ;; esac @@ -740,7 +740,7 @@ makeinstall_target() { add_emu_core nes retroarch quicknes false add_emu_core nes retroarch mesen false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core nes mednafen nes false ;; esac @@ -752,7 +752,7 @@ makeinstall_target() { add_emu_core nesh retroarch quicknes false add_emu_core nesh retroarch mesen false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core nesh mednafen nesh false ;; esac @@ -779,7 +779,7 @@ makeinstall_target() { add_emu_core pcengine retroarch beetle_pce false add_emu_core pcengine retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core pcengine mednafen pce false add_emu_core pcengine mednafen pce_fast false ;; @@ -791,7 +791,7 @@ makeinstall_target() { add_emu_core pcenginecd retroarch beetle_pce false add_emu_core pcenginecd retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core pcenginecd mednafen pce false add_emu_core pcenginecd mednafen pce_fast false ;; @@ -801,7 +801,7 @@ makeinstall_target() { ### NEC PC-FX add_emu_core pcfx retroarch beetle_pcfx true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core pcfx mednafen pcfx false ;; esac @@ -817,6 +817,7 @@ makeinstall_target() { AMD64) add_emu_core psx retroarch beetle_psx true add_emu_core psx duckstation duckstation-sa false + add_emu_core psx mednafen psx false ;; S922X*) add_emu_core psx retroarch pcsx_rearmed true @@ -844,6 +845,7 @@ makeinstall_target() { RK3326) add_emu_core psx retroarch pcsx_rearmed32 true add_emu_core psx retroarch pcsx_rearmed false + add_emu_core psx mednafen psx false ;; esac add_emu_core psx retroarch duckstation false @@ -933,7 +935,7 @@ makeinstall_target() { add_emu_core genesis retroarch genesis_plus_gx_wide false add_emu_core genesis retroarch picodrive false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core genesis mednafen md false ;; esac @@ -944,7 +946,7 @@ makeinstall_target() { add_emu_core genh retroarch genesis_plus_gx_wide false add_emu_core genh retroarch picodrive false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core genh mednafen md false ;; esac @@ -956,7 +958,7 @@ makeinstall_target() { add_emu_core mastersystem retroarch picodrive false add_emu_core mastersystem retroarch smsplus false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core mastersystem mednafen sms false ;; esac @@ -967,7 +969,7 @@ makeinstall_target() { add_emu_core megadrive retroarch genesis_plus_gx_wide false add_emu_core megadrive retroarch picodrive false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core megadrive mednafen md false ;; esac @@ -990,7 +992,7 @@ makeinstall_target() { esac add_emu_core saturn retroarch beetle_saturn false case ${DEVICE} in - RK3399) + AMD64) add_emu_core saturn mednafen ss false ;; esac @@ -1001,7 +1003,7 @@ makeinstall_target() { AMD64|S922X*|RK35*) add_emu_core st-v retroarch beetle_saturn true ;; - RK3399) + RK3399|AMD64) add_emu_core st-v retroarch beetle_saturn true add_emu_core st-v mednafen ss false ;; @@ -1039,7 +1041,7 @@ makeinstall_target() { add_emu_core supergrafx retroarch beetle_supergrafx add_emu_core supergrafx retroarch beetle_pce case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core supergrafx mednafen pce false add_emu_core supergrafx mednafen pce_fast false ;; @@ -1056,10 +1058,13 @@ makeinstall_target() { add_emu_core snes retroarch bsnes_mercury_performance false add_emu_core snes retroarch bsnes_hd_beta false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core snes mednafen snes_faust false add_emu_core snes mednafen snes false ;; + RK3326) + add_emu_core snes mednafen snes_faust false + ;; esac add_es_system snes @@ -1073,10 +1078,13 @@ makeinstall_target() { add_emu_core snesh retroarch bsnes_mercury_performance false add_emu_core snesh retroarch bsnes_hd_beta false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core snesh mednafen snes false add_emu_core snesh mednafen snes_faust false ;; + RK3326) + add_emu_core snes mednafen snes_faust false + ;; esac add_es_system snesh @@ -1090,10 +1098,13 @@ makeinstall_target() { add_emu_core sfc retroarch bsnes_mercury_performance false add_emu_core sfc retroarch bsnes_hd_beta false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core sfc mednafen snes false add_emu_core sfc mednafen snes_faust false ;; + RK3326) + add_emu_core snes mednafen snes_faust false + ;; esac add_es_system sfc @@ -1121,7 +1132,7 @@ makeinstall_target() { add_emu_core tg16 retroarch beetle_pce false add_emu_core tg16 retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core tg16 mednafen pce false add_emu_core tg16 mednafen pce_fast false ;; @@ -1133,7 +1144,7 @@ makeinstall_target() { add_emu_core tg16cd retroarch beetle_pce false add_emu_core tg16cd retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core tg16cd mednafen pce false add_emu_core tg16cd mednafen pce_fast false ;; @@ -1155,7 +1166,7 @@ makeinstall_target() { ### Nintendo VirtualBoy add_emu_core virtualboy retroarch beetle_vb true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core virtualboy mednafen vb false ;; esac @@ -1164,7 +1175,7 @@ makeinstall_target() { ### Bandai Wonderswan add_emu_core wonderswan retroarch beetle_wswan true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core wonderswan mednafen wswan false ;; esac @@ -1173,7 +1184,7 @@ makeinstall_target() { ### Bandai Wonderswan Color add_emu_core wonderswancolor retroarch beetle_wswan true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core wonderswancolor mednafen wswan false ;; esac From 00dc3b5054edbc18017d70ffe228bafbf45785e7 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sun, 5 Nov 2023 16:02:36 +0100 Subject: [PATCH 066/112] Mednafen; remove autosave options until someone figures it out --- packages/ui/emulationstation/config/common/es_features.cfg | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/ui/emulationstation/config/common/es_features.cfg b/packages/ui/emulationstation/config/common/es_features.cfg index 9654ff98d..d420800b2 100644 --- a/packages/ui/emulationstation/config/common/es_features.cfg +++ b/packages/ui/emulationstation/config/common/es_features.cfg @@ -2,10 +2,6 @@ - - - - From 1d37cee16a1e3c16b3b6a395e7c1bcf7f9478445 Mon Sep 17 00:00:00 2001 From: mason Date: Sun, 5 Nov 2023 15:50:14 +0000 Subject: [PATCH 067/112] Update RK3399 Kernel config --- .../devices/RK3399/linux/linux.aarch64.conf | 1754 +++-------------- 1 file changed, 309 insertions(+), 1445 deletions(-) diff --git a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf index 66af20f25..85d88a794 100644 --- a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf @@ -1,15 +1,15 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.1.38 Kernel Configuration +# Linux/arm64 6.1.61 Kernel Configuration # CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnueabi-gcc-12.3.0 (GCC) 12.3.0" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=120300 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24000 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24000 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -106,7 +106,6 @@ CONFIG_PREEMPT=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y # CONFIG_PREEMPT_DYNAMIC is not set -# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -214,8 +213,8 @@ CONFIG_INITRAMFS_COMPRESSION_GZIP=y # CONFIG_INITRAMFS_COMPRESSION_NONE is not set # CONFIG_BOOT_CONFIG is not set CONFIG_INITRAMFS_PRESERVE_MTIME=y -# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y @@ -243,7 +242,7 @@ CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_KCMP=y @@ -275,6 +274,7 @@ CONFIG_ARCH_MMAP_RND_BITS_MIN=18 CONFIG_ARCH_MMAP_RND_BITS_MAX=33 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_NO_IOPORT_MAP=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_LOCKDEP_SUPPORT=y @@ -337,6 +337,7 @@ CONFIG_ARCH_ROCKCHIP=y # # ARM errata workarounds via the alternatives framework # +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y # CONFIG_ARM64_ERRATUM_826319 is not set # CONFIG_ARM64_ERRATUM_827319 is not set # CONFIG_ARM64_ERRATUM_824069 is not set @@ -364,6 +365,7 @@ CONFIG_ARM64_ERRATUM_2658417=y # CONFIG_ARM64_ERRATUM_2067961 is not set CONFIG_ARM64_ERRATUM_2441009=y CONFIG_ARM64_ERRATUM_2457168=y +CONFIG_ARM64_ERRATUM_2966298=y # CONFIG_CAVIUM_ERRATUM_22375 is not set # CONFIG_CAVIUM_ERRATUM_23154 is not set # CONFIG_CAVIUM_ERRATUM_27456 is not set @@ -391,8 +393,8 @@ CONFIG_ARM64_PA_BITS=48 CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_SCHED_MC=y # CONFIG_SCHED_CLUSTER is not set -CONFIG_SCHED_SMT=y -CONFIG_NR_CPUS=8 +# CONFIG_SCHED_SMT is not set +CONFIG_NR_CPUS=6 CONFIG_HOTPLUG_CPU=y # CONFIG_NUMA is not set # CONFIG_HZ_100 is not set @@ -409,6 +411,7 @@ CONFIG_CC_HAVE_SHADOW_CALL_STACK=y # CONFIG_KEXEC is not set # CONFIG_KEXEC_FILE is not set # CONFIG_CRASH_DUMP is not set +CONFIG_TRANS_TABLE=y # CONFIG_XEN is not set CONFIG_ARCH_FORCE_MAX_ORDER=11 CONFIG_UNMAP_KERNEL_AT_EL0=y @@ -419,10 +422,7 @@ CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_COMPAT=y CONFIG_KUSER_HELPERS=y # CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set -CONFIG_ARMV8_DEPRECATED=y -# CONFIG_SWP_EMULATION is not set -# CONFIG_CP15_BARRIER_EMULATION is not set -# CONFIG_SETEND_EMULATION is not set +# CONFIG_ARMV8_DEPRECATED is not set # # ARMv8.1 architectural features @@ -504,7 +504,10 @@ CONFIG_CMDLINE="" CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND_SKIP_SYNC=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y +CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_PM_AUTOSLEEP=y @@ -520,6 +523,7 @@ CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_CPU_PM=y CONFIG_ENERGY_MODEL=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # end of Power management options @@ -733,7 +737,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_OSF_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_ATARI_PARTITION is not set -CONFIG_MAC_PARTITION=y +# CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y # CONFIG_BSD_DISKLABEL is not set # CONFIG_MINIX_SUBPARTITION is not set @@ -750,10 +754,7 @@ CONFIG_EFI_PARTITION=y # end of Partition Types CONFIG_BLOCK_COMPAT=y -CONFIG_BLK_MQ_PCI=y CONFIG_BLK_PM=y -CONFIG_BLOCK_HOLDER_DEPRECATED=y -CONFIG_BLK_MQ_STACKING=y # # IO Schedulers @@ -883,6 +884,7 @@ CONFIG_UNIX_DIAG=m CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y +# CONFIG_XFRM_INTERFACE is not set # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set @@ -903,7 +905,7 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IP_TUNNEL=y +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m # CONFIG_NET_IPGRE_BROADCAST is not set CONFIG_IP_MROUTE_COMMON=y @@ -913,7 +915,7 @@ CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y # CONFIG_NET_IPVTI is not set -CONFIG_NET_UDP_TUNNEL=y +CONFIG_NET_UDP_TUNNEL=m # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set CONFIG_INET_AH=y @@ -945,27 +947,45 @@ CONFIG_TCP_CONG_CDG=m CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" CONFIG_TCP_MD5SIG=y -# CONFIG_IPV6 is not set +CONFIG_IPV6=m +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +# CONFIG_IPV6_GRE is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set # CONFIG_MPTCP is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NET_PTP_CLASSIFY=y # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NETFILTER=m # # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_NETLINK=y +CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y CONFIG_NETFILTER_FAMILY_ARP=y -# CONFIG_NETFILTER_NETLINK_HOOK is not set CONFIG_NETFILTER_NETLINK_ACCT=m -CONFIG_NETFILTER_NETLINK_QUEUE=y -CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_SYSLOG=m @@ -974,58 +994,28 @@ CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CONNTRACK_TIMEOUT=y -CONFIG_NF_CONNTRACK_TIMESTAMP=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=y -CONFIG_NF_CT_PROTO_GRE=y CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_BROADCAST=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_SNMP=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NF_CT_NETLINK_TIMEOUT=m -# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set +# CONFIG_NF_CONNTRACK_AMANDA is not set +# CONFIG_NF_CONNTRACK_FTP is not set +# CONFIG_NF_CONNTRACK_H323 is not set +# CONFIG_NF_CONNTRACK_IRC is not set +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set +# CONFIG_NF_CONNTRACK_SNMP is not set +# CONFIG_NF_CONNTRACK_PPTP is not set +# CONFIG_NF_CONNTRACK_SANE is not set +# CONFIG_NF_CONNTRACK_SIP is not set +# CONFIG_NF_CONNTRACK_TFTP is not set +# CONFIG_NF_CT_NETLINK is not set CONFIG_NF_NAT=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_SIP=m -CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m -CONFIG_NF_TABLES=m -# CONFIG_NF_TABLES_NETDEV is not set -# CONFIG_NFT_NUMGEN is not set -CONFIG_NFT_CT=m -# CONFIG_NFT_CONNLIMIT is not set -CONFIG_NFT_LOG=m -CONFIG_NFT_LIMIT=m -CONFIG_NFT_MASQ=m -CONFIG_NFT_REDIR=m -# CONFIG_NFT_TUNNEL is not set -# CONFIG_NFT_OBJREF is not set -CONFIG_NFT_QUEUE=m -# CONFIG_NFT_QUOTA is not set -CONFIG_NFT_REJECT=m -CONFIG_NFT_COMPAT=m -CONFIG_NFT_HASH=m -# CONFIG_NFT_XFRM is not set -# CONFIG_NFT_SOCKET is not set -# CONFIG_NFT_OSF is not set -# CONFIG_NFT_TPROXY is not set -# CONFIG_NFT_SYNPROXY is not set -# CONFIG_NF_FLOW_TABLE is not set +# CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=y CONFIG_NETFILTER_XTABLES_COMPAT=y @@ -1034,7 +1024,6 @@ CONFIG_NETFILTER_XTABLES_COMPAT=y # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m -CONFIG_NETFILTER_XT_SET=m # # Xtables targets @@ -1115,25 +1104,9 @@ CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m # end of Core Netfilter Configuration -CONFIG_IP_SET=y -CONFIG_IP_SET_MAX=256 -CONFIG_IP_SET_BITMAP_IP=m -CONFIG_IP_SET_BITMAP_IPMAC=m -CONFIG_IP_SET_BITMAP_PORT=m -CONFIG_IP_SET_HASH_IP=m -CONFIG_IP_SET_HASH_IPMARK=m -CONFIG_IP_SET_HASH_IPPORT=m -CONFIG_IP_SET_HASH_IPPORTIP=m -CONFIG_IP_SET_HASH_IPPORTNET=m -# CONFIG_IP_SET_HASH_IPMAC is not set -CONFIG_IP_SET_HASH_MAC=m -CONFIG_IP_SET_HASH_NETPORTNET=m -CONFIG_IP_SET_HASH_NET=m -CONFIG_IP_SET_HASH_NETNET=m -CONFIG_IP_SET_HASH_NETPORT=m -CONFIG_IP_SET_HASH_NETIFACE=m -CONFIG_IP_SET_LIST_SET=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 @@ -1178,9 +1151,7 @@ CONFIG_IP_VS_MH_TAB_INDEX=12 # # IPVS application helper # -# CONFIG_IP_VS_FTP is not set CONFIG_IP_VS_NFCT=y -# CONFIG_IP_VS_PE_SIP is not set # # IP: Netfilter Configuration @@ -1188,15 +1159,10 @@ CONFIG_IP_VS_NFCT=y CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m @@ -1219,29 +1185,20 @@ CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # end of IP: Netfilter Configuration -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NFT_BRIDGE_META=m +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +# CONFIG_NF_REJECT_IPV6 is not set +# CONFIG_NF_LOG_IPV6 is not set +# CONFIG_IP6_NF_IPTABLES is not set +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=m # CONFIG_NF_CONNTRACK_BRIDGE is not set -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_BRIDGE_NF_EBTABLES is not set # CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set @@ -1249,8 +1206,8 @@ CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_L2TP is not set -CONFIG_STP=y -CONFIG_BRIDGE=y +CONFIG_STP=m +CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y # CONFIG_BRIDGE_VLAN_FILTERING is not set # CONFIG_BRIDGE_MRP is not set @@ -1259,69 +1216,15 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_VLAN_8021Q=y # CONFIG_VLAN_8021Q_GVRP is not set # CONFIG_VLAN_8021Q_MVRP is not set -CONFIG_LLC=y +CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set # CONFIG_IEEE802154 is not set -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -# CONFIG_NET_SCH_CBQ is not set -CONFIG_NET_SCH_HTB=y -# CONFIG_NET_SCH_HFSC is not set -# CONFIG_NET_SCH_PRIO is not set -# CONFIG_NET_SCH_MULTIQ is not set -# CONFIG_NET_SCH_RED is not set -# CONFIG_NET_SCH_SFB is not set -# CONFIG_NET_SCH_SFQ is not set -# CONFIG_NET_SCH_TEQL is not set -# CONFIG_NET_SCH_TBF is not set -# CONFIG_NET_SCH_CBS is not set -# CONFIG_NET_SCH_ETF is not set -# CONFIG_NET_SCH_TAPRIO is not set -# CONFIG_NET_SCH_GRED is not set -# CONFIG_NET_SCH_DSMARK is not set -# CONFIG_NET_SCH_NETEM is not set -# CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_MQPRIO is not set -# CONFIG_NET_SCH_SKBPRIO is not set -# CONFIG_NET_SCH_CHOKE is not set -# CONFIG_NET_SCH_QFQ is not set -CONFIG_NET_SCH_CODEL=y -CONFIG_NET_SCH_FQ_CODEL=y -# CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_FQ is not set -# CONFIG_NET_SCH_HHF is not set -# CONFIG_NET_SCH_PIE is not set -# CONFIG_NET_SCH_PLUG is not set -# CONFIG_NET_SCH_ETS is not set -# CONFIG_NET_SCH_DEFAULT is not set - -# -# Classification -# -CONFIG_NET_CLS=y -# CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_ROUTE4 is not set -# CONFIG_NET_CLS_FW is not set -CONFIG_NET_CLS_U32=y -# CONFIG_CLS_U32_PERF is not set -CONFIG_CLS_U32_MARK=y -# CONFIG_NET_CLS_RSVP is not set -# CONFIG_NET_CLS_RSVP6 is not set -# CONFIG_NET_CLS_FLOW is not set -CONFIG_NET_CLS_CGROUP=y -# CONFIG_NET_CLS_BPF is not set -# CONFIG_NET_CLS_FLOWER is not set -# CONFIG_NET_CLS_MATCHALL is not set -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_CLS_ACT is not set -CONFIG_NET_SCH_FIFO=y +# CONFIG_NET_SCHED is not set # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set @@ -1383,14 +1286,7 @@ CONFIG_BT_DEBUGFS=y # # Bluetooth device drivers # -CONFIG_BT_INTEL=m -CONFIG_BT_BCM=m -CONFIG_BT_RTL=m -CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set -CONFIG_BT_HCIBTUSB_BCM=y -# CONFIG_BT_HCIBTUSB_MTK is not set -CONFIG_BT_HCIBTUSB_RTL=y +# CONFIG_BT_HCIBTUSB is not set # CONFIG_BT_HCIBTSDIO is not set CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_SERDEV=y @@ -1409,13 +1305,9 @@ CONFIG_BT_HCIUART_ATH3K=y # CONFIG_BT_HCIBCM203X is not set # CONFIG_BT_HCIBPA10X is not set CONFIG_BT_HCIBFUSB=m -# CONFIG_BT_HCIDTL1 is not set -# CONFIG_BT_HCIBT3C is not set -# CONFIG_BT_HCIBLUECARD is not set CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m -# CONFIG_BT_ATH3K is not set # CONFIG_BT_MTKSDIO is not set # CONFIG_BT_MTKUART is not set # end of Bluetooth device drivers @@ -1482,100 +1374,8 @@ CONFIG_PAGE_POOL=y # CONFIG_ARM_AMBA=y CONFIG_HAVE_PCI=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_SYSCALL=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIEAER=y -# CONFIG_PCIEAER_INJECT is not set -# CONFIG_PCIE_ECRC is not set -CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEFAULT is not set -CONFIG_PCIEASPM_POWERSAVE=y -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -# CONFIG_PCIEASPM_PERFORMANCE is not set -CONFIG_PCIE_PME=y -# CONFIG_PCIE_DPC is not set -# CONFIG_PCIE_PTM is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y -CONFIG_PCI_QUIRKS=y -CONFIG_PCI_DEBUG=y -# CONFIG_PCI_STUB is not set -# CONFIG_PCI_IOV is not set -# CONFIG_PCI_PRI is not set -# CONFIG_PCI_PASID is not set -# CONFIG_PCIE_BUS_TUNE_OFF is not set -CONFIG_PCIE_BUS_DEFAULT=y -# CONFIG_PCIE_BUS_SAFE is not set -# CONFIG_PCIE_BUS_PERFORMANCE is not set -# CONFIG_PCIE_BUS_PEER2PEER is not set -# CONFIG_VGA_ARB is not set -# CONFIG_HOTPLUG_PCI is not set - -# -# PCI controller drivers -# -# CONFIG_PCI_FTPCI100 is not set -# CONFIG_PCI_HOST_GENERIC is not set -# CONFIG_PCIE_XILINX is not set -# CONFIG_PCI_XGENE is not set -# CONFIG_PCIE_ALTERA is not set -# CONFIG_PCI_HOST_THUNDER_PEM is not set -# CONFIG_PCI_HOST_THUNDER_ECAM is not set -# CONFIG_PCIE_ROCKCHIP_HOST is not set -# CONFIG_PCIE_MICROCHIP_HOST is not set - -# -# DesignWare PCI Core Support -# -# CONFIG_PCIE_DW_PLAT_HOST is not set -# CONFIG_PCI_HISI is not set -# CONFIG_PCIE_ROCKCHIP_DW_HOST is not set -# CONFIG_PCIE_KIRIN is not set -# CONFIG_PCI_MESON is not set -# CONFIG_PCIE_AL is not set -# end of DesignWare PCI Core Support - -# -# Mobiveil PCIe Core Support -# -# end of Mobiveil PCIe Core Support - -# -# Cadence PCIe controllers support -# -# CONFIG_PCIE_CADENCE_PLAT_HOST is not set -# CONFIG_PCI_J721E_HOST is not set -# end of Cadence PCIe controllers support -# end of PCI controller drivers - -# -# PCI Endpoint -# -# CONFIG_PCI_ENDPOINT is not set -# end of PCI Endpoint - -# -# PCI switch controller drivers -# -# CONFIG_PCI_SW_SWITCHTEC is not set -# end of PCI switch controller drivers - -# CONFIG_CXL_BUS is not set -CONFIG_PCCARD=y -CONFIG_PCMCIA=y -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -# CONFIG_YENTA is not set -# CONFIG_PD6729 is not set -# CONFIG_I82092 is not set -# CONFIG_RAPIDIO is not set +# CONFIG_PCI is not set +# CONFIG_PCCARD is not set # # Generic Driver Options @@ -1653,7 +1453,6 @@ CONFIG_ARM_SCMI_POWER_DOMAIN=y CONFIG_ARM_SCPI_PROTOCOL=y CONFIG_ARM_SCPI_POWER_DOMAIN=y # CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_FW_CFG_SYSFS is not set # CONFIG_ARM_FFA_TRANSPORT is not set # CONFIG_GOOGLE_FIRMWARE is not set CONFIG_ARM_PSCI_FW=y @@ -1686,7 +1485,6 @@ CONFIG_OF_OVERLAY=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set CONFIG_CDROM=y -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set CONFIG_ZRAM=y CONFIG_ZRAM_DEF_COMP_LZORLE=y # CONFIG_ZRAM_DEF_COMP_LZ4 is not set @@ -1710,14 +1508,8 @@ CONFIG_BLK_DEV_RBD=m # # NVME Support # -CONFIG_NVME_CORE=m -CONFIG_BLK_DEV_NVME=m -# CONFIG_NVME_MULTIPATH is not set -# CONFIG_NVME_VERBOSE_ERRORS is not set -# CONFIG_NVME_HWMON is not set # CONFIG_NVME_FC is not set # CONFIG_NVME_TCP is not set -# CONFIG_NVME_AUTH is not set # CONFIG_NVME_TARGET is not set # end of NVME Support @@ -1726,11 +1518,8 @@ CONFIG_BLK_DEV_NVME=m # # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set -# CONFIG_PHANTOM is not set -# CONFIG_TIFM_CORE is not set # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_HP_ILO is not set # CONFIG_APDS9802ALS is not set # CONFIG_ISL29003 is not set # CONFIG_ISL29020 is not set @@ -1741,8 +1530,6 @@ CONFIG_BLK_DEV_NVME=m # CONFIG_DS1682 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set CONFIG_SRAM=y -# CONFIG_DW_XDATA_PCIE is not set -# CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_XILINX_SDFEC is not set # CONFIG_HISI_HIKEY_USB is not set # CONFIG_OPEN_DICE is not set @@ -1762,8 +1549,6 @@ CONFIG_EEPROM_93CX6=y # CONFIG_EEPROM_EE1004 is not set # end of EEPROM support -# CONFIG_CB710_CORE is not set - # # Texas Instruments shared transport line discipline # @@ -1773,17 +1558,10 @@ CONFIG_EEPROM_93CX6=y # CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set # CONFIG_ALTERA_STAPL is not set -# CONFIG_VMWARE_VMCI is not set -# CONFIG_GENWQE is not set # CONFIG_ECHO is not set -# CONFIG_BCM_VK is not set -# CONFIG_MISC_ALCOR_PCI is not set -# CONFIG_MISC_RTSX_PCI is not set # CONFIG_MISC_RTSX_USB is not set -# CONFIG_HABANA_AI is not set # CONFIG_UACCE is not set # CONFIG_PVPANIC is not set -# CONFIG_GP_PCI1XXXX is not set # end of Misc devices # @@ -1823,218 +1601,26 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_LOWLEVEL=y # CONFIG_ISCSI_TCP is not set # CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_CXGB3_ISCSI is not set -# CONFIG_SCSI_CXGB4_ISCSI is not set -# CONFIG_SCSI_BNX2_ISCSI is not set -# CONFIG_BE2ISCSI is not set -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_SCSI_HPSA is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_3W_SAS is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_HISI_SAS is not set -# CONFIG_SCSI_MVSAS is not set -# CONFIG_SCSI_MVUMI is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_SCSI_ESAS2R is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -CONFIG_MEGARAID_SAS=m -CONFIG_SCSI_MPT3SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -CONFIG_SCSI_MPT3SAS_MAX_SGE=128 -CONFIG_SCSI_MPT2SAS=m -# CONFIG_SCSI_MPI3MR is not set -# CONFIG_SCSI_SMARTPQI is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_MYRB is not set -# CONFIG_SCSI_MYRS is not set -# CONFIG_SCSI_SNIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FDOMAIN_PCI is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_AM53C974 is not set -# CONFIG_SCSI_WD719X is not set # CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_PMCRAID is not set -# CONFIG_SCSI_PM8001 is not set -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set # CONFIG_SCSI_DH is not set # end of SCSI device support -CONFIG_ATA=y -CONFIG_SATA_HOST=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_FORCE=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=y -CONFIG_SATA_MOBILE_LPM_POLICY=0 -CONFIG_SATA_AHCI_PLATFORM=y -# CONFIG_AHCI_DWC is not set -# CONFIG_AHCI_CEVA is not set -# CONFIG_AHCI_QORIQ is not set -# CONFIG_SATA_INIC162X is not set -# CONFIG_SATA_ACARD_AHCI is not set -# CONFIG_SATA_SIL24 is not set -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -# CONFIG_PDC_ADMA is not set -# CONFIG_SATA_QSTOR is not set -# CONFIG_SATA_SX4 is not set -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -# CONFIG_ATA_PIIX is not set -# CONFIG_SATA_DWC is not set -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SIL=m -# CONFIG_SATA_SIS is not set -# CONFIG_SATA_SVW is not set -# CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set -# CONFIG_SATA_VITESSE is not set - -# -# PATA SFF controllers with BMDMA -# -# CONFIG_PATA_ALI is not set -# CONFIG_PATA_AMD is not set -# CONFIG_PATA_ARTOP is not set -# CONFIG_PATA_ATIIXP is not set -# CONFIG_PATA_ATP867X is not set -# CONFIG_PATA_CMD64X is not set -# CONFIG_PATA_CYPRESS is not set -# CONFIG_PATA_EFAR is not set -# CONFIG_PATA_HPT366 is not set -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set -# CONFIG_PATA_HPT3X3 is not set -# CONFIG_PATA_IT8213 is not set -# CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_MARVELL is not set -# CONFIG_PATA_NETCELL is not set -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87415 is not set -# CONFIG_PATA_OLDPIIX is not set -# CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PDC2027X is not set -# CONFIG_PATA_PDC_OLD is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -# CONFIG_PATA_SCH is not set -# CONFIG_PATA_SERVERWORKS is not set -# CONFIG_PATA_SIL680 is not set -# CONFIG_PATA_SIS is not set -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -# CONFIG_PATA_VIA is not set -# CONFIG_PATA_WINBOND is not set - -# -# PIO-only SFF controllers -# -# CONFIG_PATA_CMD640_PCI is not set -# CONFIG_PATA_MPIIX is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_PCMCIA is not set -# CONFIG_PATA_OF_PLATFORM is not set -# CONFIG_PATA_RZ1000 is not set - -# -# Generic fallback / legacy drivers -# -# CONFIG_ATA_GENERIC is not set -# CONFIG_PATA_LEGACY is not set -CONFIG_MD=y -CONFIG_BLK_DEV_MD=y -CONFIG_MD_AUTODETECT=y -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=y -CONFIG_MD_RAID1=y -CONFIG_MD_RAID10=y -CONFIG_MD_RAID456=y -# CONFIG_MD_MULTIPATH is not set -# CONFIG_MD_FAULTY is not set -CONFIG_BCACHE=m -# CONFIG_BCACHE_DEBUG is not set -# CONFIG_BCACHE_CLOSURES_DEBUG is not set -# CONFIG_BCACHE_ASYNC_REGISTRATION is not set -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_DM=y -# CONFIG_DM_DEBUG is not set -# CONFIG_DM_UNSTRIPED is not set -CONFIG_DM_CRYPT=m -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_THIN_PROVISIONING is not set -# CONFIG_DM_CACHE is not set -# CONFIG_DM_WRITECACHE is not set -# CONFIG_DM_EBS is not set -# CONFIG_DM_ERA is not set -# CONFIG_DM_CLONE is not set -# CONFIG_DM_MIRROR is not set -CONFIG_DM_RAID=y -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_DUST is not set -# CONFIG_DM_INIT is not set -# CONFIG_DM_UEVENT is not set -# CONFIG_DM_FLAKEY is not set -# CONFIG_DM_VERITY is not set -# CONFIG_DM_SWITCH is not set -# CONFIG_DM_LOG_WRITES is not set -# CONFIG_DM_INTEGRITY is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set # CONFIG_TARGET_CORE is not set -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_FIREWIRE is not set -# CONFIG_FIREWIRE_NOSY is not set -# end of IEEE 1394 (FireWire) support - CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y # CONFIG_BONDING is not set # CONFIG_DUMMY is not set -CONFIG_WIREGUARD=y +CONFIG_WIREGUARD=m # CONFIG_WIREGUARD_DEBUG is not set # CONFIG_EQUALIZER is not set -# CONFIG_NET_FC is not set # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=y # CONFIG_MACVTAP is not set CONFIG_IPVLAN_L3S=y -CONFIG_IPVLAN=y +CONFIG_IPVLAN=m # CONFIG_IPVTAP is not set CONFIG_VXLAN=m # CONFIG_GENEVE is not set @@ -2044,145 +1630,10 @@ CONFIG_VXLAN=m # CONFIG_MACSEC is not set # CONFIG_NETCONSOLE is not set CONFIG_TUN=m -# CONFIG_TUN_VNET_CROSS_LE is not set -CONFIG_VETH=y -# CONFIG_NLMON is not set -# CONFIG_NET_VRF is not set -# CONFIG_ARCNET is not set -CONFIG_ETHERNET=y -CONFIG_MDIO=y -# CONFIG_NET_VENDOR_3COM is not set -# CONFIG_NET_VENDOR_ADAPTEC is not set -# CONFIG_NET_VENDOR_AGERE is not set -CONFIG_NET_VENDOR_ALACRITECH=y -# CONFIG_SLICOSS is not set -# CONFIG_NET_VENDOR_ALTEON is not set -# CONFIG_ALTERA_TSE is not set -CONFIG_NET_VENDOR_AMAZON=y -# CONFIG_ENA_ETHERNET is not set -# CONFIG_NET_VENDOR_AMD is not set -CONFIG_NET_VENDOR_AQUANTIA=y -# CONFIG_AQTION is not set -# CONFIG_NET_VENDOR_ARC is not set -CONFIG_NET_VENDOR_ASIX=y -# CONFIG_SPI_AX88796C is not set -# CONFIG_NET_VENDOR_ATHEROS is not set -# CONFIG_NET_VENDOR_BROADCOM is not set -CONFIG_NET_VENDOR_CADENCE=y -# CONFIG_MACB is not set -# CONFIG_NET_VENDOR_CAVIUM is not set -# CONFIG_NET_VENDOR_CHELSIO is not set -# CONFIG_NET_VENDOR_CISCO is not set -CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_GEMINI_ETHERNET is not set -CONFIG_NET_VENDOR_DAVICOM=y -# CONFIG_DM9051 is not set -# CONFIG_DNET is not set -# CONFIG_NET_VENDOR_DEC is not set -# CONFIG_NET_VENDOR_DLINK is not set -# CONFIG_NET_VENDOR_EMULEX is not set -CONFIG_NET_VENDOR_ENGLEDER=y -# CONFIG_TSNEP is not set -# CONFIG_NET_VENDOR_EZCHIP is not set -CONFIG_NET_VENDOR_FUJITSU=y -# CONFIG_PCMCIA_FMVJ18X is not set -CONFIG_NET_VENDOR_FUNGIBLE=y -# CONFIG_FUN_ETH is not set -CONFIG_NET_VENDOR_GOOGLE=y -# CONFIG_GVE is not set -# CONFIG_NET_VENDOR_HISILICON is not set -CONFIG_NET_VENDOR_HUAWEI=y -# CONFIG_HINIC is not set -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_E100=y -CONFIG_E1000=y -CONFIG_E1000E=y -CONFIG_IGB=y -CONFIG_IGB_HWMON=y -# CONFIG_IGBVF is not set -# CONFIG_IXGB is not set -CONFIG_IXGBE=y -CONFIG_IXGBE_HWMON=y -# CONFIG_IXGBEVF is not set -# CONFIG_I40E is not set -# CONFIG_I40EVF is not set -# CONFIG_ICE is not set -# CONFIG_FM10K is not set -# CONFIG_IGC is not set -CONFIG_NET_VENDOR_WANGXUN=y -# CONFIG_NGBE is not set -# CONFIG_TXGBE is not set -# CONFIG_JME is not set -CONFIG_NET_VENDOR_ADI=y -CONFIG_NET_VENDOR_LITEX=y -# CONFIG_LITEX_LITEETH is not set -# CONFIG_NET_VENDOR_MARVELL is not set -# CONFIG_NET_VENDOR_MELLANOX is not set -# CONFIG_NET_VENDOR_MICREL is not set -# CONFIG_NET_VENDOR_MICROCHIP is not set -CONFIG_NET_VENDOR_MICROSEMI=y -CONFIG_NET_VENDOR_MICROSOFT=y -# CONFIG_NET_VENDOR_MYRI is not set -# CONFIG_FEALNX is not set -CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set -# CONFIG_NET_VENDOR_NATSEMI is not set -CONFIG_NET_VENDOR_NETERION=y -# CONFIG_S2IO is not set -CONFIG_NET_VENDOR_NETRONOME=y -# CONFIG_NFP is not set -# CONFIG_NET_VENDOR_NVIDIA is not set -# CONFIG_NET_VENDOR_OKI is not set -# CONFIG_ETHOC is not set -CONFIG_NET_VENDOR_PACKET_ENGINES=y -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -CONFIG_NET_VENDOR_PENSANDO=y -# CONFIG_IONIC is not set -# CONFIG_NET_VENDOR_QLOGIC is not set -# CONFIG_NET_VENDOR_BROCADE is not set -# CONFIG_NET_VENDOR_QUALCOMM is not set -# CONFIG_NET_VENDOR_RDC is not set -# CONFIG_NET_VENDOR_REALTEK is not set -# CONFIG_NET_VENDOR_RENESAS is not set -# CONFIG_NET_VENDOR_ROCKER is not set -# CONFIG_NET_VENDOR_SAMSUNG is not set -# CONFIG_NET_VENDOR_SEEQ is not set -# CONFIG_NET_VENDOR_SILAN is not set -# CONFIG_NET_VENDOR_SIS is not set -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set -# CONFIG_SFC_SIENA is not set -# CONFIG_NET_VENDOR_SMSC is not set -CONFIG_NET_VENDOR_SOCIONEXT=y -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_STMMAC_ETH=y -# CONFIG_STMMAC_SELFTESTS is not set -CONFIG_STMMAC_PLATFORM=y -# CONFIG_DWMAC_DWC_QOS_ETH is not set -CONFIG_DWMAC_GENERIC=y -CONFIG_DWMAC_ROCKCHIP=y -# CONFIG_DWMAC_INTEL_PLAT is not set -# CONFIG_DWMAC_LOONGSON is not set -# CONFIG_STMMAC_PCI is not set -# CONFIG_NET_VENDOR_SUN is not set -# CONFIG_NET_VENDOR_SYNOPSYS is not set -# CONFIG_NET_VENDOR_TEHUTI is not set -# CONFIG_NET_VENDOR_TI is not set -CONFIG_NET_VENDOR_VERTEXCOM=y -# CONFIG_MSE102X is not set -# CONFIG_NET_VENDOR_VIA is not set -# CONFIG_NET_VENDOR_WIZNET is not set -CONFIG_NET_VENDOR_XILINX=y -# CONFIG_XILINX_EMACLITE is not set -# CONFIG_XILINX_AXI_EMAC is not set -# CONFIG_XILINX_LL_TEMAC is not set -CONFIG_NET_VENDOR_XIRCOM=y -# CONFIG_PCMCIA_XIRC2PS is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set +CONFIG_TUN_VNET_CROSS_LE=y +CONFIG_VETH=m +CONFIG_NLMON=m +# CONFIG_ETHERNET is not set CONFIG_PHYLINK=y CONFIG_PHYLIB=y CONFIG_SWPHY=y @@ -2249,24 +1700,14 @@ CONFIG_CAN_CALC_BITTIMING=y # CONFIG_CAN_CAN327 is not set # CONFIG_CAN_FLEXCAN is not set # CONFIG_CAN_GRCAN is not set -# CONFIG_CAN_KVASER_PCIEFD is not set # CONFIG_CAN_SLCAN is not set # CONFIG_CAN_XILINXCAN is not set # CONFIG_CAN_C_CAN is not set # CONFIG_CAN_CC770 is not set -# CONFIG_CAN_CTUCANFD_PCI is not set # CONFIG_CAN_CTUCANFD_PLATFORM is not set # CONFIG_CAN_IFI_CANFD is not set # CONFIG_CAN_M_CAN is not set -# CONFIG_CAN_PEAK_PCIEFD is not set CONFIG_CAN_SJA1000=y -# CONFIG_CAN_EMS_PCI is not set -# CONFIG_CAN_EMS_PCMCIA is not set -# CONFIG_CAN_F81601 is not set -# CONFIG_CAN_KVASER_PCI is not set -# CONFIG_CAN_PEAK_PCI is not set -# CONFIG_CAN_PEAK_PCMCIA is not set -CONFIG_CAN_PLX_PCI=y # CONFIG_CAN_SJA1000_ISA is not set # CONFIG_CAN_SJA1000_PLATFORM is not set # CONFIG_CAN_SOFTING is not set @@ -2307,7 +1748,6 @@ CONFIG_MDIO_DEVRES=y # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_IPQ4019 is not set # CONFIG_MDIO_IPQ8064 is not set -# CONFIG_MDIO_THUNDER is not set # # MDIO Multiplexers @@ -2319,7 +1759,6 @@ CONFIG_MDIO_DEVRES=y # # PCS device drivers # -CONFIG_PCS_XPCS=y # end of PCS device drivers CONFIG_PPP=m @@ -2374,18 +1813,13 @@ CONFIG_USB_NET_RNDIS_HOST=y CONFIG_USB_RTL8153_ECM=m CONFIG_WLAN=y CONFIG_WLAN_VENDOR_ADMTEK=y -# CONFIG_ADM8211 is not set CONFIG_ATH_COMMON=m CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set -CONFIG_ATH5K=m -# CONFIG_ATH5K_DEBUG is not set -CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=m -CONFIG_ATH9K_PCI=y # CONFIG_ATH9K_AHB is not set # CONFIG_ATH9K_DEBUGFS is not set # CONFIG_ATH9K_DYNACK is not set @@ -2393,7 +1827,6 @@ CONFIG_ATH9K_PCI=y CONFIG_ATH9K_RFKILL=y # CONFIG_ATH9K_CHANNEL_CONTEXT is not set CONFIG_ATH9K_PCOEM=y -# CONFIG_ATH9K_PCI_NO_EEPROM is not set # CONFIG_ATH9K_HTC is not set # CONFIG_ATH9K_HWRNG is not set # CONFIG_CARL9170 is not set @@ -2402,10 +1835,8 @@ CONFIG_ATH6KL=m CONFIG_ATH6KL_USB=m # CONFIG_ATH6KL_DEBUG is not set CONFIG_AR5523=m -# CONFIG_WIL6210 is not set CONFIG_ATH10K=m CONFIG_ATH10K_CE=y -# CONFIG_ATH10K_PCI is not set # CONFIG_ATH10K_SDIO is not set # CONFIG_ATH10K_USB is not set # CONFIG_ATH10K_DEBUG is not set @@ -2413,7 +1844,6 @@ CONFIG_ATH10K_CE=y CONFIG_WCN36XX=m # CONFIG_WCN36XX_DEBUGFS is not set CONFIG_WLAN_VENDOR_ATMEL=y -# CONFIG_ATMEL is not set CONFIG_AT76C50X_USB=m CONFIG_WLAN_VENDOR_BROADCOM=y CONFIG_B43=m @@ -2422,8 +1852,6 @@ CONFIG_B43_SSB=y CONFIG_B43_BUSES_BCMA_AND_SSB=y # CONFIG_B43_BUSES_BCMA is not set # CONFIG_B43_BUSES_SSB is not set -CONFIG_B43_PCI_AUTOSELECT=y -CONFIG_B43_PCICORE_AUTOSELECT=y # CONFIG_B43_SDIO is not set CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y @@ -2439,28 +1867,18 @@ CONFIG_BRCMUTIL=m # CONFIG_BRCMSMAC is not set CONFIG_BRCMFMAC=m CONFIG_BRCMFMAC_PROTO_BCDC=y -CONFIG_BRCMFMAC_PROTO_MSGBUF=y # CONFIG_BRCMFMAC_SDIO is not set CONFIG_BRCMFMAC_USB=y -CONFIG_BRCMFMAC_PCIE=y # CONFIG_BRCM_TRACING is not set # CONFIG_BRCMDBG is not set CONFIG_WLAN_VENDOR_CISCO=y -# CONFIG_AIRO_CS is not set CONFIG_WLAN_VENDOR_INTEL=y -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWLWIFI is not set CONFIG_WLAN_VENDOR_INTERSIL=y # CONFIG_HOSTAP is not set -# CONFIG_HERMES is not set # CONFIG_P54_COMMON is not set CONFIG_WLAN_VENDOR_MARVELL=y CONFIG_LIBERTAS=m CONFIG_LIBERTAS_USB=m -# CONFIG_LIBERTAS_CS is not set # CONFIG_LIBERTAS_SDIO is not set # CONFIG_LIBERTAS_SPI is not set # CONFIG_LIBERTAS_DEBUG is not set @@ -2470,21 +1888,13 @@ CONFIG_LIBERTAS_THINFIRM=m # CONFIG_LIBERTAS_THINFIRM_USB is not set CONFIG_MWIFIEX=m CONFIG_MWIFIEX_SDIO=m -# CONFIG_MWIFIEX_PCIE is not set CONFIG_MWIFIEX_USB=m -# CONFIG_MWL8K is not set CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m # CONFIG_MT76x0U is not set -# CONFIG_MT76x0E is not set -# CONFIG_MT76x2E is not set # CONFIG_MT76x2U is not set -# CONFIG_MT7603E is not set -# CONFIG_MT7615E is not set # CONFIG_MT7663U is not set # CONFIG_MT7663S is not set -# CONFIG_MT7915E is not set -# CONFIG_MT7921E is not set # CONFIG_MT7921S is not set # CONFIG_MT7921U is not set CONFIG_WLAN_VENDOR_MICROCHIP=y @@ -2494,10 +1904,6 @@ CONFIG_WLAN_VENDOR_PURELIFI=y # CONFIG_PLFXLC is not set CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m -# CONFIG_RT2400PCI is not set -# CONFIG_RT2500PCI is not set -# CONFIG_RT61PCI is not set -# CONFIG_RT2800PCI is not set CONFIG_RT2500USB=m CONFIG_RT73USB=m CONFIG_RT2800USB=m @@ -2515,50 +1921,18 @@ CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set CONFIG_WLAN_VENDOR_REALTEK=y -CONFIG_RTL8180=m CONFIG_RTL8187=m CONFIG_RTL8187_LEDS=y CONFIG_RTL_CARDS=m -CONFIG_RTL8192CE=m -CONFIG_RTL8192SE=m -CONFIG_RTL8192DE=m -CONFIG_RTL8723AE=m -CONFIG_RTL8723BE=m -CONFIG_RTL8188EE=m -CONFIG_RTL8192EE=m -CONFIG_RTL8821AE=m CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m -CONFIG_RTLWIFI_PCI=m CONFIG_RTLWIFI_USB=m CONFIG_RTLWIFI_DEBUG=y CONFIG_RTL8192C_COMMON=m -CONFIG_RTL8723_COMMON=m -CONFIG_RTLBTCOEXIST=m CONFIG_RTL8XXXU=m CONFIG_RTL8XXXU_UNTESTED=y CONFIG_RTW88=m -CONFIG_RTW88_CORE=m -CONFIG_RTW88_PCI=m -CONFIG_RTW88_8822B=m -CONFIG_RTW88_8822C=m -CONFIG_RTW88_8723D=m -CONFIG_RTW88_8821C=m -CONFIG_RTW88_8822BE=m -CONFIG_RTW88_8822CE=m -CONFIG_RTW88_8723DE=m -CONFIG_RTW88_8821CE=m -# CONFIG_RTW88_DEBUG is not set -# CONFIG_RTW88_DEBUGFS is not set CONFIG_RTW89=m -CONFIG_RTW89_CORE=m -CONFIG_RTW89_PCI=m -CONFIG_RTW89_8852A=m -CONFIG_RTW89_8852C=m -CONFIG_RTW89_8852AE=m -CONFIG_RTW89_8852CE=m -# CONFIG_RTW89_DEBUGMSG is not set -# CONFIG_RTW89_DEBUGFS is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set CONFIG_WLAN_VENDOR_SILABS=y @@ -2575,9 +1949,6 @@ CONFIG_WLAN_VENDOR_ZYDAS=y CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set CONFIG_WLAN_VENDOR_QUANTENNA=y -# CONFIG_QTNFMAC_PCIE is not set -# CONFIG_PCMCIA_RAYCS is not set -# CONFIG_PCMCIA_WL3501 is not set # CONFIG_MAC80211_HWSIM is not set CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_VIRT_WIFI is not set @@ -2589,7 +1960,6 @@ CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_WWAN is not set # end of Wireless WAN -# CONFIG_VMXNET3 is not set # CONFIG_NETDEVSIM is not set # CONFIG_NET_FAILOVER is not set CONFIG_ISDN=y @@ -2706,8 +2076,7 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_AD7879 is not set # CONFIG_TOUCHSCREEN_ADC is not set # CONFIG_TOUCHSCREEN_AR1021_I2C is not set -CONFIG_TOUCHSCREEN_ATMEL_MXT=y -# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set # CONFIG_TOUCHSCREEN_BU21029 is not set @@ -2751,25 +2120,7 @@ CONFIG_TOUCHSCREEN_GOODIX=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -CONFIG_TOUCHSCREEN_USB_COMPOSITE=y -CONFIG_TOUCHSCREEN_USB_EGALAX=y -CONFIG_TOUCHSCREEN_USB_PANJIT=y -CONFIG_TOUCHSCREEN_USB_3M=y -CONFIG_TOUCHSCREEN_USB_ITM=y -CONFIG_TOUCHSCREEN_USB_ETURBO=y -CONFIG_TOUCHSCREEN_USB_GUNZE=y -CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y -CONFIG_TOUCHSCREEN_USB_IRTOUCH=y -CONFIG_TOUCHSCREEN_USB_IDEALTEK=y -CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y -CONFIG_TOUCHSCREEN_USB_GOTOP=y -CONFIG_TOUCHSCREEN_USB_JASTEC=y -CONFIG_TOUCHSCREEN_USB_ELO=y -CONFIG_TOUCHSCREEN_USB_E2I=y -CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y -CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y -CONFIG_TOUCHSCREEN_USB_NEXIO=y -CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set @@ -2780,7 +2131,6 @@ CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y # CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set # CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SUR40 is not set # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set @@ -2843,7 +2193,6 @@ CONFIG_RMI4_F30=y CONFIG_SERIO=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_AMBAKMI is not set -# CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_SERIO_ALTERA_PS2 is not set @@ -2855,8 +2204,6 @@ CONFIG_SERIO_LIBPS2=y CONFIG_GAMEPORT=y # CONFIG_GAMEPORT_NS558 is not set # CONFIG_GAMEPORT_L4 is not set -# CONFIG_GAMEPORT_EMU10K1 is not set -# CONFIG_GAMEPORT_FM801 is not set # end of Hardware I/O ports # end of Input device support @@ -2884,8 +2231,6 @@ CONFIG_SERIAL_8250_16550A_VARIANTS=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y -# CONFIG_SERIAL_8250_PCI is not set -# CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=5 CONFIG_SERIAL_8250_RUNTIME_UARTS=5 CONFIG_SERIAL_8250_EXTENDED=y @@ -2897,7 +2242,6 @@ CONFIG_SERIAL_8250_DWLIB=y CONFIG_SERIAL_8250_FSL=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_RT288X is not set -CONFIG_SERIAL_8250_PERICOM=y CONFIG_SERIAL_OF_PLATFORM=y # @@ -2912,7 +2256,6 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set @@ -2920,7 +2263,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_SERIAL_ARC is not set -# CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_FSL_LINFLEXUART is not set # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set @@ -2930,7 +2272,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_MCTRL_GPIO=y # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_N_GSM is not set -# CONFIG_NOZOMI is not set # CONFIG_NULL_TTY is not set # CONFIG_HVC_DCC is not set CONFIG_SERIAL_DEV_BUS=y @@ -2944,21 +2285,7 @@ CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_CCTRNG is not set # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y -CONFIG_HW_RANDOM_CN10K=y -# CONFIG_APPLICOM is not set - -# -# PCMCIA character devices -# -# CONFIG_SYNCLINK_CS is not set -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -# CONFIG_SCR24X is not set -# CONFIG_IPWIRELESS is not set -# end of PCMCIA character devices - CONFIG_DEVMEM=y -CONFIG_DEVPORT=y CONFIG_TCG_TPM=y CONFIG_HW_RANDOM_TPM=y # CONFIG_TCG_TIS is not set @@ -2968,7 +2295,6 @@ CONFIG_HW_RANDOM_TPM=y # CONFIG_TCG_TIS_I2C_ATMEL is not set CONFIG_TCG_TIS_I2C_INFINEON=y # CONFIG_TCG_TIS_I2C_NUVOTON is not set -# CONFIG_TCG_ATMEL is not set # CONFIG_TCG_VTPM_PROXY is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set @@ -3009,25 +2335,6 @@ CONFIG_I2C_ALGOBIT=y # I2C Hardware Bus support # -# -# PC SMBus host controller drivers -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_NVIDIA_GPU is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set - # # I2C system bus drivers (mostly embedded / system-on-chip) # @@ -3036,7 +2343,6 @@ CONFIG_I2C_ALGOBIT=y CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PLATFORM=y -# CONFIG_I2C_DESIGNWARE_PCI is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_NOMADIK is not set @@ -3044,7 +2350,6 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=y # CONFIG_I2C_PCA_PLATFORM is not set CONFIG_I2C_RK3X=y # CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_THUNDERX is not set # CONFIG_I2C_XILINX is not set # @@ -3052,7 +2357,6 @@ CONFIG_I2C_RK3X=y # # CONFIG_I2C_DIOLAN_U2C is not set # CONFIG_I2C_CP2615 is not set -# CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_ROBOTFUZZ_OSIF is not set # CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_TINY_USB is not set @@ -3092,13 +2396,11 @@ CONFIG_SPI_BITBANG=y # CONFIG_SPI_MICROCHIP_CORE_QSPI is not set # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PL022 is not set -# CONFIG_SPI_PXA2XX is not set CONFIG_SPI_ROCKCHIP=y # CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_MXIC is not set -# CONFIG_SPI_THUNDERX is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set @@ -3217,18 +2519,8 @@ CONFIG_GPIO_ROCKCHIP=y # # MFD GPIO expanders # -# CONFIG_GPIO_TPS6586X is not set # end of MFD GPIO expanders -# -# PCI GPIO expanders -# -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_PCI_IDIO_16 is not set -# CONFIG_GPIO_PCIE_IDIO_24 is not set -# CONFIG_GPIO_RDC321X is not set -# end of PCI GPIO expanders - # # SPI GPIO expanders # @@ -3298,7 +2590,7 @@ CONFIG_CHARGER_GPIO=y # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set -CONFIG_CHARGER_BQ24735=y +# CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_BQ2515X is not set # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set @@ -3335,7 +2627,6 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7475 is not set # CONFIG_SENSORS_AHT10 is not set -# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set # CONFIG_SENSORS_AS370 is not set # CONFIG_SENSORS_ASC7621 is not set # CONFIG_SENSORS_AXI_FAN_CONTROL is not set @@ -3344,10 +2635,8 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_CORSAIR_CPRO is not set # CONFIG_SENSORS_CORSAIR_PSU is not set -# CONFIG_SENSORS_DRIVETEMP is not set # CONFIG_SENSORS_DS620 is not set # CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_F71882FG is not set # CONFIG_SENSORS_F75375S is not set @@ -3420,8 +2709,6 @@ CONFIG_HWMON=y # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set # CONFIG_SENSORS_NPCM7XX is not set -# CONFIG_SENSORS_NZXT_KRAKEN2 is not set -# CONFIG_SENSORS_NZXT_SMART2 is not set # CONFIG_SENSORS_OCC_P8_I2C is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_PMBUS is not set @@ -3433,7 +2720,6 @@ CONFIG_SENSORS_PWM_FAN=y # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHT4x is not set # CONFIG_SENSORS_SHTC1 is not set -# CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_EMC1403 is not set # CONFIG_SENSORS_EMC2103 is not set @@ -3463,9 +2749,7 @@ CONFIG_SENSORS_PWM_FAN=y # CONFIG_SENSORS_TMP421 is not set # CONFIG_SENSORS_TMP464 is not set # CONFIG_SENSORS_TMP513 is not set -# CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83773G is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set @@ -3525,42 +2809,22 @@ CONFIG_WATCHDOG_OPEN_TIMEOUT=0 CONFIG_DW_WATCHDOG=y # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_ARM_SMC_WATCHDOG is not set -# CONFIG_ALIM7101_WDT is not set -# CONFIG_I6300ESB_WDT is not set -# CONFIG_HP_WATCHDOG is not set # CONFIG_MEN_A21_WDT is not set -# -# PCI-based Watchdog Cards -# -# CONFIG_PCIPCWATCHDOG is not set -# CONFIG_WDTPCI is not set - # # USB-based Watchdog Cards # # CONFIG_USBPCWATCHDOG is not set CONFIG_SSB_POSSIBLE=y CONFIG_SSB=y -CONFIG_SSB_SPROM=y CONFIG_SSB_BLOCKIO=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -# CONFIG_SSB_PCMCIAHOST is not set CONFIG_SSB_SDIOHOST_POSSIBLE=y # CONFIG_SSB_SDIOHOST is not set -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_SSB_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y CONFIG_BCMA=y CONFIG_BCMA_BLOCKIO=y -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_HOST_SOC is not set -CONFIG_BCMA_DRIVER_PCI=y # CONFIG_BCMA_DRIVER_GMAC_CMN is not set # CONFIG_BCMA_DRIVER_GPIO is not set # CONFIG_BCMA_DEBUG is not set @@ -3595,10 +2859,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_HI6421_PMIC is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set -# CONFIG_LPC_ICH is not set -# CONFIG_LPC_SCH is not set # CONFIG_MFD_IQS62X is not set -# CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set @@ -3626,7 +2887,6 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_SY7636A is not set -# CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RT5120 is not set @@ -3653,7 +2913,7 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TI_LP87565 is not set # CONFIG_MFD_TPS65218 is not set -CONFIG_MFD_TPS6586X=y +# CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set @@ -3663,7 +2923,6 @@ CONFIG_MFD_TPS6586X=y # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TQMX86 is not set -# CONFIG_MFD_VX855 is not set # CONFIG_MFD_LOCHNAGAR is not set # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set @@ -3692,7 +2951,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set # CONFIG_REGULATOR_88PG86X is not set -CONFIG_REGULATOR_ACT8865=y +# CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ARM_SCMI is not set # CONFIG_REGULATOR_DA9121 is not set @@ -3751,7 +3010,6 @@ CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_TPS6507X is not set # CONFIG_REGULATOR_TPS65132 is not set # CONFIG_REGULATOR_TPS6524X is not set -CONFIG_REGULATOR_TPS6586X=y CONFIG_REGULATOR_VCTRL=y CONFIG_RC_CORE=y # CONFIG_BPF_LIRC_MODE2 is not set @@ -3759,35 +3017,17 @@ CONFIG_LIRC=y CONFIG_RC_MAP=y CONFIG_RC_DECODERS=y # CONFIG_IR_IMON_DECODER is not set -CONFIG_IR_JVC_DECODER=y -CONFIG_IR_MCE_KBD_DECODER=y -CONFIG_IR_NEC_DECODER=y -CONFIG_IR_RC5_DECODER=y -CONFIG_IR_RC6_DECODER=y +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set # CONFIG_IR_RCMM_DECODER is not set -CONFIG_IR_SANYO_DECODER=y -CONFIG_IR_SHARP_DECODER=y -CONFIG_IR_SONY_DECODER=y -CONFIG_IR_XMP_DECODER=y -CONFIG_RC_DEVICES=y -CONFIG_IR_GPIO_CIR=y -# CONFIG_IR_GPIO_TX is not set -# CONFIG_IR_HIX5HD2 is not set -# CONFIG_IR_IGORPLUGUSB is not set -# CONFIG_IR_IGUANA is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_IMON_RAW is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_PWM_TX is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_SERIAL is not set -# CONFIG_IR_SPI is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_TOY is not set -# CONFIG_IR_TTUSBIR is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_RC_LOOPBACK is not set -# CONFIG_RC_XBOX_DVD is not set +# CONFIG_IR_SANYO_DECODER is not set +# CONFIG_IR_SHARP_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_XMP_DECODER is not set +# CONFIG_RC_DEVICES is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y @@ -3829,7 +3069,6 @@ CONFIG_VIDEO_V4L2_I2C=y CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_TUNER=m CONFIG_V4L2_MEM2MEM_DEV=y CONFIG_V4L2_FWNODE=y CONFIG_V4L2_ASYNC=y @@ -3838,16 +3077,15 @@ CONFIG_V4L2_ASYNC=y # # Media controller options # -CONFIG_MEDIA_CONTROLLER_DVB=y -CONFIG_MEDIA_CONTROLLER_REQUEST_API=y +# CONFIG_MEDIA_CONTROLLER_DVB is not set # end of Media controller options # # Digital TV options # # CONFIG_DVB_MMAP is not set -CONFIG_DVB_NET=y -CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_NET is not set +CONFIG_DVB_MAX_ADAPTERS=16 # CONFIG_DVB_DYNAMIC_MINORS is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set # CONFIG_DVB_ULE_DEBUG is not set @@ -3864,149 +3102,8 @@ CONFIG_DVB_MAX_ADAPTERS=8 # # Media drivers # -CONFIG_MEDIA_USB_SUPPORT=y - -# -# Webcam devices -# -# CONFIG_USB_GSPCA is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_S2255 is not set -CONFIG_VIDEO_USBTV=m -CONFIG_USB_VIDEO_CLASS=y -# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set - -# -# Analog TV USB devices -# -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_STK1160_COMMON is not set - -# -# Analog/digital TV USB devices -# -CONFIG_VIDEO_AU0828=m -CONFIG_VIDEO_AU0828_V4L2=y -# CONFIG_VIDEO_AU0828_RC is not set -CONFIG_VIDEO_CX231XX=m -CONFIG_VIDEO_CX231XX_RC=y -CONFIG_VIDEO_CX231XX_ALSA=m -CONFIG_VIDEO_CX231XX_DVB=m - -# -# Digital TV USB devices -# -CONFIG_DVB_AS102=m -CONFIG_DVB_B2C2_FLEXCOP_USB=m -# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set -CONFIG_DVB_USB_V2=m -CONFIG_DVB_USB_AF9015=m -CONFIG_DVB_USB_AF9035=m -CONFIG_DVB_USB_ANYSEE=m -CONFIG_DVB_USB_AU6610=m -CONFIG_DVB_USB_AZ6007=m -CONFIG_DVB_USB_CE6230=m -CONFIG_DVB_USB_DVBSKY=m -CONFIG_DVB_USB_EC168=m -CONFIG_DVB_USB_GL861=m -CONFIG_DVB_USB_LME2510=m -CONFIG_DVB_USB_MXL111SF=m -CONFIG_DVB_USB_RTL28XXU=m -# CONFIG_DVB_USB_ZD1301 is not set -CONFIG_DVB_USB=y -# CONFIG_DVB_USB_DEBUG is not set -CONFIG_DVB_USB_A800=m -CONFIG_DVB_USB_AF9005=m -CONFIG_DVB_USB_AF9005_REMOTE=m -CONFIG_DVB_USB_AZ6027=m -CONFIG_DVB_USB_CINERGY_T2=m -CONFIG_DVB_USB_CXUSB=m -# CONFIG_DVB_USB_CXUSB_ANALOG is not set -CONFIG_DVB_USB_DIB0700=m -CONFIG_DVB_USB_DIB3000MC=m -CONFIG_DVB_USB_DIBUSB_MB=m -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set -CONFIG_DVB_USB_DIBUSB_MC=m -CONFIG_DVB_USB_DIGITV=m -CONFIG_DVB_USB_DTT200U=m -CONFIG_DVB_USB_DTV5100=m -CONFIG_DVB_USB_DW2102=m -CONFIG_DVB_USB_GP8PSK=m -CONFIG_DVB_USB_M920X=m -CONFIG_DVB_USB_NOVA_T_USB2=m -CONFIG_DVB_USB_OPERA1=m -CONFIG_DVB_USB_PCTV452E=m -CONFIG_DVB_USB_TECHNISAT_USB2=m -CONFIG_DVB_USB_TTUSB2=m -CONFIG_DVB_USB_UMT_010=m -CONFIG_DVB_USB_VP702X=m -CONFIG_DVB_USB_VP7045=m -# CONFIG_SMS_USB_DRV is not set -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m - -# -# Webcam, TV (analog/digital) USB devices -# -CONFIG_VIDEO_EM28XX=m -CONFIG_VIDEO_EM28XX_V4L2=m -CONFIG_VIDEO_EM28XX_ALSA=m -CONFIG_VIDEO_EM28XX_DVB=m -CONFIG_VIDEO_EM28XX_RC=m - -# -# Software defined radio USB devices -# -CONFIG_USB_AIRSPY=m -CONFIG_USB_HACKRF=m -CONFIG_USB_MSI2500=m -CONFIG_MEDIA_PCI_SUPPORT=y - -# -# Media capture support -# -# CONFIG_VIDEO_SOLO6X10 is not set -# CONFIG_VIDEO_TW5864 is not set -# CONFIG_VIDEO_TW68 is not set -# CONFIG_VIDEO_TW686X is not set -# CONFIG_VIDEO_ZORAN is not set - -# -# Media capture/analog TV support -# -# CONFIG_VIDEO_DT3155 is not set -# CONFIG_VIDEO_IVTV is not set - -# -# Media capture/analog/hybrid TV support -# -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_CX18 is not set -CONFIG_VIDEO_CX23885=m -# CONFIG_MEDIA_ALTERA_CI is not set -CONFIG_VIDEO_CX25821=m -# CONFIG_VIDEO_CX25821_ALSA is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_SAA7164 is not set - -# -# Media digital TV PCI Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP_PCI is not set -# CONFIG_DVB_DDBRIDGE is not set -# CONFIG_DVB_DM1105 is not set -# CONFIG_MANTIS_CORE is not set -# CONFIG_DVB_NETUP_UNIDVB is not set -# CONFIG_DVB_NGENE is not set -# CONFIG_DVB_PLUTO2 is not set -# CONFIG_DVB_PT1 is not set -# CONFIG_DVB_PT3 is not set -# CONFIG_DVB_SMIPCIE is not set +# CONFIG_MEDIA_USB_SUPPORT is not set CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_SAA7706H is not set # CONFIG_RADIO_SHARK is not set # CONFIG_RADIO_SHARK2 is not set @@ -4066,7 +3163,6 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y # # Marvell media platform drivers # -# CONFIG_VIDEO_CAFE_CCIC is not set # # Mediatek media platform drivers @@ -4113,7 +3209,7 @@ CONFIG_VIDEO_ROCKCHIP_ISP1=y # # Verisilicon media platform drivers # -# CONFIG_VIDEO_HANTRO is not configured +# CONFIG_VIDEO_HANTRO is not set # # VIA media platform drivers @@ -4130,18 +3226,12 @@ CONFIG_VIDEO_ROCKCHIP_ISP1=y # CONFIG_SMS_SDIO_DRV is not set # CONFIG_V4L_TEST_DRIVERS is not set # CONFIG_DVB_TEST_DRIVERS is not set -CONFIG_CYPRESS_FIRMWARE=y -CONFIG_TTPCI_EEPROM=m -CONFIG_VIDEO_CX2341X=m -CONFIG_VIDEO_TVEEPROM=m -CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEOBUF2_CORE=y CONFIG_VIDEOBUF2_V4L2=y CONFIG_VIDEOBUF2_MEMOPS=y CONFIG_VIDEOBUF2_DMA_CONTIG=y CONFIG_VIDEOBUF2_VMALLOC=y CONFIG_VIDEOBUF2_DMA_SG=y -CONFIG_VIDEOBUF2_DVB=m # end of Media drivers # @@ -4153,77 +3243,7 @@ CONFIG_MEDIA_ATTACH=y # IR I2C driver auto-selected by 'Autoselect ancillary drivers' # # CONFIG_VIDEO_IR_I2C is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_AR0521 is not set -# CONFIG_VIDEO_HI556 is not set -# CONFIG_VIDEO_HI846 is not set -# CONFIG_VIDEO_HI847 is not set -# CONFIG_VIDEO_IMX208 is not set -# CONFIG_VIDEO_IMX214 is not set -CONFIG_VIDEO_IMX219=y -# CONFIG_VIDEO_IMX258 is not set -# CONFIG_VIDEO_IMX274 is not set -# CONFIG_VIDEO_IMX290 is not set -# CONFIG_VIDEO_IMX319 is not set -# CONFIG_VIDEO_IMX334 is not set -# CONFIG_VIDEO_IMX335 is not set -# CONFIG_VIDEO_IMX355 is not set -# CONFIG_VIDEO_IMX412 is not set -# CONFIG_VIDEO_MT9M001 is not set -# CONFIG_VIDEO_MT9M032 is not set -# CONFIG_VIDEO_MT9M111 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9T112 is not set -CONFIG_VIDEO_MT9V011=m -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_MT9V111 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_OG01A1B is not set -# CONFIG_VIDEO_OV02A10 is not set -# CONFIG_VIDEO_OV08D10 is not set -# CONFIG_VIDEO_OV13858 is not set -# CONFIG_VIDEO_OV13B10 is not set -CONFIG_VIDEO_OV2640=m -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV5640 is not set -CONFIG_VIDEO_OV5645=y -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV5648 is not set -# CONFIG_VIDEO_OV5670 is not set -# CONFIG_VIDEO_OV5675 is not set -# CONFIG_VIDEO_OV5693 is not set -# CONFIG_VIDEO_OV5695 is not set -# CONFIG_VIDEO_OV6650 is not set -# CONFIG_VIDEO_OV7251 is not set -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV772X is not set -# CONFIG_VIDEO_OV7740 is not set -# CONFIG_VIDEO_OV8856 is not set -# CONFIG_VIDEO_OV8865 is not set -# CONFIG_VIDEO_OV9282 is not set -# CONFIG_VIDEO_OV9640 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_RDACM20 is not set -# CONFIG_VIDEO_RDACM21 is not set -# CONFIG_VIDEO_RJ54N1 is not set -# CONFIG_VIDEO_S5C73M3 is not set -# CONFIG_VIDEO_S5K4ECGX is not set -# CONFIG_VIDEO_S5K5BAF is not set -# CONFIG_VIDEO_S5K6A3 is not set -# CONFIG_VIDEO_S5K6AA is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_VS6624 is not set -# CONFIG_VIDEO_CCS is not set -# CONFIG_VIDEO_ET8EK8 is not set -# CONFIG_VIDEO_M5MOLS is not set -# end of Camera sensor devices +# CONFIG_VIDEO_CAMERA_SENSOR is not set # # Lens drivers @@ -4286,10 +3306,10 @@ CONFIG_VIDEO_MSP3400=m # CONFIG_VIDEO_MAX9286 is not set # CONFIG_VIDEO_ML86V7667 is not set # CONFIG_VIDEO_SAA7110 is not set -CONFIG_VIDEO_SAA711X=m +# CONFIG_VIDEO_SAA711X is not set # CONFIG_VIDEO_TC358743 is not set # CONFIG_VIDEO_TVP514X is not set -CONFIG_VIDEO_TVP5150=m +# CONFIG_VIDEO_TVP5150 is not set # CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_TW2804 is not set # CONFIG_VIDEO_TW9903 is not set @@ -4301,7 +3321,7 @@ CONFIG_VIDEO_TVP5150=m # Video and audio decoders # # CONFIG_VIDEO_SAA717X is not set -CONFIG_VIDEO_CX25840=m +# CONFIG_VIDEO_CX25840 is not set # end of Video decoders # @@ -4350,7 +3370,7 @@ CONFIG_VIDEO_CX25840=m # # Media SPI Adapters # -CONFIG_CXD2880_SPI_DRV=m +# CONFIG_CXD2880_SPI_DRV is not set # CONFIG_VIDEO_GS1662 is not set # end of Media SPI Adapters @@ -4359,40 +3379,40 @@ CONFIG_MEDIA_TUNER=y # # Customize TV tuners # -CONFIG_MEDIA_TUNER_E4000=m -CONFIG_MEDIA_TUNER_FC0011=m -CONFIG_MEDIA_TUNER_FC0012=m -CONFIG_MEDIA_TUNER_FC0013=m -CONFIG_MEDIA_TUNER_FC2580=m -CONFIG_MEDIA_TUNER_IT913X=m -CONFIG_MEDIA_TUNER_M88RS6000T=m -CONFIG_MEDIA_TUNER_MAX2165=m +# CONFIG_MEDIA_TUNER_E4000 is not set +# CONFIG_MEDIA_TUNER_FC0011 is not set +# CONFIG_MEDIA_TUNER_FC0012 is not set +# CONFIG_MEDIA_TUNER_FC0013 is not set +# CONFIG_MEDIA_TUNER_FC2580 is not set +# CONFIG_MEDIA_TUNER_IT913X is not set +# CONFIG_MEDIA_TUNER_M88RS6000T is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set CONFIG_MEDIA_TUNER_MC44S803=y -CONFIG_MEDIA_TUNER_MSI001=m -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2063=m +# CONFIG_MEDIA_TUNER_MSI001 is not set +# CONFIG_MEDIA_TUNER_MT2060 is not set +# CONFIG_MEDIA_TUNER_MT2063 is not set CONFIG_MEDIA_TUNER_MT20XX=y -CONFIG_MEDIA_TUNER_MT2131=m -CONFIG_MEDIA_TUNER_MT2266=m +# CONFIG_MEDIA_TUNER_MT2131 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set # CONFIG_MEDIA_TUNER_MXL301RF is not set -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_MEDIA_TUNER_MXL5007T=m +# CONFIG_MEDIA_TUNER_MXL5005S is not set +# CONFIG_MEDIA_TUNER_MXL5007T is not set # CONFIG_MEDIA_TUNER_QM1D1B0004 is not set -CONFIG_MEDIA_TUNER_QM1D1C0042=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_R820T=m -CONFIG_MEDIA_TUNER_SI2157=m +# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_R820T is not set +# CONFIG_MEDIA_TUNER_SI2157 is not set CONFIG_MEDIA_TUNER_SIMPLE=y -CONFIG_MEDIA_TUNER_TDA18212=m -CONFIG_MEDIA_TUNER_TDA18218=m -CONFIG_MEDIA_TUNER_TDA18250=m +# CONFIG_MEDIA_TUNER_TDA18212 is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +# CONFIG_MEDIA_TUNER_TDA18250 is not set CONFIG_MEDIA_TUNER_TDA18271=y CONFIG_MEDIA_TUNER_TDA827X=y CONFIG_MEDIA_TUNER_TDA8290=y CONFIG_MEDIA_TUNER_TDA9887=y CONFIG_MEDIA_TUNER_TEA5761=y CONFIG_MEDIA_TUNER_TEA5767=y -CONFIG_MEDIA_TUNER_TUA9001=m +# CONFIG_MEDIA_TUNER_TUA9001 is not set CONFIG_MEDIA_TUNER_XC2028=y CONFIG_MEDIA_TUNER_XC4000=y CONFIG_MEDIA_TUNER_XC5000=y @@ -4405,156 +3425,153 @@ CONFIG_MEDIA_TUNER_XC5000=y # # Multistandard (satellite) frontends # -CONFIG_DVB_M88DS3103=m +# CONFIG_DVB_M88DS3103 is not set # CONFIG_DVB_MXL5XX is not set -CONFIG_DVB_STB0899=m -CONFIG_DVB_STB6100=m -CONFIG_DVB_STV090x=m +# CONFIG_DVB_STB0899 is not set +# CONFIG_DVB_STB6100 is not set +# CONFIG_DVB_STV090x is not set # CONFIG_DVB_STV0910 is not set -CONFIG_DVB_STV6110x=m +# CONFIG_DVB_STV6110x is not set # CONFIG_DVB_STV6111 is not set # # Multistandard (cable + terrestrial) frontends # -CONFIG_DVB_DRXK=m -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m -CONFIG_DVB_SI2165=m -CONFIG_DVB_TDA18271C2DD=m +# CONFIG_DVB_DRXK is not set +# CONFIG_DVB_MN88472 is not set +# CONFIG_DVB_MN88473 is not set +# CONFIG_DVB_SI2165 is not set +# CONFIG_DVB_TDA18271C2DD is not set # # DVB-S (satellite) frontends # # CONFIG_DVB_CX24110 is not set -CONFIG_DVB_CX24116=m -CONFIG_DVB_CX24117=m -CONFIG_DVB_CX24120=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_DS3000=m +# CONFIG_DVB_CX24116 is not set +# CONFIG_DVB_CX24117 is not set +# CONFIG_DVB_CX24120 is not set +# CONFIG_DVB_CX24123 is not set +# CONFIG_DVB_DS3000 is not set # CONFIG_DVB_MB86A16 is not set -CONFIG_DVB_MT312=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_SI21XX=m -CONFIG_DVB_STB6000=m -CONFIG_DVB_STV0288=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_STV0900=m -CONFIG_DVB_STV6110=m -CONFIG_DVB_TDA10071=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_TDA8083=m +# CONFIG_DVB_MT312 is not set +# CONFIG_DVB_S5H1420 is not set +# CONFIG_DVB_SI21XX is not set +# CONFIG_DVB_STB6000 is not set +# CONFIG_DVB_STV0288 is not set +# CONFIG_DVB_STV0299 is not set +# CONFIG_DVB_STV0900 is not set +# CONFIG_DVB_STV6110 is not set +# CONFIG_DVB_TDA10071 is not set +# CONFIG_DVB_TDA10086 is not set +# CONFIG_DVB_TDA8083 is not set # CONFIG_DVB_TDA8261 is not set -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TS2020=m +# CONFIG_DVB_TDA826X is not set +# CONFIG_DVB_TS2020 is not set # CONFIG_DVB_TUA6100 is not set -CONFIG_DVB_TUNER_CX24113=m -CONFIG_DVB_TUNER_ITD1000=m +# CONFIG_DVB_TUNER_CX24113 is not set +# CONFIG_DVB_TUNER_ITD1000 is not set # CONFIG_DVB_VES1X93 is not set # CONFIG_DVB_ZL10036 is not set -CONFIG_DVB_ZL10039=m +# CONFIG_DVB_ZL10039 is not set # # DVB-T (terrestrial) frontends # -CONFIG_DVB_AF9013=m -CONFIG_DVB_AS102_FE=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_CXD2820R=m -CONFIG_DVB_CXD2841ER=m -CONFIG_DVB_DIB3000MB=m -CONFIG_DVB_DIB3000MC=m -CONFIG_DVB_DIB7000M=m -CONFIG_DVB_DIB7000P=m +# CONFIG_DVB_AF9013 is not set +# CONFIG_DVB_CX22700 is not set +# CONFIG_DVB_CX22702 is not set +# CONFIG_DVB_CXD2820R is not set +# CONFIG_DVB_CXD2841ER is not set +# CONFIG_DVB_DIB3000MB is not set +# CONFIG_DVB_DIB3000MC is not set +# CONFIG_DVB_DIB7000M is not set +# CONFIG_DVB_DIB7000P is not set # CONFIG_DVB_DIB9000 is not set -CONFIG_DVB_DRXD=m -CONFIG_DVB_EC100=m -CONFIG_DVB_GP8PSK_FE=m +# CONFIG_DVB_DRXD is not set +# CONFIG_DVB_EC100 is not set # CONFIG_DVB_L64781 is not set -CONFIG_DVB_MT352=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_RTL2830=m -CONFIG_DVB_RTL2832=m -CONFIG_DVB_RTL2832_SDR=m +# CONFIG_DVB_MT352 is not set +# CONFIG_DVB_NXT6000 is not set +# CONFIG_DVB_RTL2830 is not set +# CONFIG_DVB_RTL2832 is not set +# CONFIG_DVB_RTL2832_SDR is not set # CONFIG_DVB_S5H1432 is not set -CONFIG_DVB_SI2168=m +# CONFIG_DVB_SI2168 is not set # CONFIG_DVB_SP887X is not set -CONFIG_DVB_STV0367=m -CONFIG_DVB_TDA10048=m -CONFIG_DVB_TDA1004X=m +# CONFIG_DVB_STV0367 is not set +# CONFIG_DVB_TDA10048 is not set +# CONFIG_DVB_TDA1004X is not set # CONFIG_DVB_ZD1301_DEMOD is not set -CONFIG_DVB_ZL10353=m +# CONFIG_DVB_ZL10353 is not set # CONFIG_DVB_CXD2880 is not set # # DVB-C (cable) frontends # -CONFIG_DVB_STV0297=m +# CONFIG_DVB_STV0297 is not set # CONFIG_DVB_TDA10021 is not set -CONFIG_DVB_TDA10023=m -CONFIG_DVB_VES1820=m +# CONFIG_DVB_TDA10023 is not set +# CONFIG_DVB_VES1820 is not set # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # -CONFIG_DVB_AU8522=m -CONFIG_DVB_AU8522_DTV=m -CONFIG_DVB_AU8522_V4L=m -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LG2160=m -CONFIG_DVB_LGDT3305=m -CONFIG_DVB_LGDT3306A=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_MXL692=m -CONFIG_DVB_NXT200X=m +# CONFIG_DVB_AU8522_DTV is not set +# CONFIG_DVB_AU8522_V4L is not set +# CONFIG_DVB_BCM3510 is not set +# CONFIG_DVB_LG2160 is not set +# CONFIG_DVB_LGDT3305 is not set +# CONFIG_DVB_LGDT3306A is not set +# CONFIG_DVB_LGDT330X is not set +# CONFIG_DVB_MXL692 is not set +# CONFIG_DVB_NXT200X is not set # CONFIG_DVB_OR51132 is not set # CONFIG_DVB_OR51211 is not set -CONFIG_DVB_S5H1409=m -CONFIG_DVB_S5H1411=m +# CONFIG_DVB_S5H1409 is not set +# CONFIG_DVB_S5H1411 is not set # # ISDB-T (terrestrial) frontends # -CONFIG_DVB_DIB8000=m -CONFIG_DVB_MB86A20S=m -CONFIG_DVB_S921=m +# CONFIG_DVB_DIB8000 is not set +# CONFIG_DVB_MB86A20S is not set +# CONFIG_DVB_S921 is not set # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # # CONFIG_DVB_MN88443X is not set -CONFIG_DVB_TC90522=m +# CONFIG_DVB_TC90522 is not set # # Digital terrestrial only tuners/PLL # -CONFIG_DVB_PLL=m -CONFIG_DVB_TUNER_DIB0070=m -CONFIG_DVB_TUNER_DIB0090=m +# CONFIG_DVB_PLL is not set +# CONFIG_DVB_TUNER_DIB0070 is not set +# CONFIG_DVB_TUNER_DIB0090 is not set # # SEC control devices for DVB-S # -CONFIG_DVB_A8293=m -CONFIG_DVB_AF9033=m -CONFIG_DVB_ASCOT2E=m -CONFIG_DVB_ATBM8830=m -CONFIG_DVB_HELENE=m -CONFIG_DVB_HORUS3A=m -CONFIG_DVB_ISL6405=m -CONFIG_DVB_ISL6421=m -CONFIG_DVB_ISL6423=m -CONFIG_DVB_IX2505V=m -CONFIG_DVB_LGS8GL5=m -CONFIG_DVB_LGS8GXX=m -CONFIG_DVB_LNBH25=m -CONFIG_DVB_LNBH29=m -CONFIG_DVB_LNBP21=m -CONFIG_DVB_LNBP22=m -CONFIG_DVB_M88RS2000=m -CONFIG_DVB_TDA665x=m -CONFIG_DVB_DRX39XYJ=m +# CONFIG_DVB_A8293 is not set +# CONFIG_DVB_AF9033 is not set +# CONFIG_DVB_ASCOT2E is not set +# CONFIG_DVB_ATBM8830 is not set +# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_HORUS3A is not set +# CONFIG_DVB_ISL6405 is not set +# CONFIG_DVB_ISL6421 is not set +# CONFIG_DVB_ISL6423 is not set +# CONFIG_DVB_IX2505V is not set +# CONFIG_DVB_LGS8GL5 is not set +# CONFIG_DVB_LGS8GXX is not set +# CONFIG_DVB_LNBH25 is not set +# CONFIG_DVB_LNBH29 is not set +# CONFIG_DVB_LNBP21 is not set +# CONFIG_DVB_LNBP22 is not set +# CONFIG_DVB_M88RS2000 is not set +# CONFIG_DVB_TDA665x is not set +# CONFIG_DVB_DRX39XYJ is not set # # Common Interface (EN50221) controller drivers @@ -4587,9 +3604,6 @@ CONFIG_DRM_DISPLAY_DP_HELPER=y CONFIG_DRM_DISPLAY_HDMI_HELPER=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DP_CEC is not set -CONFIG_DRM_TTM=m -CONFIG_DRM_VRAM_HELPER=m -CONFIG_DRM_TTM_HELPER=m CONFIG_DRM_GEM_DMA_HELPER=y CONFIG_DRM_GEM_SHMEM_HELPER=y CONFIG_DRM_SCHED=y @@ -4611,30 +3625,23 @@ CONFIG_DRM_SCHED=y # CONFIG_DRM_KOMEDA is not set # end of ARM devices -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_AMDGPU is not set -# CONFIG_DRM_NOUVEAU is not set # CONFIG_DRM_VGEM is not set # CONFIG_DRM_VKMS is not set CONFIG_DRM_ROCKCHIP=y CONFIG_ROCKCHIP_VOP=y # CONFIG_ROCKCHIP_VOP2 is not set -CONFIG_ROCKCHIP_ANALOGIX_DP=y +# CONFIG_ROCKCHIP_ANALOGIX_DP is not set CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y -CONFIG_ROCKCHIP_INNO_HDMI=y -CONFIG_ROCKCHIP_LVDS=y +# CONFIG_ROCKCHIP_INNO_HDMI is not set +# CONFIG_ROCKCHIP_LVDS is not set CONFIG_ROCKCHIP_RGB=y -CONFIG_ROCKCHIP_RK3066_HDMI=y -# CONFIG_DRM_VMWGFX is not set -CONFIG_DRM_UDL=y -CONFIG_DRM_AST=m -# CONFIG_DRM_MGAG200 is not set +# CONFIG_ROCKCHIP_RK3066_HDMI is not set +# CONFIG_DRM_UDL is not set # CONFIG_DRM_RCAR_DW_HDMI is not set # CONFIG_DRM_RCAR_USE_LVDS is not set # CONFIG_DRM_RCAR_USE_MIPI_DSI is not set -# CONFIG_DRM_QXL is not set CONFIG_DRM_PANEL=y # @@ -4754,7 +3761,6 @@ CONFIG_DRM_SIMPLE_BRIDGE=y # CONFIG_DRM_TI_TPD12S015 is not set # CONFIG_DRM_ANALOGIX_ANX6345 is not set # CONFIG_DRM_ANALOGIX_ANX78XX is not set -CONFIG_DRM_ANALOGIX_DP=y # CONFIG_DRM_ANALOGIX_ANX7625 is not set # CONFIG_DRM_I2C_ADV7511 is not set # CONFIG_DRM_CDNS_MHDP8546 is not set @@ -4767,12 +3773,9 @@ CONFIG_DRM_DW_MIPI_DSI=y # end of Display Interface Bridges # CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_HISI_KIRIN is not set # CONFIG_DRM_LOGICVC is not set # CONFIG_DRM_ARCPGU is not set -# CONFIG_DRM_BOCHS is not set -# CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_GM12U320 is not set # CONFIG_DRM_PANEL_MIPI_DBI is not set # CONFIG_DRM_SIMPLEDRM is not set @@ -4817,43 +3820,17 @@ CONFIG_FB_MODE_HELPERS=y # # Frame buffer hardware drivers # -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set # CONFIG_FB_ARMCLCD is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set # CONFIG_FB_UVESA is not set # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_I740 is not set -# CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_CARMINE is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SSD1307 is not set -# CONFIG_FB_SM712 is not set # end of Frame buffer Devices # @@ -4903,7 +3880,6 @@ CONFIG_SND_PCM_ELD=y CONFIG_SND_PCM_IEC958=y CONFIG_SND_DMAENGINE_PCM=y CONFIG_SND_SEQ_DEVICE=y -CONFIG_SND_RAWMIDI=y CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y # CONFIG_SND_OSSEMUL is not set @@ -4921,10 +3897,7 @@ CONFIG_SND_CTL_FAST_LOOKUP=y CONFIG_SND_SEQUENCER=y CONFIG_SND_SEQ_DUMMY=y CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_SEQ_MIDI_EVENT=y -CONFIG_SND_SEQ_MIDI=y # CONFIG_SND_DRIVERS is not set -# CONFIG_SND_PCI is not set # # HD-Audio @@ -4934,9 +3907,6 @@ CONFIG_SND_SEQ_MIDI=y CONFIG_SND_HDA_PREALLOC_SIZE=64 # CONFIG_SND_SPI is not set # CONFIG_SND_USB is not set -CONFIG_SND_PCMCIA=y -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set CONFIG_SND_SOC=y CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # CONFIG_SND_SOC_ADI is not set @@ -4974,8 +3944,8 @@ CONFIG_SND_SOC_ROCKCHIP_I2S=y CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y CONFIG_SND_SOC_ROCKCHIP_PDM=y CONFIG_SND_SOC_ROCKCHIP_SPDIF=y -CONFIG_SND_SOC_ROCKCHIP_MAX98090=y -CONFIG_SND_SOC_ROCKCHIP_RT5645=y +# CONFIG_SND_SOC_ROCKCHIP_MAX98090 is not set +# CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_RK3288_HDMI_ANALOG is not set # CONFIG_SND_SOC_RK3399_GRU_SOUND is not set # CONFIG_SND_SOC_SOF_TOPLEVEL is not set @@ -5056,7 +4026,6 @@ CONFIG_SND_SOC_ES8316=y # CONFIG_SND_SOC_ICS43432 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98088 is not set -CONFIG_SND_SOC_MAX98090=y # CONFIG_SND_SOC_MAX98357A is not set # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9867 is not set @@ -5081,12 +4050,10 @@ CONFIG_SND_SOC_MAX98090=y # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set -CONFIG_SND_SOC_RK817=y -CONFIG_SND_SOC_RL6231=y +# CONFIG_SND_SOC_RK817 is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5640 is not set -CONFIG_SND_SOC_RT5645=y # CONFIG_SND_SOC_RT5659 is not set # CONFIG_SND_SOC_RT9120 is not set # CONFIG_SND_SOC_SGTL5000 is not set @@ -5124,7 +4091,7 @@ CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set # CONFIG_SND_SOC_TLV320ADCX140 is not set -CONFIG_SND_SOC_TS3A227E=y +# CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_TSCS42XX is not set # CONFIG_SND_SOC_TSCS454 is not set # CONFIG_SND_SOC_UDA1334 is not set @@ -5190,130 +4157,90 @@ CONFIG_HID_GENERIC=y # # Special HID drivers # -CONFIG_HID_A4TECH=y -# CONFIG_HID_ACCUTOUCH is not set -CONFIG_HID_ACRUX=y -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=y -CONFIG_HID_APPLEIR=y -# CONFIG_HID_ASUS is not set -CONFIG_HID_AUREAL=y -CONFIG_HID_BELKIN=y -CONFIG_HID_BETOP_FF=y -# CONFIG_HID_BIGBEN_FF is not set -CONFIG_HID_CHERRY=y -CONFIG_HID_CHICONY=y -CONFIG_HID_CORSAIR=y +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CHERRY is not set # CONFIG_HID_COUGAR is not set # CONFIG_HID_MACALLY is not set -CONFIG_HID_PRODIKEYS=y # CONFIG_HID_CMEDIA is not set -CONFIG_HID_CP2112=y -# CONFIG_HID_CREATIVE_SB0540 is not set -CONFIG_HID_CYPRESS=y -CONFIG_HID_DRAGONRISE=y -CONFIG_DRAGONRISE_FF=y -CONFIG_HID_EMS_FF=y -# CONFIG_HID_ELAN is not set -CONFIG_HID_ELECOM=y -CONFIG_HID_ELO=y -CONFIG_HID_EZKEY=y -# CONFIG_HID_FT260 is not set -CONFIG_HID_GEMBIRD=y -CONFIG_HID_GFRM=y +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set # CONFIG_HID_GLORIOUS is not set -CONFIG_HID_HOLTEK=y -CONFIG_HOLTEK_FF=y # CONFIG_HID_VIVALDI is not set -CONFIG_HID_GT683R=y -CONFIG_HID_KEYTOUCH=y -CONFIG_HID_KYE=y -CONFIG_HID_UCLOGIC=y -CONFIG_HID_WALTOP=y +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_WALTOP is not set # CONFIG_HID_VIEWSONIC is not set # CONFIG_HID_VRC2 is not set # CONFIG_HID_XIAOMI is not set -CONFIG_HID_GYRATION=y -CONFIG_HID_ICADE=y +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set # CONFIG_HID_ITE is not set # CONFIG_HID_JABRA is not set -CONFIG_HID_TWINHAN=y -CONFIG_HID_KENSINGTON=y -CONFIG_HID_LCPOWER=y -CONFIG_HID_LED=y -CONFIG_HID_LENOVO=y -# CONFIG_HID_LETSKETCH is not set -CONFIG_HID_LOGITECH=y -CONFIG_HID_LOGITECH_DJ=y -CONFIG_HID_LOGITECH_HIDPP=y -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_LOGIG940_FF=y -CONFIG_LOGIWHEELS_FF=y -CONFIG_HID_MAGICMOUSE=y +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LED is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MALTRON is not set # CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MEGAWORLD_FF is not set # CONFIG_HID_REDRAGON is not set -CONFIG_HID_MICROSOFT=y -CONFIG_HID_MONTEREY=y -CONFIG_HID_MULTITOUCH=y +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set # CONFIG_HID_NINTENDO is not set # CONFIG_HID_NTI is not set -CONFIG_HID_NTRIG=y -CONFIG_HID_ORTEK=y -CONFIG_HID_PANTHERLORD=y -CONFIG_PANTHERLORD_FF=y -CONFIG_HID_PENMOUNT=y -CONFIG_HID_PETALYNX=y +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set # CONFIG_HID_PICOLCD is not set -CONFIG_HID_PLANTRONICS=y +# CONFIG_HID_PLANTRONICS is not set # CONFIG_HID_PXRC is not set # CONFIG_HID_RAZER is not set -CONFIG_HID_PRIMAX=y -# CONFIG_HID_RETRODE is not set -CONFIG_HID_ROCCAT=y -CONFIG_HID_SAITEK=y -CONFIG_HID_SAMSUNG=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_SAITEK is not set # CONFIG_HID_SEMITEK is not set -# CONFIG_HID_SIGMAMICRO is not set -CONFIG_HID_SONY=y -# CONFIG_SONY_FF is not set -CONFIG_HID_SPEEDLINK=y +# CONFIG_HID_SPEEDLINK is not set # CONFIG_HID_STEAM is not set -CONFIG_HID_STEELSERIES=y -CONFIG_HID_SUNPLUS=y -CONFIG_HID_RMI=y -CONFIG_HID_GREENASIA=y -CONFIG_GREENASIA_FF=y -CONFIG_HID_SMARTJOYPLUS=y -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_HID_TIVO=y -CONFIG_HID_TOPSEED=y +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set # CONFIG_HID_TOPRE is not set -CONFIG_HID_THINGM=y -CONFIG_HID_THRUSTMASTER=y -CONFIG_THRUSTMASTER_FF=y +# CONFIG_HID_THINGM is not set # CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_U2FZERO is not set -CONFIG_HID_WACOM=y -CONFIG_HID_WIIMOTE=y -CONFIG_HID_XINMO=y -CONFIG_HID_ZEROPLUS=y -CONFIG_ZEROPLUS_FF=y -CONFIG_HID_ZYDACRON=y -CONFIG_HID_SENSOR_HUB=y -CONFIG_HID_SENSOR_CUSTOM_SENSOR=y -CONFIG_HID_ALPS=y -# CONFIG_HID_MCP2221 is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set # end of Special HID drivers # # USB HID support # -CONFIG_USB_HID=y +# CONFIG_USB_HID is not set # CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# end of USB HID Boot Protocol drivers # end of USB HID support # @@ -5335,7 +4262,6 @@ CONFIG_USB_COMMON=y # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y -CONFIG_USB_PCI=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # @@ -5358,13 +4284,11 @@ CONFIG_USB_MON=y # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set -CONFIG_USB_XHCI_PCI=y # CONFIG_USB_XHCI_PCI_RENESAS is not set CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_OXU210HP_HCD is not set @@ -5372,10 +4296,8 @@ CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_HCD_PCI is not set # CONFIG_USB_OHCI_HCD_SSB is not set CONFIG_USB_OHCI_HCD_PLATFORM=y -# CONFIG_USB_UHCI_HCD is not set # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_HCD_BCMA is not set @@ -5431,7 +4353,6 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # # Platform Glue Driver Support # -CONFIG_USB_DWC3_HAPS=y CONFIG_USB_DWC3_OF_SIMPLE=y CONFIG_USB_DWC2=y # CONFIG_USB_DWC2_HOST is not set @@ -5441,7 +4362,6 @@ CONFIG_USB_DWC2=y # # CONFIG_USB_DWC2_PERIPHERAL is not set CONFIG_USB_DWC2_DUAL_ROLE=y -# CONFIG_USB_DWC2_PCI is not set # CONFIG_USB_DWC2_DEBUG is not set # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set # CONFIG_USB_CHIPIDEA is not set @@ -5460,10 +4380,10 @@ CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_CH341=y # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -CONFIG_USB_SERIAL_CP210X=y +# CONFIG_USB_SERIAL_CP210X is not set # CONFIG_USB_SERIAL_CYPRESS_M8 is not set # CONFIG_USB_SERIAL_EMPEG is not set -CONFIG_USB_SERIAL_FTDI_SIO=y +# CONFIG_USB_SERIAL_FTDI_SIO is not set # CONFIG_USB_SERIAL_VISOR is not set # CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set @@ -5475,7 +4395,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y # CONFIG_USB_SERIAL_IPW is not set # CONFIG_USB_SERIAL_IUU is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -CONFIG_USB_SERIAL_KEYSPAN=y +# CONFIG_USB_SERIAL_KEYSPAN is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_MCT_U232 is not set @@ -5484,13 +4404,13 @@ CONFIG_USB_SERIAL_KEYSPAN=y # CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_MXUPORT is not set # CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=y -CONFIG_USB_SERIAL_OTI6858=y +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set # CONFIG_USB_SERIAL_QCAUX is not set -CONFIG_USB_SERIAL_QUALCOMM=y +# CONFIG_USB_SERIAL_QUALCOMM is not set # CONFIG_USB_SERIAL_SPCP8X5 is not set # CONFIG_USB_SERIAL_SAFE is not set -CONFIG_USB_SERIAL_SIERRAWIRELESS=y +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set # CONFIG_USB_SERIAL_SYMBOL is not set # CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set @@ -5567,11 +4487,7 @@ CONFIG_U_SERIAL_CONSOLE=y # CONFIG_USB_SNP_UDC_PLAT is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set -# CONFIG_USB_AMD5536UDC is not set # CONFIG_USB_NET2272 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_USB_GOKU is not set -# CONFIG_USB_EG20T is not set # CONFIG_USB_GADGET_XILINX is not set # CONFIG_USB_MAX3420_UDC is not set # CONFIG_USB_DUMMY_HCD is not set @@ -5668,7 +4584,6 @@ CONFIG_MMC_TEST=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_ARMMMCI is not set CONFIG_MMC_SDHCI=y -# CONFIG_MMC_SDHCI_PCI is not set CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set @@ -5676,25 +4591,19 @@ CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_CADENCE is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set # CONFIG_MMC_SDHCI_MILBEAUT is not set -# CONFIG_MMC_TIFM_SD is not set # CONFIG_MMC_SPI is not set -# CONFIG_MMC_SDRICOH_CS is not set -# CONFIG_MMC_CB710 is not set -# CONFIG_MMC_VIA_SDMMC is not set CONFIG_MMC_DW=y CONFIG_MMC_DW_PLTFM=y # CONFIG_MMC_DW_BLUEFIELD is not set # CONFIG_MMC_DW_EXYNOS is not set # CONFIG_MMC_DW_HI3798CV200 is not set # CONFIG_MMC_DW_K3 is not set -# CONFIG_MMC_DW_PCI is not set CONFIG_MMC_DW_ROCKCHIP=y # CONFIG_MMC_VUB300 is not set # CONFIG_MMC_USHC is not set # CONFIG_MMC_USDHI6ROL0 is not set # CONFIG_MMC_CQHCI is not set # CONFIG_MMC_HSQ is not set -# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set # CONFIG_MMC_SDHCI_XENON is not set # CONFIG_MMC_SDHCI_OMAP is not set @@ -5738,7 +4647,7 @@ CONFIG_LEDS_PWM=y # CONFIG_LEDS_TLC591XX is not set # CONFIG_LEDS_LM355x is not set # CONFIG_LEDS_IS31FL319X is not set -CONFIG_LEDS_IS31FL32XX=y +# CONFIG_LEDS_IS31FL32XX is not set # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) @@ -5764,7 +4673,6 @@ CONFIG_LEDS_SYSCON=y CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_ONESHOT=y -CONFIG_LEDS_TRIGGER_DISK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y CONFIG_LEDS_TRIGGER_CPU=y @@ -5815,7 +4723,7 @@ CONFIG_RTC_INTF_SYSFS=y # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set -CONFIG_RTC_DRV_HYM8563=y +# CONFIG_RTC_DRV_HYM8563 is not set # CONFIG_RTC_DRV_MAX6900 is not set # CONFIG_RTC_DRV_NCT3018Y is not set CONFIG_RTC_DRV_RK808=y @@ -5831,7 +4739,6 @@ CONFIG_RTC_DRV_RK808=y # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set # CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_TPS6586X is not set # CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_FM3130 is not set # CONFIG_RTC_DRV_RX8010 is not set @@ -5901,7 +4808,6 @@ CONFIG_RTC_I2C_AND_SPI=y # # HID Sensor RTC drivers # -# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set # CONFIG_RTC_DRV_GOLDFISH is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -5913,23 +4819,18 @@ CONFIG_DMA_ENGINE=y CONFIG_DMA_OF=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_AMBA_PL08X is not set -# CONFIG_BCM_SBA_RAID is not set # CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_QDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_MV_XOR_V2 is not set CONFIG_PL330_DMA=y -# CONFIG_PLX_DMA is not set # CONFIG_XILINX_DMA is not set # CONFIG_XILINX_ZYNQMP_DMA is not set # CONFIG_XILINX_ZYNQMP_DPDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_DW_DMAC is not set -# CONFIG_DW_DMAC_PCI is not set -# CONFIG_DW_EDMA is not set -# CONFIG_DW_EDMA_PCIE is not set # CONFIG_SF_PDMA is not set # @@ -5968,13 +4869,10 @@ CONFIG_SYNC_FILE=y # CONFIG_COMEDI is not set CONFIG_STAGING=y # CONFIG_PRISM2_USB is not set -# CONFIG_RTL8192U is not set # CONFIG_RTLLIB is not set CONFIG_RTL8723BS=m CONFIG_R8712U=m CONFIG_R8188EU=m -# CONFIG_RTS5208 is not set -# CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # @@ -6026,7 +4924,6 @@ CONFIG_R8188EU=m # end of Resolver to digital converters # end of IIO staging drivers -# CONFIG_FB_SM750 is not set # CONFIG_STAGING_MEDIA is not set # CONFIG_STAGING_BOARD is not set # CONFIG_LTE_GDM724X is not set @@ -6035,8 +4932,6 @@ CONFIG_R8188EU=m # CONFIG_PI433 is not set # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_FIELDBUS_DEV is not set -# CONFIG_QLGE is not set -# CONFIG_VME_BUS is not set # CONFIG_GOLDFISH is not set CONFIG_CHROME_PLATFORMS=y # CONFIG_CROS_EC is not set @@ -6067,7 +4962,7 @@ CONFIG_COMMON_CLK_RK808=y # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_AXI_CLKGEN is not set -CONFIG_COMMON_CLK_XGENE=y +# CONFIG_COMMON_CLK_XGENE is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_RS9_PCIE is not set # CONFIG_COMMON_CLK_VC5 is not set @@ -6278,7 +5173,6 @@ CONFIG_IIO_TRIGGERED_EVENT=y # CONFIG_DMARD10 is not set # CONFIG_FXLS8962AF_I2C is not set # CONFIG_FXLS8962AF_SPI is not set -# CONFIG_HID_SENSOR_ACCEL_3D is not set # CONFIG_IIO_ST_ACCEL_3AXIS is not set # CONFIG_KXSD9 is not set # CONFIG_KXCJK1013 is not set @@ -6413,7 +5307,6 @@ CONFIG_ROCKCHIP_SARADC=y # # Hid Sensor IIO Common # -# CONFIG_HID_SENSOR_IIO_COMMON is not set # end of Hid Sensor IIO Common # @@ -6515,7 +5408,6 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_ADXRS450 is not set # CONFIG_BMG160 is not set # CONFIG_FXAS21002C is not set -# CONFIG_HID_SENSOR_GYRO_3D is not set # CONFIG_MPU3050_I2C is not set # CONFIG_IIO_ST_GYRO_3AXIS is not set # CONFIG_ITG3200 is not set @@ -6542,7 +5434,6 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_DHT11 is not set # CONFIG_HDC100X is not set # CONFIG_HDC2010 is not set -# CONFIG_HID_SENSOR_HUMIDITY is not set # CONFIG_HTS221 is not set # CONFIG_HTU21 is not set # CONFIG_SI7005 is not set @@ -6590,11 +5481,9 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_CM36651 is not set # CONFIG_GP2AP002 is not set # CONFIG_GP2AP020A00F is not set -CONFIG_SENSORS_ISL29018=y +# CONFIG_SENSORS_ISL29018 is not set # CONFIG_SENSORS_ISL29028 is not set # CONFIG_ISL29125 is not set -# CONFIG_HID_SENSOR_ALS is not set -# CONFIG_HID_SENSOR_PROX is not set # CONFIG_JSA1212 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR501 is not set @@ -6611,8 +5500,8 @@ CONFIG_SENSORS_ISL29018=y # CONFIG_ST_UVIS25 is not set # CONFIG_TCS3414 is not set # CONFIG_TCS3472 is not set -CONFIG_SENSORS_TSL2563=y -CONFIG_TSL2583=y +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL2583 is not set # CONFIG_TSL2591 is not set # CONFIG_TSL2772 is not set # CONFIG_TSL4531 is not set @@ -6634,7 +5523,6 @@ CONFIG_TSL2583=y # CONFIG_BMC150_MAGN_I2C is not set # CONFIG_BMC150_MAGN_SPI is not set # CONFIG_MAG3110 is not set -# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set # CONFIG_MMC35240 is not set # CONFIG_IIO_ST_MAGN_3AXIS is not set # CONFIG_SENSORS_HMC5843_I2C is not set @@ -6653,8 +5541,6 @@ CONFIG_IIO_MUX=y # # Inclinometer sensors # -# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set -# CONFIG_HID_SENSOR_DEVICE_ROTATION is not set # end of Inclinometer sensors # @@ -6669,7 +5555,6 @@ CONFIG_IIO_SYSFS_TRIGGER=y # # Linear and angular position sensors # -# CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE is not set # end of Linear and angular position sensors # @@ -6701,7 +5586,6 @@ CONFIG_IIO_SYSFS_TRIGGER=y # CONFIG_BMP280 is not set # CONFIG_DLHL60D is not set # CONFIG_DPS310 is not set -# CONFIG_HID_SENSOR_PRESS is not set # CONFIG_HP03 is not set # CONFIG_ICP10100 is not set # CONFIG_MPL115_I2C is not set @@ -6751,7 +5635,6 @@ CONFIG_IIO_SYSFS_TRIGGER=y # # CONFIG_LTC2983 is not set # CONFIG_MAXIM_THERMOCOUPLE is not set -# CONFIG_HID_SENSOR_TEMP is not set # CONFIG_MLX90614 is not set # CONFIG_MLX90632 is not set # CONFIG_TMP006 is not set @@ -6763,13 +5646,11 @@ CONFIG_IIO_SYSFS_TRIGGER=y # CONFIG_MAX31865 is not set # end of Temperature sensors -# CONFIG_NTB is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y # CONFIG_PWM_DEBUG is not set # CONFIG_PWM_ATMEL_TCB is not set # CONFIG_PWM_CLK is not set -# CONFIG_PWM_DWC is not set # CONFIG_PWM_FSL_FTM is not set # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_ROCKCHIP=y @@ -6781,10 +5662,8 @@ CONFIG_PWM_ROCKCHIP=y CONFIG_IRQCHIP=y CONFIG_ARM_GIC=y CONFIG_ARM_GIC_MAX_NR=1 -CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y -CONFIG_ARM_GIC_V3_ITS_PCI=y # CONFIG_AL_FIC is not set # CONFIG_XILINX_INTC is not set CONFIG_PARTITION_PERCPU=y @@ -6850,12 +5729,9 @@ CONFIG_PHY_ROCKCHIP_USB=y CONFIG_ARM_PMU=y # CONFIG_ARM_DSU_PMU is not set # CONFIG_ARM_SPE_PMU is not set -# CONFIG_HISI_PCIE_PMU is not set -# CONFIG_HNS3_PMU is not set # end of Performance monitor support CONFIG_RAS=y -# CONFIG_USB4 is not set # # Android @@ -6876,7 +5752,6 @@ CONFIG_NVMEM_SYSFS=y # # CONFIG_STM is not set # CONFIG_INTEL_TH is not set -# CONFIG_HISI_PTT is not set # end of HW tracing support # CONFIG_FPGA is not set @@ -7176,12 +6051,6 @@ CONFIG_RANDSTRUCT_NONE=y # end of Kernel hardening options # end of Security options -CONFIG_XOR_BLOCKS=y -CONFIG_ASYNC_CORE=y -CONFIG_ASYNC_MEMCPY=y -CONFIG_ASYNC_XOR=y -CONFIG_ASYNC_PQ=y -CONFIG_ASYNC_RAID6_RECOV=y CONFIG_CRYPTO=y # @@ -7405,8 +6274,6 @@ CONFIG_BINARY_PRINTF=y # # Library routines # -CONFIG_RAID6_PQ=y -CONFIG_RAID6_PQ_BENCHMARK=y CONFIG_LINEAR_RANGES=y # CONFIG_PACKING is not set CONFIG_BITREVERSE=y @@ -7496,7 +6363,6 @@ CONFIG_TEXTSEARCH_FSM=m CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_DMA_OPS=y CONFIG_NEED_SG_DMA_LENGTH=y @@ -7519,8 +6385,6 @@ CONFIG_SGL_ALLOC=y # CONFIG_FORCE_NR_CPUS is not set CONFIG_CPU_RMAP=y CONFIG_DQL=y -CONFIG_GLOB=y -# CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y CONFIG_LRU_CACHE=m CONFIG_CLZ_TAB=y From 5a654316df14800afc27556e4d30f284de7a5d58 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sun, 5 Nov 2023 20:45:12 +0100 Subject: [PATCH 068/112] Mednafen: Fix hotkey buttons shortcuts Will be accompanied by documentation --- .../RK3326/SUPPORTED_EMULATORS_AND_CORES.md | 92 +++++++++---------- .../mednafen/config/common/mednafen.cfg | 12 +-- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md index fed090a53..dea770681 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
**mednafen:** lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| -|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| -|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| +|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| +|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,50 +48,50 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| -|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| -|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| +|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |NEC|PC-8800 (pc-8800)|1981|`pc88`|.d88 .m3u|**retroarch:** quasi88 (default)
| |NEC|PC-9800 (pc-9800)|1983|`pc98`|.d98 .zip .fdi .fdd .2hd .tfd .d88d .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn|**retroarch:** np2kai (default)
| -|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)
| -|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx
**retroarch:** beetle_pce
| -|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| -|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| +|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)
**mednafen:** pcfx
| +|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx
**retroarch:** beetle_pce
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)
| -|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| -|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
| +|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| +|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**mednafen:** nes
| |Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw
| -|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**retroarch:** gpsp
**nanoboyadvance:** nanoboyadvance-sa
| -|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
| -|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| -|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**retroarch:** gpsp
**nanoboyadvance:** nanoboyadvance-sa
**mednafen:** gba
| +|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**mednafen:** gba
| +|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| +|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**retroarch:** desmume
| -|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| -|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| -|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| +|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes_faust
**mednafen:** snes_faust
| +|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
| |Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)
| |Philips|VideoPac (videopac)|1978|`videopac`|.bin .zip .7z|**retroarch:** o2em (default)
| |Sammy|Atomiswave (atomiswave)|2003|`atomiswave`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021
**retroarch:** flycast32 (default)
**retroarch:** flycast
**flycast:** flycast-sa
| |Sega|Dreamcast (dreamcast)|1998|`dreamcast`|.cdi .gdi .chd .m3u|**retroarch:** flycast2021
**retroarch:** flycast32 (default)
**retroarch:** flycast
**flycast:** flycast-sa
| -|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| -|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| +|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
| +|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
| |Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| +|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| +|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** sms
| |Sega|Mega CD (megacd)|1991|`megacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
| -|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| +|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| +|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| |Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021
**retroarch:** flycast32 (default)
**retroarch:** flycast
**flycast:** flycast-sa
| |Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**yabasanshiro:** yabasanshiro-sa (default)
**retroarch:** yabasanshiro
**retroarch:** beetle_saturn
| |Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)
| @@ -105,9 +105,9 @@ This document describes all available systems emulators and cores available for |Smith Engineering|Vectrex (vectrex)|1982|`vectrex`|.bin .gam .vec .zip .7z|**retroarch:** vecx (default)
| |SNK|Neo Geo (neogeo)|1990|`neogeo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
| |SNK|Neo Geo CD (neocd)|1994|`neocd`|.cue .iso .chd|**retroarch:** neocd (default)
**retroarch:** fbneo
| -|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
| -|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
| -|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)
**retroarch:** pcsx_rearmed
**retroarch:** duckstation
**retroarch:** swanstation
| +|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
| +|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
| +|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)
**retroarch:** pcsx_rearmed
**mednafen:** psx
**retroarch:** duckstation
**retroarch:** swanstation
| |Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)
| |Sony|PSP Minis (pspminis)|2004|`pspminis`|.iso .cso .pbp|**ppsspp:** ppsspp-sa (default)
**retroarch:** ppsspp
| |Sun Microsystems|J2ME (j2me)|2002|`j2me`|.jar|**retroarch:** freej2me (default)
| diff --git a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg index 228a62ab5..eac60471c 100644 --- a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg @@ -204,7 +204,7 @@ command.exit joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BT command.fast_forward joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BTN_TR2@ ;Configure buttons on virtual port 1 -command.input_config1 keyboard 0x0 30+alt+shift +command.input_config1 keyboard 0x0 30+alt+shift || joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_TL2@ ;Configure buttons on virtual port 10 command.input_config10 keyboard 0x0 39+alt+shift @@ -255,7 +255,7 @@ command.input_configc_am keyboard 0x0 59+shift command.insert_coin keyboard 0x0 65 ;Insert/Eject disk/disc -command.insert_eject_disk joystick @GUID1@ @DEVICE_BTN_TR@ +command.insert_eject_disk joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_TR@ ;Load movie command.load_movie keyboard 0x0 64+shift @@ -318,7 +318,7 @@ command.save_movie keyboard 0x0 62+shift command.save_state joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BTN_TR@ ;Select disk/disc -command.select_disk joystick @GUID1@ @DEVICE_BTN_TL@ +command.select_disk joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_TL@ ;Select drive command.select_drive keyboard 0x0 63+shift @@ -327,13 +327,13 @@ command.select_drive keyboard 0x0 63+shift command.slow_forward keyboard 0x0 49 ;Rewind -command.state_rewind joystick @GUID1@ @DEVICE_BTN_THUMBL@ && joystick @GUID1@ @DEVICE_BTN_TL2@ +command.state_rewind joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BTN_TL2@ ;Decrease selected save state slot by 1 -command.state_slot_dec joystick @GUID1@ @DEVICE_BTN_THUMBL@ && joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ +command.state_slot_dec joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ;Increase selected save state slot by 1 -command.state_slot_inc joystick @GUID1@ @DEVICE_BTN_THUMBL@ && joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ +command.state_slot_inc joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ;Take scaled(and filtered) screen snapshot command.take_scaled_snapshot keyboard 0x0 66+shift From 7c51464ea4bd3213a2759368a8ac05f8f1447406 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sat, 4 Nov 2023 19:54:44 -0400 Subject: [PATCH 069/112] Add Wiki Path Added wiki path to each system entry in prep for automating documentation links to the wiki Updated some theme values to align with naming conventions of other distros --- config/emulators/3do.conf | 1 + config/emulators/3ds.conf | 3 ++- config/emulators/amiga.conf | 1 + config/emulators/amigacd32.conf | 1 + config/emulators/amstradcpc.conf | 3 ++- config/emulators/arcade.conf | 1 + config/emulators/arduboy.conf | 1 + config/emulators/atari2600.conf | 3 ++- config/emulators/atari5200.conf | 3 ++- config/emulators/atari7800.conf | 3 ++- config/emulators/atari800.conf | 1 + config/emulators/atarijaguar.conf | 3 ++- config/emulators/atarilynx.conf | 3 ++- config/emulators/atarist.conf | 1 + config/emulators/atomiswave.conf | 1 + config/emulators/c128.conf | 3 ++- config/emulators/c16.conf | 3 ++- config/emulators/c64.conf | 3 ++- config/emulators/channelf.conf | 1 + config/emulators/colecovision.conf | 1 + config/emulators/cps1.conf | 3 ++- config/emulators/cps2.conf | 3 ++- config/emulators/cps3.conf | 3 ++- config/emulators/daphne.conf | 1 + config/emulators/doom.conf | 1 + config/emulators/dreamcast.conf | 1 + config/emulators/easyrpg.conf | 1 + config/emulators/famicom.conf | 1 + config/emulators/fbn.conf | 4 +++- config/emulators/fds.conf | 1 + config/emulators/gameandwatch.conf | 1 + config/emulators/gamecube.conf | 1 + config/emulators/gamegear.conf | 1 + config/emulators/gb.conf | 1 + config/emulators/gba.conf | 1 + config/emulators/gbah.conf | 1 + config/emulators/gbc.conf | 1 + config/emulators/gbch.conf | 1 + config/emulators/gbh.conf | 1 + config/emulators/genesis.conf | 1 + config/emulators/genh.conf | 1 + config/emulators/ggh.conf | 1 + config/emulators/idtech.conf | 1 + config/emulators/imageviewer.conf | 3 ++- config/emulators/intellivision.conf | 1 + config/emulators/j2me.conf | 1 + config/emulators/macintosh.conf | 1 + config/emulators/mame.conf | 3 ++- config/emulators/mastersystem.conf | 1 + config/emulators/megacd.conf | 1 + config/emulators/megadrive-japan.conf | 3 ++- config/emulators/megadrive.conf | 1 + config/emulators/megaduck.conf | 1 + config/emulators/moonlight.conf | 1 + config/emulators/mplayer.conf | 1 + config/emulators/msx.conf | 1 + config/emulators/msx2.conf | 1 + config/emulators/music.conf | 1 + config/emulators/n64.conf | 1 + config/emulators/naomi.conf | 1 + config/emulators/nds.conf | 1 + config/emulators/neocd.conf | 1 + config/emulators/neogeo.conf | 1 + config/emulators/nes.conf | 1 + config/emulators/nesh.conf | 1 + config/emulators/ngp.conf | 1 + config/emulators/ngpc.conf | 1 + config/emulators/odyssey2.conf | 1 + config/emulators/openbor.conf | 1 + config/emulators/pc-8800.conf | 1 + config/emulators/pc-9800.conf | 1 + config/emulators/pc.conf | 5 +++-- config/emulators/pcengine.conf | 1 + config/emulators/pcenginecd.conf | 3 ++- config/emulators/pcfx.conf | 1 + config/emulators/pet.conf | 1 + config/emulators/pico-8.conf | 1 + config/emulators/pokemini.conf | 1 + config/emulators/ports.conf | 1 + config/emulators/ps2.conf | 1 + config/emulators/ps3.conf | 1 + config/emulators/psp.conf | 1 + config/emulators/pspminis.conf | 1 + config/emulators/psvita.conf | 1 + config/emulators/psx.conf | 1 + config/emulators/satellaview.conf | 1 + config/emulators/saturn.conf | 1 + config/emulators/scummvm.conf | 1 + config/emulators/sega32x.conf | 1 + config/emulators/segacd.conf | 1 + config/emulators/sfc.conf | 1 + config/emulators/sg-1000.conf | 1 + config/emulators/snes.conf | 1 + config/emulators/snesh.conf | 1 + config/emulators/snesmsu1.conf | 1 + config/emulators/st-v.conf | 3 ++- config/emulators/sufami.conf | 1 + config/emulators/supergrafx.conf | 1 + config/emulators/supervision.conf | 1 + config/emulators/switch.conf | 1 + config/emulators/tg16.conf | 1 + config/emulators/tg16cd.conf | 3 ++- config/emulators/tic-80.conf | 1 + config/emulators/tools.conf | 1 + config/emulators/uzebox.conf | 1 + config/emulators/vectrex.conf | 1 + config/emulators/vic20.conf | 1 + config/emulators/videopac.conf | 1 + config/emulators/virtualboy.conf | 1 + config/emulators/wii.conf | 1 + config/emulators/wiiu.conf | 1 + config/emulators/wonderswan.conf | 1 + config/emulators/wonderswancolor.conf | 1 + config/emulators/x1.conf | 1 + config/emulators/x68000.conf | 1 + config/emulators/xbox.conf | 1 + config/emulators/zmachine.conf | 1 + config/emulators/zx81.conf | 1 + config/emulators/zxspectrum.conf | 1 + 119 files changed, 142 insertions(+), 22 deletions(-) diff --git a/config/emulators/3do.conf b/config/emulators/3do.conf index 875410505..64c0117d6 100644 --- a/config/emulators/3do.conf +++ b/config/emulators/3do.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .bin .chd .cue" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3do" SYSTEM_THEME="3do" +SYSTEM_WIKI_PATH="3do"" \ No newline at end of file diff --git a/config/emulators/3ds.conf b/config/emulators/3ds.conf index 8e4ac79e1..1c115e784 100644 --- a/config/emulators/3ds.conf +++ b/config/emulators/3ds.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/3ds" SYSTEM_EXTENSION=".3ds .3dsx .elf .axf .cci .cxi .app" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3ds" -SYSTEM_THEME="3ds" +SYSTEM_THEME="n3ds" +SYSTEM_WIKI_PATH="3ds"" diff --git a/config/emulators/amiga.conf b/config/emulators/amiga.conf index 66822e9d7..5c5fae336 100644 --- a/config/emulators/amiga.conf +++ b/config/emulators/amiga.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="amiga" SYSTEM_THEME="amiga" +SYSTEM_WIKI_PATH="amiga" diff --git a/config/emulators/amigacd32.conf b/config/emulators/amigacd32.conf index 416d125ac..01d299d65 100644 --- a/config/emulators/amigacd32.conf +++ b/config/emulators/amigacd32.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .cue .lha .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="amigacd32" SYSTEM_THEME="amigacd32" +SYSTEM_WIKI_PATH="amigacd32" diff --git a/config/emulators/amstradcpc.conf b/config/emulators/amstradcpc.conf index 07c164fc7..9f91f41d5 100644 --- a/config/emulators/amstradcpc.conf +++ b/config/emulators/amstradcpc.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="amstradcpc" -SYSTEM_FULLNAME="CPC" +SYSTEM_FULLNAME="Amstrad CPC" SYSTEM_MANUFACTURER="Amstrad" SYSTEM_RELEASE="1984" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="amstradcpc" SYSTEM_THEME="amstradcpc" +SYSTEM_WIKI_PATH="amstradcpc" diff --git a/config/emulators/arcade.conf b/config/emulators/arcade.conf index 9e92fdb32..4d9dd7550 100644 --- a/config/emulators/arcade.conf +++ b/config/emulators/arcade.conf @@ -1,6 +1,7 @@ SYSTEM_NAME="arcade" SYSTEM_FULLNAME="Arcade" SYSTEM_MANUFACTURER="Arcade" +SYSTEM_RELEASE="0000" SYSTEM_HARDWARE="arcade" SYSTEM_PATH="/storage/roms/arcade" SYSTEM_EXTENSION=".zip .7z" diff --git a/config/emulators/arduboy.conf b/config/emulators/arduboy.conf index c05348232..83f0b8874 100644 --- a/config/emulators/arduboy.conf +++ b/config/emulators/arduboy.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".hex" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arduboy" SYSTEM_THEME="arduboy" +SYSTEM_WIKI_PATH="arduboy" diff --git a/config/emulators/atari2600.conf b/config/emulators/atari2600.conf index 017bac307..2583145bd 100644 --- a/config/emulators/atari2600.conf +++ b/config/emulators/atari2600.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atari2600" -SYSTEM_FULLNAME="2600" +SYSTEM_FULLNAME="Atari 2600" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1977" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".a26 .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari2600" SYSTEM_THEME="atari2600" +SYSTEM_WIKI_PATH="atari2600" diff --git a/config/emulators/atari5200.conf b/config/emulators/atari5200.conf index 65d9ea5aa..45ec094e3 100644 --- a/config/emulators/atari5200.conf +++ b/config/emulators/atari5200.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atari5200" -SYSTEM_FULLNAME="5200" +SYSTEM_FULLNAME="Atari 5200" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1982" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari5200" SYSTEM_THEME="atari5200" +SYSTEM_WIKI_PATH="atari5200" diff --git a/config/emulators/atari7800.conf b/config/emulators/atari7800.conf index 17fe1edf3..5d735a7ef 100644 --- a/config/emulators/atari7800.conf +++ b/config/emulators/atari7800.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atari7800" -SYSTEM_FULLNAME="7800" +SYSTEM_FULLNAME="Atari 7800" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1986" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".a78 .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari7800" SYSTEM_THEME="atari7800" +SYSTEM_WIKI_PATH="atari7800" diff --git a/config/emulators/atari800.conf b/config/emulators/atari800.conf index 6838c6ca6..97af76f24 100644 --- a/config/emulators/atari800.conf +++ b/config/emulators/atari800.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atari800" SYSTEM_THEME="atari800" +SYSTEM_WIKI_PATH="atari800" diff --git a/config/emulators/atarijaguar.conf b/config/emulators/atarijaguar.conf index e78f712bf..91c1567ce 100644 --- a/config/emulators/atarijaguar.conf +++ b/config/emulators/atarijaguar.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atarijaguar" -SYSTEM_FULLNAME="Jaguar" +SYSTEM_FULLNAME="Atari Jaguar" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1993" SYSTEM_HARDWARE="console" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".j64 .jag .rom .abs .cof .bin .prg" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atarijaguar" SYSTEM_THEME="atarijaguar" +SYSTEM_WIKI_PATH="atarijaguar" diff --git a/config/emulators/atarilynx.conf b/config/emulators/atarilynx.conf index b4d149326..713636932 100644 --- a/config/emulators/atarilynx.conf +++ b/config/emulators/atarilynx.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="atarilynx" -SYSTEM_FULLNAME="Lynx" +SYSTEM_FULLNAME="Atari Lynx" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1989" SYSTEM_HARDWARE="portable" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".lnx .o .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atarilynx" SYSTEM_THEME="atarilynx" +SYSTEM_WIKI_PATH="atarilynx" diff --git a/config/emulators/atarist.conf b/config/emulators/atarist.conf index 1eab54895..2d004681a 100644 --- a/config/emulators/atarist.conf +++ b/config/emulators/atarist.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".st .msa .stx .dim .ipf .m3u .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atarist" SYSTEM_THEME="atarist" +SYSTEM_WIKI_PATH="atarist" diff --git a/config/emulators/atomiswave.conf b/config/emulators/atomiswave.conf index f8ae2cf28..4b72fb219 100644 --- a/config/emulators/atomiswave.conf +++ b/config/emulators/atomiswave.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".lst .bin .dat .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="atomiswave arcade" SYSTEM_THEME="atomiswave" +SYSTEM_WIKI_PATH="atomiswave" diff --git a/config/emulators/c128.conf b/config/emulators/c128.conf index 7c2997e89..110f42a22 100644 --- a/config/emulators/c128.conf +++ b/config/emulators/c128.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="c128" -SYSTEM_FULLNAME="C128" +SYSTEM_FULLNAME="Commodore 128" SYSTEM_MANUFACTURER="Commodore" SYSTEM_RELEASE="1985" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .c SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="c128" SYSTEM_THEME="c128" +SYSTEM_WIKI_PATH="c128" diff --git a/config/emulators/c16.conf b/config/emulators/c16.conf index 3535e0a0c..d6eabb72f 100644 --- a/config/emulators/c16.conf +++ b/config/emulators/c16.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="c16" -SYSTEM_FULLNAME="C16" +SYSTEM_FULLNAME="Commodore 16" SYSTEM_MANUFACTURER="Commodore" SYSTEM_RELEASE="1984" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .c SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="c16" SYSTEM_THEME="c16" +SYSTEM_WIKI_PATH="c16" diff --git a/config/emulators/c64.conf b/config/emulators/c64.conf index 14eb64a8e..6c56af47e 100644 --- a/config/emulators/c64.conf +++ b/config/emulators/c64.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="c64" -SYSTEM_FULLNAME="C64" +SYSTEM_FULLNAME="Commodore 64" SYSTEM_MANUFACTURER="Commodore" SYSTEM_RELEASE="1982" SYSTEM_HARDWARE="computer" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .c SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="c64" SYSTEM_THEME="c64" +SYSTEM_WIKI_PATH="c64" diff --git a/config/emulators/channelf.conf b/config/emulators/channelf.conf index 735b3c358..43716e42d 100644 --- a/config/emulators/channelf.conf +++ b/config/emulators/channelf.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .chf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="channelf" SYSTEM_THEME="channelf" +SYSTEM_WIKI_PATH="channelf" diff --git a/config/emulators/colecovision.conf b/config/emulators/colecovision.conf index d586a3eb6..4f227e39d 100644 --- a/config/emulators/colecovision.conf +++ b/config/emulators/colecovision.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .col .rom .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="colecovision" SYSTEM_THEME="colecovision" +SYSTEM_WIKI_PATH="colecovision" diff --git a/config/emulators/cps1.conf b/config/emulators/cps1.conf index 730a33a66..b7717f9f5 100644 --- a/config/emulators/cps1.conf +++ b/config/emulators/cps1.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps1" -SYSTEM_FULLNAME="PlaySystem 1" +SYSTEM_FULLNAME="CPS I" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1988" SYSTEM_HARDWARE="arcade" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="cps1" +SYSTEM_WIKI_PATH="cps1" diff --git a/config/emulators/cps2.conf b/config/emulators/cps2.conf index afe68052a..fe1cd44bb 100644 --- a/config/emulators/cps2.conf +++ b/config/emulators/cps2.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps2" -SYSTEM_FULLNAME="PlaySystem 2" +SYSTEM_FULLNAME="CPS II" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1993" SYSTEM_HARDWARE="arcade" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="cps2" +SYSTEM_WIKI_PATH="cps2" diff --git a/config/emulators/cps3.conf b/config/emulators/cps3.conf index 8330db0bb..d38377375 100644 --- a/config/emulators/cps3.conf +++ b/config/emulators/cps3.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps3" -SYSTEM_FULLNAME="PlaySystem 3" +SYSTEM_FULLNAME="CPS III" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1996" SYSTEM_HARDWARE="arcade" @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="cps3" +SYSTEM_WIKI_PATH="cps3" diff --git a/config/emulators/daphne.conf b/config/emulators/daphne.conf index c454f0a7b..09b9fb2c7 100644 --- a/config/emulators/daphne.conf +++ b/config/emulators/daphne.conf @@ -7,3 +7,4 @@ SYSTEM_EXTENSION=".daphne .singe" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="daphne arcade" SYSTEM_THEME="daphne" +SYSTEM_WIKI_PATH="daphne" diff --git a/config/emulators/doom.conf b/config/emulators/doom.conf index fa665ca82..3be397a48 100644 --- a/config/emulators/doom.conf +++ b/config/emulators/doom.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".doom" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="doom" SYSTEM_THEME="doom" +SYSTEM_WIKI_PATH="doom" diff --git a/config/emulators/dreamcast.conf b/config/emulators/dreamcast.conf index 6d0da75d8..4223c0cb9 100644 --- a/config/emulators/dreamcast.conf +++ b/config/emulators/dreamcast.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".cdi .gdi .chd .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="dreamcast" SYSTEM_THEME="dreamcast" +SYSTEM_WIKI_PATH="dreamcast" diff --git a/config/emulators/easyrpg.conf b/config/emulators/easyrpg.conf index 95d3281c2..cabebb406 100644 --- a/config/emulators/easyrpg.conf +++ b/config/emulators/easyrpg.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".zip .easyrpg .ldb" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="easyrpg" SYSTEM_THEME="easyrpg" +SYSTEM_WIKI_PATH="easyrpg" diff --git a/config/emulators/famicom.conf b/config/emulators/famicom.conf index 949d51d0b..05206b0d3 100644 --- a/config/emulators/famicom.conf +++ b/config/emulators/famicom.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nes .unif .unf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nes" SYSTEM_THEME="famicom" +SYSTEM_WIKI_PATH="nes" diff --git a/config/emulators/fbn.conf b/config/emulators/fbn.conf index 10da0b6ef..b724cc873 100644 --- a/config/emulators/fbn.conf +++ b/config/emulators/fbn.conf @@ -1,9 +1,11 @@ SYSTEM_NAME="fbn" SYSTEM_FULLNAME="Final Burn Neo" SYSTEM_MANUFACTURER="Arcade" +SYSTEM_RELEASE="2002" SYSTEM_HARDWARE="arcade" SYSTEM_PATH="/storage/roms/fbneo" SYSTEM_EXTENSION=".7z .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" -SYSTEM_THEME="fbn" +SYSTEM_THEME="fbneo" +SYSTEM_WIKI_PATH="fbn" diff --git a/config/emulators/fds.conf b/config/emulators/fds.conf index 89df348bd..ebba08cb6 100644 --- a/config/emulators/fds.conf +++ b/config/emulators/fds.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".fds .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="fds" SYSTEM_THEME="fds" +SYSTEM_WIKI_PATH="fds" diff --git a/config/emulators/gameandwatch.conf b/config/emulators/gameandwatch.conf index b6f337bfe..fbc5e1b54 100644 --- a/config/emulators/gameandwatch.conf +++ b/config/emulators/gameandwatch.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".mgw .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gameandwatch" SYSTEM_THEME="gameandwatch" +SYSTEM_WIKI_PATH="gameandwatch" diff --git a/config/emulators/gamecube.conf b/config/emulators/gamecube.conf index a8910bf8f..aff6ae280 100644 --- a/config/emulators/gamecube.conf +++ b/config/emulators/gamecube.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gcm .iso .gcz .ciso .wbfs .rvz .dol" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gc" SYSTEM_THEME="gc" +SYSTEM_WIKI_PATH="gamecube" diff --git a/config/emulators/gamegear.conf b/config/emulators/gamegear.conf index 1459f1d21..9284d6965 100644 --- a/config/emulators/gamegear.conf +++ b/config/emulators/gamegear.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gg .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gamegear" SYSTEM_THEME="gamegear" +SYSTEM_WIKI_PATH="gamegear" diff --git a/config/emulators/gb.conf b/config/emulators/gb.conf index 2261d913d..0fb64e7e3 100644 --- a/config/emulators/gb.conf +++ b/config/emulators/gb.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .gbc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gb" SYSTEM_THEME="gb" +SYSTEM_WIKI_PATH="gb" diff --git a/config/emulators/gba.conf b/config/emulators/gba.conf index 83d6612c4..534a1aeeb 100644 --- a/config/emulators/gba.conf +++ b/config/emulators/gba.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gba .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gba" SYSTEM_THEME="gba" +SYSTEM_WIKI_PATH="gba" diff --git a/config/emulators/gbah.conf b/config/emulators/gbah.conf index 3ee31a139..2ca2e0e06 100644 --- a/config/emulators/gbah.conf +++ b/config/emulators/gbah.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gba .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gba" SYSTEM_THEME="gbah" +SYSTEM_WIKI_PATH="gba" diff --git a/config/emulators/gbc.conf b/config/emulators/gbc.conf index 0c480881c..4e8f17082 100644 --- a/config/emulators/gbc.conf +++ b/config/emulators/gbc.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .gbc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gbc" SYSTEM_THEME="gbc" +SYSTEM_WIKI_PATH="gbc" diff --git a/config/emulators/gbch.conf b/config/emulators/gbch.conf index 0b09266ce..4ec0b307c 100644 --- a/config/emulators/gbch.conf +++ b/config/emulators/gbch.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .gbc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gbc" SYSTEM_THEME="gbch" +SYSTEM_WIKI_PATH="gbc" diff --git a/config/emulators/gbh.conf b/config/emulators/gbh.conf index 01cf64128..fbfee2c47 100644 --- a/config/emulators/gbh.conf +++ b/config/emulators/gbh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gb .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gb" SYSTEM_THEME="gbh" +SYSTEM_WIKI_PATH="gb" diff --git a/config/emulators/genesis.conf b/config/emulators/genesis.conf index bedb8f288..ef831bcbe 100644 --- a/config/emulators/genesis.conf +++ b/config/emulators/genesis.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="genesis" SYSTEM_THEME="genesis" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/genh.conf b/config/emulators/genh.conf index be76f7670..3748a7b0e 100644 --- a/config/emulators/genh.conf +++ b/config/emulators/genh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="genesis" SYSTEM_THEME="genh" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/ggh.conf b/config/emulators/ggh.conf index c7d85164e..f710de0ad 100644 --- a/config/emulators/ggh.conf +++ b/config/emulators/ggh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gg .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="gamegear" SYSTEM_THEME="ggh" +SYSTEM_WIKI_PATH="gamegear" diff --git a/config/emulators/idtech.conf b/config/emulators/idtech.conf index d156a352a..5c572e1f8 100644 --- a/config/emulators/idtech.conf +++ b/config/emulators/idtech.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="idtech" SYSTEM_THEME="idtech" +SYSTEM_WIKI_PATH="idtech" diff --git a/config/emulators/imageviewer.conf b/config/emulators/imageviewer.conf index 5c0dd9516..7befe2fee 100644 --- a/config/emulators/imageviewer.conf +++ b/config/emulators/imageviewer.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/screenshots" SYSTEM_EXTENSION=".jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi" SYSTEM_COMMAND="/usr/bin/true" SYSTEM_PLATFORM="imageviewer" -SYSTEM_THEME="imageviewer" +SYSTEM_THEME="screenshots" +SYSTEM_WIKI_PATH="screenshots" diff --git a/config/emulators/intellivision.conf b/config/emulators/intellivision.conf index 533b10a08..280e05151 100644 --- a/config/emulators/intellivision.conf +++ b/config/emulators/intellivision.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".int .bin .rom .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="intellivision" SYSTEM_THEME="intellivision" +SYSTEM_WIKI_PATH="intellivision" diff --git a/config/emulators/j2me.conf b/config/emulators/j2me.conf index d5bcb3096..b724df0d9 100644 --- a/config/emulators/j2me.conf +++ b/config/emulators/j2me.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".jar" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="j2me" SYSTEM_THEME="j2me" +SYSTEM_WIKI_PATH="j2me" diff --git a/config/emulators/macintosh.conf b/config/emulators/macintosh.conf index c21680f8f..0fdc0dc01 100644 --- a/config/emulators/macintosh.conf +++ b/config/emulators/macintosh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .img .hfv .cmd .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="macintosh" SYSTEM_THEME="macintosh" +SYSTEM_WIKI_PATH="macintosh" diff --git a/config/emulators/mame.conf b/config/emulators/mame.conf index 1eda9692f..d0bc8c6d7 100644 --- a/config/emulators/mame.conf +++ b/config/emulators/mame.conf @@ -1,10 +1,11 @@ SYSTEM_NAME="mame" SYSTEM_FULLNAME="MAME" SYSTEM_MANUFACTURER="Arcade" +SYSTEM_RELEASE="1997" SYSTEM_HARDWARE="arcade" -SYSTEM_RELEASE="1948" SYSTEM_PATH="/storage/roms/mame" SYSTEM_EXTENSION=".7z .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="arcade" SYSTEM_THEME="mame" +SYSTEM_WIKI_PATH="mame" diff --git a/config/emulators/mastersystem.conf b/config/emulators/mastersystem.conf index 105f8c9f2..7d8c76e8a 100644 --- a/config/emulators/mastersystem.conf +++ b/config/emulators/mastersystem.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .sms .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="mastersystem" SYSTEM_THEME="mastersystem" +SYSTEM_WIKI_PATH="mastersystem" diff --git a/config/emulators/megacd.conf b/config/emulators/megacd.conf index 0722b48fe..0b75f2a6a 100644 --- a/config/emulators/megacd.conf +++ b/config/emulators/megacd.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".chd .cue .iso .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="segacd" SYSTEM_THEME="megacd" +SYSTEM_WIKI_PATH="segacd" diff --git a/config/emulators/megadrive-japan.conf b/config/emulators/megadrive-japan.conf index 6e1926ba2..8a9e64b67 100644 --- a/config/emulators/megadrive-japan.conf +++ b/config/emulators/megadrive-japan.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/megadrive-japan" SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="megadrive" -SYSTEM_THEME="megadrive-japan" +SYSTEM_THEME="megadrivejp" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/megadrive.conf b/config/emulators/megadrive.conf index 20e623802..1eee05e91 100644 --- a/config/emulators/megadrive.conf +++ b/config/emulators/megadrive.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gen .md .sg .smd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="megadrive" SYSTEM_THEME="megadrive" +SYSTEM_WIKI_PATH="genesis" diff --git a/config/emulators/megaduck.conf b/config/emulators/megaduck.conf index e580538ac..bcdba1e7d 100644 --- a/config/emulators/megaduck.conf +++ b/config/emulators/megaduck.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="megaduck" SYSTEM_THEME="megaduck" +SYSTEM_WIKI_PATH="megaduck" diff --git a/config/emulators/moonlight.conf b/config/emulators/moonlight.conf index 07220d022..d1e8d3b2b 100644 --- a/config/emulators/moonlight.conf +++ b/config/emulators/moonlight.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/bin/sh %ROM%" SYSTEM_PLATFORM="moonlight" SYSTEM_THEME="moonlight" +SYSTEM_WIKI_PATH="moonlight" diff --git a/config/emulators/mplayer.conf b/config/emulators/mplayer.conf index 0dd0637fc..e38dfa339 100644 --- a/config/emulators/mplayer.conf +++ b/config/emulators/mplayer.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".mp4 .mkv .avi .mov .wmv .m3u .mpg .ytb .twi .sh .mp3 .aac .mk SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="mplayer" SYSTEM_THEME="mplayer" +SYSTEM_WIKI_PATH="mplayer" diff --git a/config/emulators/msx.conf b/config/emulators/msx.conf index 6af15d83d..7176bd9ef 100644 --- a/config/emulators/msx.conf +++ b/config/emulators/msx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .mx1 .mx2 .rom .zip .7z .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="msx" SYSTEM_THEME="msx" +SYSTEM_WIKI_PATH="msx" diff --git a/config/emulators/msx2.conf b/config/emulators/msx2.conf index bbf27b977..4f7166a34 100644 --- a/config/emulators/msx2.conf +++ b/config/emulators/msx2.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dsk .mx1 .mx2 .rom .zip .7z .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="msx" SYSTEM_THEME="msx2" +SYSTEM_WIKI_PATH="msx" diff --git a/config/emulators/music.conf b/config/emulators/music.conf index 7768e4fb2..6629fd953 100644 --- a/config/emulators/music.conf +++ b/config/emulators/music.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".m3u .sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="music" SYSTEM_THEME="music" +SYSTEM_WIKI_PATH="music" diff --git a/config/emulators/n64.conf b/config/emulators/n64.conf index 6afd78fd2..c5cff6120 100644 --- a/config/emulators/n64.conf +++ b/config/emulators/n64.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".z64 .n64 .v64 .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="n64" SYSTEM_THEME="n64" +SYSTEM_WIKI_PATH="n64" diff --git a/config/emulators/naomi.conf b/config/emulators/naomi.conf index cddd757e5..4743bb624 100644 --- a/config/emulators/naomi.conf +++ b/config/emulators/naomi.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".lst .bin .dat .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="naomi arcade" SYSTEM_THEME="naomi" +SYSTEM_WIKI_PATH="naomi" diff --git a/config/emulators/nds.conf b/config/emulators/nds.conf index e3b8a8596..df12f40b1 100644 --- a/config/emulators/nds.conf +++ b/config/emulators/nds.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nds .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nds" SYSTEM_THEME="nds" +SYSTEM_WIKI_PATH="nds" diff --git a/config/emulators/neocd.conf b/config/emulators/neocd.conf index bddf919ab..29a28240a 100644 --- a/config/emulators/neocd.conf +++ b/config/emulators/neocd.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".cue .iso .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="neogeocd" SYSTEM_THEME="neogeocd" +SYSTEM_WIKI_PATH="neogeocd" diff --git a/config/emulators/neogeo.conf b/config/emulators/neogeo.conf index 4aeaef156..5bad25ae4 100644 --- a/config/emulators/neogeo.conf +++ b/config/emulators/neogeo.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".7z .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="neogeo" SYSTEM_THEME="neogeo" +SYSTEM_WIKI_PATH="neogeo" diff --git a/config/emulators/nes.conf b/config/emulators/nes.conf index f5a5d2843..8196c29de 100644 --- a/config/emulators/nes.conf +++ b/config/emulators/nes.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nes .unif .unf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nes" SYSTEM_THEME="nes" +SYSTEM_WIKI_PATH="nes" diff --git a/config/emulators/nesh.conf b/config/emulators/nesh.conf index 77556dcd7..a2109b706 100644 --- a/config/emulators/nesh.conf +++ b/config/emulators/nesh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".nes .unif .unf .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="nes" SYSTEM_THEME="nesh" +SYSTEM_WIKI_PATH="nes" diff --git a/config/emulators/ngp.conf b/config/emulators/ngp.conf index b98e8a46a..cd1d54614 100644 --- a/config/emulators/ngp.conf +++ b/config/emulators/ngp.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ngc .ngp .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ngp" SYSTEM_THEME="ngp" +SYSTEM_WIKI_PATH="ngp" diff --git a/config/emulators/ngpc.conf b/config/emulators/ngpc.conf index 545549f19..06c949561 100644 --- a/config/emulators/ngpc.conf +++ b/config/emulators/ngpc.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ngc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ngpc" SYSTEM_THEME="ngpc" +SYSTEM_WIKI_PATH="ngp" diff --git a/config/emulators/odyssey2.conf b/config/emulators/odyssey2.conf index 650b7efbf..1c0843c5d 100644 --- a/config/emulators/odyssey2.conf +++ b/config/emulators/odyssey2.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="odyssey2" SYSTEM_THEME="odyssey2" +SYSTEM_WIKI_PATH="odyssey2" diff --git a/config/emulators/openbor.conf b/config/emulators/openbor.conf index 7b44bf741..7ade02353 100644 --- a/config/emulators/openbor.conf +++ b/config/emulators/openbor.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pak" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="openbor" SYSTEM_THEME="openbor" +SYSTEM_WIKI_PATH="openbor" diff --git a/config/emulators/pc-8800.conf b/config/emulators/pc-8800.conf index cb3cf6d50..6c5bf277e 100644 --- a/config/emulators/pc-8800.conf +++ b/config/emulators/pc-8800.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d88 .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc88" SYSTEM_THEME="pc88" +SYSTEM_WIKI_PATH="pc88" diff --git a/config/emulators/pc-9800.conf b/config/emulators/pc-9800.conf index ff9acb757..e262ce98c 100644 --- a/config/emulators/pc-9800.conf +++ b/config/emulators/pc-9800.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".d98 .zip .fdi .fdd .2hd .tfd .d88d .hdm .xdf .dup .hdi .thd . SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc98" SYSTEM_THEME="pc98" +SYSTEM_WIKI_PATH="pc98" diff --git a/config/emulators/pc.conf b/config/emulators/pc.conf index d72115cca..c19426c9e 100644 --- a/config/emulators/pc.conf +++ b/config/emulators/pc.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="pc" -SYSTEM_FULLNAME="MS-DOS" +SYSTEM_FULLNAME="DOS" SYSTEM_MANUFACTURER="Microsoft" SYSTEM_RELEASE="1981" SYSTEM_HARDWARE="computer" @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/pc" SYSTEM_EXTENSION=".com .bat .exe .dosz" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc" -SYSTEM_THEME="pc" +SYSTEM_THEME="dos" +SYSTEM_WIKI_PATH="dos" diff --git a/config/emulators/pcengine.conf b/config/emulators/pcengine.conf index 13a676e1c..d433f5cca 100644 --- a/config/emulators/pcengine.conf +++ b/config/emulators/pcengine.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pce .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcengine" SYSTEM_THEME="pcengine" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/pcenginecd.conf b/config/emulators/pcenginecd.conf index 5c88c4728..35b6ae93e 100644 --- a/config/emulators/pcenginecd.conf +++ b/config/emulators/pcenginecd.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/pcenginecd" SYSTEM_EXTENSION=".cue .ccd .chd .toc .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcenginecd" -SYSTEM_THEME="pce-cd" +SYSTEM_THEME="pcenginecd" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/pcfx.conf b/config/emulators/pcfx.conf index 5819507da..c19d08806 100644 --- a/config/emulators/pcfx.conf +++ b/config/emulators/pcfx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".chd .cue .ccd .toc" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcfx" SYSTEM_THEME="pcfx" +SYSTEM_WIKI_PATH="pcfx" diff --git a/config/emulators/pet.conf b/config/emulators/pet.conf index 7a671db55..a8964bd83 100644 --- a/config/emulators/pet.conf +++ b/config/emulators/pet.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pet" SYSTEM_THEME="pet" +SYSTEM_WIKI_PATH="pet" diff --git a/config/emulators/pico-8.conf b/config/emulators/pico-8.conf index 3303bc231..aaf67a0fa 100644 --- a/config/emulators/pico-8.conf +++ b/config/emulators/pico-8.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".p8 .png" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pico-8" SYSTEM_THEME="pico-8" +SYSTEM_WIKI_PATH="pico-8" diff --git a/config/emulators/pokemini.conf b/config/emulators/pokemini.conf index 2283d033f..af702fc82 100644 --- a/config/emulators/pokemini.conf +++ b/config/emulators/pokemini.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".min .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pokemini" SYSTEM_THEME="pokemini" +SYSTEM_WIKI_PATH="pokemini" diff --git a/config/emulators/ports.conf b/config/emulators/ports.conf index bf0cd51e4..9521bbee6 100644 --- a/config/emulators/ports.conf +++ b/config/emulators/ports.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc" SYSTEM_THEME="ports" +SYSTEM_WIKI_PATH="ports" diff --git a/config/emulators/ps2.conf b/config/emulators/ps2.conf index 727ea0372..9770e7bfc 100644 --- a/config/emulators/ps2.conf +++ b/config/emulators/ps2.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .mdf .nrg .bin .img .dump .gz .cso .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ps2" SYSTEM_THEME="ps2" +SYSTEM_WIKI_PATH="ps2" diff --git a/config/emulators/ps3.conf b/config/emulators/ps3.conf index 004e9fbb8..ca3716d09 100644 --- a/config/emulators/ps3.conf +++ b/config/emulators/ps3.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ps3 .psn" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="ps3" SYSTEM_THEME="ps3" +SYSTEM_WIKI_PATH="ps3" diff --git a/config/emulators/psp.conf b/config/emulators/psp.conf index 0072c2afd..fa2410bc6 100644 --- a/config/emulators/psp.conf +++ b/config/emulators/psp.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .cso .pbp .chd" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psp" SYSTEM_THEME="psp" +SYSTEM_WIKI_PATH="psp" diff --git a/config/emulators/pspminis.conf b/config/emulators/pspminis.conf index 710441107..3524652b0 100644 --- a/config/emulators/pspminis.conf +++ b/config/emulators/pspminis.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso .cso .pbp" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psp" SYSTEM_THEME="pspminis" +SYSTEM_WIKI_PATH="psp" diff --git a/config/emulators/psvita.conf b/config/emulators/psvita.conf index fd33ea23a..601718523 100644 --- a/config/emulators/psvita.conf +++ b/config/emulators/psvita.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psvita" SYSTEM_THEME="psvita" +SYSTEM_WIKI_PATH="psvita" diff --git a/config/emulators/psx.conf b/config/emulators/psx.conf index dde86192c..aaadd4cb5 100644 --- a/config/emulators/psx.conf +++ b/config/emulators/psx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="psx" SYSTEM_THEME="psx" +SYSTEM_WIKI_PATH="psx" diff --git a/config/emulators/satellaview.conf b/config/emulators/satellaview.conf index 613f14919..cbc5091c1 100644 --- a/config/emulators/satellaview.conf +++ b/config/emulators/satellaview.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .bs .sfc .bsx .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="satellaview" SYSTEM_THEME="satellaview" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/saturn.conf b/config/emulators/saturn.conf index 4227784bb..9fdc0a966 100644 --- a/config/emulators/saturn.conf +++ b/config/emulators/saturn.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".cue .chd .iso" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="saturn" SYSTEM_THEME="saturn" +SYSTEM_WIKI_PATH="saturn" diff --git a/config/emulators/scummvm.conf b/config/emulators/scummvm.conf index 9e9e733f3..d72ee6701 100644 --- a/config/emulators/scummvm.conf +++ b/config/emulators/scummvm.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh .svm .scummvm" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc" SYSTEM_THEME="scummvm" +SYSTEM_WIKI_PATH="scummvm" diff --git a/config/emulators/sega32x.conf b/config/emulators/sega32x.conf index 0b54dbce1..bc2395fc7 100644 --- a/config/emulators/sega32x.conf +++ b/config/emulators/sega32x.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".32x .smd .bin .md .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="sega32x" SYSTEM_THEME="sega32x" +SYSTEM_WIKI_PATH="sega32x" diff --git a/config/emulators/segacd.conf b/config/emulators/segacd.conf index 2f7924841..6fc4bdf9d 100644 --- a/config/emulators/segacd.conf +++ b/config/emulators/segacd.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".chd .cue .iso .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="segacd" SYSTEM_THEME="segacd" +SYSTEM_WIKI_PATH="segacd" diff --git a/config/emulators/sfc.conf b/config/emulators/sfc.conf index 549bcd344..772cd799b 100644 --- a/config/emulators/sfc.conf +++ b/config/emulators/sfc.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snes" SYSTEM_THEME="sfc" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/sg-1000.conf b/config/emulators/sg-1000.conf index 891995d3e..071cdf61c 100644 --- a/config/emulators/sg-1000.conf +++ b/config/emulators/sg-1000.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .sg .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="sg-1000" SYSTEM_THEME="sg-1000" +SYSTEM_WIKI_PATH="sg-1000" diff --git a/config/emulators/snes.conf b/config/emulators/snes.conf index 84c1b00b8..034dbfdc1 100644 --- a/config/emulators/snes.conf +++ b/config/emulators/snes.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snes" SYSTEM_THEME="snes" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/snesh.conf b/config/emulators/snesh.conf index 59b642eb9..a4eda3b62 100644 --- a/config/emulators/snesh.conf +++ b/config/emulators/snesh.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snes" SYSTEM_THEME="snesh" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/snesmsu1.conf b/config/emulators/snesmsu1.conf index 3f74cf1be..b4a45ddaf 100644 --- a/config/emulators/snesmsu1.conf +++ b/config/emulators/snesmsu1.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snesmsu1 snes" SYSTEM_THEME="snesmsu1" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/st-v.conf b/config/emulators/st-v.conf index c873608de..1e81726bc 100644 --- a/config/emulators/st-v.conf +++ b/config/emulators/st-v.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/st-v" SYSTEM_EXTENSION=".zip .ZIP" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="st-v" -SYSTEM_THEME="st-v" +SYSTEM_THEME="stv" +SYSTEM_WIKI_PATH="stv" diff --git a/config/emulators/sufami.conf b/config/emulators/sufami.conf index 86e4491f7..3f78b5409 100644 --- a/config/emulators/sufami.conf +++ b/config/emulators/sufami.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".st .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="sufami" SYSTEM_THEME="sufami" +SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/supergrafx.conf b/config/emulators/supergrafx.conf index 31f9774c8..d5919c454 100644 --- a/config/emulators/supergrafx.conf +++ b/config/emulators/supergrafx.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pce .sgx .cue .ccd .chd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="supergrafx" SYSTEM_THEME="supergrafx" +SYSTEM_WIKI_PATH="supergrafx" diff --git a/config/emulators/supervision.conf b/config/emulators/supervision.conf index 0a73c9e40..7dfd14f2c 100644 --- a/config/emulators/supervision.conf +++ b/config/emulators/supervision.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sv .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="supervision" SYSTEM_THEME="supervision" +SYSTEM_WIKI_PATH="supervision" diff --git a/config/emulators/switch.conf b/config/emulators/switch.conf index 2e16b1a04..d6496ab6a 100644 --- a/config/emulators/switch.conf +++ b/config/emulators/switch.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".xci .nsp .nca .nso .nro" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="switch" SYSTEM_THEME="switch" +SYSTEM_WIKI_PATH="switch" diff --git a/config/emulators/tg16.conf b/config/emulators/tg16.conf index 7c3dffeee..a4def1e47 100644 --- a/config/emulators/tg16.conf +++ b/config/emulators/tg16.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".pce .bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcengine" SYSTEM_THEME="tg16" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/tg16cd.conf b/config/emulators/tg16cd.conf index 69f5b4a0d..37cfc9096 100644 --- a/config/emulators/tg16cd.conf +++ b/config/emulators/tg16cd.conf @@ -7,4 +7,5 @@ SYSTEM_PATH="/storage/roms/tg16cd" SYSTEM_EXTENSION=".cue .ccd .chd .toc .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcenginecd" -SYSTEM_THEME="tg16cd" +SYSTEM_THEME="tg-cd" +SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/tic-80.conf b/config/emulators/tic-80.conf index d47606d34..405cdc868 100644 --- a/config/emulators/tic-80.conf +++ b/config/emulators/tic-80.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".tic" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="tic80" SYSTEM_THEME="tic-80" +SYSTEM_WIKI_PATH="tic-80" diff --git a/config/emulators/tools.conf b/config/emulators/tools.conf index 08b6c2113..787dc59e2 100644 --- a/config/emulators/tools.conf +++ b/config/emulators/tools.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".sh" SYSTEM_COMMAND="/usr/bin/run %ROM%" SYSTEM_PLATFORM="tools" SYSTEM_THEME="tools" +SYSTEM_WIKI_PATH="tools" diff --git a/config/emulators/uzebox.conf b/config/emulators/uzebox.conf index f52077d4f..00128fc65 100644 --- a/config/emulators/uzebox.conf +++ b/config/emulators/uzebox.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".uze" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="uzebox" SYSTEM_THEME="uzebox" +SYSTEM_WIKI_PATH="uzebox" diff --git a/config/emulators/vectrex.conf b/config/emulators/vectrex.conf index 5e6afa834..cca244202 100644 --- a/config/emulators/vectrex.conf +++ b/config/emulators/vectrex.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .gam .vec .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="vectrex" SYSTEM_THEME="vectrex" +SYSTEM_WIKI_PATH="vectrex" diff --git a/config/emulators/vic20.conf b/config/emulators/vic20.conf index a241b5f2c..24ca114fd 100644 --- a/config/emulators/vic20.conf +++ b/config/emulators/vic20.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="vic20" SYSTEM_THEME="vic20" +SYSTEM_WIKI_PATH="vic20" diff --git a/config/emulators/videopac.conf b/config/emulators/videopac.conf index f0dd37a18..07f0d1ca1 100644 --- a/config/emulators/videopac.conf +++ b/config/emulators/videopac.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".bin .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="videopac" SYSTEM_THEME="videopac" +SYSTEM_WIKI_PATH="videopac" diff --git a/config/emulators/virtualboy.conf b/config/emulators/virtualboy.conf index a531b6f37..2076f5428 100644 --- a/config/emulators/virtualboy.conf +++ b/config/emulators/virtualboy.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".vb .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="virtualboy" SYSTEM_THEME="virtualboy" +SYSTEM_WIKI_PATH="virtualboy" diff --git a/config/emulators/wii.conf b/config/emulators/wii.conf index e4559d5ff..edd19339d 100644 --- a/config/emulators/wii.conf +++ b/config/emulators/wii.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".gcm .iso .gcz .ciso .wbfs .rvz .dol .wad" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wii" SYSTEM_THEME="wii" +SYSTEM_WIKI_PATH="wii" diff --git a/config/emulators/wiiu.conf b/config/emulators/wiiu.conf index 881814510..ce5007325 100644 --- a/config/emulators/wiiu.conf +++ b/config/emulators/wiiu.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".wud .wux .wua" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wiiu" SYSTEM_THEME="wiiu" +SYSTEM_WIKI_PATH="wiiu" diff --git a/config/emulators/wonderswan.conf b/config/emulators/wonderswan.conf index 471888602..e993deb0c 100644 --- a/config/emulators/wonderswan.conf +++ b/config/emulators/wonderswan.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".ws .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wonderswan" SYSTEM_THEME="wonderswan" +SYSTEM_WIKI_PATH="wonderswan" diff --git a/config/emulators/wonderswancolor.conf b/config/emulators/wonderswancolor.conf index 5e1e83822..35aac00b0 100644 --- a/config/emulators/wonderswancolor.conf +++ b/config/emulators/wonderswancolor.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".wsc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="wonderswancolor" SYSTEM_THEME="wonderswancolor" +SYSTEM_WIKI_PATH="wonderswancolor" diff --git a/config/emulators/x1.conf b/config/emulators/x1.conf index 3cae90630..1a8be5592 100644 --- a/config/emulators/x1.conf +++ b/config/emulators/x1.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="x1" SYSTEM_THEME="x1" +SYSTEM_WIKI_PATH="x1" diff --git a/config/emulators/x68000.conf b/config/emulators/x68000.conf index 37e1b3ad9..8e73088af 100644 --- a/config/emulators/x68000.conf +++ b/config/emulators/x68000.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="x68000" SYSTEM_THEME="x68000" +SYSTEM_WIKI_PATH="x68000" diff --git a/config/emulators/xbox.conf b/config/emulators/xbox.conf index 348a6bfca..8045988dd 100644 --- a/config/emulators/xbox.conf +++ b/config/emulators/xbox.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".iso" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="xbox" SYSTEM_THEME="xbox" +SYSTEM_WIKI_PATH="xbox" diff --git a/config/emulators/zmachine.conf b/config/emulators/zmachine.conf index 67ea6cdec..26ef4b57b 100644 --- a/config/emulators/zmachine.conf +++ b/config/emulators/zmachine.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".dat .z1 .z2 .z3 .z4 .z5 .z6 .zip" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="z-machine" SYSTEM_THEME="zmachine" +SYSTEM_WIKI_PATH="zmachine" diff --git a/config/emulators/zx81.conf b/config/emulators/zx81.conf index 9c77e6f13..1b22d438d 100644 --- a/config/emulators/zx81.conf +++ b/config/emulators/zx81.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".tzx .p .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="zx81" SYSTEM_THEME="zx81" +SYSTEM_WIKI_PATH="zx81" diff --git a/config/emulators/zxspectrum.conf b/config/emulators/zxspectrum.conf index 6e5463425..251ca6dc4 100644 --- a/config/emulators/zxspectrum.conf +++ b/config/emulators/zxspectrum.conf @@ -8,3 +8,4 @@ SYSTEM_EXTENSION=".tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="zxspectrum" SYSTEM_THEME="zxspectrum" +SYSTEM_WIKI_PATH="zxspectrum" From a8479871cb2a33110e4551deb39e7fe5556b87d6 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sat, 4 Nov 2023 20:02:43 -0400 Subject: [PATCH 070/112] Update st-v.conf --- config/emulators/st-v.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/emulators/st-v.conf b/config/emulators/st-v.conf index 1e81726bc..209a19758 100644 --- a/config/emulators/st-v.conf +++ b/config/emulators/st-v.conf @@ -8,4 +8,4 @@ SYSTEM_EXTENSION=".zip .ZIP" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="st-v" SYSTEM_THEME="stv" -SYSTEM_WIKI_PATH="stv" +SYSTEM_WIKI_PATH="st-v" From 93347cd5e2fc18a174c1ded7389d8c78e39bfb1a Mon Sep 17 00:00:00 2001 From: Anthony Date: Sat, 4 Nov 2023 22:46:20 -0400 Subject: [PATCH 071/112] updated system conf files with wiki paths --- config/emulators/3do.conf | 2 +- config/emulators/3ds.conf | 2 +- packages/themes/es-theme-art-book-next/package.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/emulators/3do.conf b/config/emulators/3do.conf index 64c0117d6..9ca0cb8e9 100644 --- a/config/emulators/3do.conf +++ b/config/emulators/3do.conf @@ -8,4 +8,4 @@ SYSTEM_EXTENSION=".iso .bin .chd .cue" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3do" SYSTEM_THEME="3do" -SYSTEM_WIKI_PATH="3do"" \ No newline at end of file +SYSTEM_WIKI_PATH="3do" \ No newline at end of file diff --git a/config/emulators/3ds.conf b/config/emulators/3ds.conf index 1c115e784..1fbdb8141 100644 --- a/config/emulators/3ds.conf +++ b/config/emulators/3ds.conf @@ -8,4 +8,4 @@ SYSTEM_EXTENSION=".3ds .3dsx .elf .axf .cci .cxi .app" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3ds" SYSTEM_THEME="n3ds" -SYSTEM_WIKI_PATH="3ds"" +SYSTEM_WIKI_PATH="3ds" diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 741eb7c7b..2ae5717b6 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="2684b4f017366c9b86e0f045671953843db0e143" +PKG_VERSION="40e4e86ec9628f82f75603b3343b1eb750b63c5d" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From 47266590db58ab9023b08044ccdf5d96893e74f2 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Sun, 5 Nov 2023 09:27:36 -0500 Subject: [PATCH 072/112] Update Art Book Next Fixes custom logo support for the Multi Art Variant Adds idtech images --- packages/themes/es-theme-art-book-next/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 2ae5717b6..92bc37d56 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="40e4e86ec9628f82f75603b3343b1eb750b63c5d" +PKG_VERSION="81a1a9bc1985e5ba40c081fd1eec0544d7f7556c" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From 051e70e081add8b54b3cd5e45b348ac546750b63 Mon Sep 17 00:00:00 2001 From: mason Date: Sun, 5 Nov 2023 15:50:14 +0000 Subject: [PATCH 073/112] Update RK3399 Kernel config --- .../devices/RK3399/linux/linux.aarch64.conf | 1754 +++-------------- 1 file changed, 309 insertions(+), 1445 deletions(-) diff --git a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf index 66af20f25..85d88a794 100644 --- a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf @@ -1,15 +1,15 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.1.38 Kernel Configuration +# Linux/arm64 6.1.61 Kernel Configuration # CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnueabi-gcc-12.3.0 (GCC) 12.3.0" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=120300 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24000 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24000 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -106,7 +106,6 @@ CONFIG_PREEMPT=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y # CONFIG_PREEMPT_DYNAMIC is not set -# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -214,8 +213,8 @@ CONFIG_INITRAMFS_COMPRESSION_GZIP=y # CONFIG_INITRAMFS_COMPRESSION_NONE is not set # CONFIG_BOOT_CONFIG is not set CONFIG_INITRAMFS_PRESERVE_MTIME=y -# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y @@ -243,7 +242,7 @@ CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_KCMP=y @@ -275,6 +274,7 @@ CONFIG_ARCH_MMAP_RND_BITS_MIN=18 CONFIG_ARCH_MMAP_RND_BITS_MAX=33 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_NO_IOPORT_MAP=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_LOCKDEP_SUPPORT=y @@ -337,6 +337,7 @@ CONFIG_ARCH_ROCKCHIP=y # # ARM errata workarounds via the alternatives framework # +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y # CONFIG_ARM64_ERRATUM_826319 is not set # CONFIG_ARM64_ERRATUM_827319 is not set # CONFIG_ARM64_ERRATUM_824069 is not set @@ -364,6 +365,7 @@ CONFIG_ARM64_ERRATUM_2658417=y # CONFIG_ARM64_ERRATUM_2067961 is not set CONFIG_ARM64_ERRATUM_2441009=y CONFIG_ARM64_ERRATUM_2457168=y +CONFIG_ARM64_ERRATUM_2966298=y # CONFIG_CAVIUM_ERRATUM_22375 is not set # CONFIG_CAVIUM_ERRATUM_23154 is not set # CONFIG_CAVIUM_ERRATUM_27456 is not set @@ -391,8 +393,8 @@ CONFIG_ARM64_PA_BITS=48 CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_SCHED_MC=y # CONFIG_SCHED_CLUSTER is not set -CONFIG_SCHED_SMT=y -CONFIG_NR_CPUS=8 +# CONFIG_SCHED_SMT is not set +CONFIG_NR_CPUS=6 CONFIG_HOTPLUG_CPU=y # CONFIG_NUMA is not set # CONFIG_HZ_100 is not set @@ -409,6 +411,7 @@ CONFIG_CC_HAVE_SHADOW_CALL_STACK=y # CONFIG_KEXEC is not set # CONFIG_KEXEC_FILE is not set # CONFIG_CRASH_DUMP is not set +CONFIG_TRANS_TABLE=y # CONFIG_XEN is not set CONFIG_ARCH_FORCE_MAX_ORDER=11 CONFIG_UNMAP_KERNEL_AT_EL0=y @@ -419,10 +422,7 @@ CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_COMPAT=y CONFIG_KUSER_HELPERS=y # CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set -CONFIG_ARMV8_DEPRECATED=y -# CONFIG_SWP_EMULATION is not set -# CONFIG_CP15_BARRIER_EMULATION is not set -# CONFIG_SETEND_EMULATION is not set +# CONFIG_ARMV8_DEPRECATED is not set # # ARMv8.1 architectural features @@ -504,7 +504,10 @@ CONFIG_CMDLINE="" CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_SUSPEND_SKIP_SYNC=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y +CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_PM_AUTOSLEEP=y @@ -520,6 +523,7 @@ CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_CPU_PM=y CONFIG_ENERGY_MODEL=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # end of Power management options @@ -733,7 +737,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_OSF_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_ATARI_PARTITION is not set -CONFIG_MAC_PARTITION=y +# CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y # CONFIG_BSD_DISKLABEL is not set # CONFIG_MINIX_SUBPARTITION is not set @@ -750,10 +754,7 @@ CONFIG_EFI_PARTITION=y # end of Partition Types CONFIG_BLOCK_COMPAT=y -CONFIG_BLK_MQ_PCI=y CONFIG_BLK_PM=y -CONFIG_BLOCK_HOLDER_DEPRECATED=y -CONFIG_BLK_MQ_STACKING=y # # IO Schedulers @@ -883,6 +884,7 @@ CONFIG_UNIX_DIAG=m CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y +# CONFIG_XFRM_INTERFACE is not set # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set @@ -903,7 +905,7 @@ CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IP_TUNNEL=y +CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m # CONFIG_NET_IPGRE_BROADCAST is not set CONFIG_IP_MROUTE_COMMON=y @@ -913,7 +915,7 @@ CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y # CONFIG_NET_IPVTI is not set -CONFIG_NET_UDP_TUNNEL=y +CONFIG_NET_UDP_TUNNEL=m # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set CONFIG_INET_AH=y @@ -945,27 +947,45 @@ CONFIG_TCP_CONG_CDG=m CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" CONFIG_TCP_MD5SIG=y -# CONFIG_IPV6 is not set +CONFIG_IPV6=m +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +# CONFIG_IPV6_GRE is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set # CONFIG_MPTCP is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NET_PTP_CLASSIFY=y # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NETFILTER=m # # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_NETLINK=y +CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y CONFIG_NETFILTER_FAMILY_ARP=y -# CONFIG_NETFILTER_NETLINK_HOOK is not set CONFIG_NETFILTER_NETLINK_ACCT=m -CONFIG_NETFILTER_NETLINK_QUEUE=y -CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_SYSLOG=m @@ -974,58 +994,28 @@ CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CONNTRACK_TIMEOUT=y -CONFIG_NF_CONNTRACK_TIMESTAMP=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=y -CONFIG_NF_CT_PROTO_GRE=y CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_BROADCAST=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_SNMP=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NF_CT_NETLINK_TIMEOUT=m -# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set +# CONFIG_NF_CONNTRACK_AMANDA is not set +# CONFIG_NF_CONNTRACK_FTP is not set +# CONFIG_NF_CONNTRACK_H323 is not set +# CONFIG_NF_CONNTRACK_IRC is not set +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set +# CONFIG_NF_CONNTRACK_SNMP is not set +# CONFIG_NF_CONNTRACK_PPTP is not set +# CONFIG_NF_CONNTRACK_SANE is not set +# CONFIG_NF_CONNTRACK_SIP is not set +# CONFIG_NF_CONNTRACK_TFTP is not set +# CONFIG_NF_CT_NETLINK is not set CONFIG_NF_NAT=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_SIP=m -CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m -CONFIG_NF_TABLES=m -# CONFIG_NF_TABLES_NETDEV is not set -# CONFIG_NFT_NUMGEN is not set -CONFIG_NFT_CT=m -# CONFIG_NFT_CONNLIMIT is not set -CONFIG_NFT_LOG=m -CONFIG_NFT_LIMIT=m -CONFIG_NFT_MASQ=m -CONFIG_NFT_REDIR=m -# CONFIG_NFT_TUNNEL is not set -# CONFIG_NFT_OBJREF is not set -CONFIG_NFT_QUEUE=m -# CONFIG_NFT_QUOTA is not set -CONFIG_NFT_REJECT=m -CONFIG_NFT_COMPAT=m -CONFIG_NFT_HASH=m -# CONFIG_NFT_XFRM is not set -# CONFIG_NFT_SOCKET is not set -# CONFIG_NFT_OSF is not set -# CONFIG_NFT_TPROXY is not set -# CONFIG_NFT_SYNPROXY is not set -# CONFIG_NF_FLOW_TABLE is not set +# CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=y CONFIG_NETFILTER_XTABLES_COMPAT=y @@ -1034,7 +1024,6 @@ CONFIG_NETFILTER_XTABLES_COMPAT=y # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m -CONFIG_NETFILTER_XT_SET=m # # Xtables targets @@ -1115,25 +1104,9 @@ CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m # end of Core Netfilter Configuration -CONFIG_IP_SET=y -CONFIG_IP_SET_MAX=256 -CONFIG_IP_SET_BITMAP_IP=m -CONFIG_IP_SET_BITMAP_IPMAC=m -CONFIG_IP_SET_BITMAP_PORT=m -CONFIG_IP_SET_HASH_IP=m -CONFIG_IP_SET_HASH_IPMARK=m -CONFIG_IP_SET_HASH_IPPORT=m -CONFIG_IP_SET_HASH_IPPORTIP=m -CONFIG_IP_SET_HASH_IPPORTNET=m -# CONFIG_IP_SET_HASH_IPMAC is not set -CONFIG_IP_SET_HASH_MAC=m -CONFIG_IP_SET_HASH_NETPORTNET=m -CONFIG_IP_SET_HASH_NET=m -CONFIG_IP_SET_HASH_NETNET=m -CONFIG_IP_SET_HASH_NETPORT=m -CONFIG_IP_SET_HASH_NETIFACE=m -CONFIG_IP_SET_LIST_SET=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 @@ -1178,9 +1151,7 @@ CONFIG_IP_VS_MH_TAB_INDEX=12 # # IPVS application helper # -# CONFIG_IP_VS_FTP is not set CONFIG_IP_VS_NFCT=y -# CONFIG_IP_VS_PE_SIP is not set # # IP: Netfilter Configuration @@ -1188,15 +1159,10 @@ CONFIG_IP_VS_NFCT=y CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m @@ -1219,29 +1185,20 @@ CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # end of IP: Netfilter Configuration -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NFT_BRIDGE_META=m +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +# CONFIG_NF_REJECT_IPV6 is not set +# CONFIG_NF_LOG_IPV6 is not set +# CONFIG_IP6_NF_IPTABLES is not set +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=m # CONFIG_NF_CONNTRACK_BRIDGE is not set -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_BRIDGE_NF_EBTABLES is not set # CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set @@ -1249,8 +1206,8 @@ CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_L2TP is not set -CONFIG_STP=y -CONFIG_BRIDGE=y +CONFIG_STP=m +CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y # CONFIG_BRIDGE_VLAN_FILTERING is not set # CONFIG_BRIDGE_MRP is not set @@ -1259,69 +1216,15 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_VLAN_8021Q=y # CONFIG_VLAN_8021Q_GVRP is not set # CONFIG_VLAN_8021Q_MVRP is not set -CONFIG_LLC=y +CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set # CONFIG_IEEE802154 is not set -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -# CONFIG_NET_SCH_CBQ is not set -CONFIG_NET_SCH_HTB=y -# CONFIG_NET_SCH_HFSC is not set -# CONFIG_NET_SCH_PRIO is not set -# CONFIG_NET_SCH_MULTIQ is not set -# CONFIG_NET_SCH_RED is not set -# CONFIG_NET_SCH_SFB is not set -# CONFIG_NET_SCH_SFQ is not set -# CONFIG_NET_SCH_TEQL is not set -# CONFIG_NET_SCH_TBF is not set -# CONFIG_NET_SCH_CBS is not set -# CONFIG_NET_SCH_ETF is not set -# CONFIG_NET_SCH_TAPRIO is not set -# CONFIG_NET_SCH_GRED is not set -# CONFIG_NET_SCH_DSMARK is not set -# CONFIG_NET_SCH_NETEM is not set -# CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_MQPRIO is not set -# CONFIG_NET_SCH_SKBPRIO is not set -# CONFIG_NET_SCH_CHOKE is not set -# CONFIG_NET_SCH_QFQ is not set -CONFIG_NET_SCH_CODEL=y -CONFIG_NET_SCH_FQ_CODEL=y -# CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_FQ is not set -# CONFIG_NET_SCH_HHF is not set -# CONFIG_NET_SCH_PIE is not set -# CONFIG_NET_SCH_PLUG is not set -# CONFIG_NET_SCH_ETS is not set -# CONFIG_NET_SCH_DEFAULT is not set - -# -# Classification -# -CONFIG_NET_CLS=y -# CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_ROUTE4 is not set -# CONFIG_NET_CLS_FW is not set -CONFIG_NET_CLS_U32=y -# CONFIG_CLS_U32_PERF is not set -CONFIG_CLS_U32_MARK=y -# CONFIG_NET_CLS_RSVP is not set -# CONFIG_NET_CLS_RSVP6 is not set -# CONFIG_NET_CLS_FLOW is not set -CONFIG_NET_CLS_CGROUP=y -# CONFIG_NET_CLS_BPF is not set -# CONFIG_NET_CLS_FLOWER is not set -# CONFIG_NET_CLS_MATCHALL is not set -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_CLS_ACT is not set -CONFIG_NET_SCH_FIFO=y +# CONFIG_NET_SCHED is not set # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set @@ -1383,14 +1286,7 @@ CONFIG_BT_DEBUGFS=y # # Bluetooth device drivers # -CONFIG_BT_INTEL=m -CONFIG_BT_BCM=m -CONFIG_BT_RTL=m -CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set -CONFIG_BT_HCIBTUSB_BCM=y -# CONFIG_BT_HCIBTUSB_MTK is not set -CONFIG_BT_HCIBTUSB_RTL=y +# CONFIG_BT_HCIBTUSB is not set # CONFIG_BT_HCIBTSDIO is not set CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_SERDEV=y @@ -1409,13 +1305,9 @@ CONFIG_BT_HCIUART_ATH3K=y # CONFIG_BT_HCIBCM203X is not set # CONFIG_BT_HCIBPA10X is not set CONFIG_BT_HCIBFUSB=m -# CONFIG_BT_HCIDTL1 is not set -# CONFIG_BT_HCIBT3C is not set -# CONFIG_BT_HCIBLUECARD is not set CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m -# CONFIG_BT_ATH3K is not set # CONFIG_BT_MTKSDIO is not set # CONFIG_BT_MTKUART is not set # end of Bluetooth device drivers @@ -1482,100 +1374,8 @@ CONFIG_PAGE_POOL=y # CONFIG_ARM_AMBA=y CONFIG_HAVE_PCI=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_SYSCALL=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIEAER=y -# CONFIG_PCIEAER_INJECT is not set -# CONFIG_PCIE_ECRC is not set -CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEFAULT is not set -CONFIG_PCIEASPM_POWERSAVE=y -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -# CONFIG_PCIEASPM_PERFORMANCE is not set -CONFIG_PCIE_PME=y -# CONFIG_PCIE_DPC is not set -# CONFIG_PCIE_PTM is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y -CONFIG_PCI_QUIRKS=y -CONFIG_PCI_DEBUG=y -# CONFIG_PCI_STUB is not set -# CONFIG_PCI_IOV is not set -# CONFIG_PCI_PRI is not set -# CONFIG_PCI_PASID is not set -# CONFIG_PCIE_BUS_TUNE_OFF is not set -CONFIG_PCIE_BUS_DEFAULT=y -# CONFIG_PCIE_BUS_SAFE is not set -# CONFIG_PCIE_BUS_PERFORMANCE is not set -# CONFIG_PCIE_BUS_PEER2PEER is not set -# CONFIG_VGA_ARB is not set -# CONFIG_HOTPLUG_PCI is not set - -# -# PCI controller drivers -# -# CONFIG_PCI_FTPCI100 is not set -# CONFIG_PCI_HOST_GENERIC is not set -# CONFIG_PCIE_XILINX is not set -# CONFIG_PCI_XGENE is not set -# CONFIG_PCIE_ALTERA is not set -# CONFIG_PCI_HOST_THUNDER_PEM is not set -# CONFIG_PCI_HOST_THUNDER_ECAM is not set -# CONFIG_PCIE_ROCKCHIP_HOST is not set -# CONFIG_PCIE_MICROCHIP_HOST is not set - -# -# DesignWare PCI Core Support -# -# CONFIG_PCIE_DW_PLAT_HOST is not set -# CONFIG_PCI_HISI is not set -# CONFIG_PCIE_ROCKCHIP_DW_HOST is not set -# CONFIG_PCIE_KIRIN is not set -# CONFIG_PCI_MESON is not set -# CONFIG_PCIE_AL is not set -# end of DesignWare PCI Core Support - -# -# Mobiveil PCIe Core Support -# -# end of Mobiveil PCIe Core Support - -# -# Cadence PCIe controllers support -# -# CONFIG_PCIE_CADENCE_PLAT_HOST is not set -# CONFIG_PCI_J721E_HOST is not set -# end of Cadence PCIe controllers support -# end of PCI controller drivers - -# -# PCI Endpoint -# -# CONFIG_PCI_ENDPOINT is not set -# end of PCI Endpoint - -# -# PCI switch controller drivers -# -# CONFIG_PCI_SW_SWITCHTEC is not set -# end of PCI switch controller drivers - -# CONFIG_CXL_BUS is not set -CONFIG_PCCARD=y -CONFIG_PCMCIA=y -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -# CONFIG_YENTA is not set -# CONFIG_PD6729 is not set -# CONFIG_I82092 is not set -# CONFIG_RAPIDIO is not set +# CONFIG_PCI is not set +# CONFIG_PCCARD is not set # # Generic Driver Options @@ -1653,7 +1453,6 @@ CONFIG_ARM_SCMI_POWER_DOMAIN=y CONFIG_ARM_SCPI_PROTOCOL=y CONFIG_ARM_SCPI_POWER_DOMAIN=y # CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_FW_CFG_SYSFS is not set # CONFIG_ARM_FFA_TRANSPORT is not set # CONFIG_GOOGLE_FIRMWARE is not set CONFIG_ARM_PSCI_FW=y @@ -1686,7 +1485,6 @@ CONFIG_OF_OVERLAY=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set CONFIG_CDROM=y -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set CONFIG_ZRAM=y CONFIG_ZRAM_DEF_COMP_LZORLE=y # CONFIG_ZRAM_DEF_COMP_LZ4 is not set @@ -1710,14 +1508,8 @@ CONFIG_BLK_DEV_RBD=m # # NVME Support # -CONFIG_NVME_CORE=m -CONFIG_BLK_DEV_NVME=m -# CONFIG_NVME_MULTIPATH is not set -# CONFIG_NVME_VERBOSE_ERRORS is not set -# CONFIG_NVME_HWMON is not set # CONFIG_NVME_FC is not set # CONFIG_NVME_TCP is not set -# CONFIG_NVME_AUTH is not set # CONFIG_NVME_TARGET is not set # end of NVME Support @@ -1726,11 +1518,8 @@ CONFIG_BLK_DEV_NVME=m # # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set -# CONFIG_PHANTOM is not set -# CONFIG_TIFM_CORE is not set # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_HP_ILO is not set # CONFIG_APDS9802ALS is not set # CONFIG_ISL29003 is not set # CONFIG_ISL29020 is not set @@ -1741,8 +1530,6 @@ CONFIG_BLK_DEV_NVME=m # CONFIG_DS1682 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set CONFIG_SRAM=y -# CONFIG_DW_XDATA_PCIE is not set -# CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_XILINX_SDFEC is not set # CONFIG_HISI_HIKEY_USB is not set # CONFIG_OPEN_DICE is not set @@ -1762,8 +1549,6 @@ CONFIG_EEPROM_93CX6=y # CONFIG_EEPROM_EE1004 is not set # end of EEPROM support -# CONFIG_CB710_CORE is not set - # # Texas Instruments shared transport line discipline # @@ -1773,17 +1558,10 @@ CONFIG_EEPROM_93CX6=y # CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set # CONFIG_ALTERA_STAPL is not set -# CONFIG_VMWARE_VMCI is not set -# CONFIG_GENWQE is not set # CONFIG_ECHO is not set -# CONFIG_BCM_VK is not set -# CONFIG_MISC_ALCOR_PCI is not set -# CONFIG_MISC_RTSX_PCI is not set # CONFIG_MISC_RTSX_USB is not set -# CONFIG_HABANA_AI is not set # CONFIG_UACCE is not set # CONFIG_PVPANIC is not set -# CONFIG_GP_PCI1XXXX is not set # end of Misc devices # @@ -1823,218 +1601,26 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_LOWLEVEL=y # CONFIG_ISCSI_TCP is not set # CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_CXGB3_ISCSI is not set -# CONFIG_SCSI_CXGB4_ISCSI is not set -# CONFIG_SCSI_BNX2_ISCSI is not set -# CONFIG_BE2ISCSI is not set -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_SCSI_HPSA is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_3W_SAS is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_HISI_SAS is not set -# CONFIG_SCSI_MVSAS is not set -# CONFIG_SCSI_MVUMI is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_SCSI_ESAS2R is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -CONFIG_MEGARAID_SAS=m -CONFIG_SCSI_MPT3SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -CONFIG_SCSI_MPT3SAS_MAX_SGE=128 -CONFIG_SCSI_MPT2SAS=m -# CONFIG_SCSI_MPI3MR is not set -# CONFIG_SCSI_SMARTPQI is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_MYRB is not set -# CONFIG_SCSI_MYRS is not set -# CONFIG_SCSI_SNIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FDOMAIN_PCI is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_AM53C974 is not set -# CONFIG_SCSI_WD719X is not set # CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_PMCRAID is not set -# CONFIG_SCSI_PM8001 is not set -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set # CONFIG_SCSI_DH is not set # end of SCSI device support -CONFIG_ATA=y -CONFIG_SATA_HOST=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_FORCE=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=y -CONFIG_SATA_MOBILE_LPM_POLICY=0 -CONFIG_SATA_AHCI_PLATFORM=y -# CONFIG_AHCI_DWC is not set -# CONFIG_AHCI_CEVA is not set -# CONFIG_AHCI_QORIQ is not set -# CONFIG_SATA_INIC162X is not set -# CONFIG_SATA_ACARD_AHCI is not set -# CONFIG_SATA_SIL24 is not set -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -# CONFIG_PDC_ADMA is not set -# CONFIG_SATA_QSTOR is not set -# CONFIG_SATA_SX4 is not set -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -# CONFIG_ATA_PIIX is not set -# CONFIG_SATA_DWC is not set -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SIL=m -# CONFIG_SATA_SIS is not set -# CONFIG_SATA_SVW is not set -# CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set -# CONFIG_SATA_VITESSE is not set - -# -# PATA SFF controllers with BMDMA -# -# CONFIG_PATA_ALI is not set -# CONFIG_PATA_AMD is not set -# CONFIG_PATA_ARTOP is not set -# CONFIG_PATA_ATIIXP is not set -# CONFIG_PATA_ATP867X is not set -# CONFIG_PATA_CMD64X is not set -# CONFIG_PATA_CYPRESS is not set -# CONFIG_PATA_EFAR is not set -# CONFIG_PATA_HPT366 is not set -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set -# CONFIG_PATA_HPT3X3 is not set -# CONFIG_PATA_IT8213 is not set -# CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_MARVELL is not set -# CONFIG_PATA_NETCELL is not set -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87415 is not set -# CONFIG_PATA_OLDPIIX is not set -# CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PDC2027X is not set -# CONFIG_PATA_PDC_OLD is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -# CONFIG_PATA_SCH is not set -# CONFIG_PATA_SERVERWORKS is not set -# CONFIG_PATA_SIL680 is not set -# CONFIG_PATA_SIS is not set -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -# CONFIG_PATA_VIA is not set -# CONFIG_PATA_WINBOND is not set - -# -# PIO-only SFF controllers -# -# CONFIG_PATA_CMD640_PCI is not set -# CONFIG_PATA_MPIIX is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_PCMCIA is not set -# CONFIG_PATA_OF_PLATFORM is not set -# CONFIG_PATA_RZ1000 is not set - -# -# Generic fallback / legacy drivers -# -# CONFIG_ATA_GENERIC is not set -# CONFIG_PATA_LEGACY is not set -CONFIG_MD=y -CONFIG_BLK_DEV_MD=y -CONFIG_MD_AUTODETECT=y -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=y -CONFIG_MD_RAID1=y -CONFIG_MD_RAID10=y -CONFIG_MD_RAID456=y -# CONFIG_MD_MULTIPATH is not set -# CONFIG_MD_FAULTY is not set -CONFIG_BCACHE=m -# CONFIG_BCACHE_DEBUG is not set -# CONFIG_BCACHE_CLOSURES_DEBUG is not set -# CONFIG_BCACHE_ASYNC_REGISTRATION is not set -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_DM=y -# CONFIG_DM_DEBUG is not set -# CONFIG_DM_UNSTRIPED is not set -CONFIG_DM_CRYPT=m -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_THIN_PROVISIONING is not set -# CONFIG_DM_CACHE is not set -# CONFIG_DM_WRITECACHE is not set -# CONFIG_DM_EBS is not set -# CONFIG_DM_ERA is not set -# CONFIG_DM_CLONE is not set -# CONFIG_DM_MIRROR is not set -CONFIG_DM_RAID=y -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_DUST is not set -# CONFIG_DM_INIT is not set -# CONFIG_DM_UEVENT is not set -# CONFIG_DM_FLAKEY is not set -# CONFIG_DM_VERITY is not set -# CONFIG_DM_SWITCH is not set -# CONFIG_DM_LOG_WRITES is not set -# CONFIG_DM_INTEGRITY is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set # CONFIG_TARGET_CORE is not set -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_FIREWIRE is not set -# CONFIG_FIREWIRE_NOSY is not set -# end of IEEE 1394 (FireWire) support - CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y # CONFIG_BONDING is not set # CONFIG_DUMMY is not set -CONFIG_WIREGUARD=y +CONFIG_WIREGUARD=m # CONFIG_WIREGUARD_DEBUG is not set # CONFIG_EQUALIZER is not set -# CONFIG_NET_FC is not set # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=y # CONFIG_MACVTAP is not set CONFIG_IPVLAN_L3S=y -CONFIG_IPVLAN=y +CONFIG_IPVLAN=m # CONFIG_IPVTAP is not set CONFIG_VXLAN=m # CONFIG_GENEVE is not set @@ -2044,145 +1630,10 @@ CONFIG_VXLAN=m # CONFIG_MACSEC is not set # CONFIG_NETCONSOLE is not set CONFIG_TUN=m -# CONFIG_TUN_VNET_CROSS_LE is not set -CONFIG_VETH=y -# CONFIG_NLMON is not set -# CONFIG_NET_VRF is not set -# CONFIG_ARCNET is not set -CONFIG_ETHERNET=y -CONFIG_MDIO=y -# CONFIG_NET_VENDOR_3COM is not set -# CONFIG_NET_VENDOR_ADAPTEC is not set -# CONFIG_NET_VENDOR_AGERE is not set -CONFIG_NET_VENDOR_ALACRITECH=y -# CONFIG_SLICOSS is not set -# CONFIG_NET_VENDOR_ALTEON is not set -# CONFIG_ALTERA_TSE is not set -CONFIG_NET_VENDOR_AMAZON=y -# CONFIG_ENA_ETHERNET is not set -# CONFIG_NET_VENDOR_AMD is not set -CONFIG_NET_VENDOR_AQUANTIA=y -# CONFIG_AQTION is not set -# CONFIG_NET_VENDOR_ARC is not set -CONFIG_NET_VENDOR_ASIX=y -# CONFIG_SPI_AX88796C is not set -# CONFIG_NET_VENDOR_ATHEROS is not set -# CONFIG_NET_VENDOR_BROADCOM is not set -CONFIG_NET_VENDOR_CADENCE=y -# CONFIG_MACB is not set -# CONFIG_NET_VENDOR_CAVIUM is not set -# CONFIG_NET_VENDOR_CHELSIO is not set -# CONFIG_NET_VENDOR_CISCO is not set -CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_GEMINI_ETHERNET is not set -CONFIG_NET_VENDOR_DAVICOM=y -# CONFIG_DM9051 is not set -# CONFIG_DNET is not set -# CONFIG_NET_VENDOR_DEC is not set -# CONFIG_NET_VENDOR_DLINK is not set -# CONFIG_NET_VENDOR_EMULEX is not set -CONFIG_NET_VENDOR_ENGLEDER=y -# CONFIG_TSNEP is not set -# CONFIG_NET_VENDOR_EZCHIP is not set -CONFIG_NET_VENDOR_FUJITSU=y -# CONFIG_PCMCIA_FMVJ18X is not set -CONFIG_NET_VENDOR_FUNGIBLE=y -# CONFIG_FUN_ETH is not set -CONFIG_NET_VENDOR_GOOGLE=y -# CONFIG_GVE is not set -# CONFIG_NET_VENDOR_HISILICON is not set -CONFIG_NET_VENDOR_HUAWEI=y -# CONFIG_HINIC is not set -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_E100=y -CONFIG_E1000=y -CONFIG_E1000E=y -CONFIG_IGB=y -CONFIG_IGB_HWMON=y -# CONFIG_IGBVF is not set -# CONFIG_IXGB is not set -CONFIG_IXGBE=y -CONFIG_IXGBE_HWMON=y -# CONFIG_IXGBEVF is not set -# CONFIG_I40E is not set -# CONFIG_I40EVF is not set -# CONFIG_ICE is not set -# CONFIG_FM10K is not set -# CONFIG_IGC is not set -CONFIG_NET_VENDOR_WANGXUN=y -# CONFIG_NGBE is not set -# CONFIG_TXGBE is not set -# CONFIG_JME is not set -CONFIG_NET_VENDOR_ADI=y -CONFIG_NET_VENDOR_LITEX=y -# CONFIG_LITEX_LITEETH is not set -# CONFIG_NET_VENDOR_MARVELL is not set -# CONFIG_NET_VENDOR_MELLANOX is not set -# CONFIG_NET_VENDOR_MICREL is not set -# CONFIG_NET_VENDOR_MICROCHIP is not set -CONFIG_NET_VENDOR_MICROSEMI=y -CONFIG_NET_VENDOR_MICROSOFT=y -# CONFIG_NET_VENDOR_MYRI is not set -# CONFIG_FEALNX is not set -CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set -# CONFIG_NET_VENDOR_NATSEMI is not set -CONFIG_NET_VENDOR_NETERION=y -# CONFIG_S2IO is not set -CONFIG_NET_VENDOR_NETRONOME=y -# CONFIG_NFP is not set -# CONFIG_NET_VENDOR_NVIDIA is not set -# CONFIG_NET_VENDOR_OKI is not set -# CONFIG_ETHOC is not set -CONFIG_NET_VENDOR_PACKET_ENGINES=y -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -CONFIG_NET_VENDOR_PENSANDO=y -# CONFIG_IONIC is not set -# CONFIG_NET_VENDOR_QLOGIC is not set -# CONFIG_NET_VENDOR_BROCADE is not set -# CONFIG_NET_VENDOR_QUALCOMM is not set -# CONFIG_NET_VENDOR_RDC is not set -# CONFIG_NET_VENDOR_REALTEK is not set -# CONFIG_NET_VENDOR_RENESAS is not set -# CONFIG_NET_VENDOR_ROCKER is not set -# CONFIG_NET_VENDOR_SAMSUNG is not set -# CONFIG_NET_VENDOR_SEEQ is not set -# CONFIG_NET_VENDOR_SILAN is not set -# CONFIG_NET_VENDOR_SIS is not set -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set -# CONFIG_SFC_SIENA is not set -# CONFIG_NET_VENDOR_SMSC is not set -CONFIG_NET_VENDOR_SOCIONEXT=y -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_STMMAC_ETH=y -# CONFIG_STMMAC_SELFTESTS is not set -CONFIG_STMMAC_PLATFORM=y -# CONFIG_DWMAC_DWC_QOS_ETH is not set -CONFIG_DWMAC_GENERIC=y -CONFIG_DWMAC_ROCKCHIP=y -# CONFIG_DWMAC_INTEL_PLAT is not set -# CONFIG_DWMAC_LOONGSON is not set -# CONFIG_STMMAC_PCI is not set -# CONFIG_NET_VENDOR_SUN is not set -# CONFIG_NET_VENDOR_SYNOPSYS is not set -# CONFIG_NET_VENDOR_TEHUTI is not set -# CONFIG_NET_VENDOR_TI is not set -CONFIG_NET_VENDOR_VERTEXCOM=y -# CONFIG_MSE102X is not set -# CONFIG_NET_VENDOR_VIA is not set -# CONFIG_NET_VENDOR_WIZNET is not set -CONFIG_NET_VENDOR_XILINX=y -# CONFIG_XILINX_EMACLITE is not set -# CONFIG_XILINX_AXI_EMAC is not set -# CONFIG_XILINX_LL_TEMAC is not set -CONFIG_NET_VENDOR_XIRCOM=y -# CONFIG_PCMCIA_XIRC2PS is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set +CONFIG_TUN_VNET_CROSS_LE=y +CONFIG_VETH=m +CONFIG_NLMON=m +# CONFIG_ETHERNET is not set CONFIG_PHYLINK=y CONFIG_PHYLIB=y CONFIG_SWPHY=y @@ -2249,24 +1700,14 @@ CONFIG_CAN_CALC_BITTIMING=y # CONFIG_CAN_CAN327 is not set # CONFIG_CAN_FLEXCAN is not set # CONFIG_CAN_GRCAN is not set -# CONFIG_CAN_KVASER_PCIEFD is not set # CONFIG_CAN_SLCAN is not set # CONFIG_CAN_XILINXCAN is not set # CONFIG_CAN_C_CAN is not set # CONFIG_CAN_CC770 is not set -# CONFIG_CAN_CTUCANFD_PCI is not set # CONFIG_CAN_CTUCANFD_PLATFORM is not set # CONFIG_CAN_IFI_CANFD is not set # CONFIG_CAN_M_CAN is not set -# CONFIG_CAN_PEAK_PCIEFD is not set CONFIG_CAN_SJA1000=y -# CONFIG_CAN_EMS_PCI is not set -# CONFIG_CAN_EMS_PCMCIA is not set -# CONFIG_CAN_F81601 is not set -# CONFIG_CAN_KVASER_PCI is not set -# CONFIG_CAN_PEAK_PCI is not set -# CONFIG_CAN_PEAK_PCMCIA is not set -CONFIG_CAN_PLX_PCI=y # CONFIG_CAN_SJA1000_ISA is not set # CONFIG_CAN_SJA1000_PLATFORM is not set # CONFIG_CAN_SOFTING is not set @@ -2307,7 +1748,6 @@ CONFIG_MDIO_DEVRES=y # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_IPQ4019 is not set # CONFIG_MDIO_IPQ8064 is not set -# CONFIG_MDIO_THUNDER is not set # # MDIO Multiplexers @@ -2319,7 +1759,6 @@ CONFIG_MDIO_DEVRES=y # # PCS device drivers # -CONFIG_PCS_XPCS=y # end of PCS device drivers CONFIG_PPP=m @@ -2374,18 +1813,13 @@ CONFIG_USB_NET_RNDIS_HOST=y CONFIG_USB_RTL8153_ECM=m CONFIG_WLAN=y CONFIG_WLAN_VENDOR_ADMTEK=y -# CONFIG_ADM8211 is not set CONFIG_ATH_COMMON=m CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set -CONFIG_ATH5K=m -# CONFIG_ATH5K_DEBUG is not set -CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=m -CONFIG_ATH9K_PCI=y # CONFIG_ATH9K_AHB is not set # CONFIG_ATH9K_DEBUGFS is not set # CONFIG_ATH9K_DYNACK is not set @@ -2393,7 +1827,6 @@ CONFIG_ATH9K_PCI=y CONFIG_ATH9K_RFKILL=y # CONFIG_ATH9K_CHANNEL_CONTEXT is not set CONFIG_ATH9K_PCOEM=y -# CONFIG_ATH9K_PCI_NO_EEPROM is not set # CONFIG_ATH9K_HTC is not set # CONFIG_ATH9K_HWRNG is not set # CONFIG_CARL9170 is not set @@ -2402,10 +1835,8 @@ CONFIG_ATH6KL=m CONFIG_ATH6KL_USB=m # CONFIG_ATH6KL_DEBUG is not set CONFIG_AR5523=m -# CONFIG_WIL6210 is not set CONFIG_ATH10K=m CONFIG_ATH10K_CE=y -# CONFIG_ATH10K_PCI is not set # CONFIG_ATH10K_SDIO is not set # CONFIG_ATH10K_USB is not set # CONFIG_ATH10K_DEBUG is not set @@ -2413,7 +1844,6 @@ CONFIG_ATH10K_CE=y CONFIG_WCN36XX=m # CONFIG_WCN36XX_DEBUGFS is not set CONFIG_WLAN_VENDOR_ATMEL=y -# CONFIG_ATMEL is not set CONFIG_AT76C50X_USB=m CONFIG_WLAN_VENDOR_BROADCOM=y CONFIG_B43=m @@ -2422,8 +1852,6 @@ CONFIG_B43_SSB=y CONFIG_B43_BUSES_BCMA_AND_SSB=y # CONFIG_B43_BUSES_BCMA is not set # CONFIG_B43_BUSES_SSB is not set -CONFIG_B43_PCI_AUTOSELECT=y -CONFIG_B43_PCICORE_AUTOSELECT=y # CONFIG_B43_SDIO is not set CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y @@ -2439,28 +1867,18 @@ CONFIG_BRCMUTIL=m # CONFIG_BRCMSMAC is not set CONFIG_BRCMFMAC=m CONFIG_BRCMFMAC_PROTO_BCDC=y -CONFIG_BRCMFMAC_PROTO_MSGBUF=y # CONFIG_BRCMFMAC_SDIO is not set CONFIG_BRCMFMAC_USB=y -CONFIG_BRCMFMAC_PCIE=y # CONFIG_BRCM_TRACING is not set # CONFIG_BRCMDBG is not set CONFIG_WLAN_VENDOR_CISCO=y -# CONFIG_AIRO_CS is not set CONFIG_WLAN_VENDOR_INTEL=y -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWLWIFI is not set CONFIG_WLAN_VENDOR_INTERSIL=y # CONFIG_HOSTAP is not set -# CONFIG_HERMES is not set # CONFIG_P54_COMMON is not set CONFIG_WLAN_VENDOR_MARVELL=y CONFIG_LIBERTAS=m CONFIG_LIBERTAS_USB=m -# CONFIG_LIBERTAS_CS is not set # CONFIG_LIBERTAS_SDIO is not set # CONFIG_LIBERTAS_SPI is not set # CONFIG_LIBERTAS_DEBUG is not set @@ -2470,21 +1888,13 @@ CONFIG_LIBERTAS_THINFIRM=m # CONFIG_LIBERTAS_THINFIRM_USB is not set CONFIG_MWIFIEX=m CONFIG_MWIFIEX_SDIO=m -# CONFIG_MWIFIEX_PCIE is not set CONFIG_MWIFIEX_USB=m -# CONFIG_MWL8K is not set CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m # CONFIG_MT76x0U is not set -# CONFIG_MT76x0E is not set -# CONFIG_MT76x2E is not set # CONFIG_MT76x2U is not set -# CONFIG_MT7603E is not set -# CONFIG_MT7615E is not set # CONFIG_MT7663U is not set # CONFIG_MT7663S is not set -# CONFIG_MT7915E is not set -# CONFIG_MT7921E is not set # CONFIG_MT7921S is not set # CONFIG_MT7921U is not set CONFIG_WLAN_VENDOR_MICROCHIP=y @@ -2494,10 +1904,6 @@ CONFIG_WLAN_VENDOR_PURELIFI=y # CONFIG_PLFXLC is not set CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m -# CONFIG_RT2400PCI is not set -# CONFIG_RT2500PCI is not set -# CONFIG_RT61PCI is not set -# CONFIG_RT2800PCI is not set CONFIG_RT2500USB=m CONFIG_RT73USB=m CONFIG_RT2800USB=m @@ -2515,50 +1921,18 @@ CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set CONFIG_WLAN_VENDOR_REALTEK=y -CONFIG_RTL8180=m CONFIG_RTL8187=m CONFIG_RTL8187_LEDS=y CONFIG_RTL_CARDS=m -CONFIG_RTL8192CE=m -CONFIG_RTL8192SE=m -CONFIG_RTL8192DE=m -CONFIG_RTL8723AE=m -CONFIG_RTL8723BE=m -CONFIG_RTL8188EE=m -CONFIG_RTL8192EE=m -CONFIG_RTL8821AE=m CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m -CONFIG_RTLWIFI_PCI=m CONFIG_RTLWIFI_USB=m CONFIG_RTLWIFI_DEBUG=y CONFIG_RTL8192C_COMMON=m -CONFIG_RTL8723_COMMON=m -CONFIG_RTLBTCOEXIST=m CONFIG_RTL8XXXU=m CONFIG_RTL8XXXU_UNTESTED=y CONFIG_RTW88=m -CONFIG_RTW88_CORE=m -CONFIG_RTW88_PCI=m -CONFIG_RTW88_8822B=m -CONFIG_RTW88_8822C=m -CONFIG_RTW88_8723D=m -CONFIG_RTW88_8821C=m -CONFIG_RTW88_8822BE=m -CONFIG_RTW88_8822CE=m -CONFIG_RTW88_8723DE=m -CONFIG_RTW88_8821CE=m -# CONFIG_RTW88_DEBUG is not set -# CONFIG_RTW88_DEBUGFS is not set CONFIG_RTW89=m -CONFIG_RTW89_CORE=m -CONFIG_RTW89_PCI=m -CONFIG_RTW89_8852A=m -CONFIG_RTW89_8852C=m -CONFIG_RTW89_8852AE=m -CONFIG_RTW89_8852CE=m -# CONFIG_RTW89_DEBUGMSG is not set -# CONFIG_RTW89_DEBUGFS is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set CONFIG_WLAN_VENDOR_SILABS=y @@ -2575,9 +1949,6 @@ CONFIG_WLAN_VENDOR_ZYDAS=y CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set CONFIG_WLAN_VENDOR_QUANTENNA=y -# CONFIG_QTNFMAC_PCIE is not set -# CONFIG_PCMCIA_RAYCS is not set -# CONFIG_PCMCIA_WL3501 is not set # CONFIG_MAC80211_HWSIM is not set CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_VIRT_WIFI is not set @@ -2589,7 +1960,6 @@ CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_WWAN is not set # end of Wireless WAN -# CONFIG_VMXNET3 is not set # CONFIG_NETDEVSIM is not set # CONFIG_NET_FAILOVER is not set CONFIG_ISDN=y @@ -2706,8 +2076,7 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_AD7879 is not set # CONFIG_TOUCHSCREEN_ADC is not set # CONFIG_TOUCHSCREEN_AR1021_I2C is not set -CONFIG_TOUCHSCREEN_ATMEL_MXT=y -# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set # CONFIG_TOUCHSCREEN_BU21029 is not set @@ -2751,25 +2120,7 @@ CONFIG_TOUCHSCREEN_GOODIX=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -CONFIG_TOUCHSCREEN_USB_COMPOSITE=y -CONFIG_TOUCHSCREEN_USB_EGALAX=y -CONFIG_TOUCHSCREEN_USB_PANJIT=y -CONFIG_TOUCHSCREEN_USB_3M=y -CONFIG_TOUCHSCREEN_USB_ITM=y -CONFIG_TOUCHSCREEN_USB_ETURBO=y -CONFIG_TOUCHSCREEN_USB_GUNZE=y -CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y -CONFIG_TOUCHSCREEN_USB_IRTOUCH=y -CONFIG_TOUCHSCREEN_USB_IDEALTEK=y -CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y -CONFIG_TOUCHSCREEN_USB_GOTOP=y -CONFIG_TOUCHSCREEN_USB_JASTEC=y -CONFIG_TOUCHSCREEN_USB_ELO=y -CONFIG_TOUCHSCREEN_USB_E2I=y -CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y -CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y -CONFIG_TOUCHSCREEN_USB_NEXIO=y -CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set @@ -2780,7 +2131,6 @@ CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y # CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set # CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SUR40 is not set # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set @@ -2843,7 +2193,6 @@ CONFIG_RMI4_F30=y CONFIG_SERIO=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_AMBAKMI is not set -# CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_SERIO_ALTERA_PS2 is not set @@ -2855,8 +2204,6 @@ CONFIG_SERIO_LIBPS2=y CONFIG_GAMEPORT=y # CONFIG_GAMEPORT_NS558 is not set # CONFIG_GAMEPORT_L4 is not set -# CONFIG_GAMEPORT_EMU10K1 is not set -# CONFIG_GAMEPORT_FM801 is not set # end of Hardware I/O ports # end of Input device support @@ -2884,8 +2231,6 @@ CONFIG_SERIAL_8250_16550A_VARIANTS=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y -# CONFIG_SERIAL_8250_PCI is not set -# CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=5 CONFIG_SERIAL_8250_RUNTIME_UARTS=5 CONFIG_SERIAL_8250_EXTENDED=y @@ -2897,7 +2242,6 @@ CONFIG_SERIAL_8250_DWLIB=y CONFIG_SERIAL_8250_FSL=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_RT288X is not set -CONFIG_SERIAL_8250_PERICOM=y CONFIG_SERIAL_OF_PLATFORM=y # @@ -2912,7 +2256,6 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set @@ -2920,7 +2263,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_SERIAL_ARC is not set -# CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_FSL_LINFLEXUART is not set # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set @@ -2930,7 +2272,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_MCTRL_GPIO=y # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_N_GSM is not set -# CONFIG_NOZOMI is not set # CONFIG_NULL_TTY is not set # CONFIG_HVC_DCC is not set CONFIG_SERIAL_DEV_BUS=y @@ -2944,21 +2285,7 @@ CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_CCTRNG is not set # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y -CONFIG_HW_RANDOM_CN10K=y -# CONFIG_APPLICOM is not set - -# -# PCMCIA character devices -# -# CONFIG_SYNCLINK_CS is not set -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -# CONFIG_SCR24X is not set -# CONFIG_IPWIRELESS is not set -# end of PCMCIA character devices - CONFIG_DEVMEM=y -CONFIG_DEVPORT=y CONFIG_TCG_TPM=y CONFIG_HW_RANDOM_TPM=y # CONFIG_TCG_TIS is not set @@ -2968,7 +2295,6 @@ CONFIG_HW_RANDOM_TPM=y # CONFIG_TCG_TIS_I2C_ATMEL is not set CONFIG_TCG_TIS_I2C_INFINEON=y # CONFIG_TCG_TIS_I2C_NUVOTON is not set -# CONFIG_TCG_ATMEL is not set # CONFIG_TCG_VTPM_PROXY is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set @@ -3009,25 +2335,6 @@ CONFIG_I2C_ALGOBIT=y # I2C Hardware Bus support # -# -# PC SMBus host controller drivers -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_NVIDIA_GPU is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set - # # I2C system bus drivers (mostly embedded / system-on-chip) # @@ -3036,7 +2343,6 @@ CONFIG_I2C_ALGOBIT=y CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PLATFORM=y -# CONFIG_I2C_DESIGNWARE_PCI is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_NOMADIK is not set @@ -3044,7 +2350,6 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=y # CONFIG_I2C_PCA_PLATFORM is not set CONFIG_I2C_RK3X=y # CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_THUNDERX is not set # CONFIG_I2C_XILINX is not set # @@ -3052,7 +2357,6 @@ CONFIG_I2C_RK3X=y # # CONFIG_I2C_DIOLAN_U2C is not set # CONFIG_I2C_CP2615 is not set -# CONFIG_I2C_PCI1XXXX is not set # CONFIG_I2C_ROBOTFUZZ_OSIF is not set # CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_TINY_USB is not set @@ -3092,13 +2396,11 @@ CONFIG_SPI_BITBANG=y # CONFIG_SPI_MICROCHIP_CORE_QSPI is not set # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PL022 is not set -# CONFIG_SPI_PXA2XX is not set CONFIG_SPI_ROCKCHIP=y # CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_MXIC is not set -# CONFIG_SPI_THUNDERX is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set @@ -3217,18 +2519,8 @@ CONFIG_GPIO_ROCKCHIP=y # # MFD GPIO expanders # -# CONFIG_GPIO_TPS6586X is not set # end of MFD GPIO expanders -# -# PCI GPIO expanders -# -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_PCI_IDIO_16 is not set -# CONFIG_GPIO_PCIE_IDIO_24 is not set -# CONFIG_GPIO_RDC321X is not set -# end of PCI GPIO expanders - # # SPI GPIO expanders # @@ -3298,7 +2590,7 @@ CONFIG_CHARGER_GPIO=y # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set -CONFIG_CHARGER_BQ24735=y +# CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_BQ2515X is not set # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set @@ -3335,7 +2627,6 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7475 is not set # CONFIG_SENSORS_AHT10 is not set -# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set # CONFIG_SENSORS_AS370 is not set # CONFIG_SENSORS_ASC7621 is not set # CONFIG_SENSORS_AXI_FAN_CONTROL is not set @@ -3344,10 +2635,8 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_CORSAIR_CPRO is not set # CONFIG_SENSORS_CORSAIR_PSU is not set -# CONFIG_SENSORS_DRIVETEMP is not set # CONFIG_SENSORS_DS620 is not set # CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_F71882FG is not set # CONFIG_SENSORS_F75375S is not set @@ -3420,8 +2709,6 @@ CONFIG_HWMON=y # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set # CONFIG_SENSORS_NPCM7XX is not set -# CONFIG_SENSORS_NZXT_KRAKEN2 is not set -# CONFIG_SENSORS_NZXT_SMART2 is not set # CONFIG_SENSORS_OCC_P8_I2C is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_PMBUS is not set @@ -3433,7 +2720,6 @@ CONFIG_SENSORS_PWM_FAN=y # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHT4x is not set # CONFIG_SENSORS_SHTC1 is not set -# CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_EMC1403 is not set # CONFIG_SENSORS_EMC2103 is not set @@ -3463,9 +2749,7 @@ CONFIG_SENSORS_PWM_FAN=y # CONFIG_SENSORS_TMP421 is not set # CONFIG_SENSORS_TMP464 is not set # CONFIG_SENSORS_TMP513 is not set -# CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83773G is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set @@ -3525,42 +2809,22 @@ CONFIG_WATCHDOG_OPEN_TIMEOUT=0 CONFIG_DW_WATCHDOG=y # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_ARM_SMC_WATCHDOG is not set -# CONFIG_ALIM7101_WDT is not set -# CONFIG_I6300ESB_WDT is not set -# CONFIG_HP_WATCHDOG is not set # CONFIG_MEN_A21_WDT is not set -# -# PCI-based Watchdog Cards -# -# CONFIG_PCIPCWATCHDOG is not set -# CONFIG_WDTPCI is not set - # # USB-based Watchdog Cards # # CONFIG_USBPCWATCHDOG is not set CONFIG_SSB_POSSIBLE=y CONFIG_SSB=y -CONFIG_SSB_SPROM=y CONFIG_SSB_BLOCKIO=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -# CONFIG_SSB_PCMCIAHOST is not set CONFIG_SSB_SDIOHOST_POSSIBLE=y # CONFIG_SSB_SDIOHOST is not set -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_SSB_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y CONFIG_BCMA=y CONFIG_BCMA_BLOCKIO=y -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_HOST_SOC is not set -CONFIG_BCMA_DRIVER_PCI=y # CONFIG_BCMA_DRIVER_GMAC_CMN is not set # CONFIG_BCMA_DRIVER_GPIO is not set # CONFIG_BCMA_DEBUG is not set @@ -3595,10 +2859,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_HI6421_PMIC is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set -# CONFIG_LPC_ICH is not set -# CONFIG_LPC_SCH is not set # CONFIG_MFD_IQS62X is not set -# CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set @@ -3626,7 +2887,6 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_SY7636A is not set -# CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RT5120 is not set @@ -3653,7 +2913,7 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TI_LP87565 is not set # CONFIG_MFD_TPS65218 is not set -CONFIG_MFD_TPS6586X=y +# CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set @@ -3663,7 +2923,6 @@ CONFIG_MFD_TPS6586X=y # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TQMX86 is not set -# CONFIG_MFD_VX855 is not set # CONFIG_MFD_LOCHNAGAR is not set # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set @@ -3692,7 +2951,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set # CONFIG_REGULATOR_88PG86X is not set -CONFIG_REGULATOR_ACT8865=y +# CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ARM_SCMI is not set # CONFIG_REGULATOR_DA9121 is not set @@ -3751,7 +3010,6 @@ CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_TPS6507X is not set # CONFIG_REGULATOR_TPS65132 is not set # CONFIG_REGULATOR_TPS6524X is not set -CONFIG_REGULATOR_TPS6586X=y CONFIG_REGULATOR_VCTRL=y CONFIG_RC_CORE=y # CONFIG_BPF_LIRC_MODE2 is not set @@ -3759,35 +3017,17 @@ CONFIG_LIRC=y CONFIG_RC_MAP=y CONFIG_RC_DECODERS=y # CONFIG_IR_IMON_DECODER is not set -CONFIG_IR_JVC_DECODER=y -CONFIG_IR_MCE_KBD_DECODER=y -CONFIG_IR_NEC_DECODER=y -CONFIG_IR_RC5_DECODER=y -CONFIG_IR_RC6_DECODER=y +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set # CONFIG_IR_RCMM_DECODER is not set -CONFIG_IR_SANYO_DECODER=y -CONFIG_IR_SHARP_DECODER=y -CONFIG_IR_SONY_DECODER=y -CONFIG_IR_XMP_DECODER=y -CONFIG_RC_DEVICES=y -CONFIG_IR_GPIO_CIR=y -# CONFIG_IR_GPIO_TX is not set -# CONFIG_IR_HIX5HD2 is not set -# CONFIG_IR_IGORPLUGUSB is not set -# CONFIG_IR_IGUANA is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_IMON_RAW is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_PWM_TX is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_SERIAL is not set -# CONFIG_IR_SPI is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_TOY is not set -# CONFIG_IR_TTUSBIR is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_RC_LOOPBACK is not set -# CONFIG_RC_XBOX_DVD is not set +# CONFIG_IR_SANYO_DECODER is not set +# CONFIG_IR_SHARP_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_XMP_DECODER is not set +# CONFIG_RC_DEVICES is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y @@ -3829,7 +3069,6 @@ CONFIG_VIDEO_V4L2_I2C=y CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_TUNER=m CONFIG_V4L2_MEM2MEM_DEV=y CONFIG_V4L2_FWNODE=y CONFIG_V4L2_ASYNC=y @@ -3838,16 +3077,15 @@ CONFIG_V4L2_ASYNC=y # # Media controller options # -CONFIG_MEDIA_CONTROLLER_DVB=y -CONFIG_MEDIA_CONTROLLER_REQUEST_API=y +# CONFIG_MEDIA_CONTROLLER_DVB is not set # end of Media controller options # # Digital TV options # # CONFIG_DVB_MMAP is not set -CONFIG_DVB_NET=y -CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_NET is not set +CONFIG_DVB_MAX_ADAPTERS=16 # CONFIG_DVB_DYNAMIC_MINORS is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set # CONFIG_DVB_ULE_DEBUG is not set @@ -3864,149 +3102,8 @@ CONFIG_DVB_MAX_ADAPTERS=8 # # Media drivers # -CONFIG_MEDIA_USB_SUPPORT=y - -# -# Webcam devices -# -# CONFIG_USB_GSPCA is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_S2255 is not set -CONFIG_VIDEO_USBTV=m -CONFIG_USB_VIDEO_CLASS=y -# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set - -# -# Analog TV USB devices -# -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_STK1160_COMMON is not set - -# -# Analog/digital TV USB devices -# -CONFIG_VIDEO_AU0828=m -CONFIG_VIDEO_AU0828_V4L2=y -# CONFIG_VIDEO_AU0828_RC is not set -CONFIG_VIDEO_CX231XX=m -CONFIG_VIDEO_CX231XX_RC=y -CONFIG_VIDEO_CX231XX_ALSA=m -CONFIG_VIDEO_CX231XX_DVB=m - -# -# Digital TV USB devices -# -CONFIG_DVB_AS102=m -CONFIG_DVB_B2C2_FLEXCOP_USB=m -# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set -CONFIG_DVB_USB_V2=m -CONFIG_DVB_USB_AF9015=m -CONFIG_DVB_USB_AF9035=m -CONFIG_DVB_USB_ANYSEE=m -CONFIG_DVB_USB_AU6610=m -CONFIG_DVB_USB_AZ6007=m -CONFIG_DVB_USB_CE6230=m -CONFIG_DVB_USB_DVBSKY=m -CONFIG_DVB_USB_EC168=m -CONFIG_DVB_USB_GL861=m -CONFIG_DVB_USB_LME2510=m -CONFIG_DVB_USB_MXL111SF=m -CONFIG_DVB_USB_RTL28XXU=m -# CONFIG_DVB_USB_ZD1301 is not set -CONFIG_DVB_USB=y -# CONFIG_DVB_USB_DEBUG is not set -CONFIG_DVB_USB_A800=m -CONFIG_DVB_USB_AF9005=m -CONFIG_DVB_USB_AF9005_REMOTE=m -CONFIG_DVB_USB_AZ6027=m -CONFIG_DVB_USB_CINERGY_T2=m -CONFIG_DVB_USB_CXUSB=m -# CONFIG_DVB_USB_CXUSB_ANALOG is not set -CONFIG_DVB_USB_DIB0700=m -CONFIG_DVB_USB_DIB3000MC=m -CONFIG_DVB_USB_DIBUSB_MB=m -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set -CONFIG_DVB_USB_DIBUSB_MC=m -CONFIG_DVB_USB_DIGITV=m -CONFIG_DVB_USB_DTT200U=m -CONFIG_DVB_USB_DTV5100=m -CONFIG_DVB_USB_DW2102=m -CONFIG_DVB_USB_GP8PSK=m -CONFIG_DVB_USB_M920X=m -CONFIG_DVB_USB_NOVA_T_USB2=m -CONFIG_DVB_USB_OPERA1=m -CONFIG_DVB_USB_PCTV452E=m -CONFIG_DVB_USB_TECHNISAT_USB2=m -CONFIG_DVB_USB_TTUSB2=m -CONFIG_DVB_USB_UMT_010=m -CONFIG_DVB_USB_VP702X=m -CONFIG_DVB_USB_VP7045=m -# CONFIG_SMS_USB_DRV is not set -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m - -# -# Webcam, TV (analog/digital) USB devices -# -CONFIG_VIDEO_EM28XX=m -CONFIG_VIDEO_EM28XX_V4L2=m -CONFIG_VIDEO_EM28XX_ALSA=m -CONFIG_VIDEO_EM28XX_DVB=m -CONFIG_VIDEO_EM28XX_RC=m - -# -# Software defined radio USB devices -# -CONFIG_USB_AIRSPY=m -CONFIG_USB_HACKRF=m -CONFIG_USB_MSI2500=m -CONFIG_MEDIA_PCI_SUPPORT=y - -# -# Media capture support -# -# CONFIG_VIDEO_SOLO6X10 is not set -# CONFIG_VIDEO_TW5864 is not set -# CONFIG_VIDEO_TW68 is not set -# CONFIG_VIDEO_TW686X is not set -# CONFIG_VIDEO_ZORAN is not set - -# -# Media capture/analog TV support -# -# CONFIG_VIDEO_DT3155 is not set -# CONFIG_VIDEO_IVTV is not set - -# -# Media capture/analog/hybrid TV support -# -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_CX18 is not set -CONFIG_VIDEO_CX23885=m -# CONFIG_MEDIA_ALTERA_CI is not set -CONFIG_VIDEO_CX25821=m -# CONFIG_VIDEO_CX25821_ALSA is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_SAA7164 is not set - -# -# Media digital TV PCI Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP_PCI is not set -# CONFIG_DVB_DDBRIDGE is not set -# CONFIG_DVB_DM1105 is not set -# CONFIG_MANTIS_CORE is not set -# CONFIG_DVB_NETUP_UNIDVB is not set -# CONFIG_DVB_NGENE is not set -# CONFIG_DVB_PLUTO2 is not set -# CONFIG_DVB_PT1 is not set -# CONFIG_DVB_PT3 is not set -# CONFIG_DVB_SMIPCIE is not set +# CONFIG_MEDIA_USB_SUPPORT is not set CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_SAA7706H is not set # CONFIG_RADIO_SHARK is not set # CONFIG_RADIO_SHARK2 is not set @@ -4066,7 +3163,6 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y # # Marvell media platform drivers # -# CONFIG_VIDEO_CAFE_CCIC is not set # # Mediatek media platform drivers @@ -4113,7 +3209,7 @@ CONFIG_VIDEO_ROCKCHIP_ISP1=y # # Verisilicon media platform drivers # -# CONFIG_VIDEO_HANTRO is not configured +# CONFIG_VIDEO_HANTRO is not set # # VIA media platform drivers @@ -4130,18 +3226,12 @@ CONFIG_VIDEO_ROCKCHIP_ISP1=y # CONFIG_SMS_SDIO_DRV is not set # CONFIG_V4L_TEST_DRIVERS is not set # CONFIG_DVB_TEST_DRIVERS is not set -CONFIG_CYPRESS_FIRMWARE=y -CONFIG_TTPCI_EEPROM=m -CONFIG_VIDEO_CX2341X=m -CONFIG_VIDEO_TVEEPROM=m -CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEOBUF2_CORE=y CONFIG_VIDEOBUF2_V4L2=y CONFIG_VIDEOBUF2_MEMOPS=y CONFIG_VIDEOBUF2_DMA_CONTIG=y CONFIG_VIDEOBUF2_VMALLOC=y CONFIG_VIDEOBUF2_DMA_SG=y -CONFIG_VIDEOBUF2_DVB=m # end of Media drivers # @@ -4153,77 +3243,7 @@ CONFIG_MEDIA_ATTACH=y # IR I2C driver auto-selected by 'Autoselect ancillary drivers' # # CONFIG_VIDEO_IR_I2C is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_AR0521 is not set -# CONFIG_VIDEO_HI556 is not set -# CONFIG_VIDEO_HI846 is not set -# CONFIG_VIDEO_HI847 is not set -# CONFIG_VIDEO_IMX208 is not set -# CONFIG_VIDEO_IMX214 is not set -CONFIG_VIDEO_IMX219=y -# CONFIG_VIDEO_IMX258 is not set -# CONFIG_VIDEO_IMX274 is not set -# CONFIG_VIDEO_IMX290 is not set -# CONFIG_VIDEO_IMX319 is not set -# CONFIG_VIDEO_IMX334 is not set -# CONFIG_VIDEO_IMX335 is not set -# CONFIG_VIDEO_IMX355 is not set -# CONFIG_VIDEO_IMX412 is not set -# CONFIG_VIDEO_MT9M001 is not set -# CONFIG_VIDEO_MT9M032 is not set -# CONFIG_VIDEO_MT9M111 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9T112 is not set -CONFIG_VIDEO_MT9V011=m -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_MT9V111 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_OG01A1B is not set -# CONFIG_VIDEO_OV02A10 is not set -# CONFIG_VIDEO_OV08D10 is not set -# CONFIG_VIDEO_OV13858 is not set -# CONFIG_VIDEO_OV13B10 is not set -CONFIG_VIDEO_OV2640=m -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV5640 is not set -CONFIG_VIDEO_OV5645=y -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV5648 is not set -# CONFIG_VIDEO_OV5670 is not set -# CONFIG_VIDEO_OV5675 is not set -# CONFIG_VIDEO_OV5693 is not set -# CONFIG_VIDEO_OV5695 is not set -# CONFIG_VIDEO_OV6650 is not set -# CONFIG_VIDEO_OV7251 is not set -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV772X is not set -# CONFIG_VIDEO_OV7740 is not set -# CONFIG_VIDEO_OV8856 is not set -# CONFIG_VIDEO_OV8865 is not set -# CONFIG_VIDEO_OV9282 is not set -# CONFIG_VIDEO_OV9640 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_RDACM20 is not set -# CONFIG_VIDEO_RDACM21 is not set -# CONFIG_VIDEO_RJ54N1 is not set -# CONFIG_VIDEO_S5C73M3 is not set -# CONFIG_VIDEO_S5K4ECGX is not set -# CONFIG_VIDEO_S5K5BAF is not set -# CONFIG_VIDEO_S5K6A3 is not set -# CONFIG_VIDEO_S5K6AA is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_VS6624 is not set -# CONFIG_VIDEO_CCS is not set -# CONFIG_VIDEO_ET8EK8 is not set -# CONFIG_VIDEO_M5MOLS is not set -# end of Camera sensor devices +# CONFIG_VIDEO_CAMERA_SENSOR is not set # # Lens drivers @@ -4286,10 +3306,10 @@ CONFIG_VIDEO_MSP3400=m # CONFIG_VIDEO_MAX9286 is not set # CONFIG_VIDEO_ML86V7667 is not set # CONFIG_VIDEO_SAA7110 is not set -CONFIG_VIDEO_SAA711X=m +# CONFIG_VIDEO_SAA711X is not set # CONFIG_VIDEO_TC358743 is not set # CONFIG_VIDEO_TVP514X is not set -CONFIG_VIDEO_TVP5150=m +# CONFIG_VIDEO_TVP5150 is not set # CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_TW2804 is not set # CONFIG_VIDEO_TW9903 is not set @@ -4301,7 +3321,7 @@ CONFIG_VIDEO_TVP5150=m # Video and audio decoders # # CONFIG_VIDEO_SAA717X is not set -CONFIG_VIDEO_CX25840=m +# CONFIG_VIDEO_CX25840 is not set # end of Video decoders # @@ -4350,7 +3370,7 @@ CONFIG_VIDEO_CX25840=m # # Media SPI Adapters # -CONFIG_CXD2880_SPI_DRV=m +# CONFIG_CXD2880_SPI_DRV is not set # CONFIG_VIDEO_GS1662 is not set # end of Media SPI Adapters @@ -4359,40 +3379,40 @@ CONFIG_MEDIA_TUNER=y # # Customize TV tuners # -CONFIG_MEDIA_TUNER_E4000=m -CONFIG_MEDIA_TUNER_FC0011=m -CONFIG_MEDIA_TUNER_FC0012=m -CONFIG_MEDIA_TUNER_FC0013=m -CONFIG_MEDIA_TUNER_FC2580=m -CONFIG_MEDIA_TUNER_IT913X=m -CONFIG_MEDIA_TUNER_M88RS6000T=m -CONFIG_MEDIA_TUNER_MAX2165=m +# CONFIG_MEDIA_TUNER_E4000 is not set +# CONFIG_MEDIA_TUNER_FC0011 is not set +# CONFIG_MEDIA_TUNER_FC0012 is not set +# CONFIG_MEDIA_TUNER_FC0013 is not set +# CONFIG_MEDIA_TUNER_FC2580 is not set +# CONFIG_MEDIA_TUNER_IT913X is not set +# CONFIG_MEDIA_TUNER_M88RS6000T is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set CONFIG_MEDIA_TUNER_MC44S803=y -CONFIG_MEDIA_TUNER_MSI001=m -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2063=m +# CONFIG_MEDIA_TUNER_MSI001 is not set +# CONFIG_MEDIA_TUNER_MT2060 is not set +# CONFIG_MEDIA_TUNER_MT2063 is not set CONFIG_MEDIA_TUNER_MT20XX=y -CONFIG_MEDIA_TUNER_MT2131=m -CONFIG_MEDIA_TUNER_MT2266=m +# CONFIG_MEDIA_TUNER_MT2131 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set # CONFIG_MEDIA_TUNER_MXL301RF is not set -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_MEDIA_TUNER_MXL5007T=m +# CONFIG_MEDIA_TUNER_MXL5005S is not set +# CONFIG_MEDIA_TUNER_MXL5007T is not set # CONFIG_MEDIA_TUNER_QM1D1B0004 is not set -CONFIG_MEDIA_TUNER_QM1D1C0042=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_R820T=m -CONFIG_MEDIA_TUNER_SI2157=m +# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_R820T is not set +# CONFIG_MEDIA_TUNER_SI2157 is not set CONFIG_MEDIA_TUNER_SIMPLE=y -CONFIG_MEDIA_TUNER_TDA18212=m -CONFIG_MEDIA_TUNER_TDA18218=m -CONFIG_MEDIA_TUNER_TDA18250=m +# CONFIG_MEDIA_TUNER_TDA18212 is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +# CONFIG_MEDIA_TUNER_TDA18250 is not set CONFIG_MEDIA_TUNER_TDA18271=y CONFIG_MEDIA_TUNER_TDA827X=y CONFIG_MEDIA_TUNER_TDA8290=y CONFIG_MEDIA_TUNER_TDA9887=y CONFIG_MEDIA_TUNER_TEA5761=y CONFIG_MEDIA_TUNER_TEA5767=y -CONFIG_MEDIA_TUNER_TUA9001=m +# CONFIG_MEDIA_TUNER_TUA9001 is not set CONFIG_MEDIA_TUNER_XC2028=y CONFIG_MEDIA_TUNER_XC4000=y CONFIG_MEDIA_TUNER_XC5000=y @@ -4405,156 +3425,153 @@ CONFIG_MEDIA_TUNER_XC5000=y # # Multistandard (satellite) frontends # -CONFIG_DVB_M88DS3103=m +# CONFIG_DVB_M88DS3103 is not set # CONFIG_DVB_MXL5XX is not set -CONFIG_DVB_STB0899=m -CONFIG_DVB_STB6100=m -CONFIG_DVB_STV090x=m +# CONFIG_DVB_STB0899 is not set +# CONFIG_DVB_STB6100 is not set +# CONFIG_DVB_STV090x is not set # CONFIG_DVB_STV0910 is not set -CONFIG_DVB_STV6110x=m +# CONFIG_DVB_STV6110x is not set # CONFIG_DVB_STV6111 is not set # # Multistandard (cable + terrestrial) frontends # -CONFIG_DVB_DRXK=m -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m -CONFIG_DVB_SI2165=m -CONFIG_DVB_TDA18271C2DD=m +# CONFIG_DVB_DRXK is not set +# CONFIG_DVB_MN88472 is not set +# CONFIG_DVB_MN88473 is not set +# CONFIG_DVB_SI2165 is not set +# CONFIG_DVB_TDA18271C2DD is not set # # DVB-S (satellite) frontends # # CONFIG_DVB_CX24110 is not set -CONFIG_DVB_CX24116=m -CONFIG_DVB_CX24117=m -CONFIG_DVB_CX24120=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_DS3000=m +# CONFIG_DVB_CX24116 is not set +# CONFIG_DVB_CX24117 is not set +# CONFIG_DVB_CX24120 is not set +# CONFIG_DVB_CX24123 is not set +# CONFIG_DVB_DS3000 is not set # CONFIG_DVB_MB86A16 is not set -CONFIG_DVB_MT312=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_SI21XX=m -CONFIG_DVB_STB6000=m -CONFIG_DVB_STV0288=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_STV0900=m -CONFIG_DVB_STV6110=m -CONFIG_DVB_TDA10071=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_TDA8083=m +# CONFIG_DVB_MT312 is not set +# CONFIG_DVB_S5H1420 is not set +# CONFIG_DVB_SI21XX is not set +# CONFIG_DVB_STB6000 is not set +# CONFIG_DVB_STV0288 is not set +# CONFIG_DVB_STV0299 is not set +# CONFIG_DVB_STV0900 is not set +# CONFIG_DVB_STV6110 is not set +# CONFIG_DVB_TDA10071 is not set +# CONFIG_DVB_TDA10086 is not set +# CONFIG_DVB_TDA8083 is not set # CONFIG_DVB_TDA8261 is not set -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TS2020=m +# CONFIG_DVB_TDA826X is not set +# CONFIG_DVB_TS2020 is not set # CONFIG_DVB_TUA6100 is not set -CONFIG_DVB_TUNER_CX24113=m -CONFIG_DVB_TUNER_ITD1000=m +# CONFIG_DVB_TUNER_CX24113 is not set +# CONFIG_DVB_TUNER_ITD1000 is not set # CONFIG_DVB_VES1X93 is not set # CONFIG_DVB_ZL10036 is not set -CONFIG_DVB_ZL10039=m +# CONFIG_DVB_ZL10039 is not set # # DVB-T (terrestrial) frontends # -CONFIG_DVB_AF9013=m -CONFIG_DVB_AS102_FE=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_CXD2820R=m -CONFIG_DVB_CXD2841ER=m -CONFIG_DVB_DIB3000MB=m -CONFIG_DVB_DIB3000MC=m -CONFIG_DVB_DIB7000M=m -CONFIG_DVB_DIB7000P=m +# CONFIG_DVB_AF9013 is not set +# CONFIG_DVB_CX22700 is not set +# CONFIG_DVB_CX22702 is not set +# CONFIG_DVB_CXD2820R is not set +# CONFIG_DVB_CXD2841ER is not set +# CONFIG_DVB_DIB3000MB is not set +# CONFIG_DVB_DIB3000MC is not set +# CONFIG_DVB_DIB7000M is not set +# CONFIG_DVB_DIB7000P is not set # CONFIG_DVB_DIB9000 is not set -CONFIG_DVB_DRXD=m -CONFIG_DVB_EC100=m -CONFIG_DVB_GP8PSK_FE=m +# CONFIG_DVB_DRXD is not set +# CONFIG_DVB_EC100 is not set # CONFIG_DVB_L64781 is not set -CONFIG_DVB_MT352=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_RTL2830=m -CONFIG_DVB_RTL2832=m -CONFIG_DVB_RTL2832_SDR=m +# CONFIG_DVB_MT352 is not set +# CONFIG_DVB_NXT6000 is not set +# CONFIG_DVB_RTL2830 is not set +# CONFIG_DVB_RTL2832 is not set +# CONFIG_DVB_RTL2832_SDR is not set # CONFIG_DVB_S5H1432 is not set -CONFIG_DVB_SI2168=m +# CONFIG_DVB_SI2168 is not set # CONFIG_DVB_SP887X is not set -CONFIG_DVB_STV0367=m -CONFIG_DVB_TDA10048=m -CONFIG_DVB_TDA1004X=m +# CONFIG_DVB_STV0367 is not set +# CONFIG_DVB_TDA10048 is not set +# CONFIG_DVB_TDA1004X is not set # CONFIG_DVB_ZD1301_DEMOD is not set -CONFIG_DVB_ZL10353=m +# CONFIG_DVB_ZL10353 is not set # CONFIG_DVB_CXD2880 is not set # # DVB-C (cable) frontends # -CONFIG_DVB_STV0297=m +# CONFIG_DVB_STV0297 is not set # CONFIG_DVB_TDA10021 is not set -CONFIG_DVB_TDA10023=m -CONFIG_DVB_VES1820=m +# CONFIG_DVB_TDA10023 is not set +# CONFIG_DVB_VES1820 is not set # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # -CONFIG_DVB_AU8522=m -CONFIG_DVB_AU8522_DTV=m -CONFIG_DVB_AU8522_V4L=m -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LG2160=m -CONFIG_DVB_LGDT3305=m -CONFIG_DVB_LGDT3306A=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_MXL692=m -CONFIG_DVB_NXT200X=m +# CONFIG_DVB_AU8522_DTV is not set +# CONFIG_DVB_AU8522_V4L is not set +# CONFIG_DVB_BCM3510 is not set +# CONFIG_DVB_LG2160 is not set +# CONFIG_DVB_LGDT3305 is not set +# CONFIG_DVB_LGDT3306A is not set +# CONFIG_DVB_LGDT330X is not set +# CONFIG_DVB_MXL692 is not set +# CONFIG_DVB_NXT200X is not set # CONFIG_DVB_OR51132 is not set # CONFIG_DVB_OR51211 is not set -CONFIG_DVB_S5H1409=m -CONFIG_DVB_S5H1411=m +# CONFIG_DVB_S5H1409 is not set +# CONFIG_DVB_S5H1411 is not set # # ISDB-T (terrestrial) frontends # -CONFIG_DVB_DIB8000=m -CONFIG_DVB_MB86A20S=m -CONFIG_DVB_S921=m +# CONFIG_DVB_DIB8000 is not set +# CONFIG_DVB_MB86A20S is not set +# CONFIG_DVB_S921 is not set # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # # CONFIG_DVB_MN88443X is not set -CONFIG_DVB_TC90522=m +# CONFIG_DVB_TC90522 is not set # # Digital terrestrial only tuners/PLL # -CONFIG_DVB_PLL=m -CONFIG_DVB_TUNER_DIB0070=m -CONFIG_DVB_TUNER_DIB0090=m +# CONFIG_DVB_PLL is not set +# CONFIG_DVB_TUNER_DIB0070 is not set +# CONFIG_DVB_TUNER_DIB0090 is not set # # SEC control devices for DVB-S # -CONFIG_DVB_A8293=m -CONFIG_DVB_AF9033=m -CONFIG_DVB_ASCOT2E=m -CONFIG_DVB_ATBM8830=m -CONFIG_DVB_HELENE=m -CONFIG_DVB_HORUS3A=m -CONFIG_DVB_ISL6405=m -CONFIG_DVB_ISL6421=m -CONFIG_DVB_ISL6423=m -CONFIG_DVB_IX2505V=m -CONFIG_DVB_LGS8GL5=m -CONFIG_DVB_LGS8GXX=m -CONFIG_DVB_LNBH25=m -CONFIG_DVB_LNBH29=m -CONFIG_DVB_LNBP21=m -CONFIG_DVB_LNBP22=m -CONFIG_DVB_M88RS2000=m -CONFIG_DVB_TDA665x=m -CONFIG_DVB_DRX39XYJ=m +# CONFIG_DVB_A8293 is not set +# CONFIG_DVB_AF9033 is not set +# CONFIG_DVB_ASCOT2E is not set +# CONFIG_DVB_ATBM8830 is not set +# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_HORUS3A is not set +# CONFIG_DVB_ISL6405 is not set +# CONFIG_DVB_ISL6421 is not set +# CONFIG_DVB_ISL6423 is not set +# CONFIG_DVB_IX2505V is not set +# CONFIG_DVB_LGS8GL5 is not set +# CONFIG_DVB_LGS8GXX is not set +# CONFIG_DVB_LNBH25 is not set +# CONFIG_DVB_LNBH29 is not set +# CONFIG_DVB_LNBP21 is not set +# CONFIG_DVB_LNBP22 is not set +# CONFIG_DVB_M88RS2000 is not set +# CONFIG_DVB_TDA665x is not set +# CONFIG_DVB_DRX39XYJ is not set # # Common Interface (EN50221) controller drivers @@ -4587,9 +3604,6 @@ CONFIG_DRM_DISPLAY_DP_HELPER=y CONFIG_DRM_DISPLAY_HDMI_HELPER=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DP_CEC is not set -CONFIG_DRM_TTM=m -CONFIG_DRM_VRAM_HELPER=m -CONFIG_DRM_TTM_HELPER=m CONFIG_DRM_GEM_DMA_HELPER=y CONFIG_DRM_GEM_SHMEM_HELPER=y CONFIG_DRM_SCHED=y @@ -4611,30 +3625,23 @@ CONFIG_DRM_SCHED=y # CONFIG_DRM_KOMEDA is not set # end of ARM devices -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_AMDGPU is not set -# CONFIG_DRM_NOUVEAU is not set # CONFIG_DRM_VGEM is not set # CONFIG_DRM_VKMS is not set CONFIG_DRM_ROCKCHIP=y CONFIG_ROCKCHIP_VOP=y # CONFIG_ROCKCHIP_VOP2 is not set -CONFIG_ROCKCHIP_ANALOGIX_DP=y +# CONFIG_ROCKCHIP_ANALOGIX_DP is not set CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y -CONFIG_ROCKCHIP_INNO_HDMI=y -CONFIG_ROCKCHIP_LVDS=y +# CONFIG_ROCKCHIP_INNO_HDMI is not set +# CONFIG_ROCKCHIP_LVDS is not set CONFIG_ROCKCHIP_RGB=y -CONFIG_ROCKCHIP_RK3066_HDMI=y -# CONFIG_DRM_VMWGFX is not set -CONFIG_DRM_UDL=y -CONFIG_DRM_AST=m -# CONFIG_DRM_MGAG200 is not set +# CONFIG_ROCKCHIP_RK3066_HDMI is not set +# CONFIG_DRM_UDL is not set # CONFIG_DRM_RCAR_DW_HDMI is not set # CONFIG_DRM_RCAR_USE_LVDS is not set # CONFIG_DRM_RCAR_USE_MIPI_DSI is not set -# CONFIG_DRM_QXL is not set CONFIG_DRM_PANEL=y # @@ -4754,7 +3761,6 @@ CONFIG_DRM_SIMPLE_BRIDGE=y # CONFIG_DRM_TI_TPD12S015 is not set # CONFIG_DRM_ANALOGIX_ANX6345 is not set # CONFIG_DRM_ANALOGIX_ANX78XX is not set -CONFIG_DRM_ANALOGIX_DP=y # CONFIG_DRM_ANALOGIX_ANX7625 is not set # CONFIG_DRM_I2C_ADV7511 is not set # CONFIG_DRM_CDNS_MHDP8546 is not set @@ -4767,12 +3773,9 @@ CONFIG_DRM_DW_MIPI_DSI=y # end of Display Interface Bridges # CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_HISI_KIRIN is not set # CONFIG_DRM_LOGICVC is not set # CONFIG_DRM_ARCPGU is not set -# CONFIG_DRM_BOCHS is not set -# CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_GM12U320 is not set # CONFIG_DRM_PANEL_MIPI_DBI is not set # CONFIG_DRM_SIMPLEDRM is not set @@ -4817,43 +3820,17 @@ CONFIG_FB_MODE_HELPERS=y # # Frame buffer hardware drivers # -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set # CONFIG_FB_ARMCLCD is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set # CONFIG_FB_UVESA is not set # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_I740 is not set -# CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_CARMINE is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SSD1307 is not set -# CONFIG_FB_SM712 is not set # end of Frame buffer Devices # @@ -4903,7 +3880,6 @@ CONFIG_SND_PCM_ELD=y CONFIG_SND_PCM_IEC958=y CONFIG_SND_DMAENGINE_PCM=y CONFIG_SND_SEQ_DEVICE=y -CONFIG_SND_RAWMIDI=y CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y # CONFIG_SND_OSSEMUL is not set @@ -4921,10 +3897,7 @@ CONFIG_SND_CTL_FAST_LOOKUP=y CONFIG_SND_SEQUENCER=y CONFIG_SND_SEQ_DUMMY=y CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_SEQ_MIDI_EVENT=y -CONFIG_SND_SEQ_MIDI=y # CONFIG_SND_DRIVERS is not set -# CONFIG_SND_PCI is not set # # HD-Audio @@ -4934,9 +3907,6 @@ CONFIG_SND_SEQ_MIDI=y CONFIG_SND_HDA_PREALLOC_SIZE=64 # CONFIG_SND_SPI is not set # CONFIG_SND_USB is not set -CONFIG_SND_PCMCIA=y -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set CONFIG_SND_SOC=y CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # CONFIG_SND_SOC_ADI is not set @@ -4974,8 +3944,8 @@ CONFIG_SND_SOC_ROCKCHIP_I2S=y CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y CONFIG_SND_SOC_ROCKCHIP_PDM=y CONFIG_SND_SOC_ROCKCHIP_SPDIF=y -CONFIG_SND_SOC_ROCKCHIP_MAX98090=y -CONFIG_SND_SOC_ROCKCHIP_RT5645=y +# CONFIG_SND_SOC_ROCKCHIP_MAX98090 is not set +# CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set # CONFIG_SND_SOC_RK3288_HDMI_ANALOG is not set # CONFIG_SND_SOC_RK3399_GRU_SOUND is not set # CONFIG_SND_SOC_SOF_TOPLEVEL is not set @@ -5056,7 +4026,6 @@ CONFIG_SND_SOC_ES8316=y # CONFIG_SND_SOC_ICS43432 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98088 is not set -CONFIG_SND_SOC_MAX98090=y # CONFIG_SND_SOC_MAX98357A is not set # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9867 is not set @@ -5081,12 +4050,10 @@ CONFIG_SND_SOC_MAX98090=y # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set -CONFIG_SND_SOC_RK817=y -CONFIG_SND_SOC_RL6231=y +# CONFIG_SND_SOC_RK817 is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5640 is not set -CONFIG_SND_SOC_RT5645=y # CONFIG_SND_SOC_RT5659 is not set # CONFIG_SND_SOC_RT9120 is not set # CONFIG_SND_SOC_SGTL5000 is not set @@ -5124,7 +4091,7 @@ CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_TLV320AIC3X_I2C is not set # CONFIG_SND_SOC_TLV320AIC3X_SPI is not set # CONFIG_SND_SOC_TLV320ADCX140 is not set -CONFIG_SND_SOC_TS3A227E=y +# CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_TSCS42XX is not set # CONFIG_SND_SOC_TSCS454 is not set # CONFIG_SND_SOC_UDA1334 is not set @@ -5190,130 +4157,90 @@ CONFIG_HID_GENERIC=y # # Special HID drivers # -CONFIG_HID_A4TECH=y -# CONFIG_HID_ACCUTOUCH is not set -CONFIG_HID_ACRUX=y -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=y -CONFIG_HID_APPLEIR=y -# CONFIG_HID_ASUS is not set -CONFIG_HID_AUREAL=y -CONFIG_HID_BELKIN=y -CONFIG_HID_BETOP_FF=y -# CONFIG_HID_BIGBEN_FF is not set -CONFIG_HID_CHERRY=y -CONFIG_HID_CHICONY=y -CONFIG_HID_CORSAIR=y +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CHERRY is not set # CONFIG_HID_COUGAR is not set # CONFIG_HID_MACALLY is not set -CONFIG_HID_PRODIKEYS=y # CONFIG_HID_CMEDIA is not set -CONFIG_HID_CP2112=y -# CONFIG_HID_CREATIVE_SB0540 is not set -CONFIG_HID_CYPRESS=y -CONFIG_HID_DRAGONRISE=y -CONFIG_DRAGONRISE_FF=y -CONFIG_HID_EMS_FF=y -# CONFIG_HID_ELAN is not set -CONFIG_HID_ELECOM=y -CONFIG_HID_ELO=y -CONFIG_HID_EZKEY=y -# CONFIG_HID_FT260 is not set -CONFIG_HID_GEMBIRD=y -CONFIG_HID_GFRM=y +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set # CONFIG_HID_GLORIOUS is not set -CONFIG_HID_HOLTEK=y -CONFIG_HOLTEK_FF=y # CONFIG_HID_VIVALDI is not set -CONFIG_HID_GT683R=y -CONFIG_HID_KEYTOUCH=y -CONFIG_HID_KYE=y -CONFIG_HID_UCLOGIC=y -CONFIG_HID_WALTOP=y +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_WALTOP is not set # CONFIG_HID_VIEWSONIC is not set # CONFIG_HID_VRC2 is not set # CONFIG_HID_XIAOMI is not set -CONFIG_HID_GYRATION=y -CONFIG_HID_ICADE=y +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set # CONFIG_HID_ITE is not set # CONFIG_HID_JABRA is not set -CONFIG_HID_TWINHAN=y -CONFIG_HID_KENSINGTON=y -CONFIG_HID_LCPOWER=y -CONFIG_HID_LED=y -CONFIG_HID_LENOVO=y -# CONFIG_HID_LETSKETCH is not set -CONFIG_HID_LOGITECH=y -CONFIG_HID_LOGITECH_DJ=y -CONFIG_HID_LOGITECH_HIDPP=y -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_LOGIG940_FF=y -CONFIG_LOGIWHEELS_FF=y -CONFIG_HID_MAGICMOUSE=y +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LED is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MALTRON is not set # CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MEGAWORLD_FF is not set # CONFIG_HID_REDRAGON is not set -CONFIG_HID_MICROSOFT=y -CONFIG_HID_MONTEREY=y -CONFIG_HID_MULTITOUCH=y +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set # CONFIG_HID_NINTENDO is not set # CONFIG_HID_NTI is not set -CONFIG_HID_NTRIG=y -CONFIG_HID_ORTEK=y -CONFIG_HID_PANTHERLORD=y -CONFIG_PANTHERLORD_FF=y -CONFIG_HID_PENMOUNT=y -CONFIG_HID_PETALYNX=y +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set # CONFIG_HID_PICOLCD is not set -CONFIG_HID_PLANTRONICS=y +# CONFIG_HID_PLANTRONICS is not set # CONFIG_HID_PXRC is not set # CONFIG_HID_RAZER is not set -CONFIG_HID_PRIMAX=y -# CONFIG_HID_RETRODE is not set -CONFIG_HID_ROCCAT=y -CONFIG_HID_SAITEK=y -CONFIG_HID_SAMSUNG=y +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_SAITEK is not set # CONFIG_HID_SEMITEK is not set -# CONFIG_HID_SIGMAMICRO is not set -CONFIG_HID_SONY=y -# CONFIG_SONY_FF is not set -CONFIG_HID_SPEEDLINK=y +# CONFIG_HID_SPEEDLINK is not set # CONFIG_HID_STEAM is not set -CONFIG_HID_STEELSERIES=y -CONFIG_HID_SUNPLUS=y -CONFIG_HID_RMI=y -CONFIG_HID_GREENASIA=y -CONFIG_GREENASIA_FF=y -CONFIG_HID_SMARTJOYPLUS=y -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_HID_TIVO=y -CONFIG_HID_TOPSEED=y +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set # CONFIG_HID_TOPRE is not set -CONFIG_HID_THINGM=y -CONFIG_HID_THRUSTMASTER=y -CONFIG_THRUSTMASTER_FF=y +# CONFIG_HID_THINGM is not set # CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_U2FZERO is not set -CONFIG_HID_WACOM=y -CONFIG_HID_WIIMOTE=y -CONFIG_HID_XINMO=y -CONFIG_HID_ZEROPLUS=y -CONFIG_ZEROPLUS_FF=y -CONFIG_HID_ZYDACRON=y -CONFIG_HID_SENSOR_HUB=y -CONFIG_HID_SENSOR_CUSTOM_SENSOR=y -CONFIG_HID_ALPS=y -# CONFIG_HID_MCP2221 is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set # end of Special HID drivers # # USB HID support # -CONFIG_USB_HID=y +# CONFIG_USB_HID is not set # CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# end of USB HID Boot Protocol drivers # end of USB HID support # @@ -5335,7 +4262,6 @@ CONFIG_USB_COMMON=y # CONFIG_USB_CONN_GPIO is not set CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y -CONFIG_USB_PCI=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # @@ -5358,13 +4284,11 @@ CONFIG_USB_MON=y # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set -CONFIG_USB_XHCI_PCI=y # CONFIG_USB_XHCI_PCI_RENESAS is not set CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_OXU210HP_HCD is not set @@ -5372,10 +4296,8 @@ CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_HCD_PCI is not set # CONFIG_USB_OHCI_HCD_SSB is not set CONFIG_USB_OHCI_HCD_PLATFORM=y -# CONFIG_USB_UHCI_HCD is not set # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_HCD_BCMA is not set @@ -5431,7 +4353,6 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # # Platform Glue Driver Support # -CONFIG_USB_DWC3_HAPS=y CONFIG_USB_DWC3_OF_SIMPLE=y CONFIG_USB_DWC2=y # CONFIG_USB_DWC2_HOST is not set @@ -5441,7 +4362,6 @@ CONFIG_USB_DWC2=y # # CONFIG_USB_DWC2_PERIPHERAL is not set CONFIG_USB_DWC2_DUAL_ROLE=y -# CONFIG_USB_DWC2_PCI is not set # CONFIG_USB_DWC2_DEBUG is not set # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set # CONFIG_USB_CHIPIDEA is not set @@ -5460,10 +4380,10 @@ CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_CH341=y # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -CONFIG_USB_SERIAL_CP210X=y +# CONFIG_USB_SERIAL_CP210X is not set # CONFIG_USB_SERIAL_CYPRESS_M8 is not set # CONFIG_USB_SERIAL_EMPEG is not set -CONFIG_USB_SERIAL_FTDI_SIO=y +# CONFIG_USB_SERIAL_FTDI_SIO is not set # CONFIG_USB_SERIAL_VISOR is not set # CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set @@ -5475,7 +4395,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y # CONFIG_USB_SERIAL_IPW is not set # CONFIG_USB_SERIAL_IUU is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -CONFIG_USB_SERIAL_KEYSPAN=y +# CONFIG_USB_SERIAL_KEYSPAN is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_MCT_U232 is not set @@ -5484,13 +4404,13 @@ CONFIG_USB_SERIAL_KEYSPAN=y # CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_MXUPORT is not set # CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=y -CONFIG_USB_SERIAL_OTI6858=y +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set # CONFIG_USB_SERIAL_QCAUX is not set -CONFIG_USB_SERIAL_QUALCOMM=y +# CONFIG_USB_SERIAL_QUALCOMM is not set # CONFIG_USB_SERIAL_SPCP8X5 is not set # CONFIG_USB_SERIAL_SAFE is not set -CONFIG_USB_SERIAL_SIERRAWIRELESS=y +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set # CONFIG_USB_SERIAL_SYMBOL is not set # CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set @@ -5567,11 +4487,7 @@ CONFIG_U_SERIAL_CONSOLE=y # CONFIG_USB_SNP_UDC_PLAT is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set -# CONFIG_USB_AMD5536UDC is not set # CONFIG_USB_NET2272 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_USB_GOKU is not set -# CONFIG_USB_EG20T is not set # CONFIG_USB_GADGET_XILINX is not set # CONFIG_USB_MAX3420_UDC is not set # CONFIG_USB_DUMMY_HCD is not set @@ -5668,7 +4584,6 @@ CONFIG_MMC_TEST=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_ARMMMCI is not set CONFIG_MMC_SDHCI=y -# CONFIG_MMC_SDHCI_PCI is not set CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_OF_ARASAN is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set @@ -5676,25 +4591,19 @@ CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_CADENCE is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set # CONFIG_MMC_SDHCI_MILBEAUT is not set -# CONFIG_MMC_TIFM_SD is not set # CONFIG_MMC_SPI is not set -# CONFIG_MMC_SDRICOH_CS is not set -# CONFIG_MMC_CB710 is not set -# CONFIG_MMC_VIA_SDMMC is not set CONFIG_MMC_DW=y CONFIG_MMC_DW_PLTFM=y # CONFIG_MMC_DW_BLUEFIELD is not set # CONFIG_MMC_DW_EXYNOS is not set # CONFIG_MMC_DW_HI3798CV200 is not set # CONFIG_MMC_DW_K3 is not set -# CONFIG_MMC_DW_PCI is not set CONFIG_MMC_DW_ROCKCHIP=y # CONFIG_MMC_VUB300 is not set # CONFIG_MMC_USHC is not set # CONFIG_MMC_USDHI6ROL0 is not set # CONFIG_MMC_CQHCI is not set # CONFIG_MMC_HSQ is not set -# CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set # CONFIG_MMC_SDHCI_XENON is not set # CONFIG_MMC_SDHCI_OMAP is not set @@ -5738,7 +4647,7 @@ CONFIG_LEDS_PWM=y # CONFIG_LEDS_TLC591XX is not set # CONFIG_LEDS_LM355x is not set # CONFIG_LEDS_IS31FL319X is not set -CONFIG_LEDS_IS31FL32XX=y +# CONFIG_LEDS_IS31FL32XX is not set # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) @@ -5764,7 +4673,6 @@ CONFIG_LEDS_SYSCON=y CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_ONESHOT=y -CONFIG_LEDS_TRIGGER_DISK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y CONFIG_LEDS_TRIGGER_CPU=y @@ -5815,7 +4723,7 @@ CONFIG_RTC_INTF_SYSFS=y # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set -CONFIG_RTC_DRV_HYM8563=y +# CONFIG_RTC_DRV_HYM8563 is not set # CONFIG_RTC_DRV_MAX6900 is not set # CONFIG_RTC_DRV_NCT3018Y is not set CONFIG_RTC_DRV_RK808=y @@ -5831,7 +4739,6 @@ CONFIG_RTC_DRV_RK808=y # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set # CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_TPS6586X is not set # CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_FM3130 is not set # CONFIG_RTC_DRV_RX8010 is not set @@ -5901,7 +4808,6 @@ CONFIG_RTC_I2C_AND_SPI=y # # HID Sensor RTC drivers # -# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set # CONFIG_RTC_DRV_GOLDFISH is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -5913,23 +4819,18 @@ CONFIG_DMA_ENGINE=y CONFIG_DMA_OF=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_AMBA_PL08X is not set -# CONFIG_BCM_SBA_RAID is not set # CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_QDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_MV_XOR_V2 is not set CONFIG_PL330_DMA=y -# CONFIG_PLX_DMA is not set # CONFIG_XILINX_DMA is not set # CONFIG_XILINX_ZYNQMP_DMA is not set # CONFIG_XILINX_ZYNQMP_DPDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_DW_DMAC is not set -# CONFIG_DW_DMAC_PCI is not set -# CONFIG_DW_EDMA is not set -# CONFIG_DW_EDMA_PCIE is not set # CONFIG_SF_PDMA is not set # @@ -5968,13 +4869,10 @@ CONFIG_SYNC_FILE=y # CONFIG_COMEDI is not set CONFIG_STAGING=y # CONFIG_PRISM2_USB is not set -# CONFIG_RTL8192U is not set # CONFIG_RTLLIB is not set CONFIG_RTL8723BS=m CONFIG_R8712U=m CONFIG_R8188EU=m -# CONFIG_RTS5208 is not set -# CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # @@ -6026,7 +4924,6 @@ CONFIG_R8188EU=m # end of Resolver to digital converters # end of IIO staging drivers -# CONFIG_FB_SM750 is not set # CONFIG_STAGING_MEDIA is not set # CONFIG_STAGING_BOARD is not set # CONFIG_LTE_GDM724X is not set @@ -6035,8 +4932,6 @@ CONFIG_R8188EU=m # CONFIG_PI433 is not set # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_FIELDBUS_DEV is not set -# CONFIG_QLGE is not set -# CONFIG_VME_BUS is not set # CONFIG_GOLDFISH is not set CONFIG_CHROME_PLATFORMS=y # CONFIG_CROS_EC is not set @@ -6067,7 +4962,7 @@ CONFIG_COMMON_CLK_RK808=y # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_AXI_CLKGEN is not set -CONFIG_COMMON_CLK_XGENE=y +# CONFIG_COMMON_CLK_XGENE is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_RS9_PCIE is not set # CONFIG_COMMON_CLK_VC5 is not set @@ -6278,7 +5173,6 @@ CONFIG_IIO_TRIGGERED_EVENT=y # CONFIG_DMARD10 is not set # CONFIG_FXLS8962AF_I2C is not set # CONFIG_FXLS8962AF_SPI is not set -# CONFIG_HID_SENSOR_ACCEL_3D is not set # CONFIG_IIO_ST_ACCEL_3AXIS is not set # CONFIG_KXSD9 is not set # CONFIG_KXCJK1013 is not set @@ -6413,7 +5307,6 @@ CONFIG_ROCKCHIP_SARADC=y # # Hid Sensor IIO Common # -# CONFIG_HID_SENSOR_IIO_COMMON is not set # end of Hid Sensor IIO Common # @@ -6515,7 +5408,6 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_ADXRS450 is not set # CONFIG_BMG160 is not set # CONFIG_FXAS21002C is not set -# CONFIG_HID_SENSOR_GYRO_3D is not set # CONFIG_MPU3050_I2C is not set # CONFIG_IIO_ST_GYRO_3AXIS is not set # CONFIG_ITG3200 is not set @@ -6542,7 +5434,6 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_DHT11 is not set # CONFIG_HDC100X is not set # CONFIG_HDC2010 is not set -# CONFIG_HID_SENSOR_HUMIDITY is not set # CONFIG_HTS221 is not set # CONFIG_HTU21 is not set # CONFIG_SI7005 is not set @@ -6590,11 +5481,9 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_CM36651 is not set # CONFIG_GP2AP002 is not set # CONFIG_GP2AP020A00F is not set -CONFIG_SENSORS_ISL29018=y +# CONFIG_SENSORS_ISL29018 is not set # CONFIG_SENSORS_ISL29028 is not set # CONFIG_ISL29125 is not set -# CONFIG_HID_SENSOR_ALS is not set -# CONFIG_HID_SENSOR_PROX is not set # CONFIG_JSA1212 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR501 is not set @@ -6611,8 +5500,8 @@ CONFIG_SENSORS_ISL29018=y # CONFIG_ST_UVIS25 is not set # CONFIG_TCS3414 is not set # CONFIG_TCS3472 is not set -CONFIG_SENSORS_TSL2563=y -CONFIG_TSL2583=y +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL2583 is not set # CONFIG_TSL2591 is not set # CONFIG_TSL2772 is not set # CONFIG_TSL4531 is not set @@ -6634,7 +5523,6 @@ CONFIG_TSL2583=y # CONFIG_BMC150_MAGN_I2C is not set # CONFIG_BMC150_MAGN_SPI is not set # CONFIG_MAG3110 is not set -# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set # CONFIG_MMC35240 is not set # CONFIG_IIO_ST_MAGN_3AXIS is not set # CONFIG_SENSORS_HMC5843_I2C is not set @@ -6653,8 +5541,6 @@ CONFIG_IIO_MUX=y # # Inclinometer sensors # -# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set -# CONFIG_HID_SENSOR_DEVICE_ROTATION is not set # end of Inclinometer sensors # @@ -6669,7 +5555,6 @@ CONFIG_IIO_SYSFS_TRIGGER=y # # Linear and angular position sensors # -# CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE is not set # end of Linear and angular position sensors # @@ -6701,7 +5586,6 @@ CONFIG_IIO_SYSFS_TRIGGER=y # CONFIG_BMP280 is not set # CONFIG_DLHL60D is not set # CONFIG_DPS310 is not set -# CONFIG_HID_SENSOR_PRESS is not set # CONFIG_HP03 is not set # CONFIG_ICP10100 is not set # CONFIG_MPL115_I2C is not set @@ -6751,7 +5635,6 @@ CONFIG_IIO_SYSFS_TRIGGER=y # # CONFIG_LTC2983 is not set # CONFIG_MAXIM_THERMOCOUPLE is not set -# CONFIG_HID_SENSOR_TEMP is not set # CONFIG_MLX90614 is not set # CONFIG_MLX90632 is not set # CONFIG_TMP006 is not set @@ -6763,13 +5646,11 @@ CONFIG_IIO_SYSFS_TRIGGER=y # CONFIG_MAX31865 is not set # end of Temperature sensors -# CONFIG_NTB is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y # CONFIG_PWM_DEBUG is not set # CONFIG_PWM_ATMEL_TCB is not set # CONFIG_PWM_CLK is not set -# CONFIG_PWM_DWC is not set # CONFIG_PWM_FSL_FTM is not set # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_ROCKCHIP=y @@ -6781,10 +5662,8 @@ CONFIG_PWM_ROCKCHIP=y CONFIG_IRQCHIP=y CONFIG_ARM_GIC=y CONFIG_ARM_GIC_MAX_NR=1 -CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y -CONFIG_ARM_GIC_V3_ITS_PCI=y # CONFIG_AL_FIC is not set # CONFIG_XILINX_INTC is not set CONFIG_PARTITION_PERCPU=y @@ -6850,12 +5729,9 @@ CONFIG_PHY_ROCKCHIP_USB=y CONFIG_ARM_PMU=y # CONFIG_ARM_DSU_PMU is not set # CONFIG_ARM_SPE_PMU is not set -# CONFIG_HISI_PCIE_PMU is not set -# CONFIG_HNS3_PMU is not set # end of Performance monitor support CONFIG_RAS=y -# CONFIG_USB4 is not set # # Android @@ -6876,7 +5752,6 @@ CONFIG_NVMEM_SYSFS=y # # CONFIG_STM is not set # CONFIG_INTEL_TH is not set -# CONFIG_HISI_PTT is not set # end of HW tracing support # CONFIG_FPGA is not set @@ -7176,12 +6051,6 @@ CONFIG_RANDSTRUCT_NONE=y # end of Kernel hardening options # end of Security options -CONFIG_XOR_BLOCKS=y -CONFIG_ASYNC_CORE=y -CONFIG_ASYNC_MEMCPY=y -CONFIG_ASYNC_XOR=y -CONFIG_ASYNC_PQ=y -CONFIG_ASYNC_RAID6_RECOV=y CONFIG_CRYPTO=y # @@ -7405,8 +6274,6 @@ CONFIG_BINARY_PRINTF=y # # Library routines # -CONFIG_RAID6_PQ=y -CONFIG_RAID6_PQ_BENCHMARK=y CONFIG_LINEAR_RANGES=y # CONFIG_PACKING is not set CONFIG_BITREVERSE=y @@ -7496,7 +6363,6 @@ CONFIG_TEXTSEARCH_FSM=m CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_DMA_OPS=y CONFIG_NEED_SG_DMA_LENGTH=y @@ -7519,8 +6385,6 @@ CONFIG_SGL_ALLOC=y # CONFIG_FORCE_NR_CPUS is not set CONFIG_CPU_RMAP=y CONFIG_DQL=y -CONFIG_GLOB=y -# CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y CONFIG_LRU_CACHE=m CONFIG_CLZ_TAB=y From f080b0622478d2ac8922831e7b33a8cb81c4dea4 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Mon, 6 Nov 2023 10:51:09 +0000 Subject: [PATCH 074/112] * Update documentation * Begin work on hibernation support. --- .../AMD64/SUPPORTED_EMULATORS_AND_CORES.md | 32 +++++++++---------- .../RK3326/SUPPORTED_EMULATORS_AND_CORES.md | 32 +++++++++---------- .../RK3399/SUPPORTED_EMULATORS_AND_CORES.md | 32 +++++++++---------- .../SUPPORTED_EMULATORS_AND_CORES.md | 32 +++++++++---------- .../RK3566/SUPPORTED_EMULATORS_AND_CORES.md | 32 +++++++++---------- .../RK3588/SUPPORTED_EMULATORS_AND_CORES.md | 32 +++++++++---------- .../S922X/SUPPORTED_EMULATORS_AND_CORES.md | 32 +++++++++---------- packages/sysutils/e2fsprogs/package.mk | 11 ------- .../devices/S922X/linux/linux.aarch64.conf | 2 +- .../RK3566-X55/linux/linux.aarch64.conf | 2 +- .../devices/RK3566/linux/linux.aarch64.conf | 2 +- 11 files changed, 115 insertions(+), 126 deletions(-) diff --git a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md index a43b8ab00..78a9a38d2 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae (default)
**retroarch:** puae2021
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae (default)
**retroarch:** puae2021
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,7 +48,7 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|Xbox (xbox)|2001|`xbox`|.iso|**xemu:** xemu-sa (default)
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md index fed090a53..a37d2c0f7 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,7 +48,7 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md index c564970a6..c3d478a48 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
**mednafen:** lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
**mednafen:** lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,7 +48,7 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md index cf30051e1..a69842b6b 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,7 +48,7 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md index cf30051e1..a69842b6b 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,7 +48,7 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md index 30e6526e8..7a254a18f 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,7 +48,7 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md index b2b2eaf9c..6d13829c0 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md @@ -12,33 +12,33 @@ This document describes all available systems emulators and cores available for | System|Ports (ports)|System|`ports`|.sh|| | System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi|| | System|Tools (tools)|System|`modules`|.sh|| -|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| +|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
| |Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
| -|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| +|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2000
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
| |Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
| -|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| -|Arcade|MAME (mame)|1948|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| +|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
| |Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
| -|Atari|2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| -|Atari|5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| -|Atari|7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| +|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
| +|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
| +|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| -|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|PlaySystem 3 (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae (default)
**retroarch:** puae2021
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae (default)
**retroarch:** puae2021
**retroarch:** uae4arm
| -|Commodore|C128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| -|Commodore|C16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| -|Commodore|C64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| +|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
| +|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
| +|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| |Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| @@ -48,7 +48,7 @@ This document describes all available systems emulators and cores available for |Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
| |Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
| |Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
| -|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| +|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| diff --git a/packages/sysutils/e2fsprogs/package.mk b/packages/sysutils/e2fsprogs/package.mk index b2b1517f2..046ff847a 100644 --- a/packages/sysutils/e2fsprogs/package.mk +++ b/packages/sysutils/e2fsprogs/package.mk @@ -74,17 +74,6 @@ pre_configure() { post_makeinstall_target() { make -C lib/et LIBMODE=644 DESTDIR=${SYSROOT_PREFIX} install - - rm -rf ${INSTALL}/usr/sbin/badblocks - rm -rf ${INSTALL}/usr/sbin/blkid - rm -rf ${INSTALL}/usr/sbin/dumpe2fs - rm -rf ${INSTALL}/usr/sbin/e2freefrag - rm -rf ${INSTALL}/usr/sbin/e2undo - rm -rf ${INSTALL}/usr/sbin/e4defrag - rm -rf ${INSTALL}/usr/sbin/filefrag - rm -rf ${INSTALL}/usr/sbin/fsck - rm -rf ${INSTALL}/usr/sbin/logsave - rm -rf ${INSTALL}/usr/sbin/mklost+found } makeinstall_init() { diff --git a/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf b/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf index 272a2c93b..ceb8a37ea 100644 --- a/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf +++ b/projects/Amlogic/devices/S922X/linux/linux.aarch64.conf @@ -508,7 +508,7 @@ CONFIG_CMDLINE="" CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATION=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set diff --git a/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf index 1e3a090b3..ce5235d7e 100644 --- a/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf @@ -452,7 +452,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HAS_WAKELOCK=y CONFIG_WAKELOCK=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATION=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set diff --git a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf index 8b53d359d..4124d4bcb 100644 --- a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf @@ -452,7 +452,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HAS_WAKELOCK=y CONFIG_WAKELOCK=y -# CONFIG_HIBERNATION is not set +CONFIG_HIBERNATION=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set From 0e376cab09156202c48aa2990a20402531782650 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sat, 28 Oct 2023 15:07:17 +0200 Subject: [PATCH 075/112] BROKEN/WIP: just commit code to then apply on top of dev --- .../mednafen/config/AMD64/mednafen.cfg | 4 +- .../mednafen/config/common/mednafen.cfg | 114 +++++++++--------- .../mednafen/scripts/start_mednafen.sh | 72 ++++++++++- 3 files changed, 129 insertions(+), 61 deletions(-) diff --git a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg b/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg index 6dd8d0f1e..d4c514df1 100644 --- a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg @@ -10344,10 +10344,10 @@ ss.cart none ss.cart.auto_default backup ;Path to KoF 95 ROM image. -ss.cart.kof95_path mpr-18811-mx.ic1 +ss.cart.kof95_path /storage/roms/bios/mpr-18811-mx.ic1 ;Path to Ultraman ROM image. -ss.cart.ultraman_path mpr-19367-mx.ic1 +ss.cart.ultraman_path /storage/roms/bios/mpr-19367-mx.ic1 ;Enable CD (image) sanity checks. ss.cd_sanity 1 diff --git a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg index b08db7b34..5c52b44b5 100644 --- a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg @@ -726,7 +726,7 @@ gb.yscale 6.000000 gb.yscalefs 1.000000 ;Path to optional GBA BIOS ROM image. -gba.bios +gba.bios /storage/roms/bios/gba_bios.bin ;Enable (automatic) usage of this module. gba.enable 1 @@ -927,7 +927,7 @@ gg.yscalefs 1.000000 input.autofirefreq 3 ;Dangerous key action delay. -input.ckdelay 0 +input.ckdelay 1500 ;Analog axis binary press detection threshold. input.joystick.axis_threshold 75 @@ -1047,7 +1047,7 @@ lynx.yscale 6.000000 lynx.yscalefs 1.000000 ;Path to the CD BIOS -md.cdbios us_scd1_9210.bin +md.cdbios /storage/roms/bios/us_scd1_9210.bin ;Correct the aspect ratio. md.correct_aspect 1 @@ -1137,22 +1137,22 @@ md.input.port1.gamepad2.start md.input.port1.gamepad2.up ;md, Virtual Port 1, 6-Button Gamepad: A -md.input.port1.gamepad6.a keyboard 0x0 89 +md.input.port1.gamepad6.a joystick @GUID1@ @DEVICE_BTN_WEST@ ;md, Virtual Port 1, 6-Button Gamepad: B -md.input.port1.gamepad6.b keyboard 0x0 90 +md.input.port1.gamepad6.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ ;md, Virtual Port 1, 6-Button Gamepad: C -md.input.port1.gamepad6.c keyboard 0x0 91 +md.input.port1.gamepad6.c joystick @GUID1@ @DEVICE_BTN_EAST@ ;md, Virtual Port 1, 6-Button Gamepad: DOWN ↓ -md.input.port1.gamepad6.down keyboard 0x0 22 +md.input.port1.gamepad6.down joystick @GUID1@ @DEVICE_BTN_DOWN@ ;md, Virtual Port 1, 6-Button Gamepad: LEFT ← -md.input.port1.gamepad6.left keyboard 0x0 4 +md.input.port1.gamepad6.left joystick @GUID1@ @DEVICE_BTN_LEFT@ ;md, Virtual Port 1, 6-Button Gamepad: Mode -md.input.port1.gamepad6.mode keyboard 0x0 16 +md.input.port1.gamepad6.mode joystick @GUID1@ @DEVICE_BTN_SELECT@ ;md, Virtual Port 1, 6-Button Gamepad: Rapid A md.input.port1.gamepad6.rapid_a @@ -1173,22 +1173,22 @@ md.input.port1.gamepad6.rapid_y md.input.port1.gamepad6.rapid_z ;md, Virtual Port 1, 6-Button Gamepad: RIGHT → -md.input.port1.gamepad6.right keyboard 0x0 7 +md.input.port1.gamepad6.right joystick @GUID1@ @DEVICE_BTN_WEST@ ;md, Virtual Port 1, 6-Button Gamepad: Start -md.input.port1.gamepad6.start keyboard 0x0 40 +md.input.port1.gamepad6.start joystick @GUID1@ @DEVICE_BTN_START@ ;md, Virtual Port 1, 6-Button Gamepad: UP ↑ -md.input.port1.gamepad6.up keyboard 0x0 26 +md.input.port1.gamepad6.up joystick @GUID1@ @DEVICE_BTN_UP@ ;md, Virtual Port 1, 6-Button Gamepad: X -md.input.port1.gamepad6.x keyboard 0x0 92 +md.input.port1.gamepad6.x joystick @GUID1@ @DEVICE_BTN_TL@ ;md, Virtual Port 1, 6-Button Gamepad: Y -md.input.port1.gamepad6.y keyboard 0x0 93 +md.input.port1.gamepad6.y joystick @GUID1@ @DEVICE_BTN_NORTH@ ;md, Virtual Port 1, 6-Button Gamepad: Z -md.input.port1.gamepad6.z keyboard 0x0 94 +md.input.port1.gamepad6.z joystick @GUID1@ @DEVICE_BTN_TR@ ;md, Virtual Port 1, Sega Mega Mouse: Left Button md.input.port1.megamouse.left mouse 0x0 button_left @@ -7363,11 +7363,11 @@ apple2.yscale 4.000000 apple2.yscalefs 1.000000 -psx.bios_eu scph5502.bin +psx.bios_eu /storage/roms/bios/scph5502.bin -psx.bios_jp scph5500.bin +psx.bios_jp /storage/roms/bios/scph5500.bin -psx.bios_na scph5501.bin +psx.bios_na /storage/roms/bios/scph5501.bin psx.bios_sanity 1 @@ -9815,25 +9815,25 @@ sasplay.yscalefs 1.000000 ss.affinity.vdp2 0 -ss.bios_jp sega_101.bin +ss.bios_jp /storage/roms/bios/sega_101.bin -ss.bios_na_eu mpr-17933.bin +ss.bios_na_eu /storage/roms/bios/mpr-17933.bin ss.bios_sanity 1 -ss.bios_stv_eu epr-17954a.ic8 +ss.bios_stv_eu /storage/roms/bios/epr-17954a.ic8 -ss.bios_stv_jp epr-20091.ic8 +ss.bios_stv_jp /storage/roms/bios/epr-20091.ic8 -ss.bios_stv_na epr-17952a.ic8 +ss.bios_stv_na /storage/roms/bios/epr-17952a.ic8 ss.cart auto ss.cart.auto_default backup -ss.cart.kof95_path mpr-18811-mx.ic1 +ss.cart.kof95_path /storage/roms/bios/mpr-18811-mx.ic1 -ss.cart.ultraman_path mpr-19367-mx.ic1 +ss.cart.ultraman_path /storage/roms/bios/mpr-19367-mx.ic1 ss.cd_sanity 1 @@ -9865,43 +9865,43 @@ ss.input.mouse_sensitivity 0.50 ss.input.port1 gamepad -ss.input.port1.3dpad.a +ss.input.port1.3dpad.a joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.3dpad.analog_down +ss.input.port1.3dpad.analog_down joystick @GUID1@ @DEVICE_BTN_AL_DOWN@ -ss.input.port1.3dpad.analog_left +ss.input.port1.3dpad.analog_left joystick @GUID1@ @DEVICE_BTN_AL_LEFT@ -ss.input.port1.3dpad.analog_right +ss.input.port1.3dpad.analog_right joystick @GUID1@ @DEVICE_BTN_AL_RIGHT@ -ss.input.port1.3dpad.analog_up +ss.input.port1.3dpad.analog_up joystick @GUID1@ @DEVICE_BTN_AL_UP@ -ss.input.port1.3dpad.b +ss.input.port1.3dpad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ -ss.input.port1.3dpad.c +ss.input.port1.3dpad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.3dpad.down +ss.input.port1.3dpad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ -ss.input.port1.3dpad.left +ss.input.port1.3dpad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ -ss.input.port1.3dpad.ls +ss.input.port1.3dpad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ || joystick @GUID1@ @DEVICE_BTN_TL2_MINUS@ -ss.input.port1.3dpad.mode +ss.input.port1.3dpad.mode joystick -ss.input.port1.3dpad.mode.defpos digital +ss.input.port1.3dpad.mode.defpos analog -ss.input.port1.3dpad.right +ss.input.port1.3dpad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ -ss.input.port1.3dpad.rs +ss.input.port1.3dpad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ || joystick @GUID1@ @DEVICE_BTN_TR2_MINUS@ -ss.input.port1.3dpad.start +ss.input.port1.3dpad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.3dpad.up +ss.input.port1.3dpad.up joystick @GUID1@ @DEVICE_BTN_UP@ -ss.input.port1.3dpad.x +ss.input.port1.3dpad.x joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.3dpad.y +ss.input.port1.3dpad.y joystick @GUID1@ @DEVICE_BTN_NORTH@ -ss.input.port1.3dpad.z +ss.input.port1.3dpad.z joystick @GUID1@ @DEVICE_BTN_TL@ ss.input.port1.dmission.a @@ -9981,31 +9981,31 @@ ss.input.port1.dmission.y ss.input.port1.dmission.z -ss.input.port1.gamepad.a keyboard 0x0 89 +ss.input.port1.gamepad.a joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.gamepad.b keyboard 0x0 90 +ss.input.port1.gamepad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ -ss.input.port1.gamepad.c keyboard 0x0 91 +ss.input.port1.gamepad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.gamepad.down keyboard 0x0 22 +ss.input.port1.gamepad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ -ss.input.port1.gamepad.left keyboard 0x0 4 +ss.input.port1.gamepad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ -ss.input.port1.gamepad.ls keyboard 0x0 95 +ss.input.port1.gamepad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ -ss.input.port1.gamepad.right keyboard 0x0 7 +ss.input.port1.gamepad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ -ss.input.port1.gamepad.rs keyboard 0x0 97 +ss.input.port1.gamepad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ -ss.input.port1.gamepad.start keyboard 0x0 40 +ss.input.port1.gamepad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.gamepad.up keyboard 0x0 26 +ss.input.port1.gamepad.up joystick @GUID1@ @DEVICE_BTN_UP@ -ss.input.port1.gamepad.x keyboard 0x0 92 +ss.input.port1.gamepad.x joystick @GUID1@ @DEVICE_BTN_WEST@ -ss.input.port1.gamepad.y keyboard 0x0 93 +ss.input.port1.gamepad.y joystick @GUID1@ @DEVICE_BTN_NORTH@ -ss.input.port1.gamepad.z keyboard 0x0 94 +ss.input.port1.gamepad.z joystick @GUID1@ @DEVICE_BTN_TL@ ss.input.port1.gun.offscreen_shot mouse 0x0 button_right diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index 3ceb492e7..e3d385deb 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -29,12 +29,79 @@ fi # delete current config rm $MEDNAFEN_HOME/mednafen.cfg + +#Overrides, for WIN MAX 2, should be moved into device quirks somehow +#OVERRIDE_GUID="keyboard 0x0" +#DEVICE_BTN_TL2="9" +#DEVICE_BTN_TR2="10" + +if [[ -z "${OVERRIDE_GUID+x}" ]] +then + + for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 + do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg + done +fi + + + + # Generate controller config # Set controller sdl guid GUID1="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $2}')" sed -e "s/@GUID1@/${GUID1}/g" ${MEDNAFEN_CONFIG} >> $MEDNAFEN_HOME/mednafen.cfg -# Buttons mapping +NAME="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $5$6}')" + + + + +# Mednafen doesn't use SDL for input +# Not sure how to reliably get mednafens input naming scheme. +# Exception 360 controller +if [[ "${NAME}" = "X-Box360" ]] +then + +# Naming differs to much just assign mednafen name here +DEVICE_BTN_DPAD_UP="abs_7-" +DEVICE_BTN_DPAD_DOWN="abs_7+" +DEVICE_BTN_DPAD_LEFT="abs_6-" +DEVICE_BTN_DPAD_RIGHT="abs_6+" +DEVICE_BTN_TL2="abs_2+" +DEVICE_BTN_TR2="abs_5+" + +# These are the minus range of the analog triggers +DEVICE_BTN_TL2_MINUS="abs_2-" +DEVICE_BTN_TR2_MINUS="abs_5-" + +# Left analog +DEVICE_BTN_AL_DOWN="abs_1+" +DEVICE_BTN_AL_UP="abs_1-" +DEVICE_BTN_AL_LEFT="abs_0-" +DEVICE_BTN_AL_RIGHT="abs_0+" + +# Right analog +DEVICE_BTN_AR_DOWN="abs_3+" +DEVICE_BTN_AR_UP="abs_3-" +DEVICE_BTN_AR_LEFT="abs_2-" +DEVICE_BTN_AR_RIGHT="abs_2+" +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ + DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ + DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ + DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT \ + DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS + DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP + DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT +DEVICE_BTN_AR_DOWN +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +else +# Regular gpio based input (tested on OGA) is easy for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ @@ -42,8 +109,9 @@ for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg done +fi #Set Save folder sed -i -e "s/@PLATFORM@/${PLATFORM}/g" $MEDNAFEN_HOME/mednafen.cfg From b5b61b24d2817dd4ab16357b154c2d700bed630c Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sat, 28 Oct 2023 18:11:20 +0200 Subject: [PATCH 076/112] WIP --- .../mednafen/scripts/mednafen_gen_config.sh | 146 ++++++++++++++++++ .../mednafen/scripts/start_mednafen.sh | 90 +---------- 2 files changed, 148 insertions(+), 88 deletions(-) create mode 100644 packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh new file mode 100644 index 000000000..2eef5564e --- /dev/null +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -0,0 +1,146 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2023-present asoderq (https://github.com/asoderq) + +. /etc/profile + +export MEDNAFEN_HOME=/storage/.config/mednafen +MEDNAFEN_CONFIG=/usr/config/mednafen.cfg + +# Generate controller config +# Set controller guid, just take the first one mednafen lists +GUID1="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $2}')" +sed -e "s/@GUID1@/${GUID1}/g" ${MEDNAFEN_CONFIG} >> $MEDNAFEN_HOME/mednafen.cfg + +NAME="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $5$6}')" + + +# Controller config for 360 and GPIO handled separately +if [[ "${NAME}" = "X-Box360" ]] +then +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_SELECT DEVICE_BTN_START DEVICE_BTN_MODE \ + DEVICE_BTN_THUMBL DEVICE_BTN_THUMBR +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +# Naming differs to much just assign mednafen name here +DEVICE_BTN_DPAD_UP="abs_7-" +DEVICE_BTN_DPAD_DOWN="abs_7+" +DEVICE_BTN_DPAD_LEFT="abs_6-" +DEVICE_BTN_DPAD_RIGHT="abs_6+" +DEVICE_BTN_TL2="abs_2+" +DEVICE_BTN_TR2="abs_5+" + +# These are the minus range of the analog triggers +DEVICE_BTN_TL2_MINUS="abs_2-" +DEVICE_BTN_TR2_MINUS="abs_5-" + +# Left analog +DEVICE_BTN_AL_DOWN="abs_1+" +DEVICE_BTN_AL_UP="abs_1-" +DEVICE_BTN_AL_LEFT="abs_0-" +DEVICE_BTN_AL_RIGHT="abs_0+" + +# Right analog +DEVICE_BTN_AR_DOWN="abs_3+" +DEVICE_BTN_AR_UP="abs_3-" +DEVICE_BTN_AR_LEFT="abs_2-" +DEVICE_BTN_AR_RIGHT="abs_2+" + +for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_DPAD_UP \ + DEVICE_BTN_DPAD_DOWN DEVICE_BTN_DPAD_LEFT \ + DEVICE_BTN_DPAD_RIGHT DEVICE_BTN_TL2 \ + MINUS DEVICE_BTN_TR2_MINUS DEVICE_BTN_AL_DOWN \ + DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT \ + DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP DEVICE_BTN_AR_LEFT +do + sed -i -e "s/@${CONTROL}@/${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +elif [[ "${NAME}" = "OSHPB" ]] +then +# This is 351P, maybe, hopefully also M and V. +# No 351 usb controller has analog triggers +DEVICE_BTN_TL2_MINUS=${DEVICE_BTN_TL2} +DEVICE_BTN_TR2_MINUS=${DEVICE_BTN_TR2} + +# These are the inputs prefixed with button_ +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ + DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ + DEVICE_BTN_THUMBR DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +DEVICE_BTN_DPAD_UP="abs_7-" +DEVICE_BTN_DPAD_DOWN="abs_7+" +DEVICE_BTN_DPAD_LEFT="abs_6-" +DEVICE_BTN_DPAD_RIGHT="abs_6+" + +# These inputs are probably prefixed with something else than button_ +# Just null out the sticks until it is supported in the controller profile +# Left analog +DEVICE_BTN_AL_DOWN="" +DEVICE_BTN_AL_UP="" +DEVICE_BTN_AL_LEFT="" +DEVICE_BTN_AL_RIGHT="" + +# Right analog +DEVICE_BTN_AR_DOWN="" +DEVICE_BTN_AR_UP="" +DEVICE_BTN_AR_LEFT="" +DEVICE_BTN_AR_RIGHT="" +for CONTROL in DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT \ + DEVICE_BTN_AL_RIGHT DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP \ + DEVICE_BTN_AR_LEFT DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN\ + DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT + +do + sed -i -e "s/@${CONTROL}@//g" $MEDNAFEN_HOME/mednafen.cfg +done + +else +# No GPIO device has analog triggers (I think), Just set them to the same +DEVICE_BTN_TL2_MINUS=${DEVICE_BTN_TL2} +DEVICE_BTN_TR2_MINUS=${DEVICE_BTN_TR2} + +# These are the inputs prefixed with button_ +for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ + DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ + DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ + DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ + DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ + DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT \ + DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS +do + sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg +done + +# These inputs are probably prefixed with something else than button_ +# Just null out the sticks until it is supported in the controller profile +# Left analog +DEVICE_BTN_AL_DOWN="" +DEVICE_BTN_AL_UP="" +DEVICE_BTN_AL_LEFT="" +DEVICE_BTN_AL_RIGHT="" + +# Right analog +DEVICE_BTN_AR_DOWN="" +DEVICE_BTN_AR_UP="" +DEVICE_BTN_AR_LEFT="" +DEVICE_BTN_AR_RIGHT="" +for CONTROL in DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT \ + DEVICE_BTN_AL_RIGHT DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP \ + DEVICE_BTN_AR_LEFT +do + sed -i -e "s/@${CONTROL}@//g" $MEDNAFEN_HOME/mednafen.cfg +done + +fi + + diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index e3d385deb..d2d8f1720 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -1,6 +1,6 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2022-present asoderq (https://github.com/asoderq) +# Copyright (C) 2023-present asoderq (https://github.com/asoderq) . /etc/profile @@ -27,94 +27,8 @@ else unset EMUPERF fi -# delete current config -rm $MEDNAFEN_HOME/mednafen.cfg - -#Overrides, for WIN MAX 2, should be moved into device quirks somehow -#OVERRIDE_GUID="keyboard 0x0" -#DEVICE_BTN_TL2="9" -#DEVICE_BTN_TR2="10" - -if [[ -z "${OVERRIDE_GUID+x}" ]] -then - - for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 - do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg - done -fi - - - - -# Generate controller config -# Set controller sdl guid -GUID1="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $2}')" -sed -e "s/@GUID1@/${GUID1}/g" ${MEDNAFEN_CONFIG} >> $MEDNAFEN_HOME/mednafen.cfg - -NAME="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $5$6}')" - - - - -# Mednafen doesn't use SDL for input -# Not sure how to reliably get mednafens input naming scheme. -# Exception 360 controller -if [[ "${NAME}" = "X-Box360" ]] -then - -# Naming differs to much just assign mednafen name here -DEVICE_BTN_DPAD_UP="abs_7-" -DEVICE_BTN_DPAD_DOWN="abs_7+" -DEVICE_BTN_DPAD_LEFT="abs_6-" -DEVICE_BTN_DPAD_RIGHT="abs_6+" -DEVICE_BTN_TL2="abs_2+" -DEVICE_BTN_TR2="abs_5+" - -# These are the minus range of the analog triggers -DEVICE_BTN_TL2_MINUS="abs_2-" -DEVICE_BTN_TR2_MINUS="abs_5-" - -# Left analog -DEVICE_BTN_AL_DOWN="abs_1+" -DEVICE_BTN_AL_UP="abs_1-" -DEVICE_BTN_AL_LEFT="abs_0-" -DEVICE_BTN_AL_RIGHT="abs_0+" - -# Right analog -DEVICE_BTN_AR_DOWN="abs_3+" -DEVICE_BTN_AR_UP="abs_3-" -DEVICE_BTN_AR_LEFT="abs_2-" -DEVICE_BTN_AR_RIGHT="abs_2+" -for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ - DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ - DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ - DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ - DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ - DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT \ - DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS - DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP - DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT -DEVICE_BTN_AR_DOWN -do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg -done - -else -# Regular gpio based input (tested on OGA) is easy -for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \ - DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \ - DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \ - DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \ - DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \ - DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT -do - sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg -done -fi - #Set Save folder - sed -i -e "s/@PLATFORM@/${PLATFORM}/g" $MEDNAFEN_HOME/mednafen.cfg +sed -i -e "s/@PLATFORM@/${PLATFORM}/g" $MEDNAFEN_HOME/mednafen.cfg # Get command line switches FEATURES_CMDLINE="" From 453b267634290cffb9b2d82d8c81e17b3ba8f7c0 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sat, 28 Oct 2023 18:44:08 +0200 Subject: [PATCH 077/112] WIP --- .../mednafen/scripts/mednafen_gen_config.sh | 2 -- .../standalone/mednafen/scripts/start_mednafen.sh | 12 +++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh index 2eef5564e..99c8443dc 100644 --- a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -4,8 +4,6 @@ . /etc/profile -export MEDNAFEN_HOME=/storage/.config/mednafen -MEDNAFEN_CONFIG=/usr/config/mednafen.cfg # Generate controller config # Set controller guid, just take the first one mednafen lists diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index d2d8f1720..2fccbb806 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -5,7 +5,17 @@ . /etc/profile export MEDNAFEN_HOME=/storage/.config/mednafen -MEDNAFEN_CONFIG=/usr/config/mednafen/mednafen.cfg +export MEDNAFEN_CONFIG=/usr/config/mednafen.cfg + +if [ ! -d "$MEDNAFEN_HOME" ] +then + mkdir /storage/.config/mednafen +fi + +if [ ! -f "$MEDNAFEN_HOME/mednafen.cfg" ] +then + /usr/bin/bash /usr/bin/mednafen_gen_config.sh +fi #Emulation Station Features GAME=$(echo "${1}"| sed "s#^/.*/##") From ec4420a02f838093fcaf80aa663d13543abfbef8 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sun, 5 Nov 2023 15:17:52 +0100 Subject: [PATCH 078/112] Mednafen bugfixes --- .../mednafen/config/AMD64/mednafen.cfg | 22387 ---------------- .../mednafen/config/common/mednafen.cfg | 30 +- .../emulators/standalone/mednafen/package.mk | 18 +- .../mednafen/scripts/mednafen_gen_config.sh | 7 +- .../mednafen/scripts/start_mednafen.sh | 2 +- .../config/common/es_features.cfg | 1 + packages/virtual/emulators/package.mk | 85 +- 7 files changed, 76 insertions(+), 22454 deletions(-) delete mode 100644 packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg diff --git a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg b/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg deleted file mode 100644 index d4c514df1..000000000 --- a/packages/emulators/standalone/mednafen/config/AMD64/mednafen.cfg +++ /dev/null @@ -1,22387 +0,0 @@ -;VERSION 1.31.0-UNSTABLE -;Edit this file at your own risk! -;DO NOT EDIT THIS FILE WHILE AN INSTANCE OF MEDNAFEN THAT USES IT IS RUNNING. -;File format: -; -;Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen. Dummy guard line to prevent settings file corruption by accidentally running ancient versions of Mednafen.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;fs ~ - -;CD read threads CPU affinity mask. -affinity.cd 0 - -;Main emulation thread CPU affinity mask. -affinity.emu 0 - -;Video blitting thread CPU affinity mask. -affinity.video 0 - -;Automatically load/save state on game load/close. -autosave 0 - -;Cache entire CD images in memory. -cd.image_memcache 1 - -;M3U total number of disc images limit. -cd.m3u.disc_limit 50 - -;M3U recursion limit. -cd.m3u.recursion_limit 9 - -;Enable (automatic) usage of this module. -cdplay.enable 1 - -;Force monophonic sound output. -cdplay.forcemono 0 - -;cdplay, Built-In, Controller: Next Track -cdplay.input.builtin.controller.next_track keyboard 0x0 79 - -;cdplay, Built-In, Controller: Next Track 10 -cdplay.input.builtin.controller.next_track_10 keyboard 0x0 82 - -;cdplay, Built-In, Controller: Play/Pause -cdplay.input.builtin.controller.play_pause keyboard 0x0 44 - -;cdplay, Built-In, Controller: Previous Track -cdplay.input.builtin.controller.previous_track keyboard 0x0 80 - -;cdplay, Built-In, Controller: Previous Track 10 -cdplay.input.builtin.controller.previous_track_10 keyboard 0x0 81 - -;cdplay, Built-In, Controller: Scan Forward -cdplay.input.builtin.controller.scan_forward keyboard 0x0 75 - -;cdplay, Built-In, Controller: Scan Reverse -cdplay.input.builtin.controller.scan_reverse keyboard 0x0 78 - -;cdplay, Built-In, Controller: Stop -cdplay.input.builtin.controller.stop keyboard 0x0 40 - -;Enable scanlines with specified opacity. -cdplay.scanlines 0 - -;Enable specified OpenGL shader. -cdplay.shader none - -;Force interlaced video to be treated as progressive. -cdplay.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -cdplay.shader.goat.hdiv 0.50 - -;Mask pattern. -cdplay.shader.goat.pat goatron - -;Enable scanlines effect. -cdplay.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -cdplay.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -cdplay.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -cdplay.special none - -;Stretch to fill screen. -cdplay.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -cdplay.tblur 0 - -;Accumulate color data rather than discarding it. -cdplay.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -cdplay.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -cdplay.videoip 0 - -;Enable simple waveform visualization. -cdplay.visualization 1 - -;Full-screen horizontal resolution. -cdplay.xres 0 - -;Scaling factor for the X axis in windowed mode. -cdplay.xscale 5.000000 - -;Scaling factor for the X axis in fullscreen mode. -cdplay.xscalefs 1.000000 - -;Full-screen vertical resolution. -cdplay.yres 0 - -;Scaling factor for the Y axis in windowed mode. -cdplay.yscale 5.000000 - -;Scaling factor for the Y axis in fullscreen mode. -cdplay.yscalefs 1.000000 - -;Enable cheats. -cheats 1 - -;Save state 0 select -command.0 keyboard 0x0 39 - -;Save state 1 select -command.1 keyboard 0x0 30 - -;Save state 2 select -command.2 keyboard 0x0 31 - -;Save state 3 select -command.3 keyboard 0x0 32 - -;Save state 4 select -command.4 keyboard 0x0 33 - -;Save state 5 select -command.5 keyboard 0x0 34 - -;Save state 6 select -command.6 keyboard 0x0 35 - -;Save state 7 select -command.7 keyboard 0x0 36 - -;Save state 8 select -command.8 keyboard 0x0 37 - -;Save state 9 select -command.9 keyboard 0x0 38 - -;Activate barcode(for Famicom) -command.activate_barcode keyboard 0x0 65 - -;Advance frame -command.advance_frame keyboard 0x0 4+alt - -;Select virtual device on virtual input port 1 -command.device_select1 keyboard 0x0 30+ctrl+shift - -;Select virtual device on virtual input port 10 -command.device_select10 keyboard 0x0 39+ctrl+shift - -;Select virtual device on virtual input port 11 -command.device_select11 keyboard 0x0 89+ctrl+shift - -;Select virtual device on virtual input port 12 -command.device_select12 keyboard 0x0 90+ctrl+shift - -;Select virtual device on virtual input port 13 -command.device_select13 keyboard 0x0 91+ctrl+shift - -;Select virtual device on virtual input port 2 -command.device_select2 keyboard 0x0 31+ctrl+shift - -;Select virtual device on virtual input port 3 -command.device_select3 keyboard 0x0 32+ctrl+shift - -;Select virtual device on virtual input port 4 -command.device_select4 keyboard 0x0 33+ctrl+shift - -;Select virtual device on virtual input port 5 -command.device_select5 keyboard 0x0 34+ctrl+shift - -;Select virtual device on virtual input port 6 -command.device_select6 keyboard 0x0 35+ctrl+shift - -;Select virtual device on virtual input port 7 -command.device_select7 keyboard 0x0 36+ctrl+shift - -;Select virtual device on virtual input port 8 -command.device_select8 keyboard 0x0 37+ctrl+shift - -;Select virtual device on virtual input port 9 -command.device_select9 keyboard 0x0 38+ctrl+shift - -;Exit -command.exit joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_7 - -;Fast-forward -command.fast_forward joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 abs_5- - -;Configure buttons on virtual port 1 -command.input_config1 keyboard 0x0 30+alt+shift - -;Configure buttons on virtual port 10 -command.input_config10 keyboard 0x0 39+alt+shift - -;Configure buttons on virtual port 11 -command.input_config11 keyboard 0x0 89+alt+shift - -;Configure buttons on virtual port 12 -command.input_config12 keyboard 0x0 90+alt+shift - -;Configure buttons on virtual port 13 -command.input_config13 keyboard 0x0 91+alt+shift - -;Configure buttons on virtual port 2 -command.input_config2 keyboard 0x0 31+alt+shift - -;Configure buttons on virtual port 3 -command.input_config3 keyboard 0x0 32+alt+shift - -;Configure buttons on virtual port 4 -command.input_config4 keyboard 0x0 33+alt+shift - -;Configure buttons on virtual port 5 -command.input_config5 keyboard 0x0 34+alt+shift - -;Configure buttons on virtual port 6 -command.input_config6 keyboard 0x0 35+alt+shift - -;Configure buttons on virtual port 7 -command.input_config7 keyboard 0x0 36+alt+shift - -;Configure buttons on virtual port 8 -command.input_config8 keyboard 0x0 37+alt+shift - -;Configure buttons on virtual port 9 -command.input_config9 keyboard 0x0 38+alt+shift - -;Detect analog buttons on physical joysticks/gamepads(for use with the input configuration process). -command.input_config_abd keyboard 0x0 60 - -;Configure command key -command.input_configc keyboard 0x0 59 - -;Configure command key, for all-pressed-to-trigger mode -command.input_configc_am keyboard 0x0 59+shift - -;Insert coin -command.insert_coin keyboard 0x0 65 - -;Insert/Eject disk/disc -command.insert_eject_disk keyboard 0x0 65 - -;Load movie -command.load_movie keyboard 0x0 64+shift - -;Load state -command.load_state joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_4 - -;Movie 0 select -command.m0 keyboard 0x0 39+shift - -;Movie 1 select -command.m1 keyboard 0x0 30+shift - -;Movie 2 select -command.m2 keyboard 0x0 31+shift - -;Movie 3 select -command.m3 keyboard 0x0 32+shift - -;Movie 4 select -command.m4 keyboard 0x0 33+shift - -;Movie 5 select -command.m5 keyboard 0x0 34+shift - -;Movie 6 select -command.m6 keyboard 0x0 35+shift - -;Movie 7 select -command.m7 keyboard 0x0 36+shift - -;Movie 8 select -command.m8 keyboard 0x0 37+shift - -;Movie 9 select -command.m9 keyboard 0x0 38+shift - -;Pause/Unpause -command.pause keyboard 0x0 72 - -;Power toggle -command.power keyboard 0x0 68 - -;Reinitialize physical joysticks/gamepads. -command.reinit_joysticks keyboard 0x0 60+shift - -;Reset -command.reset keyboard 0x0 67 - -;Rotate screen -command.rotate_screen keyboard 0x0 18+alt - -;Return to normal mode after advancing frames -command.run_normal keyboard 0x0 21+alt - -;Save movie -command.save_movie keyboard 0x0 62+shift - -;Save state -command.save_state joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_5 - -;Select disk/disc -command.select_disk keyboard 0x0 63 - -;Select drive -command.select_drive keyboard 0x0 63+shift - -;Slow-forward -command.slow_forward keyboard 0x0 49 - -;Rewind -command.state_rewind joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 abs_2- - -;Decrease selected save state slot by 1 -command.state_slot_dec keyboard 0x0 45 - -;Increase selected save state slot by 1 -command.state_slot_inc keyboard 0x0 46 - -;Take scaled(and filtered) screen snapshot -command.take_scaled_snapshot keyboard 0x0 66+shift - -;Take screen snapshot -command.take_snapshot keyboard 0x0 66 - -;Toggle graphics layer 1 -command.tl1 keyboard 0x0 30+ctrl - -;Toggle graphics layer 2 -command.tl2 keyboard 0x0 31+ctrl - -;Toggle graphics layer 3 -command.tl3 keyboard 0x0 32+ctrl - -;Toggle graphics layer 4 -command.tl4 keyboard 0x0 33+ctrl - -;Toggle graphics layer 5 -command.tl5 keyboard 0x0 34+ctrl - -;Toggle graphics layer 6 -command.tl6 keyboard 0x0 35+ctrl - -;Toggle graphics layer 7 -command.tl7 keyboard 0x0 36+ctrl - -;Toggle graphics layer 8 -command.tl8 keyboard 0x0 37+ctrl - -;Toggle graphics layer 9 -command.tl9 keyboard 0x0 38+ctrl - -;Toggle debugger -command.toggle_debugger keyboard 0x0 7+alt - -;Toggle DIP switch view -command.toggle_dipview keyboard 0x0 63 - -;Toggle frames-per-second display -command.toggle_fps_view joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 button_2 - -;Toggle fullscreen mode -command.toggle_fs keyboard 0x0 40+alt - -;Grab input -command.toggle_grab keyboard 0x0 101+ctrl+shift - -;Toggle help screen -command.toggle_help keyboard 0x0 58 - -;Toggle state rewind functionality -command.toggle_state_rewind keyboard 0x0 22+alt - -;Enable/Disable cheats -command.togglecheatactive keyboard 0x0 23+alt - -;Toggle cheat console -command.togglecheatview keyboard 0x0 6+alt - -;Toggle netplay console -command.togglenetview keyboard 0x0 23 - -;Automatically go into the debugger's step mode after a game is loaded. -debugger.autostepmode 0 - -;Enable (automatic) usage of this module. -demo.enable 1 - -;Force monophonic sound output. -demo.forcemono 0 - -;demo, Port 1, Controller: Rumble Control Strong -demo.input.port1.controller.rcstrong - -;demo, Port 1, Controller: Rumble Control Weak -demo.input.port1.controller.rcweak - -;demo, Port 1, Controller: Stick DOWN -demo.input.port1.controller.stick_down - -;demo, Port 1, Controller: Stick LEFT -demo.input.port1.controller.stick_left - -;demo, Port 1, Controller: Stick RIGHT -demo.input.port1.controller.stick_right - -;demo, Port 1, Controller: Stick UP -demo.input.port1.controller.stick_up - -;demo, Port 1, Controller: Select Test Mode -demo.input.port1.controller.stm - -;demo, Port 1, Controller: Switch Meow -demo.input.port1.controller.swt - -;Default position for switch "Switch Meow". -demo.input.port1.controller.swt.defpos waffles - -;demo, Port 1, Controller: Toggle Interlace Mode -demo.input.port1.controller.toggle_ilace - -;demo, Port 2, Controller: Rumble Control Strong -demo.input.port2.controller.rcstrong - -;demo, Port 2, Controller: Rumble Control Weak -demo.input.port2.controller.rcweak - -;demo, Port 2, Controller: Stick DOWN -demo.input.port2.controller.stick_down - -;demo, Port 2, Controller: Stick LEFT -demo.input.port2.controller.stick_left - -;demo, Port 2, Controller: Stick RIGHT -demo.input.port2.controller.stick_right - -;demo, Port 2, Controller: Stick UP -demo.input.port2.controller.stick_up - -;demo, Port 2, Controller: Select Test Mode -demo.input.port2.controller.stm - -;demo, Port 2, Controller: Switch Meow -demo.input.port2.controller.swt - -;Default position for switch "Switch Meow". -demo.input.port2.controller.swt.defpos waffles - -;demo, Port 2, Controller: Toggle Interlace Mode -demo.input.port2.controller.toggle_ilace - -;Multi-enum test. -demo.multi_enum - -;Sound quality. -demo.resamp_quality 3 - -;Sound output rate tolerance. -demo.resamp_rate_error 0.0000009 - -;Enable scanlines with specified opacity. -demo.scanlines 0 - -;Enable specified OpenGL shader. -demo.shader none - -;Force interlaced video to be treated as progressive. -demo.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -demo.shader.goat.hdiv 0.50 - -;Mask pattern. -demo.shader.goat.pat goatron - -;Enable scanlines effect. -demo.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -demo.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -demo.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -demo.special none - -;Stretch to fill screen. -demo.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -demo.tblur 0 - -;Accumulate color data rather than discarding it. -demo.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -demo.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -demo.videoip 1 - -;Full-screen horizontal resolution. -demo.xres 0 - -;Scaling factor for the X axis in windowed mode. -demo.xscale 2.000000 - -;Scaling factor for the X axis in fullscreen mode. -demo.xscalefs 1.000000 - -;Full-screen vertical resolution. -demo.yres 0 - -;Scaling factor for the Y axis in windowed mode. -demo.yscale 2.000000 - -;Scaling factor for the Y axis in fullscreen mode. -demo.yscalefs 1.000000 - -;Silence sound output when fast-forwarding. -ffnosound 0 - -;Fast-forwarding speed multiplier. -ffspeed 4 - -;Treat the fast-forward button as a toggle. -fftoggle 0 - -;Format string for movie filename. -filesys.fname_movie %f.%M%p.%x - -;Format string for save games filename. -filesys.fname_sav %f.%M%x - -;Format string for save game backups filename. -filesys.fname_savbackup %f.%m%z%p.%x - -;Format string for screen snapshot filenames. -filesys.fname_snap %f-%p.%x - -;Format string for state filename. -filesys.fname_state %f.%M%X - -;Enable old handling of .gz file extensions with respect to data file path construction. -filesys.old_gz_naming 0 - -;Path to directory for cheats. -filesys.path_cheat cheats - -;Path to directory for firmware. -filesys.path_firmware /storage/roms/bios/ - -;Path to directory for movies. -filesys.path_movie mcm - -;Path to directory for custom palettes. -filesys.path_palette palettes - -;Path to directory for per-game configuration override files. -filesys.path_pgconfig pgconfig - -;Path to directory for save games and nonvolatile memory. -filesys.path_sav /storage/roms/@PLATFORM@/ - -;Path to directory for backups of save games and nonvolatile memory. -filesys.path_savbackup b - -;Path to directory for screen snapshots. -filesys.path_snap /media/storage/screenshots/ - -;Path to directory for save states. -filesys.path_state /storage/roms/savestates/@PLATFORM@/ - -;Save state file compression level. -filesys.state_comp_level 6 - -;Enable untrusted file-inclusion path security check. -filesys.untrusted_fip_check 1 - -;Automatically enable FPS display on startup. -fps.autoenable 0 - -;FPS display background color. -fps.bgcolor 0x80000000 - -;FPS display font. -fps.font 5x7 - -;FPS display position. -fps.position upper_left - -;FPS display scale factor. -fps.scale 1 - -;FPS display text color. -fps.textcolor 0xFFFFFFFF - -;Enable (automatic) usage of this module. -gb.enable 1 - -;Force monophonic sound output. -gb.forcemono 0 - -;gb, Built-In, Gamepad: A -gb.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;gb, Built-In, Gamepad: B -gb.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;gb, Built-In, Gamepad: DOWN ↓ -gb.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;gb, Built-In, Gamepad: LEFT ← -gb.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;gb, Built-In, Gamepad: Rapid A -gb.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;gb, Built-In, Gamepad: Rapid B -gb.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;gb, Built-In, Gamepad: RIGHT → -gb.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;gb, Built-In, Gamepad: SELECT -gb.input.builtin.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_6 || mouse 0x0 button_left - -;gb, Built-In, Gamepad: START -gb.input.builtin.gamepad.start mouse 0x0 button_left || joystick 0x0003045e028e01010008000b00000000 button_7 - -;gb, Built-In, Gamepad: UP ↑ -gb.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;gb, Tilt, Tilt: DOWN ↓ -gb.input.tilt.tilt.down - -;gb, Tilt, Tilt: LEFT ← -gb.input.tilt.tilt.left - -;gb, Tilt, Tilt: RIGHT → -gb.input.tilt.tilt.right - -;gb, Tilt, Tilt: UP ↑ -gb.input.tilt.tilt.up - -;Enable scanlines with specified opacity. -gb.scanlines 0 - -;Enable specified OpenGL shader. -gb.shader ipsharper - -;Force interlaced video to be treated as progressive. -gb.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -gb.shader.goat.hdiv 0.50 - -;Mask pattern. -gb.shader.goat.pat goatron - -;Enable scanlines effect. -gb.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -gb.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -gb.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -gb.special none - -;Stretch to fill screen. -gb.stretch aspect - -;Emulated GB type. -gb.system_type dmg - -;Enable video temporal blur(50/50 previous/current frame by default). -gb.tblur 0 - -;Accumulate color data rather than discarding it. -gb.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -gb.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -gb.videoip 0 - -;Full-screen horizontal resolution. -gb.xres 0 - -;Scaling factor for the X axis in windowed mode. -gb.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -gb.xscalefs 1.000000 - -;Full-screen vertical resolution. -gb.yres 0 - -;Scaling factor for the Y axis in windowed mode. -gb.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -gb.yscalefs 1.000000 - -;Path to optional GBA BIOS ROM image. -gba.bios - -;Enable (automatic) usage of this module. -gba.enable 1 - -;Force monophonic sound output. -gba.forcemono 0 - -;gba, Built-In, Gamepad: A -gba.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;gba, Built-In, Gamepad: B -gba.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;gba, Built-In, Gamepad: DOWN ↓ -gba.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;gba, Built-In, Gamepad: LEFT ← -gba.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;gba, Built-In, Gamepad: Rapid A -gba.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;gba, Built-In, Gamepad: Rapid B -gba.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;gba, Built-In, Gamepad: RIGHT → -gba.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;gba, Built-In, Gamepad: SELECT -gba.input.builtin.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;gba, Built-In, Gamepad: SHOULDER L -gba.input.builtin.gamepad.shoulder_l joystick 0x0003045e028e01010008000b00000000 button_4 - -;gba, Built-In, Gamepad: SHOULDER R -gba.input.builtin.gamepad.shoulder_r joystick 0x0003045e028e01010008000b00000000 button_5 - -;gba, Built-In, Gamepad: START -gba.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;gba, Built-In, Gamepad: UP ↑ -gba.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;Enable scanlines with specified opacity. -gba.scanlines 0 - -;Enable specified OpenGL shader. -gba.shader sabr - -;Force interlaced video to be treated as progressive. -gba.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -gba.shader.goat.hdiv 0.50 - -;Mask pattern. -gba.shader.goat.pat goatron - -;Enable scanlines effect. -gba.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -gba.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -gba.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -gba.special none - -;Stretch to fill screen. -gba.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -gba.tblur 0 - -;Accumulate color data rather than discarding it. -gba.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -gba.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -gba.videoip 0 - -;Full-screen horizontal resolution. -gba.xres 0 - -;Scaling factor for the X axis in windowed mode. -gba.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -gba.xscalefs 1.000000 - -;Full-screen vertical resolution. -gba.yres 0 - -;Scaling factor for the Y axis in windowed mode. -gba.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -gba.yscalefs 1.000000 - -;Enable (automatic) usage of this module. -gg.enable 1 - -;Force monophonic sound output. -gg.forcemono 0 - -;gg, Built-In, Gamepad: Button 1 -gg.input.builtin.gamepad.button1 joystick 0x0003045e028e01010008000b00000000 button_0 - -;gg, Built-In, Gamepad: Button 2 -gg.input.builtin.gamepad.button2 joystick 0x0003045e028e01010008000b00000000 button_1 - -;gg, Built-In, Gamepad: DOWN ↓ -gg.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;gg, Built-In, Gamepad: LEFT ← -gg.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;gg, Built-In, Gamepad: Rapid Button 1 -gg.input.builtin.gamepad.rapid_button1 joystick 0x0003045e028e01010008000b00000000 button_2 - -;gg, Built-In, Gamepad: Rapid Button 2 -gg.input.builtin.gamepad.rapid_button2 joystick 0x0003045e028e01010008000b00000000 button_3 - -;gg, Built-In, Gamepad: RIGHT → -gg.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;gg, Built-In, Gamepad: Start -gg.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;gg, Built-In, Gamepad: UP ↑ -gg.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;Enable scanlines with specified opacity. -gg.scanlines 0 - -;Enable specified OpenGL shader. -gg.shader sabr - -;Force interlaced video to be treated as progressive. -gg.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -gg.shader.goat.hdiv 0.50 - -;Mask pattern. -gg.shader.goat.pat goatron - -;Enable scanlines effect. -gg.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -gg.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -gg.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -gg.special none - -;Stretch to fill screen. -gg.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -gg.tblur 0 - -;Accumulate color data rather than discarding it. -gg.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -gg.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -gg.videoip 0 - -;Full-screen horizontal resolution. -gg.xres 0 - -;Scaling factor for the X axis in windowed mode. -gg.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -gg.xscalefs 1.000000 - -;Full-screen vertical resolution. -gg.yres 0 - -;Scaling factor for the Y axis in windowed mode. -gg.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -gg.yscalefs 1.000000 - -;Auto-fire frequency. -input.autofirefreq 3 - -;Dangerous key action delay. -input.ckdelay 2000 - -;Analog axis binary press detection threshold. -input.joystick.axis_threshold 75 - -;Update physical joystick(s) internal state in Mednafen even when Mednafen lacks OS focus. -input.joystick.global_focus 1 - -;Enable (automatic) usage of this module. -lynx.enable 1 - -;Force monophonic sound output. -lynx.forcemono 0 - -;lynx, Built-In, Gamepad: A (outer) -lynx.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;lynx, Built-In, Gamepad: B (inner) -lynx.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;lynx, Built-In, Gamepad: DOWN ↓ -lynx.input.builtin.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;lynx, Built-In, Gamepad: LEFT ← -lynx.input.builtin.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;lynx, Built-In, Gamepad: Option 1 (upper) -lynx.input.builtin.gamepad.option_1 joystick 0x0003045e028e01010008000b00000000 button_4 - -;lynx, Built-In, Gamepad: Option 2 (lower) -lynx.input.builtin.gamepad.option_2 joystick 0x0003045e028e01010008000b00000000 button_5 - -;lynx, Built-In, Gamepad: PAUSE -lynx.input.builtin.gamepad.pause joystick 0x0003045e028e01010008000b00000000 button_7 - -;lynx, Built-In, Gamepad: Rapid A (outer) -lynx.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;lynx, Built-In, Gamepad: Rapid B (inner) -lynx.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;lynx, Built-In, Gamepad: Rapid Option 1 (upper) -lynx.input.builtin.gamepad.rapid_option_1 keyboard 0x0 17 - -;lynx, Built-In, Gamepad: Rapid Option 2 (lower) -lynx.input.builtin.gamepad.rapid_option_2 keyboard 0x0 17 - -;lynx, Built-In, Gamepad: RIGHT → -lynx.input.builtin.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;lynx, Built-In, Gamepad: UP ↑ -lynx.input.builtin.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;Enable sound output lowpass filter. -lynx.lowpass 1 - -;Virtually rotate the D-pad when the screen is rotated. -lynx.rotateinput 1 - -;Enable scanlines with specified opacity. -lynx.scanlines 0 - -;Enable specified OpenGL shader. -lynx.shader sabr - -;Force interlaced video to be treated as progressive. -lynx.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -lynx.shader.goat.hdiv 0.50 - -;Mask pattern. -lynx.shader.goat.pat goatron - -;Enable scanlines effect. -lynx.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -lynx.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -lynx.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -lynx.special none - -;Stretch to fill screen. -lynx.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -lynx.tblur 0 - -;Accumulate color data rather than discarding it. -lynx.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -lynx.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -lynx.videoip 0 - -;Full-screen horizontal resolution. -lynx.xres 0 - -;Scaling factor for the X axis in windowed mode. -lynx.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -lynx.xscalefs 1.000000 - -;Full-screen vertical resolution. -lynx.yres 0 - -;Scaling factor for the Y axis in windowed mode. -lynx.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -lynx.yscalefs 1.000000 - -;Path to the CD BIOS -md.cdbios us_scd1_9210.bin - -;Correct the aspect ratio. -md.correct_aspect 1 - -;Disassembly font size. -md.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -md.debugger.memcharenc shift_jis - -;Enable (automatic) usage of this module. -md.enable 1 - -;Force monophonic sound output. -md.forcemono 0 - -;Automatically select appropriate input devices. -md.input.auto 1 - -;Emulated mouse sensitivity. -md.input.mouse_sensitivity 1.00 - -;Enable multitap(s). -md.input.multitap none - -;Input device for Virtual Port 1 -md.input.port1 gamepad - -;md, Virtual Port 1, 3-Button Gamepad: A -md.input.port1.gamepad.a keyboard 0x0 89 - -;md, Virtual Port 1, 3-Button Gamepad: B -md.input.port1.gamepad.b keyboard 0x0 90 - -;md, Virtual Port 1, 3-Button Gamepad: C -md.input.port1.gamepad.c keyboard 0x0 91 - -;md, Virtual Port 1, 3-Button Gamepad: DOWN ↓ -md.input.port1.gamepad.down keyboard 0x0 22 - -;md, Virtual Port 1, 3-Button Gamepad: LEFT ← -md.input.port1.gamepad.left keyboard 0x0 4 - -;md, Virtual Port 1, 3-Button Gamepad: Rapid A -md.input.port1.gamepad.rapid_a - -;md, Virtual Port 1, 3-Button Gamepad: Rapid B -md.input.port1.gamepad.rapid_b - -;md, Virtual Port 1, 3-Button Gamepad: Rapid C -md.input.port1.gamepad.rapid_c - -;md, Virtual Port 1, 3-Button Gamepad: RIGHT → -md.input.port1.gamepad.right keyboard 0x0 7 - -;md, Virtual Port 1, 3-Button Gamepad: Start -md.input.port1.gamepad.start keyboard 0x0 40 - -;md, Virtual Port 1, 3-Button Gamepad: UP ↑ -md.input.port1.gamepad.up keyboard 0x0 26 - -;md, Virtual Port 1, 2-Button Gamepad: A -md.input.port1.gamepad2.a - -;md, Virtual Port 1, 2-Button Gamepad: B -md.input.port1.gamepad2.b - -;md, Virtual Port 1, 2-Button Gamepad: DOWN ↓ -md.input.port1.gamepad2.down - -;md, Virtual Port 1, 2-Button Gamepad: LEFT ← -md.input.port1.gamepad2.left - -;md, Virtual Port 1, 2-Button Gamepad: Rapid A -md.input.port1.gamepad2.rapid_a - -;md, Virtual Port 1, 2-Button Gamepad: Rapid B -md.input.port1.gamepad2.rapid_b - -;md, Virtual Port 1, 2-Button Gamepad: RIGHT → -md.input.port1.gamepad2.right - -;md, Virtual Port 1, 2-Button Gamepad: Start -md.input.port1.gamepad2.start - -;md, Virtual Port 1, 2-Button Gamepad: UP ↑ -md.input.port1.gamepad2.up - -;md, Virtual Port 1, 6-Button Gamepad: A -md.input.port1.gamepad6.a keyboard 0x0 89 - -;md, Virtual Port 1, 6-Button Gamepad: B -md.input.port1.gamepad6.b keyboard 0x0 90 - -;md, Virtual Port 1, 6-Button Gamepad: C -md.input.port1.gamepad6.c keyboard 0x0 91 - -;md, Virtual Port 1, 6-Button Gamepad: DOWN ↓ -md.input.port1.gamepad6.down keyboard 0x0 22 - -;md, Virtual Port 1, 6-Button Gamepad: LEFT ← -md.input.port1.gamepad6.left keyboard 0x0 4 - -;md, Virtual Port 1, 6-Button Gamepad: Mode -md.input.port1.gamepad6.mode keyboard 0x0 16 - -;md, Virtual Port 1, 6-Button Gamepad: Rapid A -md.input.port1.gamepad6.rapid_a - -;md, Virtual Port 1, 6-Button Gamepad: Rapid B -md.input.port1.gamepad6.rapid_b - -;md, Virtual Port 1, 6-Button Gamepad: Rapid C -md.input.port1.gamepad6.rapid_c - -;md, Virtual Port 1, 6-Button Gamepad: Rapid X -md.input.port1.gamepad6.rapid_x - -;md, Virtual Port 1, 6-Button Gamepad: Rapid Y -md.input.port1.gamepad6.rapid_y - -;md, Virtual Port 1, 6-Button Gamepad: Rapid Z -md.input.port1.gamepad6.rapid_z - -;md, Virtual Port 1, 6-Button Gamepad: RIGHT → -md.input.port1.gamepad6.right keyboard 0x0 7 - -;md, Virtual Port 1, 6-Button Gamepad: Start -md.input.port1.gamepad6.start keyboard 0x0 40 - -;md, Virtual Port 1, 6-Button Gamepad: UP ↑ -md.input.port1.gamepad6.up keyboard 0x0 26 - -;md, Virtual Port 1, 6-Button Gamepad: X -md.input.port1.gamepad6.x keyboard 0x0 92 - -;md, Virtual Port 1, 6-Button Gamepad: Y -md.input.port1.gamepad6.y keyboard 0x0 93 - -;md, Virtual Port 1, 6-Button Gamepad: Z -md.input.port1.gamepad6.z keyboard 0x0 94 - -;md, Virtual Port 1, Sega Mega Mouse: Left Button -md.input.port1.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 1, Sega Mega Mouse: Middle Button -md.input.port1.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 1, Sega Mega Mouse: Motion Down -md.input.port1.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 1, Sega Mega Mouse: Motion Left -md.input.port1.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 1, Sega Mega Mouse: Motion Right -md.input.port1.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 1, Sega Mega Mouse: Motion Up -md.input.port1.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 1, Sega Mega Mouse: Right Button -md.input.port1.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 1, Sega Mega Mouse: Start Button -md.input.port1.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 2 -md.input.port2 gamepad - -;md, Virtual Port 2, 3-Button Gamepad: A -md.input.port2.gamepad.a - -;md, Virtual Port 2, 3-Button Gamepad: B -md.input.port2.gamepad.b - -;md, Virtual Port 2, 3-Button Gamepad: C -md.input.port2.gamepad.c - -;md, Virtual Port 2, 3-Button Gamepad: DOWN ↓ -md.input.port2.gamepad.down - -;md, Virtual Port 2, 3-Button Gamepad: LEFT ← -md.input.port2.gamepad.left - -;md, Virtual Port 2, 3-Button Gamepad: Rapid A -md.input.port2.gamepad.rapid_a - -;md, Virtual Port 2, 3-Button Gamepad: Rapid B -md.input.port2.gamepad.rapid_b - -;md, Virtual Port 2, 3-Button Gamepad: Rapid C -md.input.port2.gamepad.rapid_c - -;md, Virtual Port 2, 3-Button Gamepad: RIGHT → -md.input.port2.gamepad.right - -;md, Virtual Port 2, 3-Button Gamepad: Start -md.input.port2.gamepad.start - -;md, Virtual Port 2, 3-Button Gamepad: UP ↑ -md.input.port2.gamepad.up - -;md, Virtual Port 2, 2-Button Gamepad: A -md.input.port2.gamepad2.a - -;md, Virtual Port 2, 2-Button Gamepad: B -md.input.port2.gamepad2.b - -;md, Virtual Port 2, 2-Button Gamepad: DOWN ↓ -md.input.port2.gamepad2.down - -;md, Virtual Port 2, 2-Button Gamepad: LEFT ← -md.input.port2.gamepad2.left - -;md, Virtual Port 2, 2-Button Gamepad: Rapid A -md.input.port2.gamepad2.rapid_a - -;md, Virtual Port 2, 2-Button Gamepad: Rapid B -md.input.port2.gamepad2.rapid_b - -;md, Virtual Port 2, 2-Button Gamepad: RIGHT → -md.input.port2.gamepad2.right - -;md, Virtual Port 2, 2-Button Gamepad: Start -md.input.port2.gamepad2.start - -;md, Virtual Port 2, 2-Button Gamepad: UP ↑ -md.input.port2.gamepad2.up - -;md, Virtual Port 2, 6-Button Gamepad: A -md.input.port2.gamepad6.a - -;md, Virtual Port 2, 6-Button Gamepad: B -md.input.port2.gamepad6.b - -;md, Virtual Port 2, 6-Button Gamepad: C -md.input.port2.gamepad6.c - -;md, Virtual Port 2, 6-Button Gamepad: DOWN ↓ -md.input.port2.gamepad6.down - -;md, Virtual Port 2, 6-Button Gamepad: LEFT ← -md.input.port2.gamepad6.left - -;md, Virtual Port 2, 6-Button Gamepad: Mode -md.input.port2.gamepad6.mode - -;md, Virtual Port 2, 6-Button Gamepad: Rapid A -md.input.port2.gamepad6.rapid_a - -;md, Virtual Port 2, 6-Button Gamepad: Rapid B -md.input.port2.gamepad6.rapid_b - -;md, Virtual Port 2, 6-Button Gamepad: Rapid C -md.input.port2.gamepad6.rapid_c - -;md, Virtual Port 2, 6-Button Gamepad: Rapid X -md.input.port2.gamepad6.rapid_x - -;md, Virtual Port 2, 6-Button Gamepad: Rapid Y -md.input.port2.gamepad6.rapid_y - -;md, Virtual Port 2, 6-Button Gamepad: Rapid Z -md.input.port2.gamepad6.rapid_z - -;md, Virtual Port 2, 6-Button Gamepad: RIGHT → -md.input.port2.gamepad6.right - -;md, Virtual Port 2, 6-Button Gamepad: Start -md.input.port2.gamepad6.start - -;md, Virtual Port 2, 6-Button Gamepad: UP ↑ -md.input.port2.gamepad6.up - -;md, Virtual Port 2, 6-Button Gamepad: X -md.input.port2.gamepad6.x - -;md, Virtual Port 2, 6-Button Gamepad: Y -md.input.port2.gamepad6.y - -;md, Virtual Port 2, 6-Button Gamepad: Z -md.input.port2.gamepad6.z - -;md, Virtual Port 2, Sega Mega Mouse: Left Button -md.input.port2.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 2, Sega Mega Mouse: Middle Button -md.input.port2.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 2, Sega Mega Mouse: Motion Down -md.input.port2.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 2, Sega Mega Mouse: Motion Left -md.input.port2.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 2, Sega Mega Mouse: Motion Right -md.input.port2.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 2, Sega Mega Mouse: Motion Up -md.input.port2.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 2, Sega Mega Mouse: Right Button -md.input.port2.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 2, Sega Mega Mouse: Start Button -md.input.port2.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 3 -md.input.port3 gamepad - -;md, Virtual Port 3, 3-Button Gamepad: A -md.input.port3.gamepad.a - -;md, Virtual Port 3, 3-Button Gamepad: B -md.input.port3.gamepad.b - -;md, Virtual Port 3, 3-Button Gamepad: C -md.input.port3.gamepad.c - -;md, Virtual Port 3, 3-Button Gamepad: DOWN ↓ -md.input.port3.gamepad.down - -;md, Virtual Port 3, 3-Button Gamepad: LEFT ← -md.input.port3.gamepad.left - -;md, Virtual Port 3, 3-Button Gamepad: Rapid A -md.input.port3.gamepad.rapid_a - -;md, Virtual Port 3, 3-Button Gamepad: Rapid B -md.input.port3.gamepad.rapid_b - -;md, Virtual Port 3, 3-Button Gamepad: Rapid C -md.input.port3.gamepad.rapid_c - -;md, Virtual Port 3, 3-Button Gamepad: RIGHT → -md.input.port3.gamepad.right - -;md, Virtual Port 3, 3-Button Gamepad: Start -md.input.port3.gamepad.start - -;md, Virtual Port 3, 3-Button Gamepad: UP ↑ -md.input.port3.gamepad.up - -;md, Virtual Port 3, 2-Button Gamepad: A -md.input.port3.gamepad2.a - -;md, Virtual Port 3, 2-Button Gamepad: B -md.input.port3.gamepad2.b - -;md, Virtual Port 3, 2-Button Gamepad: DOWN ↓ -md.input.port3.gamepad2.down - -;md, Virtual Port 3, 2-Button Gamepad: LEFT ← -md.input.port3.gamepad2.left - -;md, Virtual Port 3, 2-Button Gamepad: Rapid A -md.input.port3.gamepad2.rapid_a - -;md, Virtual Port 3, 2-Button Gamepad: Rapid B -md.input.port3.gamepad2.rapid_b - -;md, Virtual Port 3, 2-Button Gamepad: RIGHT → -md.input.port3.gamepad2.right - -;md, Virtual Port 3, 2-Button Gamepad: Start -md.input.port3.gamepad2.start - -;md, Virtual Port 3, 2-Button Gamepad: UP ↑ -md.input.port3.gamepad2.up - -;md, Virtual Port 3, 6-Button Gamepad: A -md.input.port3.gamepad6.a - -;md, Virtual Port 3, 6-Button Gamepad: B -md.input.port3.gamepad6.b - -;md, Virtual Port 3, 6-Button Gamepad: C -md.input.port3.gamepad6.c - -;md, Virtual Port 3, 6-Button Gamepad: DOWN ↓ -md.input.port3.gamepad6.down - -;md, Virtual Port 3, 6-Button Gamepad: LEFT ← -md.input.port3.gamepad6.left - -;md, Virtual Port 3, 6-Button Gamepad: Mode -md.input.port3.gamepad6.mode - -;md, Virtual Port 3, 6-Button Gamepad: Rapid A -md.input.port3.gamepad6.rapid_a - -;md, Virtual Port 3, 6-Button Gamepad: Rapid B -md.input.port3.gamepad6.rapid_b - -;md, Virtual Port 3, 6-Button Gamepad: Rapid C -md.input.port3.gamepad6.rapid_c - -;md, Virtual Port 3, 6-Button Gamepad: Rapid X -md.input.port3.gamepad6.rapid_x - -;md, Virtual Port 3, 6-Button Gamepad: Rapid Y -md.input.port3.gamepad6.rapid_y - -;md, Virtual Port 3, 6-Button Gamepad: Rapid Z -md.input.port3.gamepad6.rapid_z - -;md, Virtual Port 3, 6-Button Gamepad: RIGHT → -md.input.port3.gamepad6.right - -;md, Virtual Port 3, 6-Button Gamepad: Start -md.input.port3.gamepad6.start - -;md, Virtual Port 3, 6-Button Gamepad: UP ↑ -md.input.port3.gamepad6.up - -;md, Virtual Port 3, 6-Button Gamepad: X -md.input.port3.gamepad6.x - -;md, Virtual Port 3, 6-Button Gamepad: Y -md.input.port3.gamepad6.y - -;md, Virtual Port 3, 6-Button Gamepad: Z -md.input.port3.gamepad6.z - -;md, Virtual Port 3, Sega Mega Mouse: Left Button -md.input.port3.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 3, Sega Mega Mouse: Middle Button -md.input.port3.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 3, Sega Mega Mouse: Motion Down -md.input.port3.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 3, Sega Mega Mouse: Motion Left -md.input.port3.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 3, Sega Mega Mouse: Motion Right -md.input.port3.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 3, Sega Mega Mouse: Motion Up -md.input.port3.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 3, Sega Mega Mouse: Right Button -md.input.port3.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 3, Sega Mega Mouse: Start Button -md.input.port3.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 4 -md.input.port4 gamepad - -;md, Virtual Port 4, 3-Button Gamepad: A -md.input.port4.gamepad.a - -;md, Virtual Port 4, 3-Button Gamepad: B -md.input.port4.gamepad.b - -;md, Virtual Port 4, 3-Button Gamepad: C -md.input.port4.gamepad.c - -;md, Virtual Port 4, 3-Button Gamepad: DOWN ↓ -md.input.port4.gamepad.down - -;md, Virtual Port 4, 3-Button Gamepad: LEFT ← -md.input.port4.gamepad.left - -;md, Virtual Port 4, 3-Button Gamepad: Rapid A -md.input.port4.gamepad.rapid_a - -;md, Virtual Port 4, 3-Button Gamepad: Rapid B -md.input.port4.gamepad.rapid_b - -;md, Virtual Port 4, 3-Button Gamepad: Rapid C -md.input.port4.gamepad.rapid_c - -;md, Virtual Port 4, 3-Button Gamepad: RIGHT → -md.input.port4.gamepad.right - -;md, Virtual Port 4, 3-Button Gamepad: Start -md.input.port4.gamepad.start - -;md, Virtual Port 4, 3-Button Gamepad: UP ↑ -md.input.port4.gamepad.up - -;md, Virtual Port 4, 2-Button Gamepad: A -md.input.port4.gamepad2.a - -;md, Virtual Port 4, 2-Button Gamepad: B -md.input.port4.gamepad2.b - -;md, Virtual Port 4, 2-Button Gamepad: DOWN ↓ -md.input.port4.gamepad2.down - -;md, Virtual Port 4, 2-Button Gamepad: LEFT ← -md.input.port4.gamepad2.left - -;md, Virtual Port 4, 2-Button Gamepad: Rapid A -md.input.port4.gamepad2.rapid_a - -;md, Virtual Port 4, 2-Button Gamepad: Rapid B -md.input.port4.gamepad2.rapid_b - -;md, Virtual Port 4, 2-Button Gamepad: RIGHT → -md.input.port4.gamepad2.right - -;md, Virtual Port 4, 2-Button Gamepad: Start -md.input.port4.gamepad2.start - -;md, Virtual Port 4, 2-Button Gamepad: UP ↑ -md.input.port4.gamepad2.up - -;md, Virtual Port 4, 6-Button Gamepad: A -md.input.port4.gamepad6.a - -;md, Virtual Port 4, 6-Button Gamepad: B -md.input.port4.gamepad6.b - -;md, Virtual Port 4, 6-Button Gamepad: C -md.input.port4.gamepad6.c - -;md, Virtual Port 4, 6-Button Gamepad: DOWN ↓ -md.input.port4.gamepad6.down - -;md, Virtual Port 4, 6-Button Gamepad: LEFT ← -md.input.port4.gamepad6.left - -;md, Virtual Port 4, 6-Button Gamepad: Mode -md.input.port4.gamepad6.mode - -;md, Virtual Port 4, 6-Button Gamepad: Rapid A -md.input.port4.gamepad6.rapid_a - -;md, Virtual Port 4, 6-Button Gamepad: Rapid B -md.input.port4.gamepad6.rapid_b - -;md, Virtual Port 4, 6-Button Gamepad: Rapid C -md.input.port4.gamepad6.rapid_c - -;md, Virtual Port 4, 6-Button Gamepad: Rapid X -md.input.port4.gamepad6.rapid_x - -;md, Virtual Port 4, 6-Button Gamepad: Rapid Y -md.input.port4.gamepad6.rapid_y - -;md, Virtual Port 4, 6-Button Gamepad: Rapid Z -md.input.port4.gamepad6.rapid_z - -;md, Virtual Port 4, 6-Button Gamepad: RIGHT → -md.input.port4.gamepad6.right - -;md, Virtual Port 4, 6-Button Gamepad: Start -md.input.port4.gamepad6.start - -;md, Virtual Port 4, 6-Button Gamepad: UP ↑ -md.input.port4.gamepad6.up - -;md, Virtual Port 4, 6-Button Gamepad: X -md.input.port4.gamepad6.x - -;md, Virtual Port 4, 6-Button Gamepad: Y -md.input.port4.gamepad6.y - -;md, Virtual Port 4, 6-Button Gamepad: Z -md.input.port4.gamepad6.z - -;md, Virtual Port 4, Sega Mega Mouse: Left Button -md.input.port4.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 4, Sega Mega Mouse: Middle Button -md.input.port4.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 4, Sega Mega Mouse: Motion Down -md.input.port4.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 4, Sega Mega Mouse: Motion Left -md.input.port4.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 4, Sega Mega Mouse: Motion Right -md.input.port4.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 4, Sega Mega Mouse: Motion Up -md.input.port4.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 4, Sega Mega Mouse: Right Button -md.input.port4.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 4, Sega Mega Mouse: Start Button -md.input.port4.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 5 -md.input.port5 gamepad - -;md, Virtual Port 5, 3-Button Gamepad: A -md.input.port5.gamepad.a - -;md, Virtual Port 5, 3-Button Gamepad: B -md.input.port5.gamepad.b - -;md, Virtual Port 5, 3-Button Gamepad: C -md.input.port5.gamepad.c - -;md, Virtual Port 5, 3-Button Gamepad: DOWN ↓ -md.input.port5.gamepad.down - -;md, Virtual Port 5, 3-Button Gamepad: LEFT ← -md.input.port5.gamepad.left - -;md, Virtual Port 5, 3-Button Gamepad: Rapid A -md.input.port5.gamepad.rapid_a - -;md, Virtual Port 5, 3-Button Gamepad: Rapid B -md.input.port5.gamepad.rapid_b - -;md, Virtual Port 5, 3-Button Gamepad: Rapid C -md.input.port5.gamepad.rapid_c - -;md, Virtual Port 5, 3-Button Gamepad: RIGHT → -md.input.port5.gamepad.right - -;md, Virtual Port 5, 3-Button Gamepad: Start -md.input.port5.gamepad.start - -;md, Virtual Port 5, 3-Button Gamepad: UP ↑ -md.input.port5.gamepad.up - -;md, Virtual Port 5, 2-Button Gamepad: A -md.input.port5.gamepad2.a - -;md, Virtual Port 5, 2-Button Gamepad: B -md.input.port5.gamepad2.b - -;md, Virtual Port 5, 2-Button Gamepad: DOWN ↓ -md.input.port5.gamepad2.down - -;md, Virtual Port 5, 2-Button Gamepad: LEFT ← -md.input.port5.gamepad2.left - -;md, Virtual Port 5, 2-Button Gamepad: Rapid A -md.input.port5.gamepad2.rapid_a - -;md, Virtual Port 5, 2-Button Gamepad: Rapid B -md.input.port5.gamepad2.rapid_b - -;md, Virtual Port 5, 2-Button Gamepad: RIGHT → -md.input.port5.gamepad2.right - -;md, Virtual Port 5, 2-Button Gamepad: Start -md.input.port5.gamepad2.start - -;md, Virtual Port 5, 2-Button Gamepad: UP ↑ -md.input.port5.gamepad2.up - -;md, Virtual Port 5, 6-Button Gamepad: A -md.input.port5.gamepad6.a - -;md, Virtual Port 5, 6-Button Gamepad: B -md.input.port5.gamepad6.b - -;md, Virtual Port 5, 6-Button Gamepad: C -md.input.port5.gamepad6.c - -;md, Virtual Port 5, 6-Button Gamepad: DOWN ↓ -md.input.port5.gamepad6.down - -;md, Virtual Port 5, 6-Button Gamepad: LEFT ← -md.input.port5.gamepad6.left - -;md, Virtual Port 5, 6-Button Gamepad: Mode -md.input.port5.gamepad6.mode - -;md, Virtual Port 5, 6-Button Gamepad: Rapid A -md.input.port5.gamepad6.rapid_a - -;md, Virtual Port 5, 6-Button Gamepad: Rapid B -md.input.port5.gamepad6.rapid_b - -;md, Virtual Port 5, 6-Button Gamepad: Rapid C -md.input.port5.gamepad6.rapid_c - -;md, Virtual Port 5, 6-Button Gamepad: Rapid X -md.input.port5.gamepad6.rapid_x - -;md, Virtual Port 5, 6-Button Gamepad: Rapid Y -md.input.port5.gamepad6.rapid_y - -;md, Virtual Port 5, 6-Button Gamepad: Rapid Z -md.input.port5.gamepad6.rapid_z - -;md, Virtual Port 5, 6-Button Gamepad: RIGHT → -md.input.port5.gamepad6.right - -;md, Virtual Port 5, 6-Button Gamepad: Start -md.input.port5.gamepad6.start - -;md, Virtual Port 5, 6-Button Gamepad: UP ↑ -md.input.port5.gamepad6.up - -;md, Virtual Port 5, 6-Button Gamepad: X -md.input.port5.gamepad6.x - -;md, Virtual Port 5, 6-Button Gamepad: Y -md.input.port5.gamepad6.y - -;md, Virtual Port 5, 6-Button Gamepad: Z -md.input.port5.gamepad6.z - -;md, Virtual Port 5, Sega Mega Mouse: Left Button -md.input.port5.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 5, Sega Mega Mouse: Middle Button -md.input.port5.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 5, Sega Mega Mouse: Motion Down -md.input.port5.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 5, Sega Mega Mouse: Motion Left -md.input.port5.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 5, Sega Mega Mouse: Motion Right -md.input.port5.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 5, Sega Mega Mouse: Motion Up -md.input.port5.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 5, Sega Mega Mouse: Right Button -md.input.port5.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 5, Sega Mega Mouse: Start Button -md.input.port5.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 6 -md.input.port6 gamepad - -;md, Virtual Port 6, 3-Button Gamepad: A -md.input.port6.gamepad.a - -;md, Virtual Port 6, 3-Button Gamepad: B -md.input.port6.gamepad.b - -;md, Virtual Port 6, 3-Button Gamepad: C -md.input.port6.gamepad.c - -;md, Virtual Port 6, 3-Button Gamepad: DOWN ↓ -md.input.port6.gamepad.down - -;md, Virtual Port 6, 3-Button Gamepad: LEFT ← -md.input.port6.gamepad.left - -;md, Virtual Port 6, 3-Button Gamepad: Rapid A -md.input.port6.gamepad.rapid_a - -;md, Virtual Port 6, 3-Button Gamepad: Rapid B -md.input.port6.gamepad.rapid_b - -;md, Virtual Port 6, 3-Button Gamepad: Rapid C -md.input.port6.gamepad.rapid_c - -;md, Virtual Port 6, 3-Button Gamepad: RIGHT → -md.input.port6.gamepad.right - -;md, Virtual Port 6, 3-Button Gamepad: Start -md.input.port6.gamepad.start - -;md, Virtual Port 6, 3-Button Gamepad: UP ↑ -md.input.port6.gamepad.up - -;md, Virtual Port 6, 2-Button Gamepad: A -md.input.port6.gamepad2.a - -;md, Virtual Port 6, 2-Button Gamepad: B -md.input.port6.gamepad2.b - -;md, Virtual Port 6, 2-Button Gamepad: DOWN ↓ -md.input.port6.gamepad2.down - -;md, Virtual Port 6, 2-Button Gamepad: LEFT ← -md.input.port6.gamepad2.left - -;md, Virtual Port 6, 2-Button Gamepad: Rapid A -md.input.port6.gamepad2.rapid_a - -;md, Virtual Port 6, 2-Button Gamepad: Rapid B -md.input.port6.gamepad2.rapid_b - -;md, Virtual Port 6, 2-Button Gamepad: RIGHT → -md.input.port6.gamepad2.right - -;md, Virtual Port 6, 2-Button Gamepad: Start -md.input.port6.gamepad2.start - -;md, Virtual Port 6, 2-Button Gamepad: UP ↑ -md.input.port6.gamepad2.up - -;md, Virtual Port 6, 6-Button Gamepad: A -md.input.port6.gamepad6.a - -;md, Virtual Port 6, 6-Button Gamepad: B -md.input.port6.gamepad6.b - -;md, Virtual Port 6, 6-Button Gamepad: C -md.input.port6.gamepad6.c - -;md, Virtual Port 6, 6-Button Gamepad: DOWN ↓ -md.input.port6.gamepad6.down - -;md, Virtual Port 6, 6-Button Gamepad: LEFT ← -md.input.port6.gamepad6.left - -;md, Virtual Port 6, 6-Button Gamepad: Mode -md.input.port6.gamepad6.mode - -;md, Virtual Port 6, 6-Button Gamepad: Rapid A -md.input.port6.gamepad6.rapid_a - -;md, Virtual Port 6, 6-Button Gamepad: Rapid B -md.input.port6.gamepad6.rapid_b - -;md, Virtual Port 6, 6-Button Gamepad: Rapid C -md.input.port6.gamepad6.rapid_c - -;md, Virtual Port 6, 6-Button Gamepad: Rapid X -md.input.port6.gamepad6.rapid_x - -;md, Virtual Port 6, 6-Button Gamepad: Rapid Y -md.input.port6.gamepad6.rapid_y - -;md, Virtual Port 6, 6-Button Gamepad: Rapid Z -md.input.port6.gamepad6.rapid_z - -;md, Virtual Port 6, 6-Button Gamepad: RIGHT → -md.input.port6.gamepad6.right - -;md, Virtual Port 6, 6-Button Gamepad: Start -md.input.port6.gamepad6.start - -;md, Virtual Port 6, 6-Button Gamepad: UP ↑ -md.input.port6.gamepad6.up - -;md, Virtual Port 6, 6-Button Gamepad: X -md.input.port6.gamepad6.x - -;md, Virtual Port 6, 6-Button Gamepad: Y -md.input.port6.gamepad6.y - -;md, Virtual Port 6, 6-Button Gamepad: Z -md.input.port6.gamepad6.z - -;md, Virtual Port 6, Sega Mega Mouse: Left Button -md.input.port6.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 6, Sega Mega Mouse: Middle Button -md.input.port6.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 6, Sega Mega Mouse: Motion Down -md.input.port6.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 6, Sega Mega Mouse: Motion Left -md.input.port6.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 6, Sega Mega Mouse: Motion Right -md.input.port6.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 6, Sega Mega Mouse: Motion Up -md.input.port6.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 6, Sega Mega Mouse: Right Button -md.input.port6.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 6, Sega Mega Mouse: Start Button -md.input.port6.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 7 -md.input.port7 gamepad - -;md, Virtual Port 7, 3-Button Gamepad: A -md.input.port7.gamepad.a - -;md, Virtual Port 7, 3-Button Gamepad: B -md.input.port7.gamepad.b - -;md, Virtual Port 7, 3-Button Gamepad: C -md.input.port7.gamepad.c - -;md, Virtual Port 7, 3-Button Gamepad: DOWN ↓ -md.input.port7.gamepad.down - -;md, Virtual Port 7, 3-Button Gamepad: LEFT ← -md.input.port7.gamepad.left - -;md, Virtual Port 7, 3-Button Gamepad: Rapid A -md.input.port7.gamepad.rapid_a - -;md, Virtual Port 7, 3-Button Gamepad: Rapid B -md.input.port7.gamepad.rapid_b - -;md, Virtual Port 7, 3-Button Gamepad: Rapid C -md.input.port7.gamepad.rapid_c - -;md, Virtual Port 7, 3-Button Gamepad: RIGHT → -md.input.port7.gamepad.right - -;md, Virtual Port 7, 3-Button Gamepad: Start -md.input.port7.gamepad.start - -;md, Virtual Port 7, 3-Button Gamepad: UP ↑ -md.input.port7.gamepad.up - -;md, Virtual Port 7, 2-Button Gamepad: A -md.input.port7.gamepad2.a - -;md, Virtual Port 7, 2-Button Gamepad: B -md.input.port7.gamepad2.b - -;md, Virtual Port 7, 2-Button Gamepad: DOWN ↓ -md.input.port7.gamepad2.down - -;md, Virtual Port 7, 2-Button Gamepad: LEFT ← -md.input.port7.gamepad2.left - -;md, Virtual Port 7, 2-Button Gamepad: Rapid A -md.input.port7.gamepad2.rapid_a - -;md, Virtual Port 7, 2-Button Gamepad: Rapid B -md.input.port7.gamepad2.rapid_b - -;md, Virtual Port 7, 2-Button Gamepad: RIGHT → -md.input.port7.gamepad2.right - -;md, Virtual Port 7, 2-Button Gamepad: Start -md.input.port7.gamepad2.start - -;md, Virtual Port 7, 2-Button Gamepad: UP ↑ -md.input.port7.gamepad2.up - -;md, Virtual Port 7, 6-Button Gamepad: A -md.input.port7.gamepad6.a - -;md, Virtual Port 7, 6-Button Gamepad: B -md.input.port7.gamepad6.b - -;md, Virtual Port 7, 6-Button Gamepad: C -md.input.port7.gamepad6.c - -;md, Virtual Port 7, 6-Button Gamepad: DOWN ↓ -md.input.port7.gamepad6.down - -;md, Virtual Port 7, 6-Button Gamepad: LEFT ← -md.input.port7.gamepad6.left - -;md, Virtual Port 7, 6-Button Gamepad: Mode -md.input.port7.gamepad6.mode - -;md, Virtual Port 7, 6-Button Gamepad: Rapid A -md.input.port7.gamepad6.rapid_a - -;md, Virtual Port 7, 6-Button Gamepad: Rapid B -md.input.port7.gamepad6.rapid_b - -;md, Virtual Port 7, 6-Button Gamepad: Rapid C -md.input.port7.gamepad6.rapid_c - -;md, Virtual Port 7, 6-Button Gamepad: Rapid X -md.input.port7.gamepad6.rapid_x - -;md, Virtual Port 7, 6-Button Gamepad: Rapid Y -md.input.port7.gamepad6.rapid_y - -;md, Virtual Port 7, 6-Button Gamepad: Rapid Z -md.input.port7.gamepad6.rapid_z - -;md, Virtual Port 7, 6-Button Gamepad: RIGHT → -md.input.port7.gamepad6.right - -;md, Virtual Port 7, 6-Button Gamepad: Start -md.input.port7.gamepad6.start - -;md, Virtual Port 7, 6-Button Gamepad: UP ↑ -md.input.port7.gamepad6.up - -;md, Virtual Port 7, 6-Button Gamepad: X -md.input.port7.gamepad6.x - -;md, Virtual Port 7, 6-Button Gamepad: Y -md.input.port7.gamepad6.y - -;md, Virtual Port 7, 6-Button Gamepad: Z -md.input.port7.gamepad6.z - -;md, Virtual Port 7, Sega Mega Mouse: Left Button -md.input.port7.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 7, Sega Mega Mouse: Middle Button -md.input.port7.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 7, Sega Mega Mouse: Motion Down -md.input.port7.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 7, Sega Mega Mouse: Motion Left -md.input.port7.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 7, Sega Mega Mouse: Motion Right -md.input.port7.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 7, Sega Mega Mouse: Motion Up -md.input.port7.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 7, Sega Mega Mouse: Right Button -md.input.port7.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 7, Sega Mega Mouse: Start Button -md.input.port7.megamouse.start keyboard 0x0 40 - -;Input device for Virtual Port 8 -md.input.port8 gamepad - -;md, Virtual Port 8, 3-Button Gamepad: A -md.input.port8.gamepad.a - -;md, Virtual Port 8, 3-Button Gamepad: B -md.input.port8.gamepad.b - -;md, Virtual Port 8, 3-Button Gamepad: C -md.input.port8.gamepad.c - -;md, Virtual Port 8, 3-Button Gamepad: DOWN ↓ -md.input.port8.gamepad.down - -;md, Virtual Port 8, 3-Button Gamepad: LEFT ← -md.input.port8.gamepad.left - -;md, Virtual Port 8, 3-Button Gamepad: Rapid A -md.input.port8.gamepad.rapid_a - -;md, Virtual Port 8, 3-Button Gamepad: Rapid B -md.input.port8.gamepad.rapid_b - -;md, Virtual Port 8, 3-Button Gamepad: Rapid C -md.input.port8.gamepad.rapid_c - -;md, Virtual Port 8, 3-Button Gamepad: RIGHT → -md.input.port8.gamepad.right - -;md, Virtual Port 8, 3-Button Gamepad: Start -md.input.port8.gamepad.start - -;md, Virtual Port 8, 3-Button Gamepad: UP ↑ -md.input.port8.gamepad.up - -;md, Virtual Port 8, 2-Button Gamepad: A -md.input.port8.gamepad2.a - -;md, Virtual Port 8, 2-Button Gamepad: B -md.input.port8.gamepad2.b - -;md, Virtual Port 8, 2-Button Gamepad: DOWN ↓ -md.input.port8.gamepad2.down - -;md, Virtual Port 8, 2-Button Gamepad: LEFT ← -md.input.port8.gamepad2.left - -;md, Virtual Port 8, 2-Button Gamepad: Rapid A -md.input.port8.gamepad2.rapid_a - -;md, Virtual Port 8, 2-Button Gamepad: Rapid B -md.input.port8.gamepad2.rapid_b - -;md, Virtual Port 8, 2-Button Gamepad: RIGHT → -md.input.port8.gamepad2.right - -;md, Virtual Port 8, 2-Button Gamepad: Start -md.input.port8.gamepad2.start - -;md, Virtual Port 8, 2-Button Gamepad: UP ↑ -md.input.port8.gamepad2.up - -;md, Virtual Port 8, 6-Button Gamepad: A -md.input.port8.gamepad6.a - -;md, Virtual Port 8, 6-Button Gamepad: B -md.input.port8.gamepad6.b - -;md, Virtual Port 8, 6-Button Gamepad: C -md.input.port8.gamepad6.c - -;md, Virtual Port 8, 6-Button Gamepad: DOWN ↓ -md.input.port8.gamepad6.down - -;md, Virtual Port 8, 6-Button Gamepad: LEFT ← -md.input.port8.gamepad6.left - -;md, Virtual Port 8, 6-Button Gamepad: Mode -md.input.port8.gamepad6.mode - -;md, Virtual Port 8, 6-Button Gamepad: Rapid A -md.input.port8.gamepad6.rapid_a - -;md, Virtual Port 8, 6-Button Gamepad: Rapid B -md.input.port8.gamepad6.rapid_b - -;md, Virtual Port 8, 6-Button Gamepad: Rapid C -md.input.port8.gamepad6.rapid_c - -;md, Virtual Port 8, 6-Button Gamepad: Rapid X -md.input.port8.gamepad6.rapid_x - -;md, Virtual Port 8, 6-Button Gamepad: Rapid Y -md.input.port8.gamepad6.rapid_y - -;md, Virtual Port 8, 6-Button Gamepad: Rapid Z -md.input.port8.gamepad6.rapid_z - -;md, Virtual Port 8, 6-Button Gamepad: RIGHT → -md.input.port8.gamepad6.right - -;md, Virtual Port 8, 6-Button Gamepad: Start -md.input.port8.gamepad6.start - -;md, Virtual Port 8, 6-Button Gamepad: UP ↑ -md.input.port8.gamepad6.up - -;md, Virtual Port 8, 6-Button Gamepad: X -md.input.port8.gamepad6.x - -;md, Virtual Port 8, 6-Button Gamepad: Y -md.input.port8.gamepad6.y - -;md, Virtual Port 8, 6-Button Gamepad: Z -md.input.port8.gamepad6.z - -;md, Virtual Port 8, Sega Mega Mouse: Left Button -md.input.port8.megamouse.left mouse 0x0 button_left - -;md, Virtual Port 8, Sega Mega Mouse: Middle Button -md.input.port8.megamouse.middle mouse 0x0 button_middle - -;md, Virtual Port 8, Sega Mega Mouse: Motion Down -md.input.port8.megamouse.motion_down mouse 0x0 rel_y+ - -;md, Virtual Port 8, Sega Mega Mouse: Motion Left -md.input.port8.megamouse.motion_left mouse 0x0 rel_x- - -;md, Virtual Port 8, Sega Mega Mouse: Motion Right -md.input.port8.megamouse.motion_right mouse 0x0 rel_x+ - -;md, Virtual Port 8, Sega Mega Mouse: Motion Up -md.input.port8.megamouse.motion_up mouse 0x0 rel_y- - -;md, Virtual Port 8, Sega Mega Mouse: Right Button -md.input.port8.megamouse.right mouse 0x0 button_right - -;md, Virtual Port 8, Sega Mega Mouse: Start Button -md.input.port8.megamouse.start keyboard 0x0 40 - -;Emulate the specified region's Genesis/MegaDrive -md.region game - -;Region reported to the game. -md.reported_region same - -;Enable scanlines with specified opacity. -md.scanlines 0 - -;Enable specified OpenGL shader. -md.shader none - -;Force interlaced video to be treated as progressive. -md.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -md.shader.goat.hdiv 0.50 - -;Mask pattern. -md.shader.goat.pat goatron - -;Enable scanlines effect. -md.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -md.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -md.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -md.special none - -;Stretch to fill screen. -md.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -md.tblur 0 - -;Accumulate color data rather than discarding it. -md.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -md.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -md.videoip 1 - -;Full-screen horizontal resolution. -md.xres 0 - -;Scaling factor for the X axis in windowed mode. -md.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -md.xscalefs 1.000000 - -;Full-screen vertical resolution. -md.yres 0 - -;Scaling factor for the Y axis in windowed mode. -md.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -md.yscalefs 1.000000 - -;Clip left+right 8 pixel columns. -nes.clipsides 0 - -;Correct the aspect ratio. -nes.correct_aspect 0 - -;Disassembly font size. -nes.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -nes.debugger.memcharenc cp437 - -;Enable (automatic) usage of this module. -nes.enable 1 - -;Scan filename for (U),(J),(E),etc. strings to en/dis-able PAL emulation. -nes.fnscan 1 - -;Enable Game Genie emulation. -nes.gg 0 - -;Path to Game Genie ROM image. -nes.ggrom gg.rom - -;Input device for Famicom Expansion Port -nes.input.fcexp none - -;nes, Famicom Expansion Port, Arkanoid Paddle: Button -nes.input.fcexp.arkanoid.button mouse 0x0 button_left - -;nes, Famicom Expansion Port, Arkanoid Paddle: X Axis -nes.input.fcexp.arkanoid.x_axis mouse 0x0 cursor_x-+ - -;nes, Famicom Expansion Port, Family Keyboard: 0 -nes.input.fcexp.fkb.0 keyboard 0x0 39 - -;nes, Famicom Expansion Port, Family Keyboard: 1 -nes.input.fcexp.fkb.1 keyboard 0x0 30 - -;nes, Famicom Expansion Port, Family Keyboard: 2 -nes.input.fcexp.fkb.2 keyboard 0x0 31 - -;nes, Famicom Expansion Port, Family Keyboard: 3 -nes.input.fcexp.fkb.3 keyboard 0x0 32 - -;nes, Famicom Expansion Port, Family Keyboard: 4 -nes.input.fcexp.fkb.4 keyboard 0x0 33 - -;nes, Famicom Expansion Port, Family Keyboard: 5 -nes.input.fcexp.fkb.5 keyboard 0x0 34 - -;nes, Famicom Expansion Port, Family Keyboard: 6 -nes.input.fcexp.fkb.6 keyboard 0x0 35 - -;nes, Famicom Expansion Port, Family Keyboard: 7 -nes.input.fcexp.fkb.7 keyboard 0x0 36 - -;nes, Famicom Expansion Port, Family Keyboard: 8 -nes.input.fcexp.fkb.8 keyboard 0x0 37 - -;nes, Famicom Expansion Port, Family Keyboard: 9 -nes.input.fcexp.fkb.9 keyboard 0x0 38 - -;nes, Famicom Expansion Port, Family Keyboard: A -nes.input.fcexp.fkb.a keyboard 0x0 4 - -;nes, Famicom Expansion Port, Family Keyboard: @ -nes.input.fcexp.fkb.at keyboard 0x0 53 - -;nes, Famicom Expansion Port, Family Keyboard: B -nes.input.fcexp.fkb.b keyboard 0x0 5 - -;nes, Famicom Expansion Port, Family Keyboard: \ -nes.input.fcexp.fkb.backslash keyboard 0x0 49 - -;nes, Famicom Expansion Port, Family Keyboard: C -nes.input.fcexp.fkb.c keyboard 0x0 6 - -;nes, Famicom Expansion Port, Family Keyboard: ^ -nes.input.fcexp.fkb.caret keyboard 0x0 46 - -;nes, Famicom Expansion Port, Family Keyboard: CLR -nes.input.fcexp.fkb.clear keyboard 0x0 76 - -;nes, Famicom Expansion Port, Family Keyboard: : -nes.input.fcexp.fkb.colon keyboard 0x0 52 - -;nes, Famicom Expansion Port, Family Keyboard: , -nes.input.fcexp.fkb.comma keyboard 0x0 54 - -;nes, Famicom Expansion Port, Family Keyboard: CTR -nes.input.fcexp.fkb.ctrl keyboard 0x0 224 - -;nes, Famicom Expansion Port, Family Keyboard: D -nes.input.fcexp.fkb.d keyboard 0x0 7 - -;nes, Famicom Expansion Port, Family Keyboard: DEL -nes.input.fcexp.fkb.delete keyboard 0x0 78 - -;nes, Famicom Expansion Port, Family Keyboard: DOWN -nes.input.fcexp.fkb.down keyboard 0x0 81 - -;nes, Famicom Expansion Port, Family Keyboard: E -nes.input.fcexp.fkb.e keyboard 0x0 8 - -;nes, Famicom Expansion Port, Family Keyboard: Empty -nes.input.fcexp.fkb.empty keyboard 0x0 230 - -;nes, Famicom Expansion Port, Family Keyboard: ESC -nes.input.fcexp.fkb.escape keyboard 0x0 41 - -;nes, Famicom Expansion Port, Family Keyboard: F -nes.input.fcexp.fkb.f keyboard 0x0 9 - -;nes, Famicom Expansion Port, Family Keyboard: F1 -nes.input.fcexp.fkb.f1 keyboard 0x0 58 - -;nes, Famicom Expansion Port, Family Keyboard: F2 -nes.input.fcexp.fkb.f2 keyboard 0x0 59 - -;nes, Famicom Expansion Port, Family Keyboard: F3 -nes.input.fcexp.fkb.f3 keyboard 0x0 60 - -;nes, Famicom Expansion Port, Family Keyboard: F4 -nes.input.fcexp.fkb.f4 keyboard 0x0 61 - -;nes, Famicom Expansion Port, Family Keyboard: F5 -nes.input.fcexp.fkb.f5 keyboard 0x0 62 - -;nes, Famicom Expansion Port, Family Keyboard: F6 -nes.input.fcexp.fkb.f6 keyboard 0x0 63 - -;nes, Famicom Expansion Port, Family Keyboard: F7 -nes.input.fcexp.fkb.f7 keyboard 0x0 64 - -;nes, Famicom Expansion Port, Family Keyboard: F8 -nes.input.fcexp.fkb.f8 keyboard 0x0 65 - -;nes, Famicom Expansion Port, Family Keyboard: G -nes.input.fcexp.fkb.g keyboard 0x0 10 - -;nes, Famicom Expansion Port, Family Keyboard: GRPH -nes.input.fcexp.fkb.graph keyboard 0x0 226 - -;nes, Famicom Expansion Port, Family Keyboard: H -nes.input.fcexp.fkb.h keyboard 0x0 11 - -;nes, Famicom Expansion Port, Family Keyboard: I -nes.input.fcexp.fkb.i keyboard 0x0 12 - -;nes, Famicom Expansion Port, Family Keyboard: INS -nes.input.fcexp.fkb.insert keyboard 0x0 77 - -;nes, Famicom Expansion Port, Family Keyboard: J -nes.input.fcexp.fkb.j keyboard 0x0 13 - -;nes, Famicom Expansion Port, Family Keyboard: K -nes.input.fcexp.fkb.k keyboard 0x0 14 - -;nes, Famicom Expansion Port, Family Keyboard: カナ -nes.input.fcexp.fkb.kana keyboard 0x0 73 - -;nes, Famicom Expansion Port, Family Keyboard: L -nes.input.fcexp.fkb.l keyboard 0x0 15 - -;nes, Famicom Expansion Port, Family Keyboard: LEFT -nes.input.fcexp.fkb.left keyboard 0x0 80 - -;nes, Famicom Expansion Port, Family Keyboard: [ -nes.input.fcexp.fkb.left_bracket keyboard 0x0 47 - -;nes, Famicom Expansion Port, Family Keyboard: Left SHIFT -nes.input.fcexp.fkb.left_shift keyboard 0x0 225 - -;nes, Famicom Expansion Port, Family Keyboard: M -nes.input.fcexp.fkb.m keyboard 0x0 16 - -;nes, Famicom Expansion Port, Family Keyboard: - -nes.input.fcexp.fkb.minus keyboard 0x0 45 - -;nes, Famicom Expansion Port, Family Keyboard: N -nes.input.fcexp.fkb.n keyboard 0x0 17 - -;nes, Famicom Expansion Port, Family Keyboard: O -nes.input.fcexp.fkb.o keyboard 0x0 18 - -;nes, Famicom Expansion Port, Family Keyboard: P -nes.input.fcexp.fkb.p keyboard 0x0 19 - -;nes, Famicom Expansion Port, Family Keyboard: . -nes.input.fcexp.fkb.period keyboard 0x0 55 - -;nes, Famicom Expansion Port, Family Keyboard: Q -nes.input.fcexp.fkb.q keyboard 0x0 20 - -;nes, Famicom Expansion Port, Family Keyboard: R -nes.input.fcexp.fkb.r keyboard 0x0 21 - -;nes, Famicom Expansion Port, Family Keyboard: RETURN -nes.input.fcexp.fkb.return keyboard 0x0 40 - -;nes, Famicom Expansion Port, Family Keyboard: RIGHT -nes.input.fcexp.fkb.right keyboard 0x0 79 - -;nes, Famicom Expansion Port, Family Keyboard: ] -nes.input.fcexp.fkb.right_bracket keyboard 0x0 48 - -;nes, Famicom Expansion Port, Family Keyboard: Right SHIFT -nes.input.fcexp.fkb.right_shift keyboard 0x0 229 - -;nes, Famicom Expansion Port, Family Keyboard: S -nes.input.fcexp.fkb.s keyboard 0x0 22 - -;nes, Famicom Expansion Port, Family Keyboard: ; -nes.input.fcexp.fkb.semicolon keyboard 0x0 51 - -;nes, Famicom Expansion Port, Family Keyboard: / -nes.input.fcexp.fkb.slash keyboard 0x0 56 - -;nes, Famicom Expansion Port, Family Keyboard: SPACE -nes.input.fcexp.fkb.space keyboard 0x0 44 - -;nes, Famicom Expansion Port, Family Keyboard: STOP -nes.input.fcexp.fkb.stop keyboard 0x0 42 - -;nes, Famicom Expansion Port, Family Keyboard: T -nes.input.fcexp.fkb.t keyboard 0x0 23 - -;nes, Famicom Expansion Port, Family Keyboard: U -nes.input.fcexp.fkb.u keyboard 0x0 24 - -;nes, Famicom Expansion Port, Family Keyboard: UP -nes.input.fcexp.fkb.up keyboard 0x0 82 - -;nes, Famicom Expansion Port, Family Keyboard: V -nes.input.fcexp.fkb.v keyboard 0x0 25 - -;nes, Famicom Expansion Port, Family Keyboard: W -nes.input.fcexp.fkb.w keyboard 0x0 26 - -;nes, Famicom Expansion Port, Family Keyboard: X -nes.input.fcexp.fkb.x keyboard 0x0 27 - -;nes, Famicom Expansion Port, Family Keyboard: Y -nes.input.fcexp.fkb.y keyboard 0x0 28 - -;nes, Famicom Expansion Port, Family Keyboard: Z -nes.input.fcexp.fkb.z keyboard 0x0 29 - -;nes, Famicom Expansion Port, Family Trainer Side A: 1 -nes.input.fcexp.ftrainera.1 keyboard 0x0 18 - -;nes, Famicom Expansion Port, Family Trainer Side A: 10 -nes.input.fcexp.ftrainera.10 keyboard 0x0 54 - -;nes, Famicom Expansion Port, Family Trainer Side A: 11 -nes.input.fcexp.ftrainera.11 keyboard 0x0 55 - -;nes, Famicom Expansion Port, Family Trainer Side A: 12 -nes.input.fcexp.ftrainera.12 keyboard 0x0 56 - -;nes, Famicom Expansion Port, Family Trainer Side A: 2 -nes.input.fcexp.ftrainera.2 keyboard 0x0 19 - -;nes, Famicom Expansion Port, Family Trainer Side A: 3 -nes.input.fcexp.ftrainera.3 keyboard 0x0 47 - -;nes, Famicom Expansion Port, Family Trainer Side A: 4 -nes.input.fcexp.ftrainera.4 keyboard 0x0 48 - -;nes, Famicom Expansion Port, Family Trainer Side A: 5 -nes.input.fcexp.ftrainera.5 keyboard 0x0 14 - -;nes, Famicom Expansion Port, Family Trainer Side A: 6 -nes.input.fcexp.ftrainera.6 keyboard 0x0 15 - -;nes, Famicom Expansion Port, Family Trainer Side A: 7 -nes.input.fcexp.ftrainera.7 keyboard 0x0 51 - -;nes, Famicom Expansion Port, Family Trainer Side A: 8 -nes.input.fcexp.ftrainera.8 keyboard 0x0 52 - -;nes, Famicom Expansion Port, Family Trainer Side A: 9 -nes.input.fcexp.ftrainera.9 keyboard 0x0 16 - -;nes, Famicom Expansion Port, Family Trainer Side B: 1 -nes.input.fcexp.ftrainerb.1 keyboard 0x0 18 - -;nes, Famicom Expansion Port, Family Trainer Side B: 10 -nes.input.fcexp.ftrainerb.10 keyboard 0x0 54 - -;nes, Famicom Expansion Port, Family Trainer Side B: 11 -nes.input.fcexp.ftrainerb.11 keyboard 0x0 55 - -;nes, Famicom Expansion Port, Family Trainer Side B: 12 -nes.input.fcexp.ftrainerb.12 keyboard 0x0 56 - -;nes, Famicom Expansion Port, Family Trainer Side B: 2 -nes.input.fcexp.ftrainerb.2 keyboard 0x0 19 - -;nes, Famicom Expansion Port, Family Trainer Side B: 3 -nes.input.fcexp.ftrainerb.3 keyboard 0x0 47 - -;nes, Famicom Expansion Port, Family Trainer Side B: 4 -nes.input.fcexp.ftrainerb.4 keyboard 0x0 48 - -;nes, Famicom Expansion Port, Family Trainer Side B: 5 -nes.input.fcexp.ftrainerb.5 keyboard 0x0 14 - -;nes, Famicom Expansion Port, Family Trainer Side B: 6 -nes.input.fcexp.ftrainerb.6 keyboard 0x0 15 - -;nes, Famicom Expansion Port, Family Trainer Side B: 7 -nes.input.fcexp.ftrainerb.7 keyboard 0x0 51 - -;nes, Famicom Expansion Port, Family Trainer Side B: 8 -nes.input.fcexp.ftrainerb.8 keyboard 0x0 52 - -;nes, Famicom Expansion Port, Family Trainer Side B: 9 -nes.input.fcexp.ftrainerb.9 keyboard 0x0 16 - -;nes, Famicom Expansion Port, Hypershot Paddles: I, JUMP -nes.input.fcexp.hypershot.i_jump keyboard 0x0 26 - -;nes, Famicom Expansion Port, Hypershot Paddles: I, RUN -nes.input.fcexp.hypershot.i_run keyboard 0x0 20 - -;nes, Famicom Expansion Port, Hypershot Paddles: II, JUMP -nes.input.fcexp.hypershot.ii_jump keyboard 0x0 21 - -;nes, Famicom Expansion Port, Hypershot Paddles: II, RUN -nes.input.fcexp.hypershot.ii_run keyboard 0x0 8 - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid I, JUMP -nes.input.fcexp.hypershot.rapid_i_jump - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid I, RUN -nes.input.fcexp.hypershot.rapid_i_run - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid II, JUMP -nes.input.fcexp.hypershot.rapid_ii_jump - -;nes, Famicom Expansion Port, Hypershot Paddles: Rapid II, RUN -nes.input.fcexp.hypershot.rapid_ii_run - -;nes, Famicom Expansion Port, Mahjong Controller: 1 -nes.input.fcexp.mahjong.1 keyboard 0x0 20 - -;nes, Famicom Expansion Port, Mahjong Controller: 10 -nes.input.fcexp.mahjong.10 keyboard 0x0 10 - -;nes, Famicom Expansion Port, Mahjong Controller: 11 -nes.input.fcexp.mahjong.11 keyboard 0x0 11 - -;nes, Famicom Expansion Port, Mahjong Controller: 12 -nes.input.fcexp.mahjong.12 keyboard 0x0 13 - -;nes, Famicom Expansion Port, Mahjong Controller: 13 -nes.input.fcexp.mahjong.13 keyboard 0x0 14 - -;nes, Famicom Expansion Port, Mahjong Controller: 14 -nes.input.fcexp.mahjong.14 keyboard 0x0 15 - -;nes, Famicom Expansion Port, Mahjong Controller: 15 -nes.input.fcexp.mahjong.15 keyboard 0x0 29 - -;nes, Famicom Expansion Port, Mahjong Controller: 16 -nes.input.fcexp.mahjong.16 keyboard 0x0 27 - -;nes, Famicom Expansion Port, Mahjong Controller: 17 -nes.input.fcexp.mahjong.17 keyboard 0x0 6 - -;nes, Famicom Expansion Port, Mahjong Controller: 18 -nes.input.fcexp.mahjong.18 keyboard 0x0 25 - -;nes, Famicom Expansion Port, Mahjong Controller: 19 -nes.input.fcexp.mahjong.19 keyboard 0x0 5 - -;nes, Famicom Expansion Port, Mahjong Controller: 2 -nes.input.fcexp.mahjong.2 keyboard 0x0 26 - -;nes, Famicom Expansion Port, Mahjong Controller: 20 -nes.input.fcexp.mahjong.20 keyboard 0x0 17 - -;nes, Famicom Expansion Port, Mahjong Controller: 21 -nes.input.fcexp.mahjong.21 keyboard 0x0 16 - -;nes, Famicom Expansion Port, Mahjong Controller: 3 -nes.input.fcexp.mahjong.3 keyboard 0x0 8 - -;nes, Famicom Expansion Port, Mahjong Controller: 4 -nes.input.fcexp.mahjong.4 keyboard 0x0 21 - -;nes, Famicom Expansion Port, Mahjong Controller: 5 -nes.input.fcexp.mahjong.5 keyboard 0x0 23 - -;nes, Famicom Expansion Port, Mahjong Controller: 6 -nes.input.fcexp.mahjong.6 keyboard 0x0 4 - -;nes, Famicom Expansion Port, Mahjong Controller: 7 -nes.input.fcexp.mahjong.7 keyboard 0x0 22 - -;nes, Famicom Expansion Port, Mahjong Controller: 8 -nes.input.fcexp.mahjong.8 keyboard 0x0 7 - -;nes, Famicom Expansion Port, Mahjong Controller: 9 -nes.input.fcexp.mahjong.9 keyboard 0x0 9 - -;nes, Famicom Expansion Port, Oeka Kids Tablet: Button -nes.input.fcexp.oekakids.button mouse 0x0 button_left - -;nes, Famicom Expansion Port, Oeka Kids Tablet: X Axis -nes.input.fcexp.oekakids.x_axis mouse 0x0 cursor_x-+ - -;nes, Famicom Expansion Port, Oeka Kids Tablet: Y Axis -nes.input.fcexp.oekakids.y_axis mouse 0x0 cursor_y-+ - -;nes, Famicom Expansion Port, Party Tap: Buzzer 1 -nes.input.fcexp.partytap.buzzer_1 keyboard 0x0 20 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 2 -nes.input.fcexp.partytap.buzzer_2 keyboard 0x0 26 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 3 -nes.input.fcexp.partytap.buzzer_3 keyboard 0x0 8 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 4 -nes.input.fcexp.partytap.buzzer_4 keyboard 0x0 21 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 5 -nes.input.fcexp.partytap.buzzer_5 keyboard 0x0 23 - -;nes, Famicom Expansion Port, Party Tap: Buzzer 6 -nes.input.fcexp.partytap.buzzer_6 keyboard 0x0 28 - -;nes, Famicom Expansion Port, Space Shadow Gun: Away Trigger -nes.input.fcexp.shadow.away_trigger mouse 0x0 button_right - -;nes, Famicom Expansion Port, Space Shadow Gun: Trigger -nes.input.fcexp.shadow.trigger mouse 0x0 button_left - -;nes, Famicom Expansion Port, Space Shadow Gun: X Axis -nes.input.fcexp.shadow.x_axis mouse 0x0 cursor_x-+ - -;nes, Famicom Expansion Port, Space Shadow Gun: Y Axis -nes.input.fcexp.shadow.y_axis mouse 0x0 cursor_y-+ - -;Input device for Port 1 -nes.input.port1 gamepad - -;nes, Port 1, Arkanoid Paddle: Button -nes.input.port1.arkanoid.button mouse 0x0 button_left - -;nes, Port 1, Arkanoid Paddle: X Axis -nes.input.port1.arkanoid.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 1, Gamepad: A -nes.input.port1.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;nes, Port 1, Gamepad: B -nes.input.port1.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;nes, Port 1, Gamepad: DOWN ↓ -nes.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;nes, Port 1, Gamepad: LEFT ← -nes.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;nes, Port 1, Gamepad: Rapid A -nes.input.port1.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;nes, Port 1, Gamepad: Rapid B -nes.input.port1.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;nes, Port 1, Gamepad: RIGHT → -nes.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;nes, Port 1, Gamepad: SELECT -nes.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;nes, Port 1, Gamepad: START -nes.input.port1.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;nes, Port 1, Gamepad: UP ↑ -nes.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;nes, Port 1, Power Pad Side A: 1 -nes.input.port1.powerpada.1 keyboard 0x0 18 - -;nes, Port 1, Power Pad Side A: 10 -nes.input.port1.powerpada.10 keyboard 0x0 54 - -;nes, Port 1, Power Pad Side A: 11 -nes.input.port1.powerpada.11 keyboard 0x0 55 - -;nes, Port 1, Power Pad Side A: 12 -nes.input.port1.powerpada.12 keyboard 0x0 56 - -;nes, Port 1, Power Pad Side A: 2 -nes.input.port1.powerpada.2 keyboard 0x0 19 - -;nes, Port 1, Power Pad Side A: 3 -nes.input.port1.powerpada.3 keyboard 0x0 47 - -;nes, Port 1, Power Pad Side A: 4 -nes.input.port1.powerpada.4 keyboard 0x0 48 - -;nes, Port 1, Power Pad Side A: 5 -nes.input.port1.powerpada.5 keyboard 0x0 14 - -;nes, Port 1, Power Pad Side A: 6 -nes.input.port1.powerpada.6 keyboard 0x0 15 - -;nes, Port 1, Power Pad Side A: 7 -nes.input.port1.powerpada.7 keyboard 0x0 51 - -;nes, Port 1, Power Pad Side A: 8 -nes.input.port1.powerpada.8 keyboard 0x0 52 - -;nes, Port 1, Power Pad Side A: 9 -nes.input.port1.powerpada.9 keyboard 0x0 16 - -;nes, Port 1, Power Pad Side B: 1 -nes.input.port1.powerpadb.1 keyboard 0x0 18 - -;nes, Port 1, Power Pad Side B: 10 -nes.input.port1.powerpadb.10 keyboard 0x0 54 - -;nes, Port 1, Power Pad Side B: 11 -nes.input.port1.powerpadb.11 keyboard 0x0 55 - -;nes, Port 1, Power Pad Side B: 12 -nes.input.port1.powerpadb.12 keyboard 0x0 56 - -;nes, Port 1, Power Pad Side B: 2 -nes.input.port1.powerpadb.2 keyboard 0x0 19 - -;nes, Port 1, Power Pad Side B: 3 -nes.input.port1.powerpadb.3 keyboard 0x0 47 - -;nes, Port 1, Power Pad Side B: 4 -nes.input.port1.powerpadb.4 keyboard 0x0 48 - -;nes, Port 1, Power Pad Side B: 5 -nes.input.port1.powerpadb.5 keyboard 0x0 14 - -;nes, Port 1, Power Pad Side B: 6 -nes.input.port1.powerpadb.6 keyboard 0x0 15 - -;nes, Port 1, Power Pad Side B: 7 -nes.input.port1.powerpadb.7 keyboard 0x0 51 - -;nes, Port 1, Power Pad Side B: 8 -nes.input.port1.powerpadb.8 keyboard 0x0 52 - -;nes, Port 1, Power Pad Side B: 9 -nes.input.port1.powerpadb.9 keyboard 0x0 16 - -;nes, Port 1, Zapper: Away Trigger -nes.input.port1.zapper.away_trigger mouse 0x0 button_right - -;nes, Port 1, Zapper: Trigger -nes.input.port1.zapper.trigger mouse 0x0 button_left - -;nes, Port 1, Zapper: X Axis -nes.input.port1.zapper.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 1, Zapper: Y Axis -nes.input.port1.zapper.y_axis mouse 0x0 cursor_y-+ - -;Input device for Port 2 -nes.input.port2 gamepad - -;nes, Port 2, Arkanoid Paddle: Button -nes.input.port2.arkanoid.button mouse 0x0 button_left - -;nes, Port 2, Arkanoid Paddle: X Axis -nes.input.port2.arkanoid.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 2, Gamepad: A -nes.input.port2.gamepad.a - -;nes, Port 2, Gamepad: B -nes.input.port2.gamepad.b - -;nes, Port 2, Gamepad: DOWN ↓ -nes.input.port2.gamepad.down - -;nes, Port 2, Gamepad: LEFT ← -nes.input.port2.gamepad.left - -;nes, Port 2, Gamepad: Rapid A -nes.input.port2.gamepad.rapid_a - -;nes, Port 2, Gamepad: Rapid B -nes.input.port2.gamepad.rapid_b - -;nes, Port 2, Gamepad: RIGHT → -nes.input.port2.gamepad.right - -;nes, Port 2, Gamepad: SELECT -nes.input.port2.gamepad.select - -;nes, Port 2, Gamepad: START -nes.input.port2.gamepad.start - -;nes, Port 2, Gamepad: UP ↑ -nes.input.port2.gamepad.up - -;nes, Port 2, Power Pad Side A: 1 -nes.input.port2.powerpada.1 keyboard 0x0 18 - -;nes, Port 2, Power Pad Side A: 10 -nes.input.port2.powerpada.10 keyboard 0x0 54 - -;nes, Port 2, Power Pad Side A: 11 -nes.input.port2.powerpada.11 keyboard 0x0 55 - -;nes, Port 2, Power Pad Side A: 12 -nes.input.port2.powerpada.12 keyboard 0x0 56 - -;nes, Port 2, Power Pad Side A: 2 -nes.input.port2.powerpada.2 keyboard 0x0 19 - -;nes, Port 2, Power Pad Side A: 3 -nes.input.port2.powerpada.3 keyboard 0x0 47 - -;nes, Port 2, Power Pad Side A: 4 -nes.input.port2.powerpada.4 keyboard 0x0 48 - -;nes, Port 2, Power Pad Side A: 5 -nes.input.port2.powerpada.5 keyboard 0x0 14 - -;nes, Port 2, Power Pad Side A: 6 -nes.input.port2.powerpada.6 keyboard 0x0 15 - -;nes, Port 2, Power Pad Side A: 7 -nes.input.port2.powerpada.7 keyboard 0x0 51 - -;nes, Port 2, Power Pad Side A: 8 -nes.input.port2.powerpada.8 keyboard 0x0 52 - -;nes, Port 2, Power Pad Side A: 9 -nes.input.port2.powerpada.9 keyboard 0x0 16 - -;nes, Port 2, Power Pad Side B: 1 -nes.input.port2.powerpadb.1 keyboard 0x0 18 - -;nes, Port 2, Power Pad Side B: 10 -nes.input.port2.powerpadb.10 keyboard 0x0 54 - -;nes, Port 2, Power Pad Side B: 11 -nes.input.port2.powerpadb.11 keyboard 0x0 55 - -;nes, Port 2, Power Pad Side B: 12 -nes.input.port2.powerpadb.12 keyboard 0x0 56 - -;nes, Port 2, Power Pad Side B: 2 -nes.input.port2.powerpadb.2 keyboard 0x0 19 - -;nes, Port 2, Power Pad Side B: 3 -nes.input.port2.powerpadb.3 keyboard 0x0 47 - -;nes, Port 2, Power Pad Side B: 4 -nes.input.port2.powerpadb.4 keyboard 0x0 48 - -;nes, Port 2, Power Pad Side B: 5 -nes.input.port2.powerpadb.5 keyboard 0x0 14 - -;nes, Port 2, Power Pad Side B: 6 -nes.input.port2.powerpadb.6 keyboard 0x0 15 - -;nes, Port 2, Power Pad Side B: 7 -nes.input.port2.powerpadb.7 keyboard 0x0 51 - -;nes, Port 2, Power Pad Side B: 8 -nes.input.port2.powerpadb.8 keyboard 0x0 52 - -;nes, Port 2, Power Pad Side B: 9 -nes.input.port2.powerpadb.9 keyboard 0x0 16 - -;nes, Port 2, Zapper: Away Trigger -nes.input.port2.zapper.away_trigger mouse 0x0 button_right - -;nes, Port 2, Zapper: Trigger -nes.input.port2.zapper.trigger mouse 0x0 button_left - -;nes, Port 2, Zapper: X Axis -nes.input.port2.zapper.x_axis mouse 0x0 cursor_x-+ - -;nes, Port 2, Zapper: Y Axis -nes.input.port2.zapper.y_axis mouse 0x0 cursor_y-+ - -;Input device for Port 3 -nes.input.port3 gamepad - -;nes, Port 3, Gamepad: A -nes.input.port3.gamepad.a - -;nes, Port 3, Gamepad: B -nes.input.port3.gamepad.b - -;nes, Port 3, Gamepad: DOWN ↓ -nes.input.port3.gamepad.down - -;nes, Port 3, Gamepad: LEFT ← -nes.input.port3.gamepad.left - -;nes, Port 3, Gamepad: Rapid A -nes.input.port3.gamepad.rapid_a - -;nes, Port 3, Gamepad: Rapid B -nes.input.port3.gamepad.rapid_b - -;nes, Port 3, Gamepad: RIGHT → -nes.input.port3.gamepad.right - -;nes, Port 3, Gamepad: SELECT -nes.input.port3.gamepad.select - -;nes, Port 3, Gamepad: START -nes.input.port3.gamepad.start - -;nes, Port 3, Gamepad: UP ↑ -nes.input.port3.gamepad.up - -;Input device for Port 4 -nes.input.port4 gamepad - -;nes, Port 4, Gamepad: A -nes.input.port4.gamepad.a - -;nes, Port 4, Gamepad: B -nes.input.port4.gamepad.b - -;nes, Port 4, Gamepad: DOWN ↓ -nes.input.port4.gamepad.down - -;nes, Port 4, Gamepad: LEFT ← -nes.input.port4.gamepad.left - -;nes, Port 4, Gamepad: Rapid A -nes.input.port4.gamepad.rapid_a - -;nes, Port 4, Gamepad: Rapid B -nes.input.port4.gamepad.rapid_b - -;nes, Port 4, Gamepad: RIGHT → -nes.input.port4.gamepad.right - -;nes, Port 4, Gamepad: SELECT -nes.input.port4.gamepad.select - -;nes, Port 4, Gamepad: START -nes.input.port4.gamepad.start - -;nes, Port 4, Gamepad: UP ↑ -nes.input.port4.gamepad.up - -;Enable less-accurate, but better sounding, Namco 106(mapper 19) sound emulation. -nes.n106bs 0 - -;Remove 8-sprites-per-scanline hardware limit. -nes.no8lim 1 - -;Disable four-score emulation. -nes.nofs 0 - -;NTSC composite blitter brightness. -nes.ntsc.brightness 0 - -;NTSC composite blitter contrast. -nes.ntsc.contrast 0 - -;NTSC composite blitter hue. -nes.ntsc.hue 0 - -;Enable NTSC custom decoder matrix. -nes.ntsc.matrix 0 - -;NTSC custom decoder matrix element 0(red, value * V). -nes.ntsc.matrix.0 1.539 - -;NTSC custom decoder matrix element 1(red, value * U). -nes.ntsc.matrix.1 -0.622 - -;NTSC custom decoder matrix element 2(green, value * V). -nes.ntsc.matrix.2 -0.571 - -;NTSC custom decoder matrix element 3(green, value * U). -nes.ntsc.matrix.3 -0.185 - -;NTSC custom decoder matrix element 4(blue, value * V). -nes.ntsc.matrix.4 0.000 - -;NTSC custom decoder matrix element 5(blue, value * U. -nes.ntsc.matrix.5 2.000 - -;Merge fields to partially work around !=60.1Hz refresh rates. -nes.ntsc.mergefields 0 - -;Video quality/type preset. -nes.ntsc.preset none - -;NTSC composite blitter saturation. -nes.ntsc.saturation 0 - -;NTSC composite blitter sharpness. -nes.ntsc.sharpness 0 - -;Enable NTSC color generation and blitter. -nes.ntscblitter 0 - -;Enable PAL(50Hz) NES emulation. -nes.pal 0 - -;Enable scanlines with specified opacity. -nes.scanlines 0 - -;Enable specified OpenGL shader. -nes.shader sabr - -;Force interlaced video to be treated as progressive. -nes.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -nes.shader.goat.hdiv 0.50 - -;Mask pattern. -nes.shader.goat.pat goatron - -;Enable scanlines effect. -nes.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -nes.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -nes.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -nes.slend 231 - -;Last displayed scanline in PAL mode. -nes.slendp 239 - -;First displayed scanline in NTSC mode. -nes.slstart 8 - -;First displayed scanline in PAL mode. -nes.slstartp 0 - -;Output rate tolerance. -nes.sound_rate_error 0.00004 - -;Sound quality. -nes.soundq 0 - -;Enable specified special video scaler. -nes.special none - -;Stretch to fill screen. -nes.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -nes.tblur 0 - -;Accumulate color data rather than discarding it. -nes.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -nes.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -nes.videoip 0 - -;Full-screen horizontal resolution. -nes.xres 0 - -;Scaling factor for the X axis in windowed mode. -nes.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -nes.xscalefs 1.000000 - -;Full-screen vertical resolution. -nes.yres 0 - -;Scaling factor for the Y axis in windowed mode. -nes.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -nes.yscalefs 1.000000 - -;Font for netplay chat console. -netplay.console.font 9x18 - -;Height of chat console, in lines. -netplay.console.lines 5 - -;Netplay chat console text scale factor. -netplay.console.scale 1 - -;Key to hash with the MD5 hash of the game. -netplay.gamekey - -;Server hostname. -netplay.host netplay.fobby.net - -;Local player count. -netplay.localplayers 1 - -;Nickname. -netplay.nick - -;Server password. -netplay.password - -;Server port. -netplay.port 4046 - -;Enable (automatic) usage of this module. -ngp.enable 1 - -;Force monophonic sound output. -ngp.forcemono 0 - -;ngp, Built-In, Gamepad: A -ngp.input.builtin.gamepad.a keyboard 0x0 90 - -;ngp, Built-In, Gamepad: B -ngp.input.builtin.gamepad.b keyboard 0x0 91 - -;ngp, Built-In, Gamepad: DOWN ↓ -ngp.input.builtin.gamepad.down keyboard 0x0 22 - -;ngp, Built-In, Gamepad: LEFT ← -ngp.input.builtin.gamepad.left keyboard 0x0 4 - -;ngp, Built-In, Gamepad: OPTION -ngp.input.builtin.gamepad.option keyboard 0x0 40 - -;ngp, Built-In, Gamepad: Rapid A -ngp.input.builtin.gamepad.rapid_a - -;ngp, Built-In, Gamepad: Rapid B -ngp.input.builtin.gamepad.rapid_b - -;ngp, Built-In, Gamepad: RIGHT → -ngp.input.builtin.gamepad.right keyboard 0x0 7 - -;ngp, Built-In, Gamepad: UP ↑ -ngp.input.builtin.gamepad.up keyboard 0x0 26 - -;Language games should display text in. -ngp.language english - -;Enable scanlines with specified opacity. -ngp.scanlines 0 - -;Enable specified OpenGL shader. -ngp.shader none - -;Force interlaced video to be treated as progressive. -ngp.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -ngp.shader.goat.hdiv 0.50 - -;Mask pattern. -ngp.shader.goat.pat goatron - -;Enable scanlines effect. -ngp.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -ngp.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -ngp.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -ngp.special none - -;Stretch to fill screen. -ngp.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -ngp.tblur 0 - -;Accumulate color data rather than discarding it. -ngp.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -ngp.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -ngp.videoip 0 - -;Full-screen horizontal resolution. -ngp.xres 0 - -;Scaling factor for the X axis in windowed mode. -ngp.xscale 6.000000 - -;Scaling factor for the X axis in fullscreen mode. -ngp.xscalefs 1.000000 - -;Full-screen vertical resolution. -ngp.yres 0 - -;Scaling factor for the Y axis in windowed mode. -ngp.yscale 6.000000 - -;Scaling factor for the Y axis in fullscreen mode. -ngp.yscalefs 1.000000 - -;Disable speed throttling when sound is disabled. -nothrottle 0 - -;Enable alpha blending for OSD elements. -osd.alpha_blend 1 - -;Length of time, in milliseconds, to display internal status and error messages -osd.message_display_time 2500 - -;Length of time, in milliseconds, to display the save state or the movie selector after selecting a state or movie. -osd.state_display_time 2000 - -;Output the full 12-bit ADPCM predictor. -pce.adpcmextraprec 0 - -;ADPCM volume. -pce.adpcmvolume 100 - -;Enable Arcade Card emulation. -pce.arcadecard 1 - -;Path to the CD BIOS -pce.cdbios syscard3.pce - -;CD-DA volume. -pce.cddavolume 100 - -;PSG volume when playing a CD game. -pce.cdpsgvolume 100 - -;Disassembly font size. -pce.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -pce.debugger.memcharenc shift_jis - -;Disable BRAM(saved game memory) for CD games. -pce.disable_bram_cd 0 - -;Disable BRAM(saved game memory) for HuCard games. -pce.disable_bram_hucard 0 - -;If set, when RUN+SEL are pressed simultaneously, disable both buttons temporarily. -pce.disable_softreset 0 - -;Enable (automatic) usage of this module. -pce.enable 1 - -;Force monophonic sound output. -pce.forcemono 0 - -;Force SuperGrafx emulation. -pce.forcesgx 0 - -;Path to the GE CD BIOS -pce.gecdbios gecard.pce - -;Show horizontal overscan area. -pce.h_overscan 0 - -;Enable multitap(TurboTap) emulation. -pce.input.multitap 1 - -;Input device for Port 1 -pce.input.port1 gamepad - -;pce, Port 1, Gamepad: DOWN ↓ -pce.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;pce, Port 1, Gamepad: I -pce.input.port1.gamepad.i joystick 0x0003045e028e01010008000b00000000 button_1 - -;pce, Port 1, Gamepad: II -pce.input.port1.gamepad.ii joystick 0x0003045e028e01010008000b00000000 button_0 - -;pce, Port 1, Gamepad: III -pce.input.port1.gamepad.iii joystick 0x0003045e028e01010008000b00000000 button_2 - -;pce, Port 1, Gamepad: IV -pce.input.port1.gamepad.iv joystick 0x0003045e028e01010008000b00000000 button_3 - -;pce, Port 1, Gamepad: LEFT ← -pce.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;pce, Port 1, Gamepad: Mode -pce.input.port1.gamepad.mode_select joystick 0x0003045e028e01010008000b00000000 button_6 && joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;Default position for switch "Mode". -pce.input.port1.gamepad.mode_select.defpos 2 - -;pce, Port 1, Gamepad: Rapid I -pce.input.port1.gamepad.rapid_i keyboard 0x0 17 - -;pce, Port 1, Gamepad: Rapid II -pce.input.port1.gamepad.rapid_ii keyboard 0x0 17 - -;pce, Port 1, Gamepad: RIGHT → -pce.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;pce, Port 1, Gamepad: RUN -pce.input.port1.gamepad.run joystick 0x0003045e028e01010008000b00000000 button_7 - -;pce, Port 1, Gamepad: SELECT -pce.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;pce, Port 1, Gamepad: UP ↑ -pce.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;pce, Port 1, Gamepad: V -pce.input.port1.gamepad.v joystick 0x0003045e028e01010008000b00000000 button_4 - -;pce, Port 1, Gamepad: VI -pce.input.port1.gamepad.vi joystick 0x0003045e028e01010008000b00000000 button_5 - -;pce, Port 1, Mouse: Left Button -pce.input.port1.mouse.left mouse 0x0 button_left - -;pce, Port 1, Mouse: Motion Down -pce.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 1, Mouse: Motion Left -pce.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 1, Mouse: Motion Right -pce.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 1, Mouse: Motion Up -pce.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 1, Mouse: Right Button -pce.input.port1.mouse.right mouse 0x0 button_right - -;pce, Port 1, Mouse: RUN -pce.input.port1.mouse.run keyboard 0x0 40 - -;pce, Port 1, Mouse: SELECT -pce.input.port1.mouse.select keyboard 0x0 43 - -;pce, Port 1, Tsushin Keyboard: 0 -pce.input.port1.tsushinkb.0 keyboard 0x0 39 - -;pce, Port 1, Tsushin Keyboard: 1 -pce.input.port1.tsushinkb.1 keyboard 0x0 30 - -;pce, Port 1, Tsushin Keyboard: 2 -pce.input.port1.tsushinkb.2 keyboard 0x0 31 - -;pce, Port 1, Tsushin Keyboard: 3 -pce.input.port1.tsushinkb.3 keyboard 0x0 32 - -;pce, Port 1, Tsushin Keyboard: 4 -pce.input.port1.tsushinkb.4 keyboard 0x0 33 - -;pce, Port 1, Tsushin Keyboard: 5 -pce.input.port1.tsushinkb.5 keyboard 0x0 34 - -;pce, Port 1, Tsushin Keyboard: 6 -pce.input.port1.tsushinkb.6 keyboard 0x0 35 - -;pce, Port 1, Tsushin Keyboard: 7 -pce.input.port1.tsushinkb.7 keyboard 0x0 36 - -;pce, Port 1, Tsushin Keyboard: 8 -pce.input.port1.tsushinkb.8 keyboard 0x0 37 - -;pce, Port 1, Tsushin Keyboard: 9 -pce.input.port1.tsushinkb.9 keyboard 0x0 38 - -;pce, Port 1, Tsushin Keyboard: a -pce.input.port1.tsushinkb.a keyboard 0x0 4 - -;pce, Port 1, Tsushin Keyboard: @ -pce.input.port1.tsushinkb.at keyboard 0x0 53 - -;pce, Port 1, Tsushin Keyboard: b -pce.input.port1.tsushinkb.b keyboard 0x0 5 - -;pce, Port 1, Tsushin Keyboard: backspace -pce.input.port1.tsushinkb.backspace keyboard 0x0 42 - -;pce, Port 1, Tsushin Keyboard: c -pce.input.port1.tsushinkb.c keyboard 0x0 6 - -;pce, Port 1, Tsushin Keyboard: Caps Lock -pce.input.port1.tsushinkb.caps_lock keyboard 0x0 57 - -;pce, Port 1, Tsushin Keyboard: ^ -pce.input.port1.tsushinkb.caret keyboard 0x0 46 - -;pce, Port 1, Tsushin Keyboard: clear -pce.input.port1.tsushinkb.clear keyboard 0x0 74 - -;pce, Port 1, Tsushin Keyboard: : -pce.input.port1.tsushinkb.colon keyboard 0x0 52 - -;pce, Port 1, Tsushin Keyboard: , -pce.input.port1.tsushinkb.comma keyboard 0x0 54 - -;pce, Port 1, Tsushin Keyboard: 変換 -pce.input.port1.tsushinkb.convert keyboard 0x0 230 - -;pce, Port 1, Tsushin Keyboard: Copy -pce.input.port1.tsushinkb.copy keyboard 0x0 70 - -;pce, Port 1, Tsushin Keyboard: CTRL/Control -pce.input.port1.tsushinkb.ctrl keyboard 0x0 224 - -;pce, Port 1, Tsushin Keyboard: d -pce.input.port1.tsushinkb.d keyboard 0x0 7 - -;pce, Port 1, Tsushin Keyboard: Delete -pce.input.port1.tsushinkb.delete keyboard 0x0 76 - -;pce, Port 1, Tsushin Keyboard: down -pce.input.port1.tsushinkb.down keyboard 0x0 81 - -;pce, Port 1, Tsushin Keyboard: e -pce.input.port1.tsushinkb.e keyboard 0x0 8 - -;pce, Port 1, Tsushin Keyboard: Escape -pce.input.port1.tsushinkb.escape keyboard 0x0 41 - -;pce, Port 1, Tsushin Keyboard: f -pce.input.port1.tsushinkb.f keyboard 0x0 9 - -;pce, Port 1, Tsushin Keyboard: F1 -pce.input.port1.tsushinkb.f1 keyboard 0x0 58 - -;pce, Port 1, Tsushin Keyboard: F10 -pce.input.port1.tsushinkb.f10 keyboard 0x0 67 - -;pce, Port 1, Tsushin Keyboard: F2 -pce.input.port1.tsushinkb.f2 keyboard 0x0 59 - -;pce, Port 1, Tsushin Keyboard: F3 -pce.input.port1.tsushinkb.f3 keyboard 0x0 60 - -;pce, Port 1, Tsushin Keyboard: F4 -pce.input.port1.tsushinkb.f4 keyboard 0x0 61 - -;pce, Port 1, Tsushin Keyboard: F5 -pce.input.port1.tsushinkb.f5 keyboard 0x0 62 - -;pce, Port 1, Tsushin Keyboard: f6 -pce.input.port1.tsushinkb.f6 keyboard 0x0 63 - -;pce, Port 1, Tsushin Keyboard: f7 -pce.input.port1.tsushinkb.f7 keyboard 0x0 64 - -;pce, Port 1, Tsushin Keyboard: f8 -pce.input.port1.tsushinkb.f8 keyboard 0x0 65 - -;pce, Port 1, Tsushin Keyboard: f9 -pce.input.port1.tsushinkb.f9 keyboard 0x0 66 - -;pce, Port 1, Tsushin Keyboard: g -pce.input.port1.tsushinkb.g keyboard 0x0 10 - -;pce, Port 1, Tsushin Keyboard: GRPH -pce.input.port1.tsushinkb.grph keyboard 0x0 0 - -;pce, Port 1, Tsushin Keyboard: h -pce.input.port1.tsushinkb.h keyboard 0x0 11 - -;pce, Port 1, Tsushin Keyboard: Help -pce.input.port1.tsushinkb.help keyboard 0x0 77 - -;pce, Port 1, Tsushin Keyboard: i -pce.input.port1.tsushinkb.i keyboard 0x0 12 - -;pce, Port 1, Tsushin Keyboard: insert -pce.input.port1.tsushinkb.insert keyboard 0x0 73 - -;pce, Port 1, Tsushin Keyboard: j -pce.input.port1.tsushinkb.j keyboard 0x0 13 - -;pce, Port 1, Tsushin Keyboard: k -pce.input.port1.tsushinkb.k keyboard 0x0 14 - -;pce, Port 1, Tsushin Keyboard: カナ -pce.input.port1.tsushinkb.kana keyboard 0x0 227 - -;pce, Port 1, Tsushin Keyboard: Keypad 0 -pce.input.port1.tsushinkb.kp_0 keyboard 0x0 98 - -;pce, Port 1, Tsushin Keyboard: Keypad 1 -pce.input.port1.tsushinkb.kp_1 keyboard 0x0 89 - -;pce, Port 1, Tsushin Keyboard: Keypad 2 -pce.input.port1.tsushinkb.kp_2 keyboard 0x0 90 - -;pce, Port 1, Tsushin Keyboard: Keypad 3 -pce.input.port1.tsushinkb.kp_3 keyboard 0x0 91 - -;pce, Port 1, Tsushin Keyboard: Keypad 4 -pce.input.port1.tsushinkb.kp_4 keyboard 0x0 92 - -;pce, Port 1, Tsushin Keyboard: Keypad 5 -pce.input.port1.tsushinkb.kp_5 keyboard 0x0 93 - -;pce, Port 1, Tsushin Keyboard: Keypad 6 -pce.input.port1.tsushinkb.kp_6 keyboard 0x0 94 - -;pce, Port 1, Tsushin Keyboard: Keypad 7 -pce.input.port1.tsushinkb.kp_7 keyboard 0x0 95 - -;pce, Port 1, Tsushin Keyboard: Keypad 8 -pce.input.port1.tsushinkb.kp_8 keyboard 0x0 96 - -;pce, Port 1, Tsushin Keyboard: Keypad 9 -pce.input.port1.tsushinkb.kp_9 keyboard 0x0 97 - -;pce, Port 1, Tsushin Keyboard: Keypad , -pce.input.port1.tsushinkb.kp_comma keyboard 0x0 0 - -;pce, Port 1, Tsushin Keyboard: Keypad Divide -pce.input.port1.tsushinkb.kp_divide keyboard 0x0 84 - -;pce, Port 1, Tsushin Keyboard: Keypad Enter -pce.input.port1.tsushinkb.kp_enter keyboard 0x0 88 - -;pce, Port 1, Tsushin Keyboard: Keypad = -pce.input.port1.tsushinkb.kp_equals keyboard 0x0 103 - -;pce, Port 1, Tsushin Keyboard: Keypad Minus -pce.input.port1.tsushinkb.kp_minus keyboard 0x0 86 - -;pce, Port 1, Tsushin Keyboard: Keypad * -pce.input.port1.tsushinkb.kp_multiply keyboard 0x0 85 - -;pce, Port 1, Tsushin Keyboard: Keypad . -pce.input.port1.tsushinkb.kp_period keyboard 0x0 99 - -;pce, Port 1, Tsushin Keyboard: Keypad + -pce.input.port1.tsushinkb.kp_plus keyboard 0x0 87 - -;pce, Port 1, Tsushin Keyboard: l -pce.input.port1.tsushinkb.l keyboard 0x0 15 - -;pce, Port 1, Tsushin Keyboard: left -pce.input.port1.tsushinkb.left keyboard 0x0 80 - -;pce, Port 1, Tsushin Keyboard: [ -pce.input.port1.tsushinkb.left_bracket keyboard 0x0 47 - -;pce, Port 1, Tsushin Keyboard: Left Shift -pce.input.port1.tsushinkb.left_shift keyboard 0x0 225 - -;pce, Port 1, Tsushin Keyboard: m -pce.input.port1.tsushinkb.m keyboard 0x0 16 - -;pce, Port 1, Tsushin Keyboard: Minus -pce.input.port1.tsushinkb.minus keyboard 0x0 45 - -;pce, Port 1, Tsushin Keyboard: n -pce.input.port1.tsushinkb.n keyboard 0x0 17 - -;pce, Port 1, Tsushin Keyboard: 決定 -pce.input.port1.tsushinkb.nonconvert keyboard 0x0 226 - -;pce, Port 1, Tsushin Keyboard: o -pce.input.port1.tsushinkb.o keyboard 0x0 18 - -;pce, Port 1, Tsushin Keyboard: p -pce.input.port1.tsushinkb.p keyboard 0x0 19 - -;pce, Port 1, Tsushin Keyboard: PC -pce.input.port1.tsushinkb.pc keyboard 0x0 231 - -;pce, Port 1, Tsushin Keyboard: . -pce.input.port1.tsushinkb.period keyboard 0x0 55 - -;pce, Port 1, Tsushin Keyboard: q -pce.input.port1.tsushinkb.q keyboard 0x0 20 - -;pce, Port 1, Tsushin Keyboard: r -pce.input.port1.tsushinkb.r keyboard 0x0 21 - -;pce, Port 1, Tsushin Keyboard: return -pce.input.port1.tsushinkb.return keyboard 0x0 40 - -;pce, Port 1, Tsushin Keyboard: right -pce.input.port1.tsushinkb.right keyboard 0x0 79 - -;pce, Port 1, Tsushin Keyboard: ] -pce.input.port1.tsushinkb.right_bracket keyboard 0x0 48 - -;pce, Port 1, Tsushin Keyboard: Right Shift -pce.input.port1.tsushinkb.right_shift keyboard 0x0 229 - -;pce, Port 1, Tsushin Keyboard: ROLL DOWN -pce.input.port1.tsushinkb.roll_down keyboard 0x0 78 - -;pce, Port 1, Tsushin Keyboard: ROLL UP -pce.input.port1.tsushinkb.roll_up keyboard 0x0 75 - -;pce, Port 1, Tsushin Keyboard: s -pce.input.port1.tsushinkb.s keyboard 0x0 22 - -;pce, Port 1, Tsushin Keyboard: ; -pce.input.port1.tsushinkb.semicolon keyboard 0x0 51 - -;pce, Port 1, Tsushin Keyboard: / -pce.input.port1.tsushinkb.slash keyboard 0x0 56 - -;pce, Port 1, Tsushin Keyboard: space -pce.input.port1.tsushinkb.space keyboard 0x0 44 - -;pce, Port 1, Tsushin Keyboard: STOP -pce.input.port1.tsushinkb.stop keyboard 0x0 72 - -;pce, Port 1, Tsushin Keyboard: t -pce.input.port1.tsushinkb.t keyboard 0x0 23 - -;pce, Port 1, Tsushin Keyboard: Tab -pce.input.port1.tsushinkb.tab keyboard 0x0 43 - -;pce, Port 1, Tsushin Keyboard: u -pce.input.port1.tsushinkb.u keyboard 0x0 24 - -;pce, Port 1, Tsushin Keyboard: Underscore -pce.input.port1.tsushinkb.underscore keyboard 0x0 0 - -;pce, Port 1, Tsushin Keyboard: up -pce.input.port1.tsushinkb.up keyboard 0x0 82 - -;pce, Port 1, Tsushin Keyboard: v -pce.input.port1.tsushinkb.v keyboard 0x0 25 - -;pce, Port 1, Tsushin Keyboard: w -pce.input.port1.tsushinkb.w keyboard 0x0 26 - -;pce, Port 1, Tsushin Keyboard: 変換 -pce.input.port1.tsushinkb.width keyboard 0x0 228 - -;pce, Port 1, Tsushin Keyboard: x -pce.input.port1.tsushinkb.x keyboard 0x0 27 - -;pce, Port 1, Tsushin Keyboard: y -pce.input.port1.tsushinkb.y keyboard 0x0 28 - -;pce, Port 1, Tsushin Keyboard: Yen -pce.input.port1.tsushinkb.yen keyboard 0x0 46 - -;pce, Port 1, Tsushin Keyboard: z -pce.input.port1.tsushinkb.z keyboard 0x0 29 - -;Input device for Port 2 -pce.input.port2 gamepad - -;pce, Port 2, Gamepad: DOWN ↓ -pce.input.port2.gamepad.down - -;pce, Port 2, Gamepad: I -pce.input.port2.gamepad.i - -;pce, Port 2, Gamepad: II -pce.input.port2.gamepad.ii - -;pce, Port 2, Gamepad: III -pce.input.port2.gamepad.iii - -;pce, Port 2, Gamepad: IV -pce.input.port2.gamepad.iv - -;pce, Port 2, Gamepad: LEFT ← -pce.input.port2.gamepad.left - -;pce, Port 2, Gamepad: Mode -pce.input.port2.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port2.gamepad.mode_select.defpos 2 - -;pce, Port 2, Gamepad: Rapid I -pce.input.port2.gamepad.rapid_i - -;pce, Port 2, Gamepad: Rapid II -pce.input.port2.gamepad.rapid_ii - -;pce, Port 2, Gamepad: RIGHT → -pce.input.port2.gamepad.right - -;pce, Port 2, Gamepad: RUN -pce.input.port2.gamepad.run - -;pce, Port 2, Gamepad: SELECT -pce.input.port2.gamepad.select - -;pce, Port 2, Gamepad: UP ↑ -pce.input.port2.gamepad.up - -;pce, Port 2, Gamepad: V -pce.input.port2.gamepad.v - -;pce, Port 2, Gamepad: VI -pce.input.port2.gamepad.vi - -;pce, Port 2, Mouse: Left Button -pce.input.port2.mouse.left mouse 0x0 button_left - -;pce, Port 2, Mouse: Motion Down -pce.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 2, Mouse: Motion Left -pce.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 2, Mouse: Motion Right -pce.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 2, Mouse: Motion Up -pce.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 2, Mouse: Right Button -pce.input.port2.mouse.right mouse 0x0 button_right - -;pce, Port 2, Mouse: RUN -pce.input.port2.mouse.run keyboard 0x0 40 - -;pce, Port 2, Mouse: SELECT -pce.input.port2.mouse.select keyboard 0x0 43 - -;Input device for Port 3 -pce.input.port3 gamepad - -;pce, Port 3, Gamepad: DOWN ↓ -pce.input.port3.gamepad.down - -;pce, Port 3, Gamepad: I -pce.input.port3.gamepad.i - -;pce, Port 3, Gamepad: II -pce.input.port3.gamepad.ii - -;pce, Port 3, Gamepad: III -pce.input.port3.gamepad.iii - -;pce, Port 3, Gamepad: IV -pce.input.port3.gamepad.iv - -;pce, Port 3, Gamepad: LEFT ← -pce.input.port3.gamepad.left - -;pce, Port 3, Gamepad: Mode -pce.input.port3.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port3.gamepad.mode_select.defpos 2 - -;pce, Port 3, Gamepad: Rapid I -pce.input.port3.gamepad.rapid_i - -;pce, Port 3, Gamepad: Rapid II -pce.input.port3.gamepad.rapid_ii - -;pce, Port 3, Gamepad: RIGHT → -pce.input.port3.gamepad.right - -;pce, Port 3, Gamepad: RUN -pce.input.port3.gamepad.run - -;pce, Port 3, Gamepad: SELECT -pce.input.port3.gamepad.select - -;pce, Port 3, Gamepad: UP ↑ -pce.input.port3.gamepad.up - -;pce, Port 3, Gamepad: V -pce.input.port3.gamepad.v - -;pce, Port 3, Gamepad: VI -pce.input.port3.gamepad.vi - -;pce, Port 3, Mouse: Left Button -pce.input.port3.mouse.left mouse 0x0 button_left - -;pce, Port 3, Mouse: Motion Down -pce.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 3, Mouse: Motion Left -pce.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 3, Mouse: Motion Right -pce.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 3, Mouse: Motion Up -pce.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 3, Mouse: Right Button -pce.input.port3.mouse.right mouse 0x0 button_right - -;pce, Port 3, Mouse: RUN -pce.input.port3.mouse.run keyboard 0x0 40 - -;pce, Port 3, Mouse: SELECT -pce.input.port3.mouse.select keyboard 0x0 43 - -;Input device for Port 4 -pce.input.port4 gamepad - -;pce, Port 4, Gamepad: DOWN ↓ -pce.input.port4.gamepad.down - -;pce, Port 4, Gamepad: I -pce.input.port4.gamepad.i - -;pce, Port 4, Gamepad: II -pce.input.port4.gamepad.ii - -;pce, Port 4, Gamepad: III -pce.input.port4.gamepad.iii - -;pce, Port 4, Gamepad: IV -pce.input.port4.gamepad.iv - -;pce, Port 4, Gamepad: LEFT ← -pce.input.port4.gamepad.left - -;pce, Port 4, Gamepad: Mode -pce.input.port4.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port4.gamepad.mode_select.defpos 2 - -;pce, Port 4, Gamepad: Rapid I -pce.input.port4.gamepad.rapid_i - -;pce, Port 4, Gamepad: Rapid II -pce.input.port4.gamepad.rapid_ii - -;pce, Port 4, Gamepad: RIGHT → -pce.input.port4.gamepad.right - -;pce, Port 4, Gamepad: RUN -pce.input.port4.gamepad.run - -;pce, Port 4, Gamepad: SELECT -pce.input.port4.gamepad.select - -;pce, Port 4, Gamepad: UP ↑ -pce.input.port4.gamepad.up - -;pce, Port 4, Gamepad: V -pce.input.port4.gamepad.v - -;pce, Port 4, Gamepad: VI -pce.input.port4.gamepad.vi - -;pce, Port 4, Mouse: Left Button -pce.input.port4.mouse.left mouse 0x0 button_left - -;pce, Port 4, Mouse: Motion Down -pce.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 4, Mouse: Motion Left -pce.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 4, Mouse: Motion Right -pce.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 4, Mouse: Motion Up -pce.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 4, Mouse: Right Button -pce.input.port4.mouse.right mouse 0x0 button_right - -;pce, Port 4, Mouse: RUN -pce.input.port4.mouse.run keyboard 0x0 40 - -;pce, Port 4, Mouse: SELECT -pce.input.port4.mouse.select keyboard 0x0 43 - -;Input device for Port 5 -pce.input.port5 gamepad - -;pce, Port 5, Gamepad: DOWN ↓ -pce.input.port5.gamepad.down - -;pce, Port 5, Gamepad: I -pce.input.port5.gamepad.i - -;pce, Port 5, Gamepad: II -pce.input.port5.gamepad.ii - -;pce, Port 5, Gamepad: III -pce.input.port5.gamepad.iii - -;pce, Port 5, Gamepad: IV -pce.input.port5.gamepad.iv - -;pce, Port 5, Gamepad: LEFT ← -pce.input.port5.gamepad.left - -;pce, Port 5, Gamepad: Mode -pce.input.port5.gamepad.mode_select - -;Default position for switch "Mode". -pce.input.port5.gamepad.mode_select.defpos 2 - -;pce, Port 5, Gamepad: Rapid I -pce.input.port5.gamepad.rapid_i - -;pce, Port 5, Gamepad: Rapid II -pce.input.port5.gamepad.rapid_ii - -;pce, Port 5, Gamepad: RIGHT → -pce.input.port5.gamepad.right - -;pce, Port 5, Gamepad: RUN -pce.input.port5.gamepad.run - -;pce, Port 5, Gamepad: SELECT -pce.input.port5.gamepad.select - -;pce, Port 5, Gamepad: UP ↑ -pce.input.port5.gamepad.up - -;pce, Port 5, Gamepad: V -pce.input.port5.gamepad.v - -;pce, Port 5, Gamepad: VI -pce.input.port5.gamepad.vi - -;pce, Port 5, Mouse: Left Button -pce.input.port5.mouse.left mouse 0x0 button_left - -;pce, Port 5, Mouse: Motion Down -pce.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;pce, Port 5, Mouse: Motion Left -pce.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;pce, Port 5, Mouse: Motion Right -pce.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;pce, Port 5, Mouse: Motion Up -pce.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;pce, Port 5, Mouse: Right Button -pce.input.port5.mouse.right mouse 0x0 button_right - -;pce, Port 5, Mouse: RUN -pce.input.port5.mouse.run keyboard 0x0 40 - -;pce, Port 5, Mouse: SELECT -pce.input.port5.mouse.select keyboard 0x0 43 - -;Emulated mouse sensitivity. -pce.mouse_sensitivity 0.50 - -;Remove 16-sprites-per-scanline hardware limit. -pce.nospritelimit 1 - -;Select PSG revision. -pce.psgrevision match - -;Sound quality. -pce.resamp_quality 3 - -;Sound output rate tolerance. -pce.resamp_rate_error 0.0000009 - -;Enable scanlines with specified opacity. -pce.scanlines 0 - -;Enable specified OpenGL shader. -pce.shader ipsharper - -;Force interlaced video to be treated as progressive. -pce.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -pce.shader.goat.hdiv 0.50 - -;Mask pattern. -pce.shader.goat.pat goatron - -;Enable scanlines effect. -pce.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -pce.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -pce.shader.goat.vdiv 0.50 - -;Last rendered scanline. -pce.slend 235 - -;First rendered scanline. -pce.slstart 4 - -;Enable specified special video scaler. -pce.special none - -;Stretch to fill screen. -pce.stretch full - -;Enable video temporal blur(50/50 previous/current frame by default). -pce.tblur 0 - -;Accumulate color data rather than discarding it. -pce.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -pce.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -pce.videoip 1 - -;Size of emulated VRAM per VDC in 16-bit words. DO NOT CHANGE THIS UNLESS YOU KNOW WTF YOU ARE DOING. -pce.vramsize 32768 - -;Full-screen horizontal resolution. -pce.xres 0 - -;Scaling factor for the X axis in windowed mode. -pce.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -pce.xscalefs 1.000000 - -;Full-screen vertical resolution. -pce.yres 0 - -;Scaling factor for the Y axis in windowed mode. -pce.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -pce.yscalefs 1.000000 - -;Enable dynamic ADPCM lowpass filter. -pce_fast.adpcmlp 0 - -;ADPCM volume. -pce_fast.adpcmvolume 100 - -;Enable Arcade Card emulation. -pce_fast.arcadecard 1 - -;Path to the CD BIOS -pce_fast.cdbios syscard3.pce - -;CD-DA volume. -pce_fast.cddavolume 100 - -;PSG volume when playing a CD game. -pce_fast.cdpsgvolume 100 - -;CD-ROM data transfer speed multiplier. -pce_fast.cdspeed 1 - -;Correct the aspect ratio. -pce_fast.correct_aspect 1 - -;If set, when RUN+SEL are pressed simultaneously, disable both buttons temporarily. -pce_fast.disable_softreset 0 - -;Enable (automatic) usage of this module. -pce_fast.enable 1 - -;Force monophonic sound output. -pce_fast.forcemono 0 - -;Force SuperGrafx emulation. -pce_fast.forcesgx 1 - -;Input device for Port 1 -pce_fast.input.port1 gamepad - -;pce_fast, Port 1, Gamepad: DOWN ↓ -pce_fast.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;pce_fast, Port 1, Gamepad: I -pce_fast.input.port1.gamepad.i joystick 0x0003045e028e01010008000b00000000 button_1 - -;pce_fast, Port 1, Gamepad: II -pce_fast.input.port1.gamepad.ii joystick 0x0003045e028e01010008000b00000000 button_0 - -;pce_fast, Port 1, Gamepad: III -pce_fast.input.port1.gamepad.iii joystick 0x0003045e028e01010008000b00000000 button_2 - -;pce_fast, Port 1, Gamepad: IV -pce_fast.input.port1.gamepad.iv joystick 0x0003045e028e01010008000b00000000 button_3 - -;pce_fast, Port 1, Gamepad: LEFT ← -pce_fast.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;pce_fast, Port 1, Gamepad: Mode -pce_fast.input.port1.gamepad.mode_select keyboard 0x0 38 || joystick 0x0003045e028e01010008000b00000000 abs_2- - -;Default position for switch "Mode". -pce_fast.input.port1.gamepad.mode_select.defpos 2 - -;pce_fast, Port 1, Gamepad: Rapid I -pce_fast.input.port1.gamepad.rapid_i keyboard 0x0 17 - -;pce_fast, Port 1, Gamepad: Rapid II -pce_fast.input.port1.gamepad.rapid_ii keyboard 0x0 17 - -;pce_fast, Port 1, Gamepad: RIGHT → -pce_fast.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;pce_fast, Port 1, Gamepad: RUN -pce_fast.input.port1.gamepad.run joystick 0x0003045e028e01010008000b00000000 button_7 - -;pce_fast, Port 1, Gamepad: SELECT -pce_fast.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;pce_fast, Port 1, Gamepad: UP ↑ -pce_fast.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;pce_fast, Port 1, Gamepad: V -pce_fast.input.port1.gamepad.v joystick 0x0003045e028e01010008000b00000000 button_4 - -;pce_fast, Port 1, Gamepad: VI -pce_fast.input.port1.gamepad.vi joystick 0x0003045e028e01010008000b00000000 button_5 - -;pce_fast, Port 1, Mouse: Left Button -pce_fast.input.port1.mouse.left mouse 0x0 button_left - -;pce_fast, Port 1, Mouse: Motion Down -pce_fast.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 1, Mouse: Motion Left -pce_fast.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 1, Mouse: Motion Right -pce_fast.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 1, Mouse: Motion Up -pce_fast.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 1, Mouse: Right Button -pce_fast.input.port1.mouse.right mouse 0x0 button_right - -;pce_fast, Port 1, Mouse: RUN -pce_fast.input.port1.mouse.run keyboard 0x0 40 - -;pce_fast, Port 1, Mouse: SELECT -pce_fast.input.port1.mouse.select keyboard 0x0 43 - -;Input device for Port 2 -pce_fast.input.port2 gamepad - -;pce_fast, Port 2, Gamepad: DOWN ↓ -pce_fast.input.port2.gamepad.down - -;pce_fast, Port 2, Gamepad: I -pce_fast.input.port2.gamepad.i - -;pce_fast, Port 2, Gamepad: II -pce_fast.input.port2.gamepad.ii - -;pce_fast, Port 2, Gamepad: III -pce_fast.input.port2.gamepad.iii - -;pce_fast, Port 2, Gamepad: IV -pce_fast.input.port2.gamepad.iv - -;pce_fast, Port 2, Gamepad: LEFT ← -pce_fast.input.port2.gamepad.left - -;pce_fast, Port 2, Gamepad: Mode -pce_fast.input.port2.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port2.gamepad.mode_select.defpos 2 - -;pce_fast, Port 2, Gamepad: Rapid I -pce_fast.input.port2.gamepad.rapid_i - -;pce_fast, Port 2, Gamepad: Rapid II -pce_fast.input.port2.gamepad.rapid_ii - -;pce_fast, Port 2, Gamepad: RIGHT → -pce_fast.input.port2.gamepad.right - -;pce_fast, Port 2, Gamepad: RUN -pce_fast.input.port2.gamepad.run - -;pce_fast, Port 2, Gamepad: SELECT -pce_fast.input.port2.gamepad.select - -;pce_fast, Port 2, Gamepad: UP ↑ -pce_fast.input.port2.gamepad.up - -;pce_fast, Port 2, Gamepad: V -pce_fast.input.port2.gamepad.v - -;pce_fast, Port 2, Gamepad: VI -pce_fast.input.port2.gamepad.vi - -;pce_fast, Port 2, Mouse: Left Button -pce_fast.input.port2.mouse.left mouse 0x0 button_left - -;pce_fast, Port 2, Mouse: Motion Down -pce_fast.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 2, Mouse: Motion Left -pce_fast.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 2, Mouse: Motion Right -pce_fast.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 2, Mouse: Motion Up -pce_fast.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 2, Mouse: Right Button -pce_fast.input.port2.mouse.right mouse 0x0 button_right - -;pce_fast, Port 2, Mouse: RUN -pce_fast.input.port2.mouse.run keyboard 0x0 40 - -;pce_fast, Port 2, Mouse: SELECT -pce_fast.input.port2.mouse.select keyboard 0x0 43 - -;Input device for Port 3 -pce_fast.input.port3 gamepad - -;pce_fast, Port 3, Gamepad: DOWN ↓ -pce_fast.input.port3.gamepad.down - -;pce_fast, Port 3, Gamepad: I -pce_fast.input.port3.gamepad.i - -;pce_fast, Port 3, Gamepad: II -pce_fast.input.port3.gamepad.ii - -;pce_fast, Port 3, Gamepad: III -pce_fast.input.port3.gamepad.iii - -;pce_fast, Port 3, Gamepad: IV -pce_fast.input.port3.gamepad.iv - -;pce_fast, Port 3, Gamepad: LEFT ← -pce_fast.input.port3.gamepad.left - -;pce_fast, Port 3, Gamepad: Mode -pce_fast.input.port3.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port3.gamepad.mode_select.defpos 2 - -;pce_fast, Port 3, Gamepad: Rapid I -pce_fast.input.port3.gamepad.rapid_i - -;pce_fast, Port 3, Gamepad: Rapid II -pce_fast.input.port3.gamepad.rapid_ii - -;pce_fast, Port 3, Gamepad: RIGHT → -pce_fast.input.port3.gamepad.right - -;pce_fast, Port 3, Gamepad: RUN -pce_fast.input.port3.gamepad.run - -;pce_fast, Port 3, Gamepad: SELECT -pce_fast.input.port3.gamepad.select - -;pce_fast, Port 3, Gamepad: UP ↑ -pce_fast.input.port3.gamepad.up - -;pce_fast, Port 3, Gamepad: V -pce_fast.input.port3.gamepad.v - -;pce_fast, Port 3, Gamepad: VI -pce_fast.input.port3.gamepad.vi - -;pce_fast, Port 3, Mouse: Left Button -pce_fast.input.port3.mouse.left mouse 0x0 button_left - -;pce_fast, Port 3, Mouse: Motion Down -pce_fast.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 3, Mouse: Motion Left -pce_fast.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 3, Mouse: Motion Right -pce_fast.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 3, Mouse: Motion Up -pce_fast.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 3, Mouse: Right Button -pce_fast.input.port3.mouse.right mouse 0x0 button_right - -;pce_fast, Port 3, Mouse: RUN -pce_fast.input.port3.mouse.run keyboard 0x0 40 - -;pce_fast, Port 3, Mouse: SELECT -pce_fast.input.port3.mouse.select keyboard 0x0 43 - -;Input device for Port 4 -pce_fast.input.port4 gamepad - -;pce_fast, Port 4, Gamepad: DOWN ↓ -pce_fast.input.port4.gamepad.down - -;pce_fast, Port 4, Gamepad: I -pce_fast.input.port4.gamepad.i - -;pce_fast, Port 4, Gamepad: II -pce_fast.input.port4.gamepad.ii - -;pce_fast, Port 4, Gamepad: III -pce_fast.input.port4.gamepad.iii - -;pce_fast, Port 4, Gamepad: IV -pce_fast.input.port4.gamepad.iv - -;pce_fast, Port 4, Gamepad: LEFT ← -pce_fast.input.port4.gamepad.left - -;pce_fast, Port 4, Gamepad: Mode -pce_fast.input.port4.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port4.gamepad.mode_select.defpos 2 - -;pce_fast, Port 4, Gamepad: Rapid I -pce_fast.input.port4.gamepad.rapid_i - -;pce_fast, Port 4, Gamepad: Rapid II -pce_fast.input.port4.gamepad.rapid_ii - -;pce_fast, Port 4, Gamepad: RIGHT → -pce_fast.input.port4.gamepad.right - -;pce_fast, Port 4, Gamepad: RUN -pce_fast.input.port4.gamepad.run - -;pce_fast, Port 4, Gamepad: SELECT -pce_fast.input.port4.gamepad.select - -;pce_fast, Port 4, Gamepad: UP ↑ -pce_fast.input.port4.gamepad.up - -;pce_fast, Port 4, Gamepad: V -pce_fast.input.port4.gamepad.v - -;pce_fast, Port 4, Gamepad: VI -pce_fast.input.port4.gamepad.vi - -;pce_fast, Port 4, Mouse: Left Button -pce_fast.input.port4.mouse.left mouse 0x0 button_left - -;pce_fast, Port 4, Mouse: Motion Down -pce_fast.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 4, Mouse: Motion Left -pce_fast.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 4, Mouse: Motion Right -pce_fast.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 4, Mouse: Motion Up -pce_fast.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 4, Mouse: Right Button -pce_fast.input.port4.mouse.right mouse 0x0 button_right - -;pce_fast, Port 4, Mouse: RUN -pce_fast.input.port4.mouse.run keyboard 0x0 40 - -;pce_fast, Port 4, Mouse: SELECT -pce_fast.input.port4.mouse.select keyboard 0x0 43 - -;Input device for Port 5 -pce_fast.input.port5 gamepad - -;pce_fast, Port 5, Gamepad: DOWN ↓ -pce_fast.input.port5.gamepad.down - -;pce_fast, Port 5, Gamepad: I -pce_fast.input.port5.gamepad.i - -;pce_fast, Port 5, Gamepad: II -pce_fast.input.port5.gamepad.ii - -;pce_fast, Port 5, Gamepad: III -pce_fast.input.port5.gamepad.iii - -;pce_fast, Port 5, Gamepad: IV -pce_fast.input.port5.gamepad.iv - -;pce_fast, Port 5, Gamepad: LEFT ← -pce_fast.input.port5.gamepad.left - -;pce_fast, Port 5, Gamepad: Mode -pce_fast.input.port5.gamepad.mode_select - -;Default position for switch "Mode". -pce_fast.input.port5.gamepad.mode_select.defpos 2 - -;pce_fast, Port 5, Gamepad: Rapid I -pce_fast.input.port5.gamepad.rapid_i - -;pce_fast, Port 5, Gamepad: Rapid II -pce_fast.input.port5.gamepad.rapid_ii - -;pce_fast, Port 5, Gamepad: RIGHT → -pce_fast.input.port5.gamepad.right - -;pce_fast, Port 5, Gamepad: RUN -pce_fast.input.port5.gamepad.run - -;pce_fast, Port 5, Gamepad: SELECT -pce_fast.input.port5.gamepad.select - -;pce_fast, Port 5, Gamepad: UP ↑ -pce_fast.input.port5.gamepad.up - -;pce_fast, Port 5, Gamepad: V -pce_fast.input.port5.gamepad.v - -;pce_fast, Port 5, Gamepad: VI -pce_fast.input.port5.gamepad.vi - -;pce_fast, Port 5, Mouse: Left Button -pce_fast.input.port5.mouse.left mouse 0x0 button_left - -;pce_fast, Port 5, Mouse: Motion Down -pce_fast.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;pce_fast, Port 5, Mouse: Motion Left -pce_fast.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;pce_fast, Port 5, Mouse: Motion Right -pce_fast.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;pce_fast, Port 5, Mouse: Motion Up -pce_fast.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;pce_fast, Port 5, Mouse: Right Button -pce_fast.input.port5.mouse.right mouse 0x0 button_right - -;pce_fast, Port 5, Mouse: RUN -pce_fast.input.port5.mouse.run keyboard 0x0 40 - -;pce_fast, Port 5, Mouse: SELECT -pce_fast.input.port5.mouse.select keyboard 0x0 43 - -;Mouse sensitivity. -pce_fast.mouse_sensitivity 0.50 - -;Remove 16-sprites-per-scanline hardware limit. -pce_fast.nospritelimit 1 - -;CPU overclock multiplier. -pce_fast.ocmultiplier 1 - -;Enable scanlines with specified opacity. -pce_fast.scanlines 0 - -;Enable specified OpenGL shader. -pce_fast.shader sabr - -;Force interlaced video to be treated as progressive. -pce_fast.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -pce_fast.shader.goat.hdiv 0.50 - -;Mask pattern. -pce_fast.shader.goat.pat goatron - -;Enable scanlines effect. -pce_fast.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -pce_fast.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -pce_fast.shader.goat.vdiv 0.50 - -;Last rendered scanline. -pce_fast.slend 235 - -;First rendered scanline. -pce_fast.slstart 4 - -;Enable specified special video scaler. -pce_fast.special none - -;Stretch to fill screen. -pce_fast.stretch full - -;Enable video temporal blur(50/50 previous/current frame by default). -pce_fast.tblur 0 - -;Accumulate color data rather than discarding it. -pce_fast.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -pce_fast.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -pce_fast.videoip 1 - -;Full-screen horizontal resolution. -pce_fast.xres 0 - -;Scaling factor for the X axis in windowed mode. -pce_fast.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -pce_fast.xscalefs 1.000000 - -;Full-screen vertical resolution. -pce_fast.yres 0 - -;Scaling factor for the Y axis in windowed mode. -pce_fast.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -pce_fast.yscalefs 1.000000 - -;Hack that emulates the codec a buggy ADPCM encoder used for some games' ADPCM. -pcfx.adpcm.emulate_buggy_codec 0 - -;Hack to suppress clicks caused by forced channel resets. -pcfx.adpcm.suppress_channel_reset_clicks 1 - -;Path to the ROM BIOS -pcfx.bios /storage/roms/bios/pcfx.rom - -;Emulated CD-ROM speed. -pcfx.cdspeed 2 - -;CPU emulation mode. -pcfx.cpu_emulation accurate - -;Disassembly font size. -pcfx.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -pcfx.debugger.memcharenc shift_jis - -;Disable internal and external BRAM. -pcfx.disable_bram 0 - -;When RUN+SEL are pressed simultaneously, disable both buttons temporarily. -pcfx.disable_softreset 0 - -;Enable (automatic) usage of this module. -pcfx.enable 1 - -;Force monophonic sound output. -pcfx.forcemono 0 - -;Path to the FX-SCSI ROM -pcfx.fxscsi 0 - -;Emulated width for 7.16MHz dot-clock mode. -pcfx.high_dotclock_width 1024 - -;Input device for Port 1 -pcfx.input.port1 gamepad - -;pcfx, Port 1, Gamepad: DOWN ↓ -pcfx.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;pcfx, Port 1, Gamepad: I -pcfx.input.port1.gamepad.i joystick 0x0003045e028e01010008000b00000000 button_1 - -;pcfx, Port 1, Gamepad: II -pcfx.input.port1.gamepad.ii joystick 0x0003045e028e01010008000b00000000 button_0 - -;pcfx, Port 1, Gamepad: III -pcfx.input.port1.gamepad.iii joystick 0x0003045e028e01010008000b00000000 button_3 - -;pcfx, Port 1, Gamepad: IV -pcfx.input.port1.gamepad.iv joystick 0x0003045e028e01010008000b00000000 button_2 - -;pcfx, Port 1, Gamepad: LEFT ← -pcfx.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;pcfx, Port 1, Gamepad: MODE 1 -pcfx.input.port1.gamepad.mode1 joystick 0x0003045e028e01010008000b00000000 abs_2- - -;Default position for switch "MODE 1". -pcfx.input.port1.gamepad.mode1.defpos a - -;pcfx, Port 1, Gamepad: MODE 2 -pcfx.input.port1.gamepad.mode2 joystick 0x0003045e028e01010008000b00000000 abs_5- - -;Default position for switch "MODE 2". -pcfx.input.port1.gamepad.mode2.defpos a - -;pcfx, Port 1, Gamepad: RIGHT → -pcfx.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;pcfx, Port 1, Gamepad: RUN -pcfx.input.port1.gamepad.run joystick 0x0003045e028e01010008000b00000000 button_7 - -;pcfx, Port 1, Gamepad: SELECT -pcfx.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;pcfx, Port 1, Gamepad: UP ↑ -pcfx.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;pcfx, Port 1, Gamepad: V -pcfx.input.port1.gamepad.v joystick 0x0003045e028e01010008000b00000000 button_4 - -;pcfx, Port 1, Gamepad: VI -pcfx.input.port1.gamepad.vi joystick 0x0003045e028e01010008000b00000000 button_5 - -;pcfx, Port 1, Mouse: Left Button -pcfx.input.port1.mouse.left mouse 0x0 button_left - -;pcfx, Port 1, Mouse: Motion Down -pcfx.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 1, Mouse: Motion Left -pcfx.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 1, Mouse: Motion Right -pcfx.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 1, Mouse: Motion Up -pcfx.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 1, Mouse: Right Button -pcfx.input.port1.mouse.right mouse 0x0 button_right - -;Enable multitap on PC-FX port 1. -pcfx.input.port1.multitap 0 - -;Input device for Port 2 -pcfx.input.port2 gamepad - -;pcfx, Port 2, Gamepad: DOWN ↓ -pcfx.input.port2.gamepad.down - -;pcfx, Port 2, Gamepad: I -pcfx.input.port2.gamepad.i - -;pcfx, Port 2, Gamepad: II -pcfx.input.port2.gamepad.ii - -;pcfx, Port 2, Gamepad: III -pcfx.input.port2.gamepad.iii - -;pcfx, Port 2, Gamepad: IV -pcfx.input.port2.gamepad.iv - -;pcfx, Port 2, Gamepad: LEFT ← -pcfx.input.port2.gamepad.left - -;pcfx, Port 2, Gamepad: MODE 1 -pcfx.input.port2.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port2.gamepad.mode1.defpos a - -;pcfx, Port 2, Gamepad: MODE 2 -pcfx.input.port2.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port2.gamepad.mode2.defpos a - -;pcfx, Port 2, Gamepad: RIGHT → -pcfx.input.port2.gamepad.right - -;pcfx, Port 2, Gamepad: RUN -pcfx.input.port2.gamepad.run - -;pcfx, Port 2, Gamepad: SELECT -pcfx.input.port2.gamepad.select - -;pcfx, Port 2, Gamepad: UP ↑ -pcfx.input.port2.gamepad.up - -;pcfx, Port 2, Gamepad: V -pcfx.input.port2.gamepad.v - -;pcfx, Port 2, Gamepad: VI -pcfx.input.port2.gamepad.vi - -;pcfx, Port 2, Mouse: Left Button -pcfx.input.port2.mouse.left mouse 0x0 button_left - -;pcfx, Port 2, Mouse: Motion Down -pcfx.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 2, Mouse: Motion Left -pcfx.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 2, Mouse: Motion Right -pcfx.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 2, Mouse: Motion Up -pcfx.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 2, Mouse: Right Button -pcfx.input.port2.mouse.right mouse 0x0 button_right - -;Enable multitap on PC-FX port 2. -pcfx.input.port2.multitap 0 - -;Input device for Port 3 -pcfx.input.port3 gamepad - -;pcfx, Port 3, Gamepad: DOWN ↓ -pcfx.input.port3.gamepad.down - -;pcfx, Port 3, Gamepad: I -pcfx.input.port3.gamepad.i - -;pcfx, Port 3, Gamepad: II -pcfx.input.port3.gamepad.ii - -;pcfx, Port 3, Gamepad: III -pcfx.input.port3.gamepad.iii - -;pcfx, Port 3, Gamepad: IV -pcfx.input.port3.gamepad.iv - -;pcfx, Port 3, Gamepad: LEFT ← -pcfx.input.port3.gamepad.left - -;pcfx, Port 3, Gamepad: MODE 1 -pcfx.input.port3.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port3.gamepad.mode1.defpos a - -;pcfx, Port 3, Gamepad: MODE 2 -pcfx.input.port3.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port3.gamepad.mode2.defpos a - -;pcfx, Port 3, Gamepad: RIGHT → -pcfx.input.port3.gamepad.right - -;pcfx, Port 3, Gamepad: RUN -pcfx.input.port3.gamepad.run - -;pcfx, Port 3, Gamepad: SELECT -pcfx.input.port3.gamepad.select - -;pcfx, Port 3, Gamepad: UP ↑ -pcfx.input.port3.gamepad.up - -;pcfx, Port 3, Gamepad: V -pcfx.input.port3.gamepad.v - -;pcfx, Port 3, Gamepad: VI -pcfx.input.port3.gamepad.vi - -;pcfx, Port 3, Mouse: Left Button -pcfx.input.port3.mouse.left mouse 0x0 button_left - -;pcfx, Port 3, Mouse: Motion Down -pcfx.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 3, Mouse: Motion Left -pcfx.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 3, Mouse: Motion Right -pcfx.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 3, Mouse: Motion Up -pcfx.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 3, Mouse: Right Button -pcfx.input.port3.mouse.right mouse 0x0 button_right - -;Input device for Port 4 -pcfx.input.port4 gamepad - -;pcfx, Port 4, Gamepad: DOWN ↓ -pcfx.input.port4.gamepad.down - -;pcfx, Port 4, Gamepad: I -pcfx.input.port4.gamepad.i - -;pcfx, Port 4, Gamepad: II -pcfx.input.port4.gamepad.ii - -;pcfx, Port 4, Gamepad: III -pcfx.input.port4.gamepad.iii - -;pcfx, Port 4, Gamepad: IV -pcfx.input.port4.gamepad.iv - -;pcfx, Port 4, Gamepad: LEFT ← -pcfx.input.port4.gamepad.left - -;pcfx, Port 4, Gamepad: MODE 1 -pcfx.input.port4.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port4.gamepad.mode1.defpos a - -;pcfx, Port 4, Gamepad: MODE 2 -pcfx.input.port4.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port4.gamepad.mode2.defpos a - -;pcfx, Port 4, Gamepad: RIGHT → -pcfx.input.port4.gamepad.right - -;pcfx, Port 4, Gamepad: RUN -pcfx.input.port4.gamepad.run - -;pcfx, Port 4, Gamepad: SELECT -pcfx.input.port4.gamepad.select - -;pcfx, Port 4, Gamepad: UP ↑ -pcfx.input.port4.gamepad.up - -;pcfx, Port 4, Gamepad: V -pcfx.input.port4.gamepad.v - -;pcfx, Port 4, Gamepad: VI -pcfx.input.port4.gamepad.vi - -;pcfx, Port 4, Mouse: Left Button -pcfx.input.port4.mouse.left mouse 0x0 button_left - -;pcfx, Port 4, Mouse: Motion Down -pcfx.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 4, Mouse: Motion Left -pcfx.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 4, Mouse: Motion Right -pcfx.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 4, Mouse: Motion Up -pcfx.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 4, Mouse: Right Button -pcfx.input.port4.mouse.right mouse 0x0 button_right - -;Input device for Port 5 -pcfx.input.port5 gamepad - -;pcfx, Port 5, Gamepad: DOWN ↓ -pcfx.input.port5.gamepad.down - -;pcfx, Port 5, Gamepad: I -pcfx.input.port5.gamepad.i - -;pcfx, Port 5, Gamepad: II -pcfx.input.port5.gamepad.ii - -;pcfx, Port 5, Gamepad: III -pcfx.input.port5.gamepad.iii - -;pcfx, Port 5, Gamepad: IV -pcfx.input.port5.gamepad.iv - -;pcfx, Port 5, Gamepad: LEFT ← -pcfx.input.port5.gamepad.left - -;pcfx, Port 5, Gamepad: MODE 1 -pcfx.input.port5.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port5.gamepad.mode1.defpos a - -;pcfx, Port 5, Gamepad: MODE 2 -pcfx.input.port5.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port5.gamepad.mode2.defpos a - -;pcfx, Port 5, Gamepad: RIGHT → -pcfx.input.port5.gamepad.right - -;pcfx, Port 5, Gamepad: RUN -pcfx.input.port5.gamepad.run - -;pcfx, Port 5, Gamepad: SELECT -pcfx.input.port5.gamepad.select - -;pcfx, Port 5, Gamepad: UP ↑ -pcfx.input.port5.gamepad.up - -;pcfx, Port 5, Gamepad: V -pcfx.input.port5.gamepad.v - -;pcfx, Port 5, Gamepad: VI -pcfx.input.port5.gamepad.vi - -;pcfx, Port 5, Mouse: Left Button -pcfx.input.port5.mouse.left mouse 0x0 button_left - -;pcfx, Port 5, Mouse: Motion Down -pcfx.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 5, Mouse: Motion Left -pcfx.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 5, Mouse: Motion Right -pcfx.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 5, Mouse: Motion Up -pcfx.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 5, Mouse: Right Button -pcfx.input.port5.mouse.right mouse 0x0 button_right - -;Input device for Port 6 -pcfx.input.port6 gamepad - -;pcfx, Port 6, Gamepad: DOWN ↓ -pcfx.input.port6.gamepad.down - -;pcfx, Port 6, Gamepad: I -pcfx.input.port6.gamepad.i - -;pcfx, Port 6, Gamepad: II -pcfx.input.port6.gamepad.ii - -;pcfx, Port 6, Gamepad: III -pcfx.input.port6.gamepad.iii - -;pcfx, Port 6, Gamepad: IV -pcfx.input.port6.gamepad.iv - -;pcfx, Port 6, Gamepad: LEFT ← -pcfx.input.port6.gamepad.left - -;pcfx, Port 6, Gamepad: MODE 1 -pcfx.input.port6.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port6.gamepad.mode1.defpos a - -;pcfx, Port 6, Gamepad: MODE 2 -pcfx.input.port6.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port6.gamepad.mode2.defpos a - -;pcfx, Port 6, Gamepad: RIGHT → -pcfx.input.port6.gamepad.right - -;pcfx, Port 6, Gamepad: RUN -pcfx.input.port6.gamepad.run - -;pcfx, Port 6, Gamepad: SELECT -pcfx.input.port6.gamepad.select - -;pcfx, Port 6, Gamepad: UP ↑ -pcfx.input.port6.gamepad.up - -;pcfx, Port 6, Gamepad: V -pcfx.input.port6.gamepad.v - -;pcfx, Port 6, Gamepad: VI -pcfx.input.port6.gamepad.vi - -;pcfx, Port 6, Mouse: Left Button -pcfx.input.port6.mouse.left mouse 0x0 button_left - -;pcfx, Port 6, Mouse: Motion Down -pcfx.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 6, Mouse: Motion Left -pcfx.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 6, Mouse: Motion Right -pcfx.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 6, Mouse: Motion Up -pcfx.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 6, Mouse: Right Button -pcfx.input.port6.mouse.right mouse 0x0 button_right - -;Input device for Port 7 -pcfx.input.port7 gamepad - -;pcfx, Port 7, Gamepad: DOWN ↓ -pcfx.input.port7.gamepad.down - -;pcfx, Port 7, Gamepad: I -pcfx.input.port7.gamepad.i - -;pcfx, Port 7, Gamepad: II -pcfx.input.port7.gamepad.ii - -;pcfx, Port 7, Gamepad: III -pcfx.input.port7.gamepad.iii - -;pcfx, Port 7, Gamepad: IV -pcfx.input.port7.gamepad.iv - -;pcfx, Port 7, Gamepad: LEFT ← -pcfx.input.port7.gamepad.left - -;pcfx, Port 7, Gamepad: MODE 1 -pcfx.input.port7.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port7.gamepad.mode1.defpos a - -;pcfx, Port 7, Gamepad: MODE 2 -pcfx.input.port7.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port7.gamepad.mode2.defpos a - -;pcfx, Port 7, Gamepad: RIGHT → -pcfx.input.port7.gamepad.right - -;pcfx, Port 7, Gamepad: RUN -pcfx.input.port7.gamepad.run - -;pcfx, Port 7, Gamepad: SELECT -pcfx.input.port7.gamepad.select - -;pcfx, Port 7, Gamepad: UP ↑ -pcfx.input.port7.gamepad.up - -;pcfx, Port 7, Gamepad: V -pcfx.input.port7.gamepad.v - -;pcfx, Port 7, Gamepad: VI -pcfx.input.port7.gamepad.vi - -;pcfx, Port 7, Mouse: Left Button -pcfx.input.port7.mouse.left mouse 0x0 button_left - -;pcfx, Port 7, Mouse: Motion Down -pcfx.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 7, Mouse: Motion Left -pcfx.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 7, Mouse: Motion Right -pcfx.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 7, Mouse: Motion Up -pcfx.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 7, Mouse: Right Button -pcfx.input.port7.mouse.right mouse 0x0 button_right - -;Input device for Port 8 -pcfx.input.port8 gamepad - -;pcfx, Port 8, Gamepad: DOWN ↓ -pcfx.input.port8.gamepad.down - -;pcfx, Port 8, Gamepad: I -pcfx.input.port8.gamepad.i - -;pcfx, Port 8, Gamepad: II -pcfx.input.port8.gamepad.ii - -;pcfx, Port 8, Gamepad: III -pcfx.input.port8.gamepad.iii - -;pcfx, Port 8, Gamepad: IV -pcfx.input.port8.gamepad.iv - -;pcfx, Port 8, Gamepad: LEFT ← -pcfx.input.port8.gamepad.left - -;pcfx, Port 8, Gamepad: MODE 1 -pcfx.input.port8.gamepad.mode1 - -;Default position for switch "MODE 1". -pcfx.input.port8.gamepad.mode1.defpos a - -;pcfx, Port 8, Gamepad: MODE 2 -pcfx.input.port8.gamepad.mode2 - -;Default position for switch "MODE 2". -pcfx.input.port8.gamepad.mode2.defpos a - -;pcfx, Port 8, Gamepad: RIGHT → -pcfx.input.port8.gamepad.right - -;pcfx, Port 8, Gamepad: RUN -pcfx.input.port8.gamepad.run - -;pcfx, Port 8, Gamepad: SELECT -pcfx.input.port8.gamepad.select - -;pcfx, Port 8, Gamepad: UP ↑ -pcfx.input.port8.gamepad.up - -;pcfx, Port 8, Gamepad: V -pcfx.input.port8.gamepad.v - -;pcfx, Port 8, Gamepad: VI -pcfx.input.port8.gamepad.vi - -;pcfx, Port 8, Mouse: Left Button -pcfx.input.port8.mouse.left mouse 0x0 button_left - -;pcfx, Port 8, Mouse: Motion Down -pcfx.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;pcfx, Port 8, Mouse: Motion Left -pcfx.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;pcfx, Port 8, Mouse: Motion Right -pcfx.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;pcfx, Port 8, Mouse: Motion Up -pcfx.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;pcfx, Port 8, Mouse: Right Button -pcfx.input.port8.mouse.right mouse 0x0 button_right - -;Mouse sensitivity. -pcfx.mouse_sensitivity 1.25 - -;Remove 16-sprites-per-scanline hardware limit. -pcfx.nospritelimit 0 - -;Enable bilinear interpolation on the chroma channel of RAINBOW YUV output. -pcfx.rainbow.chromaip 0 - -;Sound quality. -pcfx.resamp_quality 3 - -;Output rate tolerance. -pcfx.resamp_rate_error 0.0000009 - -;Enable scanlines with specified opacity. -pcfx.scanlines 0 - -;Enable specified OpenGL shader. -pcfx.shader sabr - -;Force interlaced video to be treated as progressive. -pcfx.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -pcfx.shader.goat.hdiv 0.50 - -;Mask pattern. -pcfx.shader.goat.pat goatron - -;Enable scanlines effect. -pcfx.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -pcfx.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -pcfx.shader.goat.vdiv 0.50 - -;Last rendered scanline. -pcfx.slend 235 - -;First rendered scanline. -pcfx.slstart 4 - -;Enable specified special video scaler. -pcfx.special none - -;Stretch to fill screen. -pcfx.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -pcfx.tblur 0 - -;Accumulate color data rather than discarding it. -pcfx.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -pcfx.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -pcfx.videoip 1 - -;Full-screen horizontal resolution. -pcfx.xres 0 - -;Scaling factor for the X axis in windowed mode. -pcfx.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -pcfx.xscalefs 1.000000 - -;Full-screen vertical resolution. -pcfx.yres 0 - -;Scaling factor for the Y axis in windowed mode. -pcfx.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -pcfx.yscalefs 1.000000 - -;Enable scanlines with specified opacity. -player.scanlines 0 - -;Enable specified OpenGL shader. -player.shader none - -;Force interlaced video to be treated as progressive. -player.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -player.shader.goat.hdiv 0.50 - -;Mask pattern. -player.shader.goat.pat goatron - -;Enable scanlines effect. -player.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -player.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -player.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -player.special none - -;Stretch to fill screen. -player.stretch aspect_mult2 - -;Enable (bi)linear interpolation. -player.videoip 0 - -;Full-screen horizontal resolution. -player.xres 0 - -;Scaling factor for the X axis in windowed mode. -player.xscale 2.000000 - -;Scaling factor for the X axis in fullscreen mode. -player.xscalefs 1.000000 - -;Full-screen vertical resolution. -player.yres 0 - -;Scaling factor for the Y axis in windowed mode. -player.yscale 2.000000 - -;Scaling factor for the Y axis in fullscreen mode. -player.yscalefs 1.000000 - -;Path to the Europe SCPH-5502/v3.0E ROM BIOS -psx.bios_eu scph5502.bin - -;Path to the Japan SCPH-5500/v3.0J ROM BIOS -psx.bios_jp scph5500.bin - -;Path to the North America SCPH-5501/v3.0A ROM BIOS -psx.bios_na scph5501.bin - -;Enable BIOS ROM image sanity checks. -psx.bios_sanity 1 - -;Enable CD (image) sanity checks. -psx.cd_sanity 1 - -;Correct aspect ratio. -psx.correct_aspect 1 - -;CD image to use with .PSX/.EXE loading. -psx.dbg_exe_cdpath - -;Debug printf verbosity level. -psx.dbg_level 0 - -;Disassembly font size. -psx.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -psx.debugger.memcharenc shift_jis - -;Enable (automatic) usage of this module. -psx.enable 1 - -;Force monophonic sound output. -psx.forcemono 0 - -;Show horizontal overscan area. -psx.h_overscan 1 - -;Enable analog mode combo-button alternate toggle. -psx.input.analog_mode_ct 0 - -;Compare value for analog mode combo-button alternate toggle. -psx.input.analog_mode_ct.compare 0x0F09 - -;Emulated mouse sensitivity. -psx.input.mouse_sensitivity 1.00 - -;Input device for Virtual Port 1 -psx.input.port1 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 1. -psx.input.port1.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 1, Analog Joystick: Right stick, R-thumb -psx.input.port1.analogjoy.circle - -;psx, Virtual Port 1, Analog Joystick: Right stick, L-thumb -psx.input.port1.analogjoy.cross - -;psx, Virtual Port 1, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port1.analogjoy.down - -;psx, Virtual Port 1, Analog Joystick: Left stick, L-thumb -psx.input.port1.analogjoy.l1 - -;psx, Virtual Port 1, Analog Joystick: Left stick, Trigger -psx.input.port1.analogjoy.l2 - -;psx, Virtual Port 1, Analog Joystick: Thumbstick LEFT ← -psx.input.port1.analogjoy.left - -;psx, Virtual Port 1, Analog Joystick: Left Stick, BACK ↓ -psx.input.port1.analogjoy.lstick_down - -;psx, Virtual Port 1, Analog Joystick: Left Stick, LEFT ← -psx.input.port1.analogjoy.lstick_left - -;psx, Virtual Port 1, Analog Joystick: Left Stick, RIGHT → -psx.input.port1.analogjoy.lstick_right - -;psx, Virtual Port 1, Analog Joystick: Left Stick, FORE ↑ -psx.input.port1.analogjoy.lstick_up - -;psx, Virtual Port 1, Analog Joystick: Left stick, R-thumb -psx.input.port1.analogjoy.r1 - -;psx, Virtual Port 1, Analog Joystick: Left stick, Pinky -psx.input.port1.analogjoy.r2 - -;psx, Virtual Port 1, Analog Joystick: Thumbstick RIGHT → -psx.input.port1.analogjoy.right - -;psx, Virtual Port 1, Analog Joystick: Right Stick, BACK ↓ -psx.input.port1.analogjoy.rstick_down - -;psx, Virtual Port 1, Analog Joystick: Right Stick, LEFT ← -psx.input.port1.analogjoy.rstick_left - -;psx, Virtual Port 1, Analog Joystick: Right Stick, RIGHT → -psx.input.port1.analogjoy.rstick_right - -;psx, Virtual Port 1, Analog Joystick: Right Stick, FORE ↑ -psx.input.port1.analogjoy.rstick_up - -;psx, Virtual Port 1, Analog Joystick: SELECT -psx.input.port1.analogjoy.select - -;psx, Virtual Port 1, Analog Joystick: Right stick, Trigger -psx.input.port1.analogjoy.square - -;psx, Virtual Port 1, Analog Joystick: START -psx.input.port1.analogjoy.start - -;psx, Virtual Port 1, Analog Joystick: Right stick, Pinky -psx.input.port1.analogjoy.triangle - -;psx, Virtual Port 1, Analog Joystick: Thumbstick UP ↑ -psx.input.port1.analogjoy.up - -;psx, Virtual Port 1, Dance Pad: ○ (upper right) -psx.input.port1.dancepad.circle keyboard 0x0 97 - -;psx, Virtual Port 1, Dance Pad: x (upper left) -psx.input.port1.dancepad.cross keyboard 0x0 95 - -;psx, Virtual Port 1, Dance Pad: DOWN ↓ -psx.input.port1.dancepad.down keyboard 0x0 90 - -;psx, Virtual Port 1, Dance Pad: LEFT ← -psx.input.port1.dancepad.left keyboard 0x0 92 - -;psx, Virtual Port 1, Dance Pad: RIGHT → -psx.input.port1.dancepad.right keyboard 0x0 94 - -;psx, Virtual Port 1, Dance Pad: SELECT -psx.input.port1.dancepad.select keyboard 0x0 84 - -;psx, Virtual Port 1, Dance Pad: □ (lower right) -psx.input.port1.dancepad.square keyboard 0x0 91 - -;psx, Virtual Port 1, Dance Pad: START -psx.input.port1.dancepad.start keyboard 0x0 85 - -;psx, Virtual Port 1, Dance Pad: △ (lower left) -psx.input.port1.dancepad.triangle keyboard 0x0 89 - -;psx, Virtual Port 1, Dance Pad: UP ↑ -psx.input.port1.dancepad.up keyboard 0x0 96 - -;Analog axis scale coefficient for Dual Analog on Virtual Port 1. -psx.input.port1.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 1, Dual Analog: ○ (right) -psx.input.port1.dualanalog.circle - -;psx, Virtual Port 1, Dual Analog: x (lower) -psx.input.port1.dualanalog.cross - -;psx, Virtual Port 1, Dual Analog: D-Pad DOWN ↓ -psx.input.port1.dualanalog.down - -;psx, Virtual Port 1, Dual Analog: L1 (front left shoulder) -psx.input.port1.dualanalog.l1 - -;psx, Virtual Port 1, Dual Analog: L2 (rear left shoulder) -psx.input.port1.dualanalog.l2 - -;psx, Virtual Port 1, Dual Analog: Left Stick, Button(L3) -psx.input.port1.dualanalog.l3 - -;psx, Virtual Port 1, Dual Analog: D-Pad LEFT ← -psx.input.port1.dualanalog.left - -;psx, Virtual Port 1, Dual Analog: Left Stick DOWN ↓ -psx.input.port1.dualanalog.lstick_down - -;psx, Virtual Port 1, Dual Analog: Left Stick LEFT ← -psx.input.port1.dualanalog.lstick_left - -;psx, Virtual Port 1, Dual Analog: Left Stick RIGHT → -psx.input.port1.dualanalog.lstick_right - -;psx, Virtual Port 1, Dual Analog: Left Stick UP ↑ -psx.input.port1.dualanalog.lstick_up - -;psx, Virtual Port 1, Dual Analog: R1 (front right shoulder) -psx.input.port1.dualanalog.r1 - -;psx, Virtual Port 1, Dual Analog: R2 (rear right shoulder) -psx.input.port1.dualanalog.r2 - -;psx, Virtual Port 1, Dual Analog: Right stick, Button(R3) -psx.input.port1.dualanalog.r3 - -;psx, Virtual Port 1, Dual Analog: Rapid ○ (right) -psx.input.port1.dualanalog.rapid_circle - -;psx, Virtual Port 1, Dual Analog: Rapid x (lower) -psx.input.port1.dualanalog.rapid_cross - -;psx, Virtual Port 1, Dual Analog: Rapid □ (left) -psx.input.port1.dualanalog.rapid_square - -;psx, Virtual Port 1, Dual Analog: Rapid △ (upper) -psx.input.port1.dualanalog.rapid_triangle - -;psx, Virtual Port 1, Dual Analog: D-Pad RIGHT → -psx.input.port1.dualanalog.right - -;psx, Virtual Port 1, Dual Analog: Right Stick DOWN ↓ -psx.input.port1.dualanalog.rstick_down - -;psx, Virtual Port 1, Dual Analog: Right Stick LEFT ← -psx.input.port1.dualanalog.rstick_left - -;psx, Virtual Port 1, Dual Analog: Right Stick RIGHT → -psx.input.port1.dualanalog.rstick_right - -;psx, Virtual Port 1, Dual Analog: Right Stick UP ↑ -psx.input.port1.dualanalog.rstick_up - -;psx, Virtual Port 1, Dual Analog: SELECT -psx.input.port1.dualanalog.select - -;psx, Virtual Port 1, Dual Analog: □ (left) -psx.input.port1.dualanalog.square - -;psx, Virtual Port 1, Dual Analog: START -psx.input.port1.dualanalog.start - -;psx, Virtual Port 1, Dual Analog: △ (upper) -psx.input.port1.dualanalog.triangle - -;psx, Virtual Port 1, Dual Analog: D-Pad UP ↑ -psx.input.port1.dualanalog.up - -;psx, Virtual Port 1, DualShock: Analog(mode toggle) -psx.input.port1.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 1. -psx.input.port1.dualshock.axis_scale 1.00 - -;psx, Virtual Port 1, DualShock: ○ (right) -psx.input.port1.dualshock.circle - -;psx, Virtual Port 1, DualShock: x (lower) -psx.input.port1.dualshock.cross - -;psx, Virtual Port 1, DualShock: D-Pad DOWN ↓ -psx.input.port1.dualshock.down - -;psx, Virtual Port 1, DualShock: L1 (front left shoulder) -psx.input.port1.dualshock.l1 - -;psx, Virtual Port 1, DualShock: L2 (rear left shoulder) -psx.input.port1.dualshock.l2 - -;psx, Virtual Port 1, DualShock: Left Stick, Button(L3) -psx.input.port1.dualshock.l3 - -;psx, Virtual Port 1, DualShock: D-Pad LEFT ← -psx.input.port1.dualshock.left - -;psx, Virtual Port 1, DualShock: Left Stick DOWN ↓ -psx.input.port1.dualshock.lstick_down - -;psx, Virtual Port 1, DualShock: Left Stick LEFT ← -psx.input.port1.dualshock.lstick_left - -;psx, Virtual Port 1, DualShock: Left Stick RIGHT → -psx.input.port1.dualshock.lstick_right - -;psx, Virtual Port 1, DualShock: Left Stick UP ↑ -psx.input.port1.dualshock.lstick_up - -;psx, Virtual Port 1, DualShock: R1 (front right shoulder) -psx.input.port1.dualshock.r1 - -;psx, Virtual Port 1, DualShock: R2 (rear right shoulder) -psx.input.port1.dualshock.r2 - -;psx, Virtual Port 1, DualShock: Right stick, Button(R3) -psx.input.port1.dualshock.r3 - -;psx, Virtual Port 1, DualShock: Rapid ○ (right) -psx.input.port1.dualshock.rapid_circle - -;psx, Virtual Port 1, DualShock: Rapid x (lower) -psx.input.port1.dualshock.rapid_cross - -;psx, Virtual Port 1, DualShock: Rapid □ (left) -psx.input.port1.dualshock.rapid_square - -;psx, Virtual Port 1, DualShock: Rapid △ (upper) -psx.input.port1.dualshock.rapid_triangle - -;psx, Virtual Port 1, DualShock: D-Pad RIGHT → -psx.input.port1.dualshock.right - -;psx, Virtual Port 1, DualShock: Right Stick DOWN ↓ -psx.input.port1.dualshock.rstick_down - -;psx, Virtual Port 1, DualShock: Right Stick LEFT ← -psx.input.port1.dualshock.rstick_left - -;psx, Virtual Port 1, DualShock: Right Stick RIGHT → -psx.input.port1.dualshock.rstick_right - -;psx, Virtual Port 1, DualShock: Right Stick UP ↑ -psx.input.port1.dualshock.rstick_up - -;psx, Virtual Port 1, DualShock: SELECT -psx.input.port1.dualshock.select - -;psx, Virtual Port 1, DualShock: □ (left) -psx.input.port1.dualshock.square - -;psx, Virtual Port 1, DualShock: START -psx.input.port1.dualshock.start - -;psx, Virtual Port 1, DualShock: △ (upper) -psx.input.port1.dualshock.triangle - -;psx, Virtual Port 1, DualShock: D-Pad UP ↑ -psx.input.port1.dualshock.up - -;psx, Virtual Port 1, Digital Gamepad: ○ (right) -psx.input.port1.gamepad.circle keyboard 0x0 94 - -;psx, Virtual Port 1, Digital Gamepad: x (lower) -psx.input.port1.gamepad.cross keyboard 0x0 90 - -;psx, Virtual Port 1, Digital Gamepad: DOWN ↓ -psx.input.port1.gamepad.down keyboard 0x0 22 - -;psx, Virtual Port 1, Digital Gamepad: L1 (front left shoulder) -psx.input.port1.gamepad.l1 keyboard 0x0 89 - -;psx, Virtual Port 1, Digital Gamepad: L2 (rear left shoulder) -psx.input.port1.gamepad.l2 keyboard 0x0 95 - -;psx, Virtual Port 1, Digital Gamepad: LEFT ← -psx.input.port1.gamepad.left keyboard 0x0 4 - -;psx, Virtual Port 1, Digital Gamepad: R1 (front right shoulder) -psx.input.port1.gamepad.r1 keyboard 0x0 91 - -;psx, Virtual Port 1, Digital Gamepad: R2 (rear right shoulder) -psx.input.port1.gamepad.r2 keyboard 0x0 97 - -;psx, Virtual Port 1, Digital Gamepad: Rapid ○ (right) -psx.input.port1.gamepad.rapid_circle - -;psx, Virtual Port 1, Digital Gamepad: Rapid x (lower) -psx.input.port1.gamepad.rapid_cross - -;psx, Virtual Port 1, Digital Gamepad: Rapid □ (left) -psx.input.port1.gamepad.rapid_square - -;psx, Virtual Port 1, Digital Gamepad: Rapid △ (upper) -psx.input.port1.gamepad.rapid_triangle - -;psx, Virtual Port 1, Digital Gamepad: RIGHT → -psx.input.port1.gamepad.right keyboard 0x0 7 - -;psx, Virtual Port 1, Digital Gamepad: SELECT -psx.input.port1.gamepad.select keyboard 0x0 43 - -;psx, Virtual Port 1, Digital Gamepad: □ (left) -psx.input.port1.gamepad.square keyboard 0x0 92 - -;psx, Virtual Port 1, Digital Gamepad: START -psx.input.port1.gamepad.start keyboard 0x0 40 - -;psx, Virtual Port 1, Digital Gamepad: △ (upper) -psx.input.port1.gamepad.triangle keyboard 0x0 96 - -;psx, Virtual Port 1, Digital Gamepad: UP ↑ -psx.input.port1.gamepad.up keyboard 0x0 26 - -;Crosshairs color for lightgun on virtual port 1. -psx.input.port1.gun_chairs 0xFF0000 - -;psx, Virtual Port 1, GunCon: A -psx.input.port1.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 1, GunCon: B -psx.input.port1.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 1, GunCon: Offscreen Shot(Simulated) -psx.input.port1.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 1, GunCon: Trigger -psx.input.port1.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 1, GunCon: X Axis -psx.input.port1.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 1, GunCon: Y Axis -psx.input.port1.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 1, Konami Justifier: O -psx.input.port1.justifier.o mouse 0x0 button_right - -;psx, Virtual Port 1, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port1.justifier.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 1, Konami Justifier: Start -psx.input.port1.justifier.start mouse 0x0 button_middle - -;psx, Virtual Port 1, Konami Justifier: Trigger -psx.input.port1.justifier.trigger mouse 0x0 button_left - -;psx, Virtual Port 1, Konami Justifier: X Axis -psx.input.port1.justifier.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 1, Konami Justifier: Y Axis -psx.input.port1.justifier.y_axis mouse 0x0 cursor_y-+ - -;Emulate memory card on virtual port 1. -psx.input.port1.memcard 1 - -;psx, Virtual Port 1, Mouse: Left Button -psx.input.port1.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 1, Mouse: Motion Down -psx.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 1, Mouse: Motion Left -psx.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 1, Mouse: Motion Right -psx.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 1, Mouse: Motion Up -psx.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 1, Mouse: Right Button -psx.input.port1.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 1, neGcon: A -psx.input.port1.negcon.a - -;psx, Virtual Port 1, neGcon: B -psx.input.port1.negcon.b - -;psx, Virtual Port 1, neGcon: D-Pad DOWN ↓ -psx.input.port1.negcon.down - -;psx, Virtual Port 1, neGcon: I (Analog) -psx.input.port1.negcon.i - -;psx, Virtual Port 1, neGcon: II (Analog) -psx.input.port1.negcon.ii - -;psx, Virtual Port 1, neGcon: Left Shoulder (Analog) -psx.input.port1.negcon.l - -;psx, Virtual Port 1, neGcon: D-Pad LEFT ← -psx.input.port1.negcon.left - -;psx, Virtual Port 1, neGcon: Right Shoulder -psx.input.port1.negcon.r - -;psx, Virtual Port 1, neGcon: D-Pad RIGHT → -psx.input.port1.negcon.right - -;psx, Virtual Port 1, neGcon: START -psx.input.port1.negcon.start - -;psx, Virtual Port 1, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port1.negcon.twist_ccwise - -;psx, Virtual Port 1, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port1.negcon.twist_cwise - -;psx, Virtual Port 1, neGcon: D-Pad UP ↑ -psx.input.port1.negcon.up - -;Input device for Virtual Port 2 -psx.input.port2 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 2. -psx.input.port2.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 2, Analog Joystick: Right stick, R-thumb -psx.input.port2.analogjoy.circle - -;psx, Virtual Port 2, Analog Joystick: Right stick, L-thumb -psx.input.port2.analogjoy.cross - -;psx, Virtual Port 2, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port2.analogjoy.down - -;psx, Virtual Port 2, Analog Joystick: Left stick, L-thumb -psx.input.port2.analogjoy.l1 - -;psx, Virtual Port 2, Analog Joystick: Left stick, Trigger -psx.input.port2.analogjoy.l2 - -;psx, Virtual Port 2, Analog Joystick: Thumbstick LEFT ← -psx.input.port2.analogjoy.left - -;psx, Virtual Port 2, Analog Joystick: Left Stick, BACK ↓ -psx.input.port2.analogjoy.lstick_down - -;psx, Virtual Port 2, Analog Joystick: Left Stick, LEFT ← -psx.input.port2.analogjoy.lstick_left - -;psx, Virtual Port 2, Analog Joystick: Left Stick, RIGHT → -psx.input.port2.analogjoy.lstick_right - -;psx, Virtual Port 2, Analog Joystick: Left Stick, FORE ↑ -psx.input.port2.analogjoy.lstick_up - -;psx, Virtual Port 2, Analog Joystick: Left stick, R-thumb -psx.input.port2.analogjoy.r1 - -;psx, Virtual Port 2, Analog Joystick: Left stick, Pinky -psx.input.port2.analogjoy.r2 - -;psx, Virtual Port 2, Analog Joystick: Thumbstick RIGHT → -psx.input.port2.analogjoy.right - -;psx, Virtual Port 2, Analog Joystick: Right Stick, BACK ↓ -psx.input.port2.analogjoy.rstick_down - -;psx, Virtual Port 2, Analog Joystick: Right Stick, LEFT ← -psx.input.port2.analogjoy.rstick_left - -;psx, Virtual Port 2, Analog Joystick: Right Stick, RIGHT → -psx.input.port2.analogjoy.rstick_right - -;psx, Virtual Port 2, Analog Joystick: Right Stick, FORE ↑ -psx.input.port2.analogjoy.rstick_up - -;psx, Virtual Port 2, Analog Joystick: SELECT -psx.input.port2.analogjoy.select - -;psx, Virtual Port 2, Analog Joystick: Right stick, Trigger -psx.input.port2.analogjoy.square - -;psx, Virtual Port 2, Analog Joystick: START -psx.input.port2.analogjoy.start - -;psx, Virtual Port 2, Analog Joystick: Right stick, Pinky -psx.input.port2.analogjoy.triangle - -;psx, Virtual Port 2, Analog Joystick: Thumbstick UP ↑ -psx.input.port2.analogjoy.up - -;psx, Virtual Port 2, Dance Pad: ○ (upper right) -psx.input.port2.dancepad.circle - -;psx, Virtual Port 2, Dance Pad: x (upper left) -psx.input.port2.dancepad.cross - -;psx, Virtual Port 2, Dance Pad: DOWN ↓ -psx.input.port2.dancepad.down - -;psx, Virtual Port 2, Dance Pad: LEFT ← -psx.input.port2.dancepad.left - -;psx, Virtual Port 2, Dance Pad: RIGHT → -psx.input.port2.dancepad.right - -;psx, Virtual Port 2, Dance Pad: SELECT -psx.input.port2.dancepad.select - -;psx, Virtual Port 2, Dance Pad: □ (lower right) -psx.input.port2.dancepad.square - -;psx, Virtual Port 2, Dance Pad: START -psx.input.port2.dancepad.start - -;psx, Virtual Port 2, Dance Pad: △ (lower left) -psx.input.port2.dancepad.triangle - -;psx, Virtual Port 2, Dance Pad: UP ↑ -psx.input.port2.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 2. -psx.input.port2.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 2, Dual Analog: ○ (right) -psx.input.port2.dualanalog.circle - -;psx, Virtual Port 2, Dual Analog: x (lower) -psx.input.port2.dualanalog.cross - -;psx, Virtual Port 2, Dual Analog: D-Pad DOWN ↓ -psx.input.port2.dualanalog.down - -;psx, Virtual Port 2, Dual Analog: L1 (front left shoulder) -psx.input.port2.dualanalog.l1 - -;psx, Virtual Port 2, Dual Analog: L2 (rear left shoulder) -psx.input.port2.dualanalog.l2 - -;psx, Virtual Port 2, Dual Analog: Left Stick, Button(L3) -psx.input.port2.dualanalog.l3 - -;psx, Virtual Port 2, Dual Analog: D-Pad LEFT ← -psx.input.port2.dualanalog.left - -;psx, Virtual Port 2, Dual Analog: Left Stick DOWN ↓ -psx.input.port2.dualanalog.lstick_down - -;psx, Virtual Port 2, Dual Analog: Left Stick LEFT ← -psx.input.port2.dualanalog.lstick_left - -;psx, Virtual Port 2, Dual Analog: Left Stick RIGHT → -psx.input.port2.dualanalog.lstick_right - -;psx, Virtual Port 2, Dual Analog: Left Stick UP ↑ -psx.input.port2.dualanalog.lstick_up - -;psx, Virtual Port 2, Dual Analog: R1 (front right shoulder) -psx.input.port2.dualanalog.r1 - -;psx, Virtual Port 2, Dual Analog: R2 (rear right shoulder) -psx.input.port2.dualanalog.r2 - -;psx, Virtual Port 2, Dual Analog: Right stick, Button(R3) -psx.input.port2.dualanalog.r3 - -;psx, Virtual Port 2, Dual Analog: Rapid ○ (right) -psx.input.port2.dualanalog.rapid_circle - -;psx, Virtual Port 2, Dual Analog: Rapid x (lower) -psx.input.port2.dualanalog.rapid_cross - -;psx, Virtual Port 2, Dual Analog: Rapid □ (left) -psx.input.port2.dualanalog.rapid_square - -;psx, Virtual Port 2, Dual Analog: Rapid △ (upper) -psx.input.port2.dualanalog.rapid_triangle - -;psx, Virtual Port 2, Dual Analog: D-Pad RIGHT → -psx.input.port2.dualanalog.right - -;psx, Virtual Port 2, Dual Analog: Right Stick DOWN ↓ -psx.input.port2.dualanalog.rstick_down - -;psx, Virtual Port 2, Dual Analog: Right Stick LEFT ← -psx.input.port2.dualanalog.rstick_left - -;psx, Virtual Port 2, Dual Analog: Right Stick RIGHT → -psx.input.port2.dualanalog.rstick_right - -;psx, Virtual Port 2, Dual Analog: Right Stick UP ↑ -psx.input.port2.dualanalog.rstick_up - -;psx, Virtual Port 2, Dual Analog: SELECT -psx.input.port2.dualanalog.select - -;psx, Virtual Port 2, Dual Analog: □ (left) -psx.input.port2.dualanalog.square - -;psx, Virtual Port 2, Dual Analog: START -psx.input.port2.dualanalog.start - -;psx, Virtual Port 2, Dual Analog: △ (upper) -psx.input.port2.dualanalog.triangle - -;psx, Virtual Port 2, Dual Analog: D-Pad UP ↑ -psx.input.port2.dualanalog.up - -;psx, Virtual Port 2, DualShock: Analog(mode toggle) -psx.input.port2.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 2. -psx.input.port2.dualshock.axis_scale 1.00 - -;psx, Virtual Port 2, DualShock: ○ (right) -psx.input.port2.dualshock.circle - -;psx, Virtual Port 2, DualShock: x (lower) -psx.input.port2.dualshock.cross - -;psx, Virtual Port 2, DualShock: D-Pad DOWN ↓ -psx.input.port2.dualshock.down - -;psx, Virtual Port 2, DualShock: L1 (front left shoulder) -psx.input.port2.dualshock.l1 - -;psx, Virtual Port 2, DualShock: L2 (rear left shoulder) -psx.input.port2.dualshock.l2 - -;psx, Virtual Port 2, DualShock: Left Stick, Button(L3) -psx.input.port2.dualshock.l3 - -;psx, Virtual Port 2, DualShock: D-Pad LEFT ← -psx.input.port2.dualshock.left - -;psx, Virtual Port 2, DualShock: Left Stick DOWN ↓ -psx.input.port2.dualshock.lstick_down - -;psx, Virtual Port 2, DualShock: Left Stick LEFT ← -psx.input.port2.dualshock.lstick_left - -;psx, Virtual Port 2, DualShock: Left Stick RIGHT → -psx.input.port2.dualshock.lstick_right - -;psx, Virtual Port 2, DualShock: Left Stick UP ↑ -psx.input.port2.dualshock.lstick_up - -;psx, Virtual Port 2, DualShock: R1 (front right shoulder) -psx.input.port2.dualshock.r1 - -;psx, Virtual Port 2, DualShock: R2 (rear right shoulder) -psx.input.port2.dualshock.r2 - -;psx, Virtual Port 2, DualShock: Right stick, Button(R3) -psx.input.port2.dualshock.r3 - -;psx, Virtual Port 2, DualShock: Rapid ○ (right) -psx.input.port2.dualshock.rapid_circle - -;psx, Virtual Port 2, DualShock: Rapid x (lower) -psx.input.port2.dualshock.rapid_cross - -;psx, Virtual Port 2, DualShock: Rapid □ (left) -psx.input.port2.dualshock.rapid_square - -;psx, Virtual Port 2, DualShock: Rapid △ (upper) -psx.input.port2.dualshock.rapid_triangle - -;psx, Virtual Port 2, DualShock: D-Pad RIGHT → -psx.input.port2.dualshock.right - -;psx, Virtual Port 2, DualShock: Right Stick DOWN ↓ -psx.input.port2.dualshock.rstick_down - -;psx, Virtual Port 2, DualShock: Right Stick LEFT ← -psx.input.port2.dualshock.rstick_left - -;psx, Virtual Port 2, DualShock: Right Stick RIGHT → -psx.input.port2.dualshock.rstick_right - -;psx, Virtual Port 2, DualShock: Right Stick UP ↑ -psx.input.port2.dualshock.rstick_up - -;psx, Virtual Port 2, DualShock: SELECT -psx.input.port2.dualshock.select - -;psx, Virtual Port 2, DualShock: □ (left) -psx.input.port2.dualshock.square - -;psx, Virtual Port 2, DualShock: START -psx.input.port2.dualshock.start - -;psx, Virtual Port 2, DualShock: △ (upper) -psx.input.port2.dualshock.triangle - -;psx, Virtual Port 2, DualShock: D-Pad UP ↑ -psx.input.port2.dualshock.up - -;psx, Virtual Port 2, Digital Gamepad: ○ (right) -psx.input.port2.gamepad.circle - -;psx, Virtual Port 2, Digital Gamepad: x (lower) -psx.input.port2.gamepad.cross - -;psx, Virtual Port 2, Digital Gamepad: DOWN ↓ -psx.input.port2.gamepad.down - -;psx, Virtual Port 2, Digital Gamepad: L1 (front left shoulder) -psx.input.port2.gamepad.l1 - -;psx, Virtual Port 2, Digital Gamepad: L2 (rear left shoulder) -psx.input.port2.gamepad.l2 - -;psx, Virtual Port 2, Digital Gamepad: LEFT ← -psx.input.port2.gamepad.left - -;psx, Virtual Port 2, Digital Gamepad: R1 (front right shoulder) -psx.input.port2.gamepad.r1 - -;psx, Virtual Port 2, Digital Gamepad: R2 (rear right shoulder) -psx.input.port2.gamepad.r2 - -;psx, Virtual Port 2, Digital Gamepad: Rapid ○ (right) -psx.input.port2.gamepad.rapid_circle - -;psx, Virtual Port 2, Digital Gamepad: Rapid x (lower) -psx.input.port2.gamepad.rapid_cross - -;psx, Virtual Port 2, Digital Gamepad: Rapid □ (left) -psx.input.port2.gamepad.rapid_square - -;psx, Virtual Port 2, Digital Gamepad: Rapid △ (upper) -psx.input.port2.gamepad.rapid_triangle - -;psx, Virtual Port 2, Digital Gamepad: RIGHT → -psx.input.port2.gamepad.right - -;psx, Virtual Port 2, Digital Gamepad: SELECT -psx.input.port2.gamepad.select - -;psx, Virtual Port 2, Digital Gamepad: □ (left) -psx.input.port2.gamepad.square - -;psx, Virtual Port 2, Digital Gamepad: START -psx.input.port2.gamepad.start - -;psx, Virtual Port 2, Digital Gamepad: △ (upper) -psx.input.port2.gamepad.triangle - -;psx, Virtual Port 2, Digital Gamepad: UP ↑ -psx.input.port2.gamepad.up - -;Crosshairs color for lightgun on virtual port 2. -psx.input.port2.gun_chairs 0x00FF00 - -;psx, Virtual Port 2, GunCon: A -psx.input.port2.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 2, GunCon: B -psx.input.port2.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 2, GunCon: Offscreen Shot(Simulated) -psx.input.port2.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 2, GunCon: Trigger -psx.input.port2.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 2, GunCon: X Axis -psx.input.port2.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 2, GunCon: Y Axis -psx.input.port2.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 2, Konami Justifier: O -psx.input.port2.justifier.o mouse 0x0 button_right - -;psx, Virtual Port 2, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port2.justifier.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 2, Konami Justifier: Start -psx.input.port2.justifier.start mouse 0x0 button_middle - -;psx, Virtual Port 2, Konami Justifier: Trigger -psx.input.port2.justifier.trigger mouse 0x0 button_left - -;psx, Virtual Port 2, Konami Justifier: X Axis -psx.input.port2.justifier.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 2, Konami Justifier: Y Axis -psx.input.port2.justifier.y_axis mouse 0x0 cursor_y-+ - -;Emulate memory card on virtual port 2. -psx.input.port2.memcard 1 - -;psx, Virtual Port 2, Mouse: Left Button -psx.input.port2.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 2, Mouse: Motion Down -psx.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 2, Mouse: Motion Left -psx.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 2, Mouse: Motion Right -psx.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 2, Mouse: Motion Up -psx.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 2, Mouse: Right Button -psx.input.port2.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 2, neGcon: A -psx.input.port2.negcon.a - -;psx, Virtual Port 2, neGcon: B -psx.input.port2.negcon.b - -;psx, Virtual Port 2, neGcon: D-Pad DOWN ↓ -psx.input.port2.negcon.down - -;psx, Virtual Port 2, neGcon: I (Analog) -psx.input.port2.negcon.i - -;psx, Virtual Port 2, neGcon: II (Analog) -psx.input.port2.negcon.ii - -;psx, Virtual Port 2, neGcon: Left Shoulder (Analog) -psx.input.port2.negcon.l - -;psx, Virtual Port 2, neGcon: D-Pad LEFT ← -psx.input.port2.negcon.left - -;psx, Virtual Port 2, neGcon: Right Shoulder -psx.input.port2.negcon.r - -;psx, Virtual Port 2, neGcon: D-Pad RIGHT → -psx.input.port2.negcon.right - -;psx, Virtual Port 2, neGcon: START -psx.input.port2.negcon.start - -;psx, Virtual Port 2, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port2.negcon.twist_ccwise - -;psx, Virtual Port 2, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port2.negcon.twist_cwise - -;psx, Virtual Port 2, neGcon: D-Pad UP ↑ -psx.input.port2.negcon.up - -;Input device for Virtual Port 3 -psx.input.port3 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 3. -psx.input.port3.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 3, Analog Joystick: Right stick, R-thumb -psx.input.port3.analogjoy.circle - -;psx, Virtual Port 3, Analog Joystick: Right stick, L-thumb -psx.input.port3.analogjoy.cross - -;psx, Virtual Port 3, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port3.analogjoy.down - -;psx, Virtual Port 3, Analog Joystick: Left stick, L-thumb -psx.input.port3.analogjoy.l1 - -;psx, Virtual Port 3, Analog Joystick: Left stick, Trigger -psx.input.port3.analogjoy.l2 - -;psx, Virtual Port 3, Analog Joystick: Thumbstick LEFT ← -psx.input.port3.analogjoy.left - -;psx, Virtual Port 3, Analog Joystick: Left Stick, BACK ↓ -psx.input.port3.analogjoy.lstick_down - -;psx, Virtual Port 3, Analog Joystick: Left Stick, LEFT ← -psx.input.port3.analogjoy.lstick_left - -;psx, Virtual Port 3, Analog Joystick: Left Stick, RIGHT → -psx.input.port3.analogjoy.lstick_right - -;psx, Virtual Port 3, Analog Joystick: Left Stick, FORE ↑ -psx.input.port3.analogjoy.lstick_up - -;psx, Virtual Port 3, Analog Joystick: Left stick, R-thumb -psx.input.port3.analogjoy.r1 - -;psx, Virtual Port 3, Analog Joystick: Left stick, Pinky -psx.input.port3.analogjoy.r2 - -;psx, Virtual Port 3, Analog Joystick: Thumbstick RIGHT → -psx.input.port3.analogjoy.right - -;psx, Virtual Port 3, Analog Joystick: Right Stick, BACK ↓ -psx.input.port3.analogjoy.rstick_down - -;psx, Virtual Port 3, Analog Joystick: Right Stick, LEFT ← -psx.input.port3.analogjoy.rstick_left - -;psx, Virtual Port 3, Analog Joystick: Right Stick, RIGHT → -psx.input.port3.analogjoy.rstick_right - -;psx, Virtual Port 3, Analog Joystick: Right Stick, FORE ↑ -psx.input.port3.analogjoy.rstick_up - -;psx, Virtual Port 3, Analog Joystick: SELECT -psx.input.port3.analogjoy.select - -;psx, Virtual Port 3, Analog Joystick: Right stick, Trigger -psx.input.port3.analogjoy.square - -;psx, Virtual Port 3, Analog Joystick: START -psx.input.port3.analogjoy.start - -;psx, Virtual Port 3, Analog Joystick: Right stick, Pinky -psx.input.port3.analogjoy.triangle - -;psx, Virtual Port 3, Analog Joystick: Thumbstick UP ↑ -psx.input.port3.analogjoy.up - -;psx, Virtual Port 3, Dance Pad: ○ (upper right) -psx.input.port3.dancepad.circle - -;psx, Virtual Port 3, Dance Pad: x (upper left) -psx.input.port3.dancepad.cross - -;psx, Virtual Port 3, Dance Pad: DOWN ↓ -psx.input.port3.dancepad.down - -;psx, Virtual Port 3, Dance Pad: LEFT ← -psx.input.port3.dancepad.left - -;psx, Virtual Port 3, Dance Pad: RIGHT → -psx.input.port3.dancepad.right - -;psx, Virtual Port 3, Dance Pad: SELECT -psx.input.port3.dancepad.select - -;psx, Virtual Port 3, Dance Pad: □ (lower right) -psx.input.port3.dancepad.square - -;psx, Virtual Port 3, Dance Pad: START -psx.input.port3.dancepad.start - -;psx, Virtual Port 3, Dance Pad: △ (lower left) -psx.input.port3.dancepad.triangle - -;psx, Virtual Port 3, Dance Pad: UP ↑ -psx.input.port3.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 3. -psx.input.port3.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 3, Dual Analog: ○ (right) -psx.input.port3.dualanalog.circle - -;psx, Virtual Port 3, Dual Analog: x (lower) -psx.input.port3.dualanalog.cross - -;psx, Virtual Port 3, Dual Analog: D-Pad DOWN ↓ -psx.input.port3.dualanalog.down - -;psx, Virtual Port 3, Dual Analog: L1 (front left shoulder) -psx.input.port3.dualanalog.l1 - -;psx, Virtual Port 3, Dual Analog: L2 (rear left shoulder) -psx.input.port3.dualanalog.l2 - -;psx, Virtual Port 3, Dual Analog: Left Stick, Button(L3) -psx.input.port3.dualanalog.l3 - -;psx, Virtual Port 3, Dual Analog: D-Pad LEFT ← -psx.input.port3.dualanalog.left - -;psx, Virtual Port 3, Dual Analog: Left Stick DOWN ↓ -psx.input.port3.dualanalog.lstick_down - -;psx, Virtual Port 3, Dual Analog: Left Stick LEFT ← -psx.input.port3.dualanalog.lstick_left - -;psx, Virtual Port 3, Dual Analog: Left Stick RIGHT → -psx.input.port3.dualanalog.lstick_right - -;psx, Virtual Port 3, Dual Analog: Left Stick UP ↑ -psx.input.port3.dualanalog.lstick_up - -;psx, Virtual Port 3, Dual Analog: R1 (front right shoulder) -psx.input.port3.dualanalog.r1 - -;psx, Virtual Port 3, Dual Analog: R2 (rear right shoulder) -psx.input.port3.dualanalog.r2 - -;psx, Virtual Port 3, Dual Analog: Right stick, Button(R3) -psx.input.port3.dualanalog.r3 - -;psx, Virtual Port 3, Dual Analog: Rapid ○ (right) -psx.input.port3.dualanalog.rapid_circle - -;psx, Virtual Port 3, Dual Analog: Rapid x (lower) -psx.input.port3.dualanalog.rapid_cross - -;psx, Virtual Port 3, Dual Analog: Rapid □ (left) -psx.input.port3.dualanalog.rapid_square - -;psx, Virtual Port 3, Dual Analog: Rapid △ (upper) -psx.input.port3.dualanalog.rapid_triangle - -;psx, Virtual Port 3, Dual Analog: D-Pad RIGHT → -psx.input.port3.dualanalog.right - -;psx, Virtual Port 3, Dual Analog: Right Stick DOWN ↓ -psx.input.port3.dualanalog.rstick_down - -;psx, Virtual Port 3, Dual Analog: Right Stick LEFT ← -psx.input.port3.dualanalog.rstick_left - -;psx, Virtual Port 3, Dual Analog: Right Stick RIGHT → -psx.input.port3.dualanalog.rstick_right - -;psx, Virtual Port 3, Dual Analog: Right Stick UP ↑ -psx.input.port3.dualanalog.rstick_up - -;psx, Virtual Port 3, Dual Analog: SELECT -psx.input.port3.dualanalog.select - -;psx, Virtual Port 3, Dual Analog: □ (left) -psx.input.port3.dualanalog.square - -;psx, Virtual Port 3, Dual Analog: START -psx.input.port3.dualanalog.start - -;psx, Virtual Port 3, Dual Analog: △ (upper) -psx.input.port3.dualanalog.triangle - -;psx, Virtual Port 3, Dual Analog: D-Pad UP ↑ -psx.input.port3.dualanalog.up - -;psx, Virtual Port 3, DualShock: Analog(mode toggle) -psx.input.port3.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 3. -psx.input.port3.dualshock.axis_scale 1.00 - -;psx, Virtual Port 3, DualShock: ○ (right) -psx.input.port3.dualshock.circle - -;psx, Virtual Port 3, DualShock: x (lower) -psx.input.port3.dualshock.cross - -;psx, Virtual Port 3, DualShock: D-Pad DOWN ↓ -psx.input.port3.dualshock.down - -;psx, Virtual Port 3, DualShock: L1 (front left shoulder) -psx.input.port3.dualshock.l1 - -;psx, Virtual Port 3, DualShock: L2 (rear left shoulder) -psx.input.port3.dualshock.l2 - -;psx, Virtual Port 3, DualShock: Left Stick, Button(L3) -psx.input.port3.dualshock.l3 - -;psx, Virtual Port 3, DualShock: D-Pad LEFT ← -psx.input.port3.dualshock.left - -;psx, Virtual Port 3, DualShock: Left Stick DOWN ↓ -psx.input.port3.dualshock.lstick_down - -;psx, Virtual Port 3, DualShock: Left Stick LEFT ← -psx.input.port3.dualshock.lstick_left - -;psx, Virtual Port 3, DualShock: Left Stick RIGHT → -psx.input.port3.dualshock.lstick_right - -;psx, Virtual Port 3, DualShock: Left Stick UP ↑ -psx.input.port3.dualshock.lstick_up - -;psx, Virtual Port 3, DualShock: R1 (front right shoulder) -psx.input.port3.dualshock.r1 - -;psx, Virtual Port 3, DualShock: R2 (rear right shoulder) -psx.input.port3.dualshock.r2 - -;psx, Virtual Port 3, DualShock: Right stick, Button(R3) -psx.input.port3.dualshock.r3 - -;psx, Virtual Port 3, DualShock: Rapid ○ (right) -psx.input.port3.dualshock.rapid_circle - -;psx, Virtual Port 3, DualShock: Rapid x (lower) -psx.input.port3.dualshock.rapid_cross - -;psx, Virtual Port 3, DualShock: Rapid □ (left) -psx.input.port3.dualshock.rapid_square - -;psx, Virtual Port 3, DualShock: Rapid △ (upper) -psx.input.port3.dualshock.rapid_triangle - -;psx, Virtual Port 3, DualShock: D-Pad RIGHT → -psx.input.port3.dualshock.right - -;psx, Virtual Port 3, DualShock: Right Stick DOWN ↓ -psx.input.port3.dualshock.rstick_down - -;psx, Virtual Port 3, DualShock: Right Stick LEFT ← -psx.input.port3.dualshock.rstick_left - -;psx, Virtual Port 3, DualShock: Right Stick RIGHT → -psx.input.port3.dualshock.rstick_right - -;psx, Virtual Port 3, DualShock: Right Stick UP ↑ -psx.input.port3.dualshock.rstick_up - -;psx, Virtual Port 3, DualShock: SELECT -psx.input.port3.dualshock.select - -;psx, Virtual Port 3, DualShock: □ (left) -psx.input.port3.dualshock.square - -;psx, Virtual Port 3, DualShock: START -psx.input.port3.dualshock.start - -;psx, Virtual Port 3, DualShock: △ (upper) -psx.input.port3.dualshock.triangle - -;psx, Virtual Port 3, DualShock: D-Pad UP ↑ -psx.input.port3.dualshock.up - -;psx, Virtual Port 3, Digital Gamepad: ○ (right) -psx.input.port3.gamepad.circle - -;psx, Virtual Port 3, Digital Gamepad: x (lower) -psx.input.port3.gamepad.cross - -;psx, Virtual Port 3, Digital Gamepad: DOWN ↓ -psx.input.port3.gamepad.down - -;psx, Virtual Port 3, Digital Gamepad: L1 (front left shoulder) -psx.input.port3.gamepad.l1 - -;psx, Virtual Port 3, Digital Gamepad: L2 (rear left shoulder) -psx.input.port3.gamepad.l2 - -;psx, Virtual Port 3, Digital Gamepad: LEFT ← -psx.input.port3.gamepad.left - -;psx, Virtual Port 3, Digital Gamepad: R1 (front right shoulder) -psx.input.port3.gamepad.r1 - -;psx, Virtual Port 3, Digital Gamepad: R2 (rear right shoulder) -psx.input.port3.gamepad.r2 - -;psx, Virtual Port 3, Digital Gamepad: Rapid ○ (right) -psx.input.port3.gamepad.rapid_circle - -;psx, Virtual Port 3, Digital Gamepad: Rapid x (lower) -psx.input.port3.gamepad.rapid_cross - -;psx, Virtual Port 3, Digital Gamepad: Rapid □ (left) -psx.input.port3.gamepad.rapid_square - -;psx, Virtual Port 3, Digital Gamepad: Rapid △ (upper) -psx.input.port3.gamepad.rapid_triangle - -;psx, Virtual Port 3, Digital Gamepad: RIGHT → -psx.input.port3.gamepad.right - -;psx, Virtual Port 3, Digital Gamepad: SELECT -psx.input.port3.gamepad.select - -;psx, Virtual Port 3, Digital Gamepad: □ (left) -psx.input.port3.gamepad.square - -;psx, Virtual Port 3, Digital Gamepad: START -psx.input.port3.gamepad.start - -;psx, Virtual Port 3, Digital Gamepad: △ (upper) -psx.input.port3.gamepad.triangle - -;psx, Virtual Port 3, Digital Gamepad: UP ↑ -psx.input.port3.gamepad.up - -;Crosshairs color for lightgun on virtual port 3. -psx.input.port3.gun_chairs 0xFF00FF - -;psx, Virtual Port 3, GunCon: A -psx.input.port3.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 3, GunCon: B -psx.input.port3.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 3, GunCon: Offscreen Shot(Simulated) -psx.input.port3.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 3, GunCon: Trigger -psx.input.port3.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 3, GunCon: X Axis -psx.input.port3.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 3, GunCon: Y Axis -psx.input.port3.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 3, Konami Justifier: O -psx.input.port3.justifier.o - -;psx, Virtual Port 3, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port3.justifier.offscreen_shot - -;psx, Virtual Port 3, Konami Justifier: Start -psx.input.port3.justifier.start - -;psx, Virtual Port 3, Konami Justifier: Trigger -psx.input.port3.justifier.trigger - -;psx, Virtual Port 3, Konami Justifier: X Axis -psx.input.port3.justifier.x_axis - -;psx, Virtual Port 3, Konami Justifier: Y Axis -psx.input.port3.justifier.y_axis - -;Emulate memory card on virtual port 3. -psx.input.port3.memcard 1 - -;psx, Virtual Port 3, Mouse: Left Button -psx.input.port3.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 3, Mouse: Motion Down -psx.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 3, Mouse: Motion Left -psx.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 3, Mouse: Motion Right -psx.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 3, Mouse: Motion Up -psx.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 3, Mouse: Right Button -psx.input.port3.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 3, neGcon: A -psx.input.port3.negcon.a - -;psx, Virtual Port 3, neGcon: B -psx.input.port3.negcon.b - -;psx, Virtual Port 3, neGcon: D-Pad DOWN ↓ -psx.input.port3.negcon.down - -;psx, Virtual Port 3, neGcon: I (Analog) -psx.input.port3.negcon.i - -;psx, Virtual Port 3, neGcon: II (Analog) -psx.input.port3.negcon.ii - -;psx, Virtual Port 3, neGcon: Left Shoulder (Analog) -psx.input.port3.negcon.l - -;psx, Virtual Port 3, neGcon: D-Pad LEFT ← -psx.input.port3.negcon.left - -;psx, Virtual Port 3, neGcon: Right Shoulder -psx.input.port3.negcon.r - -;psx, Virtual Port 3, neGcon: D-Pad RIGHT → -psx.input.port3.negcon.right - -;psx, Virtual Port 3, neGcon: START -psx.input.port3.negcon.start - -;psx, Virtual Port 3, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port3.negcon.twist_ccwise - -;psx, Virtual Port 3, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port3.negcon.twist_cwise - -;psx, Virtual Port 3, neGcon: D-Pad UP ↑ -psx.input.port3.negcon.up - -;Input device for Virtual Port 4 -psx.input.port4 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 4. -psx.input.port4.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 4, Analog Joystick: Right stick, R-thumb -psx.input.port4.analogjoy.circle - -;psx, Virtual Port 4, Analog Joystick: Right stick, L-thumb -psx.input.port4.analogjoy.cross - -;psx, Virtual Port 4, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port4.analogjoy.down - -;psx, Virtual Port 4, Analog Joystick: Left stick, L-thumb -psx.input.port4.analogjoy.l1 - -;psx, Virtual Port 4, Analog Joystick: Left stick, Trigger -psx.input.port4.analogjoy.l2 - -;psx, Virtual Port 4, Analog Joystick: Thumbstick LEFT ← -psx.input.port4.analogjoy.left - -;psx, Virtual Port 4, Analog Joystick: Left Stick, BACK ↓ -psx.input.port4.analogjoy.lstick_down - -;psx, Virtual Port 4, Analog Joystick: Left Stick, LEFT ← -psx.input.port4.analogjoy.lstick_left - -;psx, Virtual Port 4, Analog Joystick: Left Stick, RIGHT → -psx.input.port4.analogjoy.lstick_right - -;psx, Virtual Port 4, Analog Joystick: Left Stick, FORE ↑ -psx.input.port4.analogjoy.lstick_up - -;psx, Virtual Port 4, Analog Joystick: Left stick, R-thumb -psx.input.port4.analogjoy.r1 - -;psx, Virtual Port 4, Analog Joystick: Left stick, Pinky -psx.input.port4.analogjoy.r2 - -;psx, Virtual Port 4, Analog Joystick: Thumbstick RIGHT → -psx.input.port4.analogjoy.right - -;psx, Virtual Port 4, Analog Joystick: Right Stick, BACK ↓ -psx.input.port4.analogjoy.rstick_down - -;psx, Virtual Port 4, Analog Joystick: Right Stick, LEFT ← -psx.input.port4.analogjoy.rstick_left - -;psx, Virtual Port 4, Analog Joystick: Right Stick, RIGHT → -psx.input.port4.analogjoy.rstick_right - -;psx, Virtual Port 4, Analog Joystick: Right Stick, FORE ↑ -psx.input.port4.analogjoy.rstick_up - -;psx, Virtual Port 4, Analog Joystick: SELECT -psx.input.port4.analogjoy.select - -;psx, Virtual Port 4, Analog Joystick: Right stick, Trigger -psx.input.port4.analogjoy.square - -;psx, Virtual Port 4, Analog Joystick: START -psx.input.port4.analogjoy.start - -;psx, Virtual Port 4, Analog Joystick: Right stick, Pinky -psx.input.port4.analogjoy.triangle - -;psx, Virtual Port 4, Analog Joystick: Thumbstick UP ↑ -psx.input.port4.analogjoy.up - -;psx, Virtual Port 4, Dance Pad: ○ (upper right) -psx.input.port4.dancepad.circle - -;psx, Virtual Port 4, Dance Pad: x (upper left) -psx.input.port4.dancepad.cross - -;psx, Virtual Port 4, Dance Pad: DOWN ↓ -psx.input.port4.dancepad.down - -;psx, Virtual Port 4, Dance Pad: LEFT ← -psx.input.port4.dancepad.left - -;psx, Virtual Port 4, Dance Pad: RIGHT → -psx.input.port4.dancepad.right - -;psx, Virtual Port 4, Dance Pad: SELECT -psx.input.port4.dancepad.select - -;psx, Virtual Port 4, Dance Pad: □ (lower right) -psx.input.port4.dancepad.square - -;psx, Virtual Port 4, Dance Pad: START -psx.input.port4.dancepad.start - -;psx, Virtual Port 4, Dance Pad: △ (lower left) -psx.input.port4.dancepad.triangle - -;psx, Virtual Port 4, Dance Pad: UP ↑ -psx.input.port4.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 4. -psx.input.port4.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 4, Dual Analog: ○ (right) -psx.input.port4.dualanalog.circle - -;psx, Virtual Port 4, Dual Analog: x (lower) -psx.input.port4.dualanalog.cross - -;psx, Virtual Port 4, Dual Analog: D-Pad DOWN ↓ -psx.input.port4.dualanalog.down - -;psx, Virtual Port 4, Dual Analog: L1 (front left shoulder) -psx.input.port4.dualanalog.l1 - -;psx, Virtual Port 4, Dual Analog: L2 (rear left shoulder) -psx.input.port4.dualanalog.l2 - -;psx, Virtual Port 4, Dual Analog: Left Stick, Button(L3) -psx.input.port4.dualanalog.l3 - -;psx, Virtual Port 4, Dual Analog: D-Pad LEFT ← -psx.input.port4.dualanalog.left - -;psx, Virtual Port 4, Dual Analog: Left Stick DOWN ↓ -psx.input.port4.dualanalog.lstick_down - -;psx, Virtual Port 4, Dual Analog: Left Stick LEFT ← -psx.input.port4.dualanalog.lstick_left - -;psx, Virtual Port 4, Dual Analog: Left Stick RIGHT → -psx.input.port4.dualanalog.lstick_right - -;psx, Virtual Port 4, Dual Analog: Left Stick UP ↑ -psx.input.port4.dualanalog.lstick_up - -;psx, Virtual Port 4, Dual Analog: R1 (front right shoulder) -psx.input.port4.dualanalog.r1 - -;psx, Virtual Port 4, Dual Analog: R2 (rear right shoulder) -psx.input.port4.dualanalog.r2 - -;psx, Virtual Port 4, Dual Analog: Right stick, Button(R3) -psx.input.port4.dualanalog.r3 - -;psx, Virtual Port 4, Dual Analog: Rapid ○ (right) -psx.input.port4.dualanalog.rapid_circle - -;psx, Virtual Port 4, Dual Analog: Rapid x (lower) -psx.input.port4.dualanalog.rapid_cross - -;psx, Virtual Port 4, Dual Analog: Rapid □ (left) -psx.input.port4.dualanalog.rapid_square - -;psx, Virtual Port 4, Dual Analog: Rapid △ (upper) -psx.input.port4.dualanalog.rapid_triangle - -;psx, Virtual Port 4, Dual Analog: D-Pad RIGHT → -psx.input.port4.dualanalog.right - -;psx, Virtual Port 4, Dual Analog: Right Stick DOWN ↓ -psx.input.port4.dualanalog.rstick_down - -;psx, Virtual Port 4, Dual Analog: Right Stick LEFT ← -psx.input.port4.dualanalog.rstick_left - -;psx, Virtual Port 4, Dual Analog: Right Stick RIGHT → -psx.input.port4.dualanalog.rstick_right - -;psx, Virtual Port 4, Dual Analog: Right Stick UP ↑ -psx.input.port4.dualanalog.rstick_up - -;psx, Virtual Port 4, Dual Analog: SELECT -psx.input.port4.dualanalog.select - -;psx, Virtual Port 4, Dual Analog: □ (left) -psx.input.port4.dualanalog.square - -;psx, Virtual Port 4, Dual Analog: START -psx.input.port4.dualanalog.start - -;psx, Virtual Port 4, Dual Analog: △ (upper) -psx.input.port4.dualanalog.triangle - -;psx, Virtual Port 4, Dual Analog: D-Pad UP ↑ -psx.input.port4.dualanalog.up - -;psx, Virtual Port 4, DualShock: Analog(mode toggle) -psx.input.port4.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 4. -psx.input.port4.dualshock.axis_scale 1.00 - -;psx, Virtual Port 4, DualShock: ○ (right) -psx.input.port4.dualshock.circle - -;psx, Virtual Port 4, DualShock: x (lower) -psx.input.port4.dualshock.cross - -;psx, Virtual Port 4, DualShock: D-Pad DOWN ↓ -psx.input.port4.dualshock.down - -;psx, Virtual Port 4, DualShock: L1 (front left shoulder) -psx.input.port4.dualshock.l1 - -;psx, Virtual Port 4, DualShock: L2 (rear left shoulder) -psx.input.port4.dualshock.l2 - -;psx, Virtual Port 4, DualShock: Left Stick, Button(L3) -psx.input.port4.dualshock.l3 - -;psx, Virtual Port 4, DualShock: D-Pad LEFT ← -psx.input.port4.dualshock.left - -;psx, Virtual Port 4, DualShock: Left Stick DOWN ↓ -psx.input.port4.dualshock.lstick_down - -;psx, Virtual Port 4, DualShock: Left Stick LEFT ← -psx.input.port4.dualshock.lstick_left - -;psx, Virtual Port 4, DualShock: Left Stick RIGHT → -psx.input.port4.dualshock.lstick_right - -;psx, Virtual Port 4, DualShock: Left Stick UP ↑ -psx.input.port4.dualshock.lstick_up - -;psx, Virtual Port 4, DualShock: R1 (front right shoulder) -psx.input.port4.dualshock.r1 - -;psx, Virtual Port 4, DualShock: R2 (rear right shoulder) -psx.input.port4.dualshock.r2 - -;psx, Virtual Port 4, DualShock: Right stick, Button(R3) -psx.input.port4.dualshock.r3 - -;psx, Virtual Port 4, DualShock: Rapid ○ (right) -psx.input.port4.dualshock.rapid_circle - -;psx, Virtual Port 4, DualShock: Rapid x (lower) -psx.input.port4.dualshock.rapid_cross - -;psx, Virtual Port 4, DualShock: Rapid □ (left) -psx.input.port4.dualshock.rapid_square - -;psx, Virtual Port 4, DualShock: Rapid △ (upper) -psx.input.port4.dualshock.rapid_triangle - -;psx, Virtual Port 4, DualShock: D-Pad RIGHT → -psx.input.port4.dualshock.right - -;psx, Virtual Port 4, DualShock: Right Stick DOWN ↓ -psx.input.port4.dualshock.rstick_down - -;psx, Virtual Port 4, DualShock: Right Stick LEFT ← -psx.input.port4.dualshock.rstick_left - -;psx, Virtual Port 4, DualShock: Right Stick RIGHT → -psx.input.port4.dualshock.rstick_right - -;psx, Virtual Port 4, DualShock: Right Stick UP ↑ -psx.input.port4.dualshock.rstick_up - -;psx, Virtual Port 4, DualShock: SELECT -psx.input.port4.dualshock.select - -;psx, Virtual Port 4, DualShock: □ (left) -psx.input.port4.dualshock.square - -;psx, Virtual Port 4, DualShock: START -psx.input.port4.dualshock.start - -;psx, Virtual Port 4, DualShock: △ (upper) -psx.input.port4.dualshock.triangle - -;psx, Virtual Port 4, DualShock: D-Pad UP ↑ -psx.input.port4.dualshock.up - -;psx, Virtual Port 4, Digital Gamepad: ○ (right) -psx.input.port4.gamepad.circle - -;psx, Virtual Port 4, Digital Gamepad: x (lower) -psx.input.port4.gamepad.cross - -;psx, Virtual Port 4, Digital Gamepad: DOWN ↓ -psx.input.port4.gamepad.down - -;psx, Virtual Port 4, Digital Gamepad: L1 (front left shoulder) -psx.input.port4.gamepad.l1 - -;psx, Virtual Port 4, Digital Gamepad: L2 (rear left shoulder) -psx.input.port4.gamepad.l2 - -;psx, Virtual Port 4, Digital Gamepad: LEFT ← -psx.input.port4.gamepad.left - -;psx, Virtual Port 4, Digital Gamepad: R1 (front right shoulder) -psx.input.port4.gamepad.r1 - -;psx, Virtual Port 4, Digital Gamepad: R2 (rear right shoulder) -psx.input.port4.gamepad.r2 - -;psx, Virtual Port 4, Digital Gamepad: Rapid ○ (right) -psx.input.port4.gamepad.rapid_circle - -;psx, Virtual Port 4, Digital Gamepad: Rapid x (lower) -psx.input.port4.gamepad.rapid_cross - -;psx, Virtual Port 4, Digital Gamepad: Rapid □ (left) -psx.input.port4.gamepad.rapid_square - -;psx, Virtual Port 4, Digital Gamepad: Rapid △ (upper) -psx.input.port4.gamepad.rapid_triangle - -;psx, Virtual Port 4, Digital Gamepad: RIGHT → -psx.input.port4.gamepad.right - -;psx, Virtual Port 4, Digital Gamepad: SELECT -psx.input.port4.gamepad.select - -;psx, Virtual Port 4, Digital Gamepad: □ (left) -psx.input.port4.gamepad.square - -;psx, Virtual Port 4, Digital Gamepad: START -psx.input.port4.gamepad.start - -;psx, Virtual Port 4, Digital Gamepad: △ (upper) -psx.input.port4.gamepad.triangle - -;psx, Virtual Port 4, Digital Gamepad: UP ↑ -psx.input.port4.gamepad.up - -;Crosshairs color for lightgun on virtual port 4. -psx.input.port4.gun_chairs 0xFF8000 - -;psx, Virtual Port 4, GunCon: A -psx.input.port4.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 4, GunCon: B -psx.input.port4.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 4, GunCon: Offscreen Shot(Simulated) -psx.input.port4.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 4, GunCon: Trigger -psx.input.port4.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 4, GunCon: X Axis -psx.input.port4.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 4, GunCon: Y Axis -psx.input.port4.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 4, Konami Justifier: O -psx.input.port4.justifier.o - -;psx, Virtual Port 4, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port4.justifier.offscreen_shot - -;psx, Virtual Port 4, Konami Justifier: Start -psx.input.port4.justifier.start - -;psx, Virtual Port 4, Konami Justifier: Trigger -psx.input.port4.justifier.trigger - -;psx, Virtual Port 4, Konami Justifier: X Axis -psx.input.port4.justifier.x_axis - -;psx, Virtual Port 4, Konami Justifier: Y Axis -psx.input.port4.justifier.y_axis - -;Emulate memory card on virtual port 4. -psx.input.port4.memcard 1 - -;psx, Virtual Port 4, Mouse: Left Button -psx.input.port4.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 4, Mouse: Motion Down -psx.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 4, Mouse: Motion Left -psx.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 4, Mouse: Motion Right -psx.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 4, Mouse: Motion Up -psx.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 4, Mouse: Right Button -psx.input.port4.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 4, neGcon: A -psx.input.port4.negcon.a - -;psx, Virtual Port 4, neGcon: B -psx.input.port4.negcon.b - -;psx, Virtual Port 4, neGcon: D-Pad DOWN ↓ -psx.input.port4.negcon.down - -;psx, Virtual Port 4, neGcon: I (Analog) -psx.input.port4.negcon.i - -;psx, Virtual Port 4, neGcon: II (Analog) -psx.input.port4.negcon.ii - -;psx, Virtual Port 4, neGcon: Left Shoulder (Analog) -psx.input.port4.negcon.l - -;psx, Virtual Port 4, neGcon: D-Pad LEFT ← -psx.input.port4.negcon.left - -;psx, Virtual Port 4, neGcon: Right Shoulder -psx.input.port4.negcon.r - -;psx, Virtual Port 4, neGcon: D-Pad RIGHT → -psx.input.port4.negcon.right - -;psx, Virtual Port 4, neGcon: START -psx.input.port4.negcon.start - -;psx, Virtual Port 4, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port4.negcon.twist_ccwise - -;psx, Virtual Port 4, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port4.negcon.twist_cwise - -;psx, Virtual Port 4, neGcon: D-Pad UP ↑ -psx.input.port4.negcon.up - -;Input device for Virtual Port 5 -psx.input.port5 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 5. -psx.input.port5.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 5, Analog Joystick: Right stick, R-thumb -psx.input.port5.analogjoy.circle - -;psx, Virtual Port 5, Analog Joystick: Right stick, L-thumb -psx.input.port5.analogjoy.cross - -;psx, Virtual Port 5, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port5.analogjoy.down - -;psx, Virtual Port 5, Analog Joystick: Left stick, L-thumb -psx.input.port5.analogjoy.l1 - -;psx, Virtual Port 5, Analog Joystick: Left stick, Trigger -psx.input.port5.analogjoy.l2 - -;psx, Virtual Port 5, Analog Joystick: Thumbstick LEFT ← -psx.input.port5.analogjoy.left - -;psx, Virtual Port 5, Analog Joystick: Left Stick, BACK ↓ -psx.input.port5.analogjoy.lstick_down - -;psx, Virtual Port 5, Analog Joystick: Left Stick, LEFT ← -psx.input.port5.analogjoy.lstick_left - -;psx, Virtual Port 5, Analog Joystick: Left Stick, RIGHT → -psx.input.port5.analogjoy.lstick_right - -;psx, Virtual Port 5, Analog Joystick: Left Stick, FORE ↑ -psx.input.port5.analogjoy.lstick_up - -;psx, Virtual Port 5, Analog Joystick: Left stick, R-thumb -psx.input.port5.analogjoy.r1 - -;psx, Virtual Port 5, Analog Joystick: Left stick, Pinky -psx.input.port5.analogjoy.r2 - -;psx, Virtual Port 5, Analog Joystick: Thumbstick RIGHT → -psx.input.port5.analogjoy.right - -;psx, Virtual Port 5, Analog Joystick: Right Stick, BACK ↓ -psx.input.port5.analogjoy.rstick_down - -;psx, Virtual Port 5, Analog Joystick: Right Stick, LEFT ← -psx.input.port5.analogjoy.rstick_left - -;psx, Virtual Port 5, Analog Joystick: Right Stick, RIGHT → -psx.input.port5.analogjoy.rstick_right - -;psx, Virtual Port 5, Analog Joystick: Right Stick, FORE ↑ -psx.input.port5.analogjoy.rstick_up - -;psx, Virtual Port 5, Analog Joystick: SELECT -psx.input.port5.analogjoy.select - -;psx, Virtual Port 5, Analog Joystick: Right stick, Trigger -psx.input.port5.analogjoy.square - -;psx, Virtual Port 5, Analog Joystick: START -psx.input.port5.analogjoy.start - -;psx, Virtual Port 5, Analog Joystick: Right stick, Pinky -psx.input.port5.analogjoy.triangle - -;psx, Virtual Port 5, Analog Joystick: Thumbstick UP ↑ -psx.input.port5.analogjoy.up - -;psx, Virtual Port 5, Dance Pad: ○ (upper right) -psx.input.port5.dancepad.circle - -;psx, Virtual Port 5, Dance Pad: x (upper left) -psx.input.port5.dancepad.cross - -;psx, Virtual Port 5, Dance Pad: DOWN ↓ -psx.input.port5.dancepad.down - -;psx, Virtual Port 5, Dance Pad: LEFT ← -psx.input.port5.dancepad.left - -;psx, Virtual Port 5, Dance Pad: RIGHT → -psx.input.port5.dancepad.right - -;psx, Virtual Port 5, Dance Pad: SELECT -psx.input.port5.dancepad.select - -;psx, Virtual Port 5, Dance Pad: □ (lower right) -psx.input.port5.dancepad.square - -;psx, Virtual Port 5, Dance Pad: START -psx.input.port5.dancepad.start - -;psx, Virtual Port 5, Dance Pad: △ (lower left) -psx.input.port5.dancepad.triangle - -;psx, Virtual Port 5, Dance Pad: UP ↑ -psx.input.port5.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 5. -psx.input.port5.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 5, Dual Analog: ○ (right) -psx.input.port5.dualanalog.circle - -;psx, Virtual Port 5, Dual Analog: x (lower) -psx.input.port5.dualanalog.cross - -;psx, Virtual Port 5, Dual Analog: D-Pad DOWN ↓ -psx.input.port5.dualanalog.down - -;psx, Virtual Port 5, Dual Analog: L1 (front left shoulder) -psx.input.port5.dualanalog.l1 - -;psx, Virtual Port 5, Dual Analog: L2 (rear left shoulder) -psx.input.port5.dualanalog.l2 - -;psx, Virtual Port 5, Dual Analog: Left Stick, Button(L3) -psx.input.port5.dualanalog.l3 - -;psx, Virtual Port 5, Dual Analog: D-Pad LEFT ← -psx.input.port5.dualanalog.left - -;psx, Virtual Port 5, Dual Analog: Left Stick DOWN ↓ -psx.input.port5.dualanalog.lstick_down - -;psx, Virtual Port 5, Dual Analog: Left Stick LEFT ← -psx.input.port5.dualanalog.lstick_left - -;psx, Virtual Port 5, Dual Analog: Left Stick RIGHT → -psx.input.port5.dualanalog.lstick_right - -;psx, Virtual Port 5, Dual Analog: Left Stick UP ↑ -psx.input.port5.dualanalog.lstick_up - -;psx, Virtual Port 5, Dual Analog: R1 (front right shoulder) -psx.input.port5.dualanalog.r1 - -;psx, Virtual Port 5, Dual Analog: R2 (rear right shoulder) -psx.input.port5.dualanalog.r2 - -;psx, Virtual Port 5, Dual Analog: Right stick, Button(R3) -psx.input.port5.dualanalog.r3 - -;psx, Virtual Port 5, Dual Analog: Rapid ○ (right) -psx.input.port5.dualanalog.rapid_circle - -;psx, Virtual Port 5, Dual Analog: Rapid x (lower) -psx.input.port5.dualanalog.rapid_cross - -;psx, Virtual Port 5, Dual Analog: Rapid □ (left) -psx.input.port5.dualanalog.rapid_square - -;psx, Virtual Port 5, Dual Analog: Rapid △ (upper) -psx.input.port5.dualanalog.rapid_triangle - -;psx, Virtual Port 5, Dual Analog: D-Pad RIGHT → -psx.input.port5.dualanalog.right - -;psx, Virtual Port 5, Dual Analog: Right Stick DOWN ↓ -psx.input.port5.dualanalog.rstick_down - -;psx, Virtual Port 5, Dual Analog: Right Stick LEFT ← -psx.input.port5.dualanalog.rstick_left - -;psx, Virtual Port 5, Dual Analog: Right Stick RIGHT → -psx.input.port5.dualanalog.rstick_right - -;psx, Virtual Port 5, Dual Analog: Right Stick UP ↑ -psx.input.port5.dualanalog.rstick_up - -;psx, Virtual Port 5, Dual Analog: SELECT -psx.input.port5.dualanalog.select - -;psx, Virtual Port 5, Dual Analog: □ (left) -psx.input.port5.dualanalog.square - -;psx, Virtual Port 5, Dual Analog: START -psx.input.port5.dualanalog.start - -;psx, Virtual Port 5, Dual Analog: △ (upper) -psx.input.port5.dualanalog.triangle - -;psx, Virtual Port 5, Dual Analog: D-Pad UP ↑ -psx.input.port5.dualanalog.up - -;psx, Virtual Port 5, DualShock: Analog(mode toggle) -psx.input.port5.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 5. -psx.input.port5.dualshock.axis_scale 1.00 - -;psx, Virtual Port 5, DualShock: ○ (right) -psx.input.port5.dualshock.circle - -;psx, Virtual Port 5, DualShock: x (lower) -psx.input.port5.dualshock.cross - -;psx, Virtual Port 5, DualShock: D-Pad DOWN ↓ -psx.input.port5.dualshock.down - -;psx, Virtual Port 5, DualShock: L1 (front left shoulder) -psx.input.port5.dualshock.l1 - -;psx, Virtual Port 5, DualShock: L2 (rear left shoulder) -psx.input.port5.dualshock.l2 - -;psx, Virtual Port 5, DualShock: Left Stick, Button(L3) -psx.input.port5.dualshock.l3 - -;psx, Virtual Port 5, DualShock: D-Pad LEFT ← -psx.input.port5.dualshock.left - -;psx, Virtual Port 5, DualShock: Left Stick DOWN ↓ -psx.input.port5.dualshock.lstick_down - -;psx, Virtual Port 5, DualShock: Left Stick LEFT ← -psx.input.port5.dualshock.lstick_left - -;psx, Virtual Port 5, DualShock: Left Stick RIGHT → -psx.input.port5.dualshock.lstick_right - -;psx, Virtual Port 5, DualShock: Left Stick UP ↑ -psx.input.port5.dualshock.lstick_up - -;psx, Virtual Port 5, DualShock: R1 (front right shoulder) -psx.input.port5.dualshock.r1 - -;psx, Virtual Port 5, DualShock: R2 (rear right shoulder) -psx.input.port5.dualshock.r2 - -;psx, Virtual Port 5, DualShock: Right stick, Button(R3) -psx.input.port5.dualshock.r3 - -;psx, Virtual Port 5, DualShock: Rapid ○ (right) -psx.input.port5.dualshock.rapid_circle - -;psx, Virtual Port 5, DualShock: Rapid x (lower) -psx.input.port5.dualshock.rapid_cross - -;psx, Virtual Port 5, DualShock: Rapid □ (left) -psx.input.port5.dualshock.rapid_square - -;psx, Virtual Port 5, DualShock: Rapid △ (upper) -psx.input.port5.dualshock.rapid_triangle - -;psx, Virtual Port 5, DualShock: D-Pad RIGHT → -psx.input.port5.dualshock.right - -;psx, Virtual Port 5, DualShock: Right Stick DOWN ↓ -psx.input.port5.dualshock.rstick_down - -;psx, Virtual Port 5, DualShock: Right Stick LEFT ← -psx.input.port5.dualshock.rstick_left - -;psx, Virtual Port 5, DualShock: Right Stick RIGHT → -psx.input.port5.dualshock.rstick_right - -;psx, Virtual Port 5, DualShock: Right Stick UP ↑ -psx.input.port5.dualshock.rstick_up - -;psx, Virtual Port 5, DualShock: SELECT -psx.input.port5.dualshock.select - -;psx, Virtual Port 5, DualShock: □ (left) -psx.input.port5.dualshock.square - -;psx, Virtual Port 5, DualShock: START -psx.input.port5.dualshock.start - -;psx, Virtual Port 5, DualShock: △ (upper) -psx.input.port5.dualshock.triangle - -;psx, Virtual Port 5, DualShock: D-Pad UP ↑ -psx.input.port5.dualshock.up - -;psx, Virtual Port 5, Digital Gamepad: ○ (right) -psx.input.port5.gamepad.circle - -;psx, Virtual Port 5, Digital Gamepad: x (lower) -psx.input.port5.gamepad.cross - -;psx, Virtual Port 5, Digital Gamepad: DOWN ↓ -psx.input.port5.gamepad.down - -;psx, Virtual Port 5, Digital Gamepad: L1 (front left shoulder) -psx.input.port5.gamepad.l1 - -;psx, Virtual Port 5, Digital Gamepad: L2 (rear left shoulder) -psx.input.port5.gamepad.l2 - -;psx, Virtual Port 5, Digital Gamepad: LEFT ← -psx.input.port5.gamepad.left - -;psx, Virtual Port 5, Digital Gamepad: R1 (front right shoulder) -psx.input.port5.gamepad.r1 - -;psx, Virtual Port 5, Digital Gamepad: R2 (rear right shoulder) -psx.input.port5.gamepad.r2 - -;psx, Virtual Port 5, Digital Gamepad: Rapid ○ (right) -psx.input.port5.gamepad.rapid_circle - -;psx, Virtual Port 5, Digital Gamepad: Rapid x (lower) -psx.input.port5.gamepad.rapid_cross - -;psx, Virtual Port 5, Digital Gamepad: Rapid □ (left) -psx.input.port5.gamepad.rapid_square - -;psx, Virtual Port 5, Digital Gamepad: Rapid △ (upper) -psx.input.port5.gamepad.rapid_triangle - -;psx, Virtual Port 5, Digital Gamepad: RIGHT → -psx.input.port5.gamepad.right - -;psx, Virtual Port 5, Digital Gamepad: SELECT -psx.input.port5.gamepad.select - -;psx, Virtual Port 5, Digital Gamepad: □ (left) -psx.input.port5.gamepad.square - -;psx, Virtual Port 5, Digital Gamepad: START -psx.input.port5.gamepad.start - -;psx, Virtual Port 5, Digital Gamepad: △ (upper) -psx.input.port5.gamepad.triangle - -;psx, Virtual Port 5, Digital Gamepad: UP ↑ -psx.input.port5.gamepad.up - -;Crosshairs color for lightgun on virtual port 5. -psx.input.port5.gun_chairs 0xFFFF00 - -;psx, Virtual Port 5, GunCon: A -psx.input.port5.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 5, GunCon: B -psx.input.port5.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 5, GunCon: Offscreen Shot(Simulated) -psx.input.port5.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 5, GunCon: Trigger -psx.input.port5.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 5, GunCon: X Axis -psx.input.port5.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 5, GunCon: Y Axis -psx.input.port5.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 5, Konami Justifier: O -psx.input.port5.justifier.o - -;psx, Virtual Port 5, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port5.justifier.offscreen_shot - -;psx, Virtual Port 5, Konami Justifier: Start -psx.input.port5.justifier.start - -;psx, Virtual Port 5, Konami Justifier: Trigger -psx.input.port5.justifier.trigger - -;psx, Virtual Port 5, Konami Justifier: X Axis -psx.input.port5.justifier.x_axis - -;psx, Virtual Port 5, Konami Justifier: Y Axis -psx.input.port5.justifier.y_axis - -;Emulate memory card on virtual port 5. -psx.input.port5.memcard 1 - -;psx, Virtual Port 5, Mouse: Left Button -psx.input.port5.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 5, Mouse: Motion Down -psx.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 5, Mouse: Motion Left -psx.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 5, Mouse: Motion Right -psx.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 5, Mouse: Motion Up -psx.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 5, Mouse: Right Button -psx.input.port5.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 5, neGcon: A -psx.input.port5.negcon.a - -;psx, Virtual Port 5, neGcon: B -psx.input.port5.negcon.b - -;psx, Virtual Port 5, neGcon: D-Pad DOWN ↓ -psx.input.port5.negcon.down - -;psx, Virtual Port 5, neGcon: I (Analog) -psx.input.port5.negcon.i - -;psx, Virtual Port 5, neGcon: II (Analog) -psx.input.port5.negcon.ii - -;psx, Virtual Port 5, neGcon: Left Shoulder (Analog) -psx.input.port5.negcon.l - -;psx, Virtual Port 5, neGcon: D-Pad LEFT ← -psx.input.port5.negcon.left - -;psx, Virtual Port 5, neGcon: Right Shoulder -psx.input.port5.negcon.r - -;psx, Virtual Port 5, neGcon: D-Pad RIGHT → -psx.input.port5.negcon.right - -;psx, Virtual Port 5, neGcon: START -psx.input.port5.negcon.start - -;psx, Virtual Port 5, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port5.negcon.twist_ccwise - -;psx, Virtual Port 5, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port5.negcon.twist_cwise - -;psx, Virtual Port 5, neGcon: D-Pad UP ↑ -psx.input.port5.negcon.up - -;Input device for Virtual Port 6 -psx.input.port6 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 6. -psx.input.port6.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 6, Analog Joystick: Right stick, R-thumb -psx.input.port6.analogjoy.circle - -;psx, Virtual Port 6, Analog Joystick: Right stick, L-thumb -psx.input.port6.analogjoy.cross - -;psx, Virtual Port 6, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port6.analogjoy.down - -;psx, Virtual Port 6, Analog Joystick: Left stick, L-thumb -psx.input.port6.analogjoy.l1 - -;psx, Virtual Port 6, Analog Joystick: Left stick, Trigger -psx.input.port6.analogjoy.l2 - -;psx, Virtual Port 6, Analog Joystick: Thumbstick LEFT ← -psx.input.port6.analogjoy.left - -;psx, Virtual Port 6, Analog Joystick: Left Stick, BACK ↓ -psx.input.port6.analogjoy.lstick_down - -;psx, Virtual Port 6, Analog Joystick: Left Stick, LEFT ← -psx.input.port6.analogjoy.lstick_left - -;psx, Virtual Port 6, Analog Joystick: Left Stick, RIGHT → -psx.input.port6.analogjoy.lstick_right - -;psx, Virtual Port 6, Analog Joystick: Left Stick, FORE ↑ -psx.input.port6.analogjoy.lstick_up - -;psx, Virtual Port 6, Analog Joystick: Left stick, R-thumb -psx.input.port6.analogjoy.r1 - -;psx, Virtual Port 6, Analog Joystick: Left stick, Pinky -psx.input.port6.analogjoy.r2 - -;psx, Virtual Port 6, Analog Joystick: Thumbstick RIGHT → -psx.input.port6.analogjoy.right - -;psx, Virtual Port 6, Analog Joystick: Right Stick, BACK ↓ -psx.input.port6.analogjoy.rstick_down - -;psx, Virtual Port 6, Analog Joystick: Right Stick, LEFT ← -psx.input.port6.analogjoy.rstick_left - -;psx, Virtual Port 6, Analog Joystick: Right Stick, RIGHT → -psx.input.port6.analogjoy.rstick_right - -;psx, Virtual Port 6, Analog Joystick: Right Stick, FORE ↑ -psx.input.port6.analogjoy.rstick_up - -;psx, Virtual Port 6, Analog Joystick: SELECT -psx.input.port6.analogjoy.select - -;psx, Virtual Port 6, Analog Joystick: Right stick, Trigger -psx.input.port6.analogjoy.square - -;psx, Virtual Port 6, Analog Joystick: START -psx.input.port6.analogjoy.start - -;psx, Virtual Port 6, Analog Joystick: Right stick, Pinky -psx.input.port6.analogjoy.triangle - -;psx, Virtual Port 6, Analog Joystick: Thumbstick UP ↑ -psx.input.port6.analogjoy.up - -;psx, Virtual Port 6, Dance Pad: ○ (upper right) -psx.input.port6.dancepad.circle - -;psx, Virtual Port 6, Dance Pad: x (upper left) -psx.input.port6.dancepad.cross - -;psx, Virtual Port 6, Dance Pad: DOWN ↓ -psx.input.port6.dancepad.down - -;psx, Virtual Port 6, Dance Pad: LEFT ← -psx.input.port6.dancepad.left - -;psx, Virtual Port 6, Dance Pad: RIGHT → -psx.input.port6.dancepad.right - -;psx, Virtual Port 6, Dance Pad: SELECT -psx.input.port6.dancepad.select - -;psx, Virtual Port 6, Dance Pad: □ (lower right) -psx.input.port6.dancepad.square - -;psx, Virtual Port 6, Dance Pad: START -psx.input.port6.dancepad.start - -;psx, Virtual Port 6, Dance Pad: △ (lower left) -psx.input.port6.dancepad.triangle - -;psx, Virtual Port 6, Dance Pad: UP ↑ -psx.input.port6.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 6. -psx.input.port6.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 6, Dual Analog: ○ (right) -psx.input.port6.dualanalog.circle - -;psx, Virtual Port 6, Dual Analog: x (lower) -psx.input.port6.dualanalog.cross - -;psx, Virtual Port 6, Dual Analog: D-Pad DOWN ↓ -psx.input.port6.dualanalog.down - -;psx, Virtual Port 6, Dual Analog: L1 (front left shoulder) -psx.input.port6.dualanalog.l1 - -;psx, Virtual Port 6, Dual Analog: L2 (rear left shoulder) -psx.input.port6.dualanalog.l2 - -;psx, Virtual Port 6, Dual Analog: Left Stick, Button(L3) -psx.input.port6.dualanalog.l3 - -;psx, Virtual Port 6, Dual Analog: D-Pad LEFT ← -psx.input.port6.dualanalog.left - -;psx, Virtual Port 6, Dual Analog: Left Stick DOWN ↓ -psx.input.port6.dualanalog.lstick_down - -;psx, Virtual Port 6, Dual Analog: Left Stick LEFT ← -psx.input.port6.dualanalog.lstick_left - -;psx, Virtual Port 6, Dual Analog: Left Stick RIGHT → -psx.input.port6.dualanalog.lstick_right - -;psx, Virtual Port 6, Dual Analog: Left Stick UP ↑ -psx.input.port6.dualanalog.lstick_up - -;psx, Virtual Port 6, Dual Analog: R1 (front right shoulder) -psx.input.port6.dualanalog.r1 - -;psx, Virtual Port 6, Dual Analog: R2 (rear right shoulder) -psx.input.port6.dualanalog.r2 - -;psx, Virtual Port 6, Dual Analog: Right stick, Button(R3) -psx.input.port6.dualanalog.r3 - -;psx, Virtual Port 6, Dual Analog: Rapid ○ (right) -psx.input.port6.dualanalog.rapid_circle - -;psx, Virtual Port 6, Dual Analog: Rapid x (lower) -psx.input.port6.dualanalog.rapid_cross - -;psx, Virtual Port 6, Dual Analog: Rapid □ (left) -psx.input.port6.dualanalog.rapid_square - -;psx, Virtual Port 6, Dual Analog: Rapid △ (upper) -psx.input.port6.dualanalog.rapid_triangle - -;psx, Virtual Port 6, Dual Analog: D-Pad RIGHT → -psx.input.port6.dualanalog.right - -;psx, Virtual Port 6, Dual Analog: Right Stick DOWN ↓ -psx.input.port6.dualanalog.rstick_down - -;psx, Virtual Port 6, Dual Analog: Right Stick LEFT ← -psx.input.port6.dualanalog.rstick_left - -;psx, Virtual Port 6, Dual Analog: Right Stick RIGHT → -psx.input.port6.dualanalog.rstick_right - -;psx, Virtual Port 6, Dual Analog: Right Stick UP ↑ -psx.input.port6.dualanalog.rstick_up - -;psx, Virtual Port 6, Dual Analog: SELECT -psx.input.port6.dualanalog.select - -;psx, Virtual Port 6, Dual Analog: □ (left) -psx.input.port6.dualanalog.square - -;psx, Virtual Port 6, Dual Analog: START -psx.input.port6.dualanalog.start - -;psx, Virtual Port 6, Dual Analog: △ (upper) -psx.input.port6.dualanalog.triangle - -;psx, Virtual Port 6, Dual Analog: D-Pad UP ↑ -psx.input.port6.dualanalog.up - -;psx, Virtual Port 6, DualShock: Analog(mode toggle) -psx.input.port6.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 6. -psx.input.port6.dualshock.axis_scale 1.00 - -;psx, Virtual Port 6, DualShock: ○ (right) -psx.input.port6.dualshock.circle - -;psx, Virtual Port 6, DualShock: x (lower) -psx.input.port6.dualshock.cross - -;psx, Virtual Port 6, DualShock: D-Pad DOWN ↓ -psx.input.port6.dualshock.down - -;psx, Virtual Port 6, DualShock: L1 (front left shoulder) -psx.input.port6.dualshock.l1 - -;psx, Virtual Port 6, DualShock: L2 (rear left shoulder) -psx.input.port6.dualshock.l2 - -;psx, Virtual Port 6, DualShock: Left Stick, Button(L3) -psx.input.port6.dualshock.l3 - -;psx, Virtual Port 6, DualShock: D-Pad LEFT ← -psx.input.port6.dualshock.left - -;psx, Virtual Port 6, DualShock: Left Stick DOWN ↓ -psx.input.port6.dualshock.lstick_down - -;psx, Virtual Port 6, DualShock: Left Stick LEFT ← -psx.input.port6.dualshock.lstick_left - -;psx, Virtual Port 6, DualShock: Left Stick RIGHT → -psx.input.port6.dualshock.lstick_right - -;psx, Virtual Port 6, DualShock: Left Stick UP ↑ -psx.input.port6.dualshock.lstick_up - -;psx, Virtual Port 6, DualShock: R1 (front right shoulder) -psx.input.port6.dualshock.r1 - -;psx, Virtual Port 6, DualShock: R2 (rear right shoulder) -psx.input.port6.dualshock.r2 - -;psx, Virtual Port 6, DualShock: Right stick, Button(R3) -psx.input.port6.dualshock.r3 - -;psx, Virtual Port 6, DualShock: Rapid ○ (right) -psx.input.port6.dualshock.rapid_circle - -;psx, Virtual Port 6, DualShock: Rapid x (lower) -psx.input.port6.dualshock.rapid_cross - -;psx, Virtual Port 6, DualShock: Rapid □ (left) -psx.input.port6.dualshock.rapid_square - -;psx, Virtual Port 6, DualShock: Rapid △ (upper) -psx.input.port6.dualshock.rapid_triangle - -;psx, Virtual Port 6, DualShock: D-Pad RIGHT → -psx.input.port6.dualshock.right - -;psx, Virtual Port 6, DualShock: Right Stick DOWN ↓ -psx.input.port6.dualshock.rstick_down - -;psx, Virtual Port 6, DualShock: Right Stick LEFT ← -psx.input.port6.dualshock.rstick_left - -;psx, Virtual Port 6, DualShock: Right Stick RIGHT → -psx.input.port6.dualshock.rstick_right - -;psx, Virtual Port 6, DualShock: Right Stick UP ↑ -psx.input.port6.dualshock.rstick_up - -;psx, Virtual Port 6, DualShock: SELECT -psx.input.port6.dualshock.select - -;psx, Virtual Port 6, DualShock: □ (left) -psx.input.port6.dualshock.square - -;psx, Virtual Port 6, DualShock: START -psx.input.port6.dualshock.start - -;psx, Virtual Port 6, DualShock: △ (upper) -psx.input.port6.dualshock.triangle - -;psx, Virtual Port 6, DualShock: D-Pad UP ↑ -psx.input.port6.dualshock.up - -;psx, Virtual Port 6, Digital Gamepad: ○ (right) -psx.input.port6.gamepad.circle - -;psx, Virtual Port 6, Digital Gamepad: x (lower) -psx.input.port6.gamepad.cross - -;psx, Virtual Port 6, Digital Gamepad: DOWN ↓ -psx.input.port6.gamepad.down - -;psx, Virtual Port 6, Digital Gamepad: L1 (front left shoulder) -psx.input.port6.gamepad.l1 - -;psx, Virtual Port 6, Digital Gamepad: L2 (rear left shoulder) -psx.input.port6.gamepad.l2 - -;psx, Virtual Port 6, Digital Gamepad: LEFT ← -psx.input.port6.gamepad.left - -;psx, Virtual Port 6, Digital Gamepad: R1 (front right shoulder) -psx.input.port6.gamepad.r1 - -;psx, Virtual Port 6, Digital Gamepad: R2 (rear right shoulder) -psx.input.port6.gamepad.r2 - -;psx, Virtual Port 6, Digital Gamepad: Rapid ○ (right) -psx.input.port6.gamepad.rapid_circle - -;psx, Virtual Port 6, Digital Gamepad: Rapid x (lower) -psx.input.port6.gamepad.rapid_cross - -;psx, Virtual Port 6, Digital Gamepad: Rapid □ (left) -psx.input.port6.gamepad.rapid_square - -;psx, Virtual Port 6, Digital Gamepad: Rapid △ (upper) -psx.input.port6.gamepad.rapid_triangle - -;psx, Virtual Port 6, Digital Gamepad: RIGHT → -psx.input.port6.gamepad.right - -;psx, Virtual Port 6, Digital Gamepad: SELECT -psx.input.port6.gamepad.select - -;psx, Virtual Port 6, Digital Gamepad: □ (left) -psx.input.port6.gamepad.square - -;psx, Virtual Port 6, Digital Gamepad: START -psx.input.port6.gamepad.start - -;psx, Virtual Port 6, Digital Gamepad: △ (upper) -psx.input.port6.gamepad.triangle - -;psx, Virtual Port 6, Digital Gamepad: UP ↑ -psx.input.port6.gamepad.up - -;Crosshairs color for lightgun on virtual port 6. -psx.input.port6.gun_chairs 0x00FFFF - -;psx, Virtual Port 6, GunCon: A -psx.input.port6.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 6, GunCon: B -psx.input.port6.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 6, GunCon: Offscreen Shot(Simulated) -psx.input.port6.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 6, GunCon: Trigger -psx.input.port6.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 6, GunCon: X Axis -psx.input.port6.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 6, GunCon: Y Axis -psx.input.port6.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 6, Konami Justifier: O -psx.input.port6.justifier.o - -;psx, Virtual Port 6, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port6.justifier.offscreen_shot - -;psx, Virtual Port 6, Konami Justifier: Start -psx.input.port6.justifier.start - -;psx, Virtual Port 6, Konami Justifier: Trigger -psx.input.port6.justifier.trigger - -;psx, Virtual Port 6, Konami Justifier: X Axis -psx.input.port6.justifier.x_axis - -;psx, Virtual Port 6, Konami Justifier: Y Axis -psx.input.port6.justifier.y_axis - -;Emulate memory card on virtual port 6. -psx.input.port6.memcard 1 - -;psx, Virtual Port 6, Mouse: Left Button -psx.input.port6.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 6, Mouse: Motion Down -psx.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 6, Mouse: Motion Left -psx.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 6, Mouse: Motion Right -psx.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 6, Mouse: Motion Up -psx.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 6, Mouse: Right Button -psx.input.port6.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 6, neGcon: A -psx.input.port6.negcon.a - -;psx, Virtual Port 6, neGcon: B -psx.input.port6.negcon.b - -;psx, Virtual Port 6, neGcon: D-Pad DOWN ↓ -psx.input.port6.negcon.down - -;psx, Virtual Port 6, neGcon: I (Analog) -psx.input.port6.negcon.i - -;psx, Virtual Port 6, neGcon: II (Analog) -psx.input.port6.negcon.ii - -;psx, Virtual Port 6, neGcon: Left Shoulder (Analog) -psx.input.port6.negcon.l - -;psx, Virtual Port 6, neGcon: D-Pad LEFT ← -psx.input.port6.negcon.left - -;psx, Virtual Port 6, neGcon: Right Shoulder -psx.input.port6.negcon.r - -;psx, Virtual Port 6, neGcon: D-Pad RIGHT → -psx.input.port6.negcon.right - -;psx, Virtual Port 6, neGcon: START -psx.input.port6.negcon.start - -;psx, Virtual Port 6, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port6.negcon.twist_ccwise - -;psx, Virtual Port 6, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port6.negcon.twist_cwise - -;psx, Virtual Port 6, neGcon: D-Pad UP ↑ -psx.input.port6.negcon.up - -;Input device for Virtual Port 7 -psx.input.port7 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 7. -psx.input.port7.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 7, Analog Joystick: Right stick, R-thumb -psx.input.port7.analogjoy.circle - -;psx, Virtual Port 7, Analog Joystick: Right stick, L-thumb -psx.input.port7.analogjoy.cross - -;psx, Virtual Port 7, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port7.analogjoy.down - -;psx, Virtual Port 7, Analog Joystick: Left stick, L-thumb -psx.input.port7.analogjoy.l1 - -;psx, Virtual Port 7, Analog Joystick: Left stick, Trigger -psx.input.port7.analogjoy.l2 - -;psx, Virtual Port 7, Analog Joystick: Thumbstick LEFT ← -psx.input.port7.analogjoy.left - -;psx, Virtual Port 7, Analog Joystick: Left Stick, BACK ↓ -psx.input.port7.analogjoy.lstick_down - -;psx, Virtual Port 7, Analog Joystick: Left Stick, LEFT ← -psx.input.port7.analogjoy.lstick_left - -;psx, Virtual Port 7, Analog Joystick: Left Stick, RIGHT → -psx.input.port7.analogjoy.lstick_right - -;psx, Virtual Port 7, Analog Joystick: Left Stick, FORE ↑ -psx.input.port7.analogjoy.lstick_up - -;psx, Virtual Port 7, Analog Joystick: Left stick, R-thumb -psx.input.port7.analogjoy.r1 - -;psx, Virtual Port 7, Analog Joystick: Left stick, Pinky -psx.input.port7.analogjoy.r2 - -;psx, Virtual Port 7, Analog Joystick: Thumbstick RIGHT → -psx.input.port7.analogjoy.right - -;psx, Virtual Port 7, Analog Joystick: Right Stick, BACK ↓ -psx.input.port7.analogjoy.rstick_down - -;psx, Virtual Port 7, Analog Joystick: Right Stick, LEFT ← -psx.input.port7.analogjoy.rstick_left - -;psx, Virtual Port 7, Analog Joystick: Right Stick, RIGHT → -psx.input.port7.analogjoy.rstick_right - -;psx, Virtual Port 7, Analog Joystick: Right Stick, FORE ↑ -psx.input.port7.analogjoy.rstick_up - -;psx, Virtual Port 7, Analog Joystick: SELECT -psx.input.port7.analogjoy.select - -;psx, Virtual Port 7, Analog Joystick: Right stick, Trigger -psx.input.port7.analogjoy.square - -;psx, Virtual Port 7, Analog Joystick: START -psx.input.port7.analogjoy.start - -;psx, Virtual Port 7, Analog Joystick: Right stick, Pinky -psx.input.port7.analogjoy.triangle - -;psx, Virtual Port 7, Analog Joystick: Thumbstick UP ↑ -psx.input.port7.analogjoy.up - -;psx, Virtual Port 7, Dance Pad: ○ (upper right) -psx.input.port7.dancepad.circle - -;psx, Virtual Port 7, Dance Pad: x (upper left) -psx.input.port7.dancepad.cross - -;psx, Virtual Port 7, Dance Pad: DOWN ↓ -psx.input.port7.dancepad.down - -;psx, Virtual Port 7, Dance Pad: LEFT ← -psx.input.port7.dancepad.left - -;psx, Virtual Port 7, Dance Pad: RIGHT → -psx.input.port7.dancepad.right - -;psx, Virtual Port 7, Dance Pad: SELECT -psx.input.port7.dancepad.select - -;psx, Virtual Port 7, Dance Pad: □ (lower right) -psx.input.port7.dancepad.square - -;psx, Virtual Port 7, Dance Pad: START -psx.input.port7.dancepad.start - -;psx, Virtual Port 7, Dance Pad: △ (lower left) -psx.input.port7.dancepad.triangle - -;psx, Virtual Port 7, Dance Pad: UP ↑ -psx.input.port7.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 7. -psx.input.port7.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 7, Dual Analog: ○ (right) -psx.input.port7.dualanalog.circle - -;psx, Virtual Port 7, Dual Analog: x (lower) -psx.input.port7.dualanalog.cross - -;psx, Virtual Port 7, Dual Analog: D-Pad DOWN ↓ -psx.input.port7.dualanalog.down - -;psx, Virtual Port 7, Dual Analog: L1 (front left shoulder) -psx.input.port7.dualanalog.l1 - -;psx, Virtual Port 7, Dual Analog: L2 (rear left shoulder) -psx.input.port7.dualanalog.l2 - -;psx, Virtual Port 7, Dual Analog: Left Stick, Button(L3) -psx.input.port7.dualanalog.l3 - -;psx, Virtual Port 7, Dual Analog: D-Pad LEFT ← -psx.input.port7.dualanalog.left - -;psx, Virtual Port 7, Dual Analog: Left Stick DOWN ↓ -psx.input.port7.dualanalog.lstick_down - -;psx, Virtual Port 7, Dual Analog: Left Stick LEFT ← -psx.input.port7.dualanalog.lstick_left - -;psx, Virtual Port 7, Dual Analog: Left Stick RIGHT → -psx.input.port7.dualanalog.lstick_right - -;psx, Virtual Port 7, Dual Analog: Left Stick UP ↑ -psx.input.port7.dualanalog.lstick_up - -;psx, Virtual Port 7, Dual Analog: R1 (front right shoulder) -psx.input.port7.dualanalog.r1 - -;psx, Virtual Port 7, Dual Analog: R2 (rear right shoulder) -psx.input.port7.dualanalog.r2 - -;psx, Virtual Port 7, Dual Analog: Right stick, Button(R3) -psx.input.port7.dualanalog.r3 - -;psx, Virtual Port 7, Dual Analog: Rapid ○ (right) -psx.input.port7.dualanalog.rapid_circle - -;psx, Virtual Port 7, Dual Analog: Rapid x (lower) -psx.input.port7.dualanalog.rapid_cross - -;psx, Virtual Port 7, Dual Analog: Rapid □ (left) -psx.input.port7.dualanalog.rapid_square - -;psx, Virtual Port 7, Dual Analog: Rapid △ (upper) -psx.input.port7.dualanalog.rapid_triangle - -;psx, Virtual Port 7, Dual Analog: D-Pad RIGHT → -psx.input.port7.dualanalog.right - -;psx, Virtual Port 7, Dual Analog: Right Stick DOWN ↓ -psx.input.port7.dualanalog.rstick_down - -;psx, Virtual Port 7, Dual Analog: Right Stick LEFT ← -psx.input.port7.dualanalog.rstick_left - -;psx, Virtual Port 7, Dual Analog: Right Stick RIGHT → -psx.input.port7.dualanalog.rstick_right - -;psx, Virtual Port 7, Dual Analog: Right Stick UP ↑ -psx.input.port7.dualanalog.rstick_up - -;psx, Virtual Port 7, Dual Analog: SELECT -psx.input.port7.dualanalog.select - -;psx, Virtual Port 7, Dual Analog: □ (left) -psx.input.port7.dualanalog.square - -;psx, Virtual Port 7, Dual Analog: START -psx.input.port7.dualanalog.start - -;psx, Virtual Port 7, Dual Analog: △ (upper) -psx.input.port7.dualanalog.triangle - -;psx, Virtual Port 7, Dual Analog: D-Pad UP ↑ -psx.input.port7.dualanalog.up - -;psx, Virtual Port 7, DualShock: Analog(mode toggle) -psx.input.port7.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 7. -psx.input.port7.dualshock.axis_scale 1.00 - -;psx, Virtual Port 7, DualShock: ○ (right) -psx.input.port7.dualshock.circle - -;psx, Virtual Port 7, DualShock: x (lower) -psx.input.port7.dualshock.cross - -;psx, Virtual Port 7, DualShock: D-Pad DOWN ↓ -psx.input.port7.dualshock.down - -;psx, Virtual Port 7, DualShock: L1 (front left shoulder) -psx.input.port7.dualshock.l1 - -;psx, Virtual Port 7, DualShock: L2 (rear left shoulder) -psx.input.port7.dualshock.l2 - -;psx, Virtual Port 7, DualShock: Left Stick, Button(L3) -psx.input.port7.dualshock.l3 - -;psx, Virtual Port 7, DualShock: D-Pad LEFT ← -psx.input.port7.dualshock.left - -;psx, Virtual Port 7, DualShock: Left Stick DOWN ↓ -psx.input.port7.dualshock.lstick_down - -;psx, Virtual Port 7, DualShock: Left Stick LEFT ← -psx.input.port7.dualshock.lstick_left - -;psx, Virtual Port 7, DualShock: Left Stick RIGHT → -psx.input.port7.dualshock.lstick_right - -;psx, Virtual Port 7, DualShock: Left Stick UP ↑ -psx.input.port7.dualshock.lstick_up - -;psx, Virtual Port 7, DualShock: R1 (front right shoulder) -psx.input.port7.dualshock.r1 - -;psx, Virtual Port 7, DualShock: R2 (rear right shoulder) -psx.input.port7.dualshock.r2 - -;psx, Virtual Port 7, DualShock: Right stick, Button(R3) -psx.input.port7.dualshock.r3 - -;psx, Virtual Port 7, DualShock: Rapid ○ (right) -psx.input.port7.dualshock.rapid_circle - -;psx, Virtual Port 7, DualShock: Rapid x (lower) -psx.input.port7.dualshock.rapid_cross - -;psx, Virtual Port 7, DualShock: Rapid □ (left) -psx.input.port7.dualshock.rapid_square - -;psx, Virtual Port 7, DualShock: Rapid △ (upper) -psx.input.port7.dualshock.rapid_triangle - -;psx, Virtual Port 7, DualShock: D-Pad RIGHT → -psx.input.port7.dualshock.right - -;psx, Virtual Port 7, DualShock: Right Stick DOWN ↓ -psx.input.port7.dualshock.rstick_down - -;psx, Virtual Port 7, DualShock: Right Stick LEFT ← -psx.input.port7.dualshock.rstick_left - -;psx, Virtual Port 7, DualShock: Right Stick RIGHT → -psx.input.port7.dualshock.rstick_right - -;psx, Virtual Port 7, DualShock: Right Stick UP ↑ -psx.input.port7.dualshock.rstick_up - -;psx, Virtual Port 7, DualShock: SELECT -psx.input.port7.dualshock.select - -;psx, Virtual Port 7, DualShock: □ (left) -psx.input.port7.dualshock.square - -;psx, Virtual Port 7, DualShock: START -psx.input.port7.dualshock.start - -;psx, Virtual Port 7, DualShock: △ (upper) -psx.input.port7.dualshock.triangle - -;psx, Virtual Port 7, DualShock: D-Pad UP ↑ -psx.input.port7.dualshock.up - -;psx, Virtual Port 7, Digital Gamepad: ○ (right) -psx.input.port7.gamepad.circle - -;psx, Virtual Port 7, Digital Gamepad: x (lower) -psx.input.port7.gamepad.cross - -;psx, Virtual Port 7, Digital Gamepad: DOWN ↓ -psx.input.port7.gamepad.down - -;psx, Virtual Port 7, Digital Gamepad: L1 (front left shoulder) -psx.input.port7.gamepad.l1 - -;psx, Virtual Port 7, Digital Gamepad: L2 (rear left shoulder) -psx.input.port7.gamepad.l2 - -;psx, Virtual Port 7, Digital Gamepad: LEFT ← -psx.input.port7.gamepad.left - -;psx, Virtual Port 7, Digital Gamepad: R1 (front right shoulder) -psx.input.port7.gamepad.r1 - -;psx, Virtual Port 7, Digital Gamepad: R2 (rear right shoulder) -psx.input.port7.gamepad.r2 - -;psx, Virtual Port 7, Digital Gamepad: Rapid ○ (right) -psx.input.port7.gamepad.rapid_circle - -;psx, Virtual Port 7, Digital Gamepad: Rapid x (lower) -psx.input.port7.gamepad.rapid_cross - -;psx, Virtual Port 7, Digital Gamepad: Rapid □ (left) -psx.input.port7.gamepad.rapid_square - -;psx, Virtual Port 7, Digital Gamepad: Rapid △ (upper) -psx.input.port7.gamepad.rapid_triangle - -;psx, Virtual Port 7, Digital Gamepad: RIGHT → -psx.input.port7.gamepad.right - -;psx, Virtual Port 7, Digital Gamepad: SELECT -psx.input.port7.gamepad.select - -;psx, Virtual Port 7, Digital Gamepad: □ (left) -psx.input.port7.gamepad.square - -;psx, Virtual Port 7, Digital Gamepad: START -psx.input.port7.gamepad.start - -;psx, Virtual Port 7, Digital Gamepad: △ (upper) -psx.input.port7.gamepad.triangle - -;psx, Virtual Port 7, Digital Gamepad: UP ↑ -psx.input.port7.gamepad.up - -;Crosshairs color for lightgun on virtual port 7. -psx.input.port7.gun_chairs 0x0080FF - -;psx, Virtual Port 7, GunCon: A -psx.input.port7.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 7, GunCon: B -psx.input.port7.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 7, GunCon: Offscreen Shot(Simulated) -psx.input.port7.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 7, GunCon: Trigger -psx.input.port7.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 7, GunCon: X Axis -psx.input.port7.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 7, GunCon: Y Axis -psx.input.port7.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 7, Konami Justifier: O -psx.input.port7.justifier.o - -;psx, Virtual Port 7, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port7.justifier.offscreen_shot - -;psx, Virtual Port 7, Konami Justifier: Start -psx.input.port7.justifier.start - -;psx, Virtual Port 7, Konami Justifier: Trigger -psx.input.port7.justifier.trigger - -;psx, Virtual Port 7, Konami Justifier: X Axis -psx.input.port7.justifier.x_axis - -;psx, Virtual Port 7, Konami Justifier: Y Axis -psx.input.port7.justifier.y_axis - -;Emulate memory card on virtual port 7. -psx.input.port7.memcard 1 - -;psx, Virtual Port 7, Mouse: Left Button -psx.input.port7.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 7, Mouse: Motion Down -psx.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 7, Mouse: Motion Left -psx.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 7, Mouse: Motion Right -psx.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 7, Mouse: Motion Up -psx.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 7, Mouse: Right Button -psx.input.port7.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 7, neGcon: A -psx.input.port7.negcon.a - -;psx, Virtual Port 7, neGcon: B -psx.input.port7.negcon.b - -;psx, Virtual Port 7, neGcon: D-Pad DOWN ↓ -psx.input.port7.negcon.down - -;psx, Virtual Port 7, neGcon: I (Analog) -psx.input.port7.negcon.i - -;psx, Virtual Port 7, neGcon: II (Analog) -psx.input.port7.negcon.ii - -;psx, Virtual Port 7, neGcon: Left Shoulder (Analog) -psx.input.port7.negcon.l - -;psx, Virtual Port 7, neGcon: D-Pad LEFT ← -psx.input.port7.negcon.left - -;psx, Virtual Port 7, neGcon: Right Shoulder -psx.input.port7.negcon.r - -;psx, Virtual Port 7, neGcon: D-Pad RIGHT → -psx.input.port7.negcon.right - -;psx, Virtual Port 7, neGcon: START -psx.input.port7.negcon.start - -;psx, Virtual Port 7, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port7.negcon.twist_ccwise - -;psx, Virtual Port 7, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port7.negcon.twist_cwise - -;psx, Virtual Port 7, neGcon: D-Pad UP ↑ -psx.input.port7.negcon.up - -;Input device for Virtual Port 8 -psx.input.port8 gamepad - -;Analog axis scale coefficient for Analog Joystick on Virtual Port 8. -psx.input.port8.analogjoy.axis_scale 1.00 - -;psx, Virtual Port 8, Analog Joystick: Right stick, R-thumb -psx.input.port8.analogjoy.circle - -;psx, Virtual Port 8, Analog Joystick: Right stick, L-thumb -psx.input.port8.analogjoy.cross - -;psx, Virtual Port 8, Analog Joystick: Thumbstick DOWN ↓ -psx.input.port8.analogjoy.down - -;psx, Virtual Port 8, Analog Joystick: Left stick, L-thumb -psx.input.port8.analogjoy.l1 - -;psx, Virtual Port 8, Analog Joystick: Left stick, Trigger -psx.input.port8.analogjoy.l2 - -;psx, Virtual Port 8, Analog Joystick: Thumbstick LEFT ← -psx.input.port8.analogjoy.left - -;psx, Virtual Port 8, Analog Joystick: Left Stick, BACK ↓ -psx.input.port8.analogjoy.lstick_down - -;psx, Virtual Port 8, Analog Joystick: Left Stick, LEFT ← -psx.input.port8.analogjoy.lstick_left - -;psx, Virtual Port 8, Analog Joystick: Left Stick, RIGHT → -psx.input.port8.analogjoy.lstick_right - -;psx, Virtual Port 8, Analog Joystick: Left Stick, FORE ↑ -psx.input.port8.analogjoy.lstick_up - -;psx, Virtual Port 8, Analog Joystick: Left stick, R-thumb -psx.input.port8.analogjoy.r1 - -;psx, Virtual Port 8, Analog Joystick: Left stick, Pinky -psx.input.port8.analogjoy.r2 - -;psx, Virtual Port 8, Analog Joystick: Thumbstick RIGHT → -psx.input.port8.analogjoy.right - -;psx, Virtual Port 8, Analog Joystick: Right Stick, BACK ↓ -psx.input.port8.analogjoy.rstick_down - -;psx, Virtual Port 8, Analog Joystick: Right Stick, LEFT ← -psx.input.port8.analogjoy.rstick_left - -;psx, Virtual Port 8, Analog Joystick: Right Stick, RIGHT → -psx.input.port8.analogjoy.rstick_right - -;psx, Virtual Port 8, Analog Joystick: Right Stick, FORE ↑ -psx.input.port8.analogjoy.rstick_up - -;psx, Virtual Port 8, Analog Joystick: SELECT -psx.input.port8.analogjoy.select - -;psx, Virtual Port 8, Analog Joystick: Right stick, Trigger -psx.input.port8.analogjoy.square - -;psx, Virtual Port 8, Analog Joystick: START -psx.input.port8.analogjoy.start - -;psx, Virtual Port 8, Analog Joystick: Right stick, Pinky -psx.input.port8.analogjoy.triangle - -;psx, Virtual Port 8, Analog Joystick: Thumbstick UP ↑ -psx.input.port8.analogjoy.up - -;psx, Virtual Port 8, Dance Pad: ○ (upper right) -psx.input.port8.dancepad.circle - -;psx, Virtual Port 8, Dance Pad: x (upper left) -psx.input.port8.dancepad.cross - -;psx, Virtual Port 8, Dance Pad: DOWN ↓ -psx.input.port8.dancepad.down - -;psx, Virtual Port 8, Dance Pad: LEFT ← -psx.input.port8.dancepad.left - -;psx, Virtual Port 8, Dance Pad: RIGHT → -psx.input.port8.dancepad.right - -;psx, Virtual Port 8, Dance Pad: SELECT -psx.input.port8.dancepad.select - -;psx, Virtual Port 8, Dance Pad: □ (lower right) -psx.input.port8.dancepad.square - -;psx, Virtual Port 8, Dance Pad: START -psx.input.port8.dancepad.start - -;psx, Virtual Port 8, Dance Pad: △ (lower left) -psx.input.port8.dancepad.triangle - -;psx, Virtual Port 8, Dance Pad: UP ↑ -psx.input.port8.dancepad.up - -;Analog axis scale coefficient for Dual Analog on Virtual Port 8. -psx.input.port8.dualanalog.axis_scale 1.00 - -;psx, Virtual Port 8, Dual Analog: ○ (right) -psx.input.port8.dualanalog.circle - -;psx, Virtual Port 8, Dual Analog: x (lower) -psx.input.port8.dualanalog.cross - -;psx, Virtual Port 8, Dual Analog: D-Pad DOWN ↓ -psx.input.port8.dualanalog.down - -;psx, Virtual Port 8, Dual Analog: L1 (front left shoulder) -psx.input.port8.dualanalog.l1 - -;psx, Virtual Port 8, Dual Analog: L2 (rear left shoulder) -psx.input.port8.dualanalog.l2 - -;psx, Virtual Port 8, Dual Analog: Left Stick, Button(L3) -psx.input.port8.dualanalog.l3 - -;psx, Virtual Port 8, Dual Analog: D-Pad LEFT ← -psx.input.port8.dualanalog.left - -;psx, Virtual Port 8, Dual Analog: Left Stick DOWN ↓ -psx.input.port8.dualanalog.lstick_down - -;psx, Virtual Port 8, Dual Analog: Left Stick LEFT ← -psx.input.port8.dualanalog.lstick_left - -;psx, Virtual Port 8, Dual Analog: Left Stick RIGHT → -psx.input.port8.dualanalog.lstick_right - -;psx, Virtual Port 8, Dual Analog: Left Stick UP ↑ -psx.input.port8.dualanalog.lstick_up - -;psx, Virtual Port 8, Dual Analog: R1 (front right shoulder) -psx.input.port8.dualanalog.r1 - -;psx, Virtual Port 8, Dual Analog: R2 (rear right shoulder) -psx.input.port8.dualanalog.r2 - -;psx, Virtual Port 8, Dual Analog: Right stick, Button(R3) -psx.input.port8.dualanalog.r3 - -;psx, Virtual Port 8, Dual Analog: Rapid ○ (right) -psx.input.port8.dualanalog.rapid_circle - -;psx, Virtual Port 8, Dual Analog: Rapid x (lower) -psx.input.port8.dualanalog.rapid_cross - -;psx, Virtual Port 8, Dual Analog: Rapid □ (left) -psx.input.port8.dualanalog.rapid_square - -;psx, Virtual Port 8, Dual Analog: Rapid △ (upper) -psx.input.port8.dualanalog.rapid_triangle - -;psx, Virtual Port 8, Dual Analog: D-Pad RIGHT → -psx.input.port8.dualanalog.right - -;psx, Virtual Port 8, Dual Analog: Right Stick DOWN ↓ -psx.input.port8.dualanalog.rstick_down - -;psx, Virtual Port 8, Dual Analog: Right Stick LEFT ← -psx.input.port8.dualanalog.rstick_left - -;psx, Virtual Port 8, Dual Analog: Right Stick RIGHT → -psx.input.port8.dualanalog.rstick_right - -;psx, Virtual Port 8, Dual Analog: Right Stick UP ↑ -psx.input.port8.dualanalog.rstick_up - -;psx, Virtual Port 8, Dual Analog: SELECT -psx.input.port8.dualanalog.select - -;psx, Virtual Port 8, Dual Analog: □ (left) -psx.input.port8.dualanalog.square - -;psx, Virtual Port 8, Dual Analog: START -psx.input.port8.dualanalog.start - -;psx, Virtual Port 8, Dual Analog: △ (upper) -psx.input.port8.dualanalog.triangle - -;psx, Virtual Port 8, Dual Analog: D-Pad UP ↑ -psx.input.port8.dualanalog.up - -;psx, Virtual Port 8, DualShock: Analog(mode toggle) -psx.input.port8.dualshock.analog - -;Analog axis scale coefficient for DualShock on Virtual Port 8. -psx.input.port8.dualshock.axis_scale 1.00 - -;psx, Virtual Port 8, DualShock: ○ (right) -psx.input.port8.dualshock.circle - -;psx, Virtual Port 8, DualShock: x (lower) -psx.input.port8.dualshock.cross - -;psx, Virtual Port 8, DualShock: D-Pad DOWN ↓ -psx.input.port8.dualshock.down - -;psx, Virtual Port 8, DualShock: L1 (front left shoulder) -psx.input.port8.dualshock.l1 - -;psx, Virtual Port 8, DualShock: L2 (rear left shoulder) -psx.input.port8.dualshock.l2 - -;psx, Virtual Port 8, DualShock: Left Stick, Button(L3) -psx.input.port8.dualshock.l3 - -;psx, Virtual Port 8, DualShock: D-Pad LEFT ← -psx.input.port8.dualshock.left - -;psx, Virtual Port 8, DualShock: Left Stick DOWN ↓ -psx.input.port8.dualshock.lstick_down - -;psx, Virtual Port 8, DualShock: Left Stick LEFT ← -psx.input.port8.dualshock.lstick_left - -;psx, Virtual Port 8, DualShock: Left Stick RIGHT → -psx.input.port8.dualshock.lstick_right - -;psx, Virtual Port 8, DualShock: Left Stick UP ↑ -psx.input.port8.dualshock.lstick_up - -;psx, Virtual Port 8, DualShock: R1 (front right shoulder) -psx.input.port8.dualshock.r1 - -;psx, Virtual Port 8, DualShock: R2 (rear right shoulder) -psx.input.port8.dualshock.r2 - -;psx, Virtual Port 8, DualShock: Right stick, Button(R3) -psx.input.port8.dualshock.r3 - -;psx, Virtual Port 8, DualShock: Rapid ○ (right) -psx.input.port8.dualshock.rapid_circle - -;psx, Virtual Port 8, DualShock: Rapid x (lower) -psx.input.port8.dualshock.rapid_cross - -;psx, Virtual Port 8, DualShock: Rapid □ (left) -psx.input.port8.dualshock.rapid_square - -;psx, Virtual Port 8, DualShock: Rapid △ (upper) -psx.input.port8.dualshock.rapid_triangle - -;psx, Virtual Port 8, DualShock: D-Pad RIGHT → -psx.input.port8.dualshock.right - -;psx, Virtual Port 8, DualShock: Right Stick DOWN ↓ -psx.input.port8.dualshock.rstick_down - -;psx, Virtual Port 8, DualShock: Right Stick LEFT ← -psx.input.port8.dualshock.rstick_left - -;psx, Virtual Port 8, DualShock: Right Stick RIGHT → -psx.input.port8.dualshock.rstick_right - -;psx, Virtual Port 8, DualShock: Right Stick UP ↑ -psx.input.port8.dualshock.rstick_up - -;psx, Virtual Port 8, DualShock: SELECT -psx.input.port8.dualshock.select - -;psx, Virtual Port 8, DualShock: □ (left) -psx.input.port8.dualshock.square - -;psx, Virtual Port 8, DualShock: START -psx.input.port8.dualshock.start - -;psx, Virtual Port 8, DualShock: △ (upper) -psx.input.port8.dualshock.triangle - -;psx, Virtual Port 8, DualShock: D-Pad UP ↑ -psx.input.port8.dualshock.up - -;psx, Virtual Port 8, Digital Gamepad: ○ (right) -psx.input.port8.gamepad.circle - -;psx, Virtual Port 8, Digital Gamepad: x (lower) -psx.input.port8.gamepad.cross - -;psx, Virtual Port 8, Digital Gamepad: DOWN ↓ -psx.input.port8.gamepad.down - -;psx, Virtual Port 8, Digital Gamepad: L1 (front left shoulder) -psx.input.port8.gamepad.l1 - -;psx, Virtual Port 8, Digital Gamepad: L2 (rear left shoulder) -psx.input.port8.gamepad.l2 - -;psx, Virtual Port 8, Digital Gamepad: LEFT ← -psx.input.port8.gamepad.left - -;psx, Virtual Port 8, Digital Gamepad: R1 (front right shoulder) -psx.input.port8.gamepad.r1 - -;psx, Virtual Port 8, Digital Gamepad: R2 (rear right shoulder) -psx.input.port8.gamepad.r2 - -;psx, Virtual Port 8, Digital Gamepad: Rapid ○ (right) -psx.input.port8.gamepad.rapid_circle - -;psx, Virtual Port 8, Digital Gamepad: Rapid x (lower) -psx.input.port8.gamepad.rapid_cross - -;psx, Virtual Port 8, Digital Gamepad: Rapid □ (left) -psx.input.port8.gamepad.rapid_square - -;psx, Virtual Port 8, Digital Gamepad: Rapid △ (upper) -psx.input.port8.gamepad.rapid_triangle - -;psx, Virtual Port 8, Digital Gamepad: RIGHT → -psx.input.port8.gamepad.right - -;psx, Virtual Port 8, Digital Gamepad: SELECT -psx.input.port8.gamepad.select - -;psx, Virtual Port 8, Digital Gamepad: □ (left) -psx.input.port8.gamepad.square - -;psx, Virtual Port 8, Digital Gamepad: START -psx.input.port8.gamepad.start - -;psx, Virtual Port 8, Digital Gamepad: △ (upper) -psx.input.port8.gamepad.triangle - -;psx, Virtual Port 8, Digital Gamepad: UP ↑ -psx.input.port8.gamepad.up - -;Crosshairs color for lightgun on virtual port 8. -psx.input.port8.gun_chairs 0x8000FF - -;psx, Virtual Port 8, GunCon: A -psx.input.port8.guncon.a mouse 0x0 button_right - -;psx, Virtual Port 8, GunCon: B -psx.input.port8.guncon.b mouse 0x0 button_middle - -;psx, Virtual Port 8, GunCon: Offscreen Shot(Simulated) -psx.input.port8.guncon.offscreen_shot keyboard 0x0 44 - -;psx, Virtual Port 8, GunCon: Trigger -psx.input.port8.guncon.trigger mouse 0x0 button_left - -;psx, Virtual Port 8, GunCon: X Axis -psx.input.port8.guncon.x_axis mouse 0x0 cursor_x-+ - -;psx, Virtual Port 8, GunCon: Y Axis -psx.input.port8.guncon.y_axis mouse 0x0 cursor_y-+ - -;psx, Virtual Port 8, Konami Justifier: O -psx.input.port8.justifier.o - -;psx, Virtual Port 8, Konami Justifier: Offscreen Shot(Simulated) -psx.input.port8.justifier.offscreen_shot - -;psx, Virtual Port 8, Konami Justifier: Start -psx.input.port8.justifier.start - -;psx, Virtual Port 8, Konami Justifier: Trigger -psx.input.port8.justifier.trigger - -;psx, Virtual Port 8, Konami Justifier: X Axis -psx.input.port8.justifier.x_axis - -;psx, Virtual Port 8, Konami Justifier: Y Axis -psx.input.port8.justifier.y_axis - -;Emulate memory card on virtual port 8. -psx.input.port8.memcard 1 - -;psx, Virtual Port 8, Mouse: Left Button -psx.input.port8.mouse.left mouse 0x0 button_left - -;psx, Virtual Port 8, Mouse: Motion Down -psx.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;psx, Virtual Port 8, Mouse: Motion Left -psx.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;psx, Virtual Port 8, Mouse: Motion Right -psx.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;psx, Virtual Port 8, Mouse: Motion Up -psx.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;psx, Virtual Port 8, Mouse: Right Button -psx.input.port8.mouse.right mouse 0x0 button_right - -;psx, Virtual Port 8, neGcon: A -psx.input.port8.negcon.a - -;psx, Virtual Port 8, neGcon: B -psx.input.port8.negcon.b - -;psx, Virtual Port 8, neGcon: D-Pad DOWN ↓ -psx.input.port8.negcon.down - -;psx, Virtual Port 8, neGcon: I (Analog) -psx.input.port8.negcon.i - -;psx, Virtual Port 8, neGcon: II (Analog) -psx.input.port8.negcon.ii - -;psx, Virtual Port 8, neGcon: Left Shoulder (Analog) -psx.input.port8.negcon.l - -;psx, Virtual Port 8, neGcon: D-Pad LEFT ← -psx.input.port8.negcon.left - -;psx, Virtual Port 8, neGcon: Right Shoulder -psx.input.port8.negcon.r - -;psx, Virtual Port 8, neGcon: D-Pad RIGHT → -psx.input.port8.negcon.right - -;psx, Virtual Port 8, neGcon: START -psx.input.port8.negcon.start - -;psx, Virtual Port 8, neGcon: Twist ↑|↓ (Analog, Turn Left) -psx.input.port8.negcon.twist_ccwise - -;psx, Virtual Port 8, neGcon: Twist ↓|↑ (Analog, Turn Right) -psx.input.port8.negcon.twist_cwise - -;psx, Virtual Port 8, neGcon: D-Pad UP ↑ -psx.input.port8.negcon.up - -;Enable multitap on PSX port 1. -psx.input.pport1.multitap 0 - -;Enable multitap on PSX port 2. -psx.input.pport2.multitap 0 - -;Attempt to auto-detect region of game. -psx.region_autodetect 1 - -;Default region to use. -psx.region_default jp - -;Enable scanlines with specified opacity. -psx.scanlines 0 - -;Enable specified OpenGL shader. -psx.shader none - -;Force interlaced video to be treated as progressive. -psx.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -psx.shader.goat.hdiv 0.50 - -;Mask pattern. -psx.shader.goat.pat goatron - -;Enable scanlines effect. -psx.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -psx.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -psx.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -psx.slend 239 - -;Last displayed scanline in PAL mode. -psx.slendp 287 - -;First displayed scanline in NTSC mode. -psx.slstart 0 - -;First displayed scanline in PAL mode. -psx.slstartp 0 - -;Enable specified special video scaler. -psx.special none - -;SPU output resampler quality. -psx.spu.resamp_quality 5 - -;Stretch to fill screen. -psx.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -psx.tblur 0 - -;Accumulate color data rather than discarding it. -psx.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -psx.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -psx.videoip 1 - -;Full-screen horizontal resolution. -psx.xres 0 - -;Scaling factor for the X axis in windowed mode. -psx.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -psx.xscalefs 1.000000 - -;Full-screen vertical resolution. -psx.yres 0 - -;Scaling factor for the Y axis in windowed mode. -psx.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -psx.yscalefs 1.000000 - -;Double the raw image's height if it's below this threshold. -qtrecord.h_double_threshold 256 - -;Video codec to use. -qtrecord.vcodec cscd - -;Double the raw image's width if it's below this threshold. -qtrecord.w_double_threshold 384 - -;SLOW-forwarding speed multiplier. -sfspeed 0.75 - -;Treat the SLOW-forward button as a toggle. -sftoggle 0 - -;Enable (automatic) usage of this module. -sms.enable 1 - -;Enable FM sound emulation when playing domestic/Japan-region games. -sms.fm 1 - -;Force monophonic sound output. -sms.forcemono 0 - -;sms, Port 1, Gamepad: DOWN ↓ -sms.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;sms, Port 1, Gamepad: Fire 1/Start -sms.input.port1.gamepad.fire1 joystick 0x0003045e028e01010008000b00000000 button_0 - -;sms, Port 1, Gamepad: Fire 2 -sms.input.port1.gamepad.fire2 joystick 0x0003045e028e01010008000b00000000 button_1 - -;sms, Port 1, Gamepad: LEFT ← -sms.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;sms, Port 1, Gamepad: Pause -sms.input.port1.gamepad.pause joystick 0x0003045e028e01010008000b00000000 button_7 - -;sms, Port 1, Gamepad: Rapid Fire 1/Start -sms.input.port1.gamepad.rapid_fire1 joystick 0x0003045e028e01010008000b00000000 button_2 - -;sms, Port 1, Gamepad: Rapid Fire 2 -sms.input.port1.gamepad.rapid_fire2 joystick 0x0003045e028e01010008000b00000000 button_3 - -;sms, Port 1, Gamepad: RIGHT → -sms.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;sms, Port 1, Gamepad: UP ↑ -sms.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;sms, Port 2, Gamepad: DOWN ↓ -sms.input.port2.gamepad.down - -;sms, Port 2, Gamepad: Fire 1/Start -sms.input.port2.gamepad.fire1 - -;sms, Port 2, Gamepad: Fire 2 -sms.input.port2.gamepad.fire2 - -;sms, Port 2, Gamepad: LEFT ← -sms.input.port2.gamepad.left - -;sms, Port 2, Gamepad: Pause -sms.input.port2.gamepad.pause - -;sms, Port 2, Gamepad: Rapid Fire 1/Start -sms.input.port2.gamepad.rapid_fire1 - -;sms, Port 2, Gamepad: Rapid Fire 2 -sms.input.port2.gamepad.rapid_fire2 - -;sms, Port 2, Gamepad: RIGHT → -sms.input.port2.gamepad.right - -;sms, Port 2, Gamepad: UP ↑ -sms.input.port2.gamepad.up - -;Enable scanlines with specified opacity. -sms.scanlines 0 - -;Enable specified OpenGL shader. -sms.shader sabr - -;Force interlaced video to be treated as progressive. -sms.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -sms.shader.goat.hdiv 0.50 - -;Mask pattern. -sms.shader.goat.pat goatron - -;Enable scanlines effect. -sms.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -sms.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -sms.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -sms.slend 239 - -;Last displayed scanline in PAL mode. -sms.slendp 239 - -;First displayed scanline in NTSC mode. -sms.slstart 0 - -;First displayed scanline in PAL mode. -sms.slstartp 0 - -;Enable specified special video scaler. -sms.special none - -;Stretch to fill screen. -sms.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -sms.tblur 0 - -;Accumulate color data rather than discarding it. -sms.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -sms.tblur.accum.amount 50 - -;System territory/region. -sms.territory export - -;Enable (bi)linear interpolation. -sms.videoip 0 - -;Full-screen horizontal resolution. -sms.xres 0 - -;Scaling factor for the X axis in windowed mode. -sms.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -sms.xscalefs 1.000000 - -;Full-screen vertical resolution. -sms.yres 0 - -;Scaling factor for the Y axis in windowed mode. -sms.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -sms.yscalefs 1.000000 - -;APU output resampler quality. -snes.apu.resamp_quality 5 - -;Correct the aspect ratio. -snes.correct_aspect 0 - -;Enable (automatic) usage of this module. -snes.enable 1 - -;Force monophonic sound output. -snes.forcemono 0 - -;Enable horizontal blend(blur) filter. -snes.h_blend 0 - -;Input device for Port 1/1A -snes.input.port1 gamepad - -;snes, Port 1/1A, Gamepad: A (right) -snes.input.port1.gamepad.a keyboard 0x0 94 - -;snes, Port 1/1A, Gamepad: B (center, lower) -snes.input.port1.gamepad.b keyboard 0x0 90 - -;snes, Port 1/1A, Gamepad: DOWN ↓ -snes.input.port1.gamepad.down keyboard 0x0 22 - -;snes, Port 1/1A, Gamepad: Left Shoulder -snes.input.port1.gamepad.l keyboard 0x0 95 - -;snes, Port 1/1A, Gamepad: LEFT ← -snes.input.port1.gamepad.left keyboard 0x0 4 - -;snes, Port 1/1A, Gamepad: Right Shoulder -snes.input.port1.gamepad.r keyboard 0x0 97 - -;snes, Port 1/1A, Gamepad: Rapid A (right) -snes.input.port1.gamepad.rapid_a - -;snes, Port 1/1A, Gamepad: Rapid B (center, lower) -snes.input.port1.gamepad.rapid_b - -;snes, Port 1/1A, Gamepad: Rapid X (center, upper) -snes.input.port1.gamepad.rapid_x - -;snes, Port 1/1A, Gamepad: Rapid Y (left) -snes.input.port1.gamepad.rapid_y - -;snes, Port 1/1A, Gamepad: RIGHT → -snes.input.port1.gamepad.right keyboard 0x0 7 - -;snes, Port 1/1A, Gamepad: SELECT -snes.input.port1.gamepad.select keyboard 0x0 43 - -;snes, Port 1/1A, Gamepad: START -snes.input.port1.gamepad.start keyboard 0x0 40 - -;snes, Port 1/1A, Gamepad: UP ↑ -snes.input.port1.gamepad.up keyboard 0x0 26 - -;snes, Port 1/1A, Gamepad: X (center, upper) -snes.input.port1.gamepad.x keyboard 0x0 96 - -;snes, Port 1/1A, Gamepad: Y (left) -snes.input.port1.gamepad.y keyboard 0x0 92 - -;snes, Port 1/1A, Mouse: Left Button -snes.input.port1.mouse.left mouse 0x0 button_left - -;snes, Port 1/1A, Mouse: Motion Down -snes.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;snes, Port 1/1A, Mouse: Motion Left -snes.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;snes, Port 1/1A, Mouse: Motion Right -snes.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;snes, Port 1/1A, Mouse: Motion Up -snes.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;snes, Port 1/1A, Mouse: Right Button -snes.input.port1.mouse.right mouse 0x0 button_right - -;Enable multitap on SNES port 1. -snes.input.port1.multitap 0 - -;Input device for Port 2/2A -snes.input.port2 gamepad - -;snes, Port 2/2A, Gamepad: A (right) -snes.input.port2.gamepad.a - -;snes, Port 2/2A, Gamepad: B (center, lower) -snes.input.port2.gamepad.b - -;snes, Port 2/2A, Gamepad: DOWN ↓ -snes.input.port2.gamepad.down - -;snes, Port 2/2A, Gamepad: Left Shoulder -snes.input.port2.gamepad.l - -;snes, Port 2/2A, Gamepad: LEFT ← -snes.input.port2.gamepad.left - -;snes, Port 2/2A, Gamepad: Right Shoulder -snes.input.port2.gamepad.r - -;snes, Port 2/2A, Gamepad: Rapid A (right) -snes.input.port2.gamepad.rapid_a - -;snes, Port 2/2A, Gamepad: Rapid B (center, lower) -snes.input.port2.gamepad.rapid_b - -;snes, Port 2/2A, Gamepad: Rapid X (center, upper) -snes.input.port2.gamepad.rapid_x - -;snes, Port 2/2A, Gamepad: Rapid Y (left) -snes.input.port2.gamepad.rapid_y - -;snes, Port 2/2A, Gamepad: RIGHT → -snes.input.port2.gamepad.right - -;snes, Port 2/2A, Gamepad: SELECT -snes.input.port2.gamepad.select - -;snes, Port 2/2A, Gamepad: START -snes.input.port2.gamepad.start - -;snes, Port 2/2A, Gamepad: UP ↑ -snes.input.port2.gamepad.up - -;snes, Port 2/2A, Gamepad: X (center, upper) -snes.input.port2.gamepad.x - -;snes, Port 2/2A, Gamepad: Y (left) -snes.input.port2.gamepad.y - -;snes, Port 2/2A, Mouse: Left Button -snes.input.port2.mouse.left mouse 0x0 button_left - -;snes, Port 2/2A, Mouse: Motion Down -snes.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;snes, Port 2/2A, Mouse: Motion Left -snes.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;snes, Port 2/2A, Mouse: Motion Right -snes.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;snes, Port 2/2A, Mouse: Motion Up -snes.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;snes, Port 2/2A, Mouse: Right Button -snes.input.port2.mouse.right mouse 0x0 button_right - -;Enable multitap on SNES port 2. -snes.input.port2.multitap 0 - -;snes, Port 2/2A, Super Scope: Cursor -snes.input.port2.superscope.cursor mouse 0x0 button_right - -;snes, Port 2/2A, Super Scope: Offscreen Shot(Simulated) -snes.input.port2.superscope.offscreen_shot keyboard 0x0 44 - -;snes, Port 2/2A, Super Scope: Pause -snes.input.port2.superscope.pause mouse 0x0 button_middle - -;snes, Port 2/2A, Super Scope: Trigger -snes.input.port2.superscope.trigger mouse 0x0 button_left - -;snes, Port 2/2A, Super Scope: Turbo -snes.input.port2.superscope.turbo keyboard 0x0 77 - -;snes, Port 2/2A, Super Scope: X Axis -snes.input.port2.superscope.x_axis mouse 0x0 cursor_x-+ - -;snes, Port 2/2A, Super Scope: Y Axis -snes.input.port2.superscope.y_axis mouse 0x0 cursor_y-+ - -;snes, Port 2B, Gamepad: A (right) -snes.input.port3.gamepad.a - -;snes, Port 2B, Gamepad: B (center, lower) -snes.input.port3.gamepad.b - -;snes, Port 2B, Gamepad: DOWN ↓ -snes.input.port3.gamepad.down - -;snes, Port 2B, Gamepad: Left Shoulder -snes.input.port3.gamepad.l - -;snes, Port 2B, Gamepad: LEFT ← -snes.input.port3.gamepad.left - -;snes, Port 2B, Gamepad: Right Shoulder -snes.input.port3.gamepad.r - -;snes, Port 2B, Gamepad: Rapid A (right) -snes.input.port3.gamepad.rapid_a - -;snes, Port 2B, Gamepad: Rapid B (center, lower) -snes.input.port3.gamepad.rapid_b - -;snes, Port 2B, Gamepad: Rapid X (center, upper) -snes.input.port3.gamepad.rapid_x - -;snes, Port 2B, Gamepad: Rapid Y (left) -snes.input.port3.gamepad.rapid_y - -;snes, Port 2B, Gamepad: RIGHT → -snes.input.port3.gamepad.right - -;snes, Port 2B, Gamepad: SELECT -snes.input.port3.gamepad.select - -;snes, Port 2B, Gamepad: START -snes.input.port3.gamepad.start - -;snes, Port 2B, Gamepad: UP ↑ -snes.input.port3.gamepad.up - -;snes, Port 2B, Gamepad: X (center, upper) -snes.input.port3.gamepad.x - -;snes, Port 2B, Gamepad: Y (left) -snes.input.port3.gamepad.y - -;snes, Port 2C, Gamepad: A (right) -snes.input.port4.gamepad.a - -;snes, Port 2C, Gamepad: B (center, lower) -snes.input.port4.gamepad.b - -;snes, Port 2C, Gamepad: DOWN ↓ -snes.input.port4.gamepad.down - -;snes, Port 2C, Gamepad: Left Shoulder -snes.input.port4.gamepad.l - -;snes, Port 2C, Gamepad: LEFT ← -snes.input.port4.gamepad.left - -;snes, Port 2C, Gamepad: Right Shoulder -snes.input.port4.gamepad.r - -;snes, Port 2C, Gamepad: Rapid A (right) -snes.input.port4.gamepad.rapid_a - -;snes, Port 2C, Gamepad: Rapid B (center, lower) -snes.input.port4.gamepad.rapid_b - -;snes, Port 2C, Gamepad: Rapid X (center, upper) -snes.input.port4.gamepad.rapid_x - -;snes, Port 2C, Gamepad: Rapid Y (left) -snes.input.port4.gamepad.rapid_y - -;snes, Port 2C, Gamepad: RIGHT → -snes.input.port4.gamepad.right - -;snes, Port 2C, Gamepad: SELECT -snes.input.port4.gamepad.select - -;snes, Port 2C, Gamepad: START -snes.input.port4.gamepad.start - -;snes, Port 2C, Gamepad: UP ↑ -snes.input.port4.gamepad.up - -;snes, Port 2C, Gamepad: X (center, upper) -snes.input.port4.gamepad.x - -;snes, Port 2C, Gamepad: Y (left) -snes.input.port4.gamepad.y - -;snes, Port 2D, Gamepad: A (right) -snes.input.port5.gamepad.a - -;snes, Port 2D, Gamepad: B (center, lower) -snes.input.port5.gamepad.b - -;snes, Port 2D, Gamepad: DOWN ↓ -snes.input.port5.gamepad.down - -;snes, Port 2D, Gamepad: Left Shoulder -snes.input.port5.gamepad.l - -;snes, Port 2D, Gamepad: LEFT ← -snes.input.port5.gamepad.left - -;snes, Port 2D, Gamepad: Right Shoulder -snes.input.port5.gamepad.r - -;snes, Port 2D, Gamepad: Rapid A (right) -snes.input.port5.gamepad.rapid_a - -;snes, Port 2D, Gamepad: Rapid B (center, lower) -snes.input.port5.gamepad.rapid_b - -;snes, Port 2D, Gamepad: Rapid X (center, upper) -snes.input.port5.gamepad.rapid_x - -;snes, Port 2D, Gamepad: Rapid Y (left) -snes.input.port5.gamepad.rapid_y - -;snes, Port 2D, Gamepad: RIGHT → -snes.input.port5.gamepad.right - -;snes, Port 2D, Gamepad: SELECT -snes.input.port5.gamepad.select - -;snes, Port 2D, Gamepad: START -snes.input.port5.gamepad.start - -;snes, Port 2D, Gamepad: UP ↑ -snes.input.port5.gamepad.up - -;snes, Port 2D, Gamepad: X (center, upper) -snes.input.port5.gamepad.x - -;snes, Port 2D, Gamepad: Y (left) -snes.input.port5.gamepad.y - -;snes, Port 1B, Gamepad: A (right) -snes.input.port6.gamepad.a - -;snes, Port 1B, Gamepad: B (center, lower) -snes.input.port6.gamepad.b - -;snes, Port 1B, Gamepad: DOWN ↓ -snes.input.port6.gamepad.down - -;snes, Port 1B, Gamepad: Left Shoulder -snes.input.port6.gamepad.l - -;snes, Port 1B, Gamepad: LEFT ← -snes.input.port6.gamepad.left - -;snes, Port 1B, Gamepad: Right Shoulder -snes.input.port6.gamepad.r - -;snes, Port 1B, Gamepad: Rapid A (right) -snes.input.port6.gamepad.rapid_a - -;snes, Port 1B, Gamepad: Rapid B (center, lower) -snes.input.port6.gamepad.rapid_b - -;snes, Port 1B, Gamepad: Rapid X (center, upper) -snes.input.port6.gamepad.rapid_x - -;snes, Port 1B, Gamepad: Rapid Y (left) -snes.input.port6.gamepad.rapid_y - -;snes, Port 1B, Gamepad: RIGHT → -snes.input.port6.gamepad.right - -;snes, Port 1B, Gamepad: SELECT -snes.input.port6.gamepad.select - -;snes, Port 1B, Gamepad: START -snes.input.port6.gamepad.start - -;snes, Port 1B, Gamepad: UP ↑ -snes.input.port6.gamepad.up - -;snes, Port 1B, Gamepad: X (center, upper) -snes.input.port6.gamepad.x - -;snes, Port 1B, Gamepad: Y (left) -snes.input.port6.gamepad.y - -;snes, Port 1C, Gamepad: A (right) -snes.input.port7.gamepad.a - -;snes, Port 1C, Gamepad: B (center, lower) -snes.input.port7.gamepad.b - -;snes, Port 1C, Gamepad: DOWN ↓ -snes.input.port7.gamepad.down - -;snes, Port 1C, Gamepad: Left Shoulder -snes.input.port7.gamepad.l - -;snes, Port 1C, Gamepad: LEFT ← -snes.input.port7.gamepad.left - -;snes, Port 1C, Gamepad: Right Shoulder -snes.input.port7.gamepad.r - -;snes, Port 1C, Gamepad: Rapid A (right) -snes.input.port7.gamepad.rapid_a - -;snes, Port 1C, Gamepad: Rapid B (center, lower) -snes.input.port7.gamepad.rapid_b - -;snes, Port 1C, Gamepad: Rapid X (center, upper) -snes.input.port7.gamepad.rapid_x - -;snes, Port 1C, Gamepad: Rapid Y (left) -snes.input.port7.gamepad.rapid_y - -;snes, Port 1C, Gamepad: RIGHT → -snes.input.port7.gamepad.right - -;snes, Port 1C, Gamepad: SELECT -snes.input.port7.gamepad.select - -;snes, Port 1C, Gamepad: START -snes.input.port7.gamepad.start - -;snes, Port 1C, Gamepad: UP ↑ -snes.input.port7.gamepad.up - -;snes, Port 1C, Gamepad: X (center, upper) -snes.input.port7.gamepad.x - -;snes, Port 1C, Gamepad: Y (left) -snes.input.port7.gamepad.y - -;snes, Port 1D, Gamepad: A (right) -snes.input.port8.gamepad.a - -;snes, Port 1D, Gamepad: B (center, lower) -snes.input.port8.gamepad.b - -;snes, Port 1D, Gamepad: DOWN ↓ -snes.input.port8.gamepad.down - -;snes, Port 1D, Gamepad: Left Shoulder -snes.input.port8.gamepad.l - -;snes, Port 1D, Gamepad: LEFT ← -snes.input.port8.gamepad.left - -;snes, Port 1D, Gamepad: Right Shoulder -snes.input.port8.gamepad.r - -;snes, Port 1D, Gamepad: Rapid A (right) -snes.input.port8.gamepad.rapid_a - -;snes, Port 1D, Gamepad: Rapid B (center, lower) -snes.input.port8.gamepad.rapid_b - -;snes, Port 1D, Gamepad: Rapid X (center, upper) -snes.input.port8.gamepad.rapid_x - -;snes, Port 1D, Gamepad: Rapid Y (left) -snes.input.port8.gamepad.rapid_y - -;snes, Port 1D, Gamepad: RIGHT → -snes.input.port8.gamepad.right - -;snes, Port 1D, Gamepad: SELECT -snes.input.port8.gamepad.select - -;snes, Port 1D, Gamepad: START -snes.input.port8.gamepad.start - -;snes, Port 1D, Gamepad: UP ↑ -snes.input.port8.gamepad.up - -;snes, Port 1D, Gamepad: X (center, upper) -snes.input.port8.gamepad.x - -;snes, Port 1D, Gamepad: Y (left) -snes.input.port8.gamepad.y - -;Emulated mouse sensitivity. -snes.mouse_sensitivity 0.50 - -;Enable scanlines with specified opacity. -snes.scanlines 0 - -;Enable specified OpenGL shader. -snes.shader none - -;Force interlaced video to be treated as progressive. -snes.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -snes.shader.goat.hdiv 0.50 - -;Mask pattern. -snes.shader.goat.pat goatron - -;Enable scanlines effect. -snes.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -snes.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -snes.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -snes.special none - -;Stretch to fill screen. -snes.stretch aspect_mult2 - -;Enable video temporal blur(50/50 previous/current frame by default). -snes.tblur 0 - -;Accumulate color data rather than discarding it. -snes.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -snes.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -snes.videoip 0 - -;Full-screen horizontal resolution. -snes.xres 0 - -;Scaling factor for the X axis in windowed mode. -snes.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -snes.xscalefs 1.000000 - -;Full-screen vertical resolution. -snes.yres 0 - -;Scaling factor for the Y axis in windowed mode. -snes.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -snes.yscalefs 1.000000 - -;MSU1 audio read thread CPU affinity mask. -snes_faust.affinity.msu1.audio 0 - -;MSU1 data read thread CPU affinity mask. -snes_faust.affinity.msu1.data 0 - -;PPU rendering thread CPU affinity mask. -snes_faust.affinity.ppu 0 - -;Correct aspect ratio. -snes_faust.correct_aspect 1 - -;CX4 clock rate, specified in percentage of normal. -snes_faust.cx4.clock_rate 100 - -;Enable (automatic) usage of this module. -snes_faust.enable 1 - -;Force monophonic sound output. -snes_faust.forcemono 0 - -;Horizontal blending/doubling filter. -snes_faust.h_filter none - -;Emulated mouse sensitivity. -snes_faust.input.mouse_sensitivity 0.50 - -;Input device for Virtual Port 1 -snes_faust.input.port1 gamepad - -;snes_faust, Virtual Port 1, Gamepad: A (right) -snes_faust.input.port1.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;snes_faust, Virtual Port 1, Gamepad: B (center, lower) -snes_faust.input.port1.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;snes_faust, Virtual Port 1, Gamepad: DOWN ↓ -snes_faust.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;snes_faust, Virtual Port 1, Gamepad: Left Shoulder -snes_faust.input.port1.gamepad.l joystick 0x0003045e028e01010008000b00000000 button_4 - -;snes_faust, Virtual Port 1, Gamepad: LEFT ← -snes_faust.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;snes_faust, Virtual Port 1, Gamepad: Right Shoulder -snes_faust.input.port1.gamepad.r joystick 0x0003045e028e01010008000b00000000 button_5 - -;snes_faust, Virtual Port 1, Gamepad: Rapid A (right) -snes_faust.input.port1.gamepad.rapid_a keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: Rapid B (center, lower) -snes_faust.input.port1.gamepad.rapid_b keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: Rapid X (center, upper) -snes_faust.input.port1.gamepad.rapid_x keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: Rapid Y (left) -snes_faust.input.port1.gamepad.rapid_y keyboard 0x0 17 - -;snes_faust, Virtual Port 1, Gamepad: RIGHT → -snes_faust.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;snes_faust, Virtual Port 1, Gamepad: SELECT -snes_faust.input.port1.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;snes_faust, Virtual Port 1, Gamepad: START -snes_faust.input.port1.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;snes_faust, Virtual Port 1, Gamepad: UP ↑ -snes_faust.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;snes_faust, Virtual Port 1, Gamepad: X (center, upper) -snes_faust.input.port1.gamepad.x joystick 0x0003045e028e01010008000b00000000 button_3 - -;snes_faust, Virtual Port 1, Gamepad: Y (left) -snes_faust.input.port1.gamepad.y joystick 0x0003045e028e01010008000b00000000 button_2 - -;snes_faust, Virtual Port 1, Mouse: Left Button -snes_faust.input.port1.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 1, Mouse: Motion Down -snes_faust.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 1, Mouse: Motion Left -snes_faust.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 1, Mouse: Motion Right -snes_faust.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 1, Mouse: Motion Up -snes_faust.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 1, Mouse: Right Button -snes_faust.input.port1.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 2 -snes_faust.input.port2 gamepad - -;snes_faust, Virtual Port 2, Gamepad: A (right) -snes_faust.input.port2.gamepad.a - -;snes_faust, Virtual Port 2, Gamepad: B (center, lower) -snes_faust.input.port2.gamepad.b - -;snes_faust, Virtual Port 2, Gamepad: DOWN ↓ -snes_faust.input.port2.gamepad.down - -;snes_faust, Virtual Port 2, Gamepad: Left Shoulder -snes_faust.input.port2.gamepad.l - -;snes_faust, Virtual Port 2, Gamepad: LEFT ← -snes_faust.input.port2.gamepad.left - -;snes_faust, Virtual Port 2, Gamepad: Right Shoulder -snes_faust.input.port2.gamepad.r - -;snes_faust, Virtual Port 2, Gamepad: Rapid A (right) -snes_faust.input.port2.gamepad.rapid_a - -;snes_faust, Virtual Port 2, Gamepad: Rapid B (center, lower) -snes_faust.input.port2.gamepad.rapid_b - -;snes_faust, Virtual Port 2, Gamepad: Rapid X (center, upper) -snes_faust.input.port2.gamepad.rapid_x - -;snes_faust, Virtual Port 2, Gamepad: Rapid Y (left) -snes_faust.input.port2.gamepad.rapid_y - -;snes_faust, Virtual Port 2, Gamepad: RIGHT → -snes_faust.input.port2.gamepad.right - -;snes_faust, Virtual Port 2, Gamepad: SELECT -snes_faust.input.port2.gamepad.select - -;snes_faust, Virtual Port 2, Gamepad: START -snes_faust.input.port2.gamepad.start - -;snes_faust, Virtual Port 2, Gamepad: UP ↑ -snes_faust.input.port2.gamepad.up - -;snes_faust, Virtual Port 2, Gamepad: X (center, upper) -snes_faust.input.port2.gamepad.x - -;snes_faust, Virtual Port 2, Gamepad: Y (left) -snes_faust.input.port2.gamepad.y - -;snes_faust, Virtual Port 2, Mouse: Left Button -snes_faust.input.port2.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 2, Mouse: Motion Down -snes_faust.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 2, Mouse: Motion Left -snes_faust.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 2, Mouse: Motion Right -snes_faust.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 2, Mouse: Motion Up -snes_faust.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 2, Mouse: Right Button -snes_faust.input.port2.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 3 -snes_faust.input.port3 gamepad - -;snes_faust, Virtual Port 3, Gamepad: A (right) -snes_faust.input.port3.gamepad.a - -;snes_faust, Virtual Port 3, Gamepad: B (center, lower) -snes_faust.input.port3.gamepad.b - -;snes_faust, Virtual Port 3, Gamepad: DOWN ↓ -snes_faust.input.port3.gamepad.down - -;snes_faust, Virtual Port 3, Gamepad: Left Shoulder -snes_faust.input.port3.gamepad.l - -;snes_faust, Virtual Port 3, Gamepad: LEFT ← -snes_faust.input.port3.gamepad.left - -;snes_faust, Virtual Port 3, Gamepad: Right Shoulder -snes_faust.input.port3.gamepad.r - -;snes_faust, Virtual Port 3, Gamepad: Rapid A (right) -snes_faust.input.port3.gamepad.rapid_a - -;snes_faust, Virtual Port 3, Gamepad: Rapid B (center, lower) -snes_faust.input.port3.gamepad.rapid_b - -;snes_faust, Virtual Port 3, Gamepad: Rapid X (center, upper) -snes_faust.input.port3.gamepad.rapid_x - -;snes_faust, Virtual Port 3, Gamepad: Rapid Y (left) -snes_faust.input.port3.gamepad.rapid_y - -;snes_faust, Virtual Port 3, Gamepad: RIGHT → -snes_faust.input.port3.gamepad.right - -;snes_faust, Virtual Port 3, Gamepad: SELECT -snes_faust.input.port3.gamepad.select - -;snes_faust, Virtual Port 3, Gamepad: START -snes_faust.input.port3.gamepad.start - -;snes_faust, Virtual Port 3, Gamepad: UP ↑ -snes_faust.input.port3.gamepad.up - -;snes_faust, Virtual Port 3, Gamepad: X (center, upper) -snes_faust.input.port3.gamepad.x - -;snes_faust, Virtual Port 3, Gamepad: Y (left) -snes_faust.input.port3.gamepad.y - -;snes_faust, Virtual Port 3, Mouse: Left Button -snes_faust.input.port3.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 3, Mouse: Motion Down -snes_faust.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 3, Mouse: Motion Left -snes_faust.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 3, Mouse: Motion Right -snes_faust.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 3, Mouse: Motion Up -snes_faust.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 3, Mouse: Right Button -snes_faust.input.port3.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 4 -snes_faust.input.port4 gamepad - -;snes_faust, Virtual Port 4, Gamepad: A (right) -snes_faust.input.port4.gamepad.a - -;snes_faust, Virtual Port 4, Gamepad: B (center, lower) -snes_faust.input.port4.gamepad.b - -;snes_faust, Virtual Port 4, Gamepad: DOWN ↓ -snes_faust.input.port4.gamepad.down - -;snes_faust, Virtual Port 4, Gamepad: Left Shoulder -snes_faust.input.port4.gamepad.l - -;snes_faust, Virtual Port 4, Gamepad: LEFT ← -snes_faust.input.port4.gamepad.left - -;snes_faust, Virtual Port 4, Gamepad: Right Shoulder -snes_faust.input.port4.gamepad.r - -;snes_faust, Virtual Port 4, Gamepad: Rapid A (right) -snes_faust.input.port4.gamepad.rapid_a - -;snes_faust, Virtual Port 4, Gamepad: Rapid B (center, lower) -snes_faust.input.port4.gamepad.rapid_b - -;snes_faust, Virtual Port 4, Gamepad: Rapid X (center, upper) -snes_faust.input.port4.gamepad.rapid_x - -;snes_faust, Virtual Port 4, Gamepad: Rapid Y (left) -snes_faust.input.port4.gamepad.rapid_y - -;snes_faust, Virtual Port 4, Gamepad: RIGHT → -snes_faust.input.port4.gamepad.right - -;snes_faust, Virtual Port 4, Gamepad: SELECT -snes_faust.input.port4.gamepad.select - -;snes_faust, Virtual Port 4, Gamepad: START -snes_faust.input.port4.gamepad.start - -;snes_faust, Virtual Port 4, Gamepad: UP ↑ -snes_faust.input.port4.gamepad.up - -;snes_faust, Virtual Port 4, Gamepad: X (center, upper) -snes_faust.input.port4.gamepad.x - -;snes_faust, Virtual Port 4, Gamepad: Y (left) -snes_faust.input.port4.gamepad.y - -;snes_faust, Virtual Port 4, Mouse: Left Button -snes_faust.input.port4.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 4, Mouse: Motion Down -snes_faust.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 4, Mouse: Motion Left -snes_faust.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 4, Mouse: Motion Right -snes_faust.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 4, Mouse: Motion Up -snes_faust.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 4, Mouse: Right Button -snes_faust.input.port4.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 5 -snes_faust.input.port5 gamepad - -;snes_faust, Virtual Port 5, Gamepad: A (right) -snes_faust.input.port5.gamepad.a - -;snes_faust, Virtual Port 5, Gamepad: B (center, lower) -snes_faust.input.port5.gamepad.b - -;snes_faust, Virtual Port 5, Gamepad: DOWN ↓ -snes_faust.input.port5.gamepad.down - -;snes_faust, Virtual Port 5, Gamepad: Left Shoulder -snes_faust.input.port5.gamepad.l - -;snes_faust, Virtual Port 5, Gamepad: LEFT ← -snes_faust.input.port5.gamepad.left - -;snes_faust, Virtual Port 5, Gamepad: Right Shoulder -snes_faust.input.port5.gamepad.r - -;snes_faust, Virtual Port 5, Gamepad: Rapid A (right) -snes_faust.input.port5.gamepad.rapid_a - -;snes_faust, Virtual Port 5, Gamepad: Rapid B (center, lower) -snes_faust.input.port5.gamepad.rapid_b - -;snes_faust, Virtual Port 5, Gamepad: Rapid X (center, upper) -snes_faust.input.port5.gamepad.rapid_x - -;snes_faust, Virtual Port 5, Gamepad: Rapid Y (left) -snes_faust.input.port5.gamepad.rapid_y - -;snes_faust, Virtual Port 5, Gamepad: RIGHT → -snes_faust.input.port5.gamepad.right - -;snes_faust, Virtual Port 5, Gamepad: SELECT -snes_faust.input.port5.gamepad.select - -;snes_faust, Virtual Port 5, Gamepad: START -snes_faust.input.port5.gamepad.start - -;snes_faust, Virtual Port 5, Gamepad: UP ↑ -snes_faust.input.port5.gamepad.up - -;snes_faust, Virtual Port 5, Gamepad: X (center, upper) -snes_faust.input.port5.gamepad.x - -;snes_faust, Virtual Port 5, Gamepad: Y (left) -snes_faust.input.port5.gamepad.y - -;snes_faust, Virtual Port 5, Mouse: Left Button -snes_faust.input.port5.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 5, Mouse: Motion Down -snes_faust.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 5, Mouse: Motion Left -snes_faust.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 5, Mouse: Motion Right -snes_faust.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 5, Mouse: Motion Up -snes_faust.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 5, Mouse: Right Button -snes_faust.input.port5.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 6 -snes_faust.input.port6 gamepad - -;snes_faust, Virtual Port 6, Gamepad: A (right) -snes_faust.input.port6.gamepad.a - -;snes_faust, Virtual Port 6, Gamepad: B (center, lower) -snes_faust.input.port6.gamepad.b - -;snes_faust, Virtual Port 6, Gamepad: DOWN ↓ -snes_faust.input.port6.gamepad.down - -;snes_faust, Virtual Port 6, Gamepad: Left Shoulder -snes_faust.input.port6.gamepad.l - -;snes_faust, Virtual Port 6, Gamepad: LEFT ← -snes_faust.input.port6.gamepad.left - -;snes_faust, Virtual Port 6, Gamepad: Right Shoulder -snes_faust.input.port6.gamepad.r - -;snes_faust, Virtual Port 6, Gamepad: Rapid A (right) -snes_faust.input.port6.gamepad.rapid_a - -;snes_faust, Virtual Port 6, Gamepad: Rapid B (center, lower) -snes_faust.input.port6.gamepad.rapid_b - -;snes_faust, Virtual Port 6, Gamepad: Rapid X (center, upper) -snes_faust.input.port6.gamepad.rapid_x - -;snes_faust, Virtual Port 6, Gamepad: Rapid Y (left) -snes_faust.input.port6.gamepad.rapid_y - -;snes_faust, Virtual Port 6, Gamepad: RIGHT → -snes_faust.input.port6.gamepad.right - -;snes_faust, Virtual Port 6, Gamepad: SELECT -snes_faust.input.port6.gamepad.select - -;snes_faust, Virtual Port 6, Gamepad: START -snes_faust.input.port6.gamepad.start - -;snes_faust, Virtual Port 6, Gamepad: UP ↑ -snes_faust.input.port6.gamepad.up - -;snes_faust, Virtual Port 6, Gamepad: X (center, upper) -snes_faust.input.port6.gamepad.x - -;snes_faust, Virtual Port 6, Gamepad: Y (left) -snes_faust.input.port6.gamepad.y - -;snes_faust, Virtual Port 6, Mouse: Left Button -snes_faust.input.port6.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 6, Mouse: Motion Down -snes_faust.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 6, Mouse: Motion Left -snes_faust.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 6, Mouse: Motion Right -snes_faust.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 6, Mouse: Motion Up -snes_faust.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 6, Mouse: Right Button -snes_faust.input.port6.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 7 -snes_faust.input.port7 gamepad - -;snes_faust, Virtual Port 7, Gamepad: A (right) -snes_faust.input.port7.gamepad.a - -;snes_faust, Virtual Port 7, Gamepad: B (center, lower) -snes_faust.input.port7.gamepad.b - -;snes_faust, Virtual Port 7, Gamepad: DOWN ↓ -snes_faust.input.port7.gamepad.down - -;snes_faust, Virtual Port 7, Gamepad: Left Shoulder -snes_faust.input.port7.gamepad.l - -;snes_faust, Virtual Port 7, Gamepad: LEFT ← -snes_faust.input.port7.gamepad.left - -;snes_faust, Virtual Port 7, Gamepad: Right Shoulder -snes_faust.input.port7.gamepad.r - -;snes_faust, Virtual Port 7, Gamepad: Rapid A (right) -snes_faust.input.port7.gamepad.rapid_a - -;snes_faust, Virtual Port 7, Gamepad: Rapid B (center, lower) -snes_faust.input.port7.gamepad.rapid_b - -;snes_faust, Virtual Port 7, Gamepad: Rapid X (center, upper) -snes_faust.input.port7.gamepad.rapid_x - -;snes_faust, Virtual Port 7, Gamepad: Rapid Y (left) -snes_faust.input.port7.gamepad.rapid_y - -;snes_faust, Virtual Port 7, Gamepad: RIGHT → -snes_faust.input.port7.gamepad.right - -;snes_faust, Virtual Port 7, Gamepad: SELECT -snes_faust.input.port7.gamepad.select - -;snes_faust, Virtual Port 7, Gamepad: START -snes_faust.input.port7.gamepad.start - -;snes_faust, Virtual Port 7, Gamepad: UP ↑ -snes_faust.input.port7.gamepad.up - -;snes_faust, Virtual Port 7, Gamepad: X (center, upper) -snes_faust.input.port7.gamepad.x - -;snes_faust, Virtual Port 7, Gamepad: Y (left) -snes_faust.input.port7.gamepad.y - -;snes_faust, Virtual Port 7, Mouse: Left Button -snes_faust.input.port7.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 7, Mouse: Motion Down -snes_faust.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 7, Mouse: Motion Left -snes_faust.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 7, Mouse: Motion Right -snes_faust.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 7, Mouse: Motion Up -snes_faust.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 7, Mouse: Right Button -snes_faust.input.port7.mouse.right mouse 0x0 button_right - -;Input device for Virtual Port 8 -snes_faust.input.port8 gamepad - -;snes_faust, Virtual Port 8, Gamepad: A (right) -snes_faust.input.port8.gamepad.a - -;snes_faust, Virtual Port 8, Gamepad: B (center, lower) -snes_faust.input.port8.gamepad.b - -;snes_faust, Virtual Port 8, Gamepad: DOWN ↓ -snes_faust.input.port8.gamepad.down - -;snes_faust, Virtual Port 8, Gamepad: Left Shoulder -snes_faust.input.port8.gamepad.l - -;snes_faust, Virtual Port 8, Gamepad: LEFT ← -snes_faust.input.port8.gamepad.left - -;snes_faust, Virtual Port 8, Gamepad: Right Shoulder -snes_faust.input.port8.gamepad.r - -;snes_faust, Virtual Port 8, Gamepad: Rapid A (right) -snes_faust.input.port8.gamepad.rapid_a - -;snes_faust, Virtual Port 8, Gamepad: Rapid B (center, lower) -snes_faust.input.port8.gamepad.rapid_b - -;snes_faust, Virtual Port 8, Gamepad: Rapid X (center, upper) -snes_faust.input.port8.gamepad.rapid_x - -;snes_faust, Virtual Port 8, Gamepad: Rapid Y (left) -snes_faust.input.port8.gamepad.rapid_y - -;snes_faust, Virtual Port 8, Gamepad: RIGHT → -snes_faust.input.port8.gamepad.right - -;snes_faust, Virtual Port 8, Gamepad: SELECT -snes_faust.input.port8.gamepad.select - -;snes_faust, Virtual Port 8, Gamepad: START -snes_faust.input.port8.gamepad.start - -;snes_faust, Virtual Port 8, Gamepad: UP ↑ -snes_faust.input.port8.gamepad.up - -;snes_faust, Virtual Port 8, Gamepad: X (center, upper) -snes_faust.input.port8.gamepad.x - -;snes_faust, Virtual Port 8, Gamepad: Y (left) -snes_faust.input.port8.gamepad.y - -;snes_faust, Virtual Port 8, Mouse: Left Button -snes_faust.input.port8.mouse.left mouse 0x0 button_left - -;snes_faust, Virtual Port 8, Mouse: Motion Down -snes_faust.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;snes_faust, Virtual Port 8, Mouse: Motion Left -snes_faust.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;snes_faust, Virtual Port 8, Mouse: Motion Right -snes_faust.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;snes_faust, Virtual Port 8, Mouse: Motion Up -snes_faust.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;snes_faust, Virtual Port 8, Mouse: Right Button -snes_faust.input.port8.mouse.right mouse 0x0 button_right - -;Enable multitap on SNES port 1. -snes_faust.input.sport1.multitap 0 - -;Enable multitap on SNES port 2. -snes_faust.input.sport2.multitap 0 - -;MSU1 sound quality. -snes_faust.msu1.resamp_quality 4 - -;Region of SNES to emulate. -snes_faust.region auto - -;PPU renderer. -snes_faust.renderer st - -;Sound quality. -snes_faust.resamp_quality 3 - -;Sound output rate tolerance. -snes_faust.resamp_rate_error 0.000035 - -;Enable scanlines with specified opacity. -snes_faust.scanlines 0 - -;Enable specified OpenGL shader. -snes_faust.shader sabr - -;Force interlaced video to be treated as progressive. -snes_faust.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -snes_faust.shader.goat.hdiv 0.50 - -;Mask pattern. -snes_faust.shader.goat.pat goatron - -;Enable scanlines effect. -snes_faust.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -snes_faust.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -snes_faust.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -snes_faust.slend 223 - -;Last displayed scanline in PAL mode. -snes_faust.slendp 238 - -;First displayed scanline in NTSC mode. -snes_faust.slstart 0 - -;First displayed scanline in PAL mode. -snes_faust.slstartp 0 - -;Enable specified special video scaler. -snes_faust.special none - -;Enable 1-frame speculative execution for video output. -snes_faust.spex 0 - -;Enable speculative execution for sound output too. -snes_faust.spex.sound 1 - -;Stretch to fill screen. -snes_faust.stretch aspect - -;Super FX clock rate, specified in percentage of normal. -snes_faust.superfx.clock_rate 100 - -;Enable SuperFX instruction cache emulation. -snes_faust.superfx.icache 0 - -;Enable video temporal blur(50/50 previous/current frame by default). -snes_faust.tblur 0 - -;Accumulate color data rather than discarding it. -snes_faust.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -snes_faust.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -snes_faust.videoip 1 - -;Full-screen horizontal resolution. -snes_faust.xres 0 - -;Scaling factor for the X axis in windowed mode. -snes_faust.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -snes_faust.xscalefs 1.000000 - -;Full-screen vertical resolution. -snes_faust.yres 0 - -;Scaling factor for the Y axis in windowed mode. -snes_faust.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -snes_faust.yscalefs 1.000000 - -;Enable sound output. -sound 1 - -;Desired buffer size in milliseconds(ms). -sound.buffer_time 0 - -;Select sound output device. -sound.device sexyal-literal-default - -;Select sound driver. -sound.driver default - -;Desired period size in microseconds(μs). -sound.period_time 0 - -;Specifies the sound playback rate, in sound frames per second("Hz"). -sound.rate 48000 - -;Sound volume level, in percent. -sound.volume 100 - -;DO NOT USE UNLESS YOU'RE A SPACE GOAT -srwautoenable 0 - -;Number of frames to keep states for when state rewinding is enabled. -srwframes 600 - -;VDP2 rendering thread CPU affinity mask. -ss.affinity.vdp2 0 - -;Path to the Japan ROM BIOS -ss.bios_jp /storage/roms/bios/sega_101.bin - -;Path to the North America and Europe ROM BIOS -ss.bios_na_eu /storage/roms/bios/mpr-17933.bin - -;Enable BIOS ROM image sanity checks. -ss.bios_sanity 1 - -;Path to the Europe ST-V ROM BIOS -ss.bios_stv_eu /storage/roms/bios/epr-17954a.ic8 - -;Path to the Japan ST-V ROM BIOS -ss.bios_stv_jp /storage/roms/bios/epr-20091.ic8 - -;Path to the North America ST-V ROM BIOS -ss.bios_stv_na /storage/roms/bios/epr-17952a.ic8 - -;Expansion cart. -ss.cart none - -;Default expansion cart when autodetection fails. -ss.cart.auto_default backup - -;Path to KoF 95 ROM image. -ss.cart.kof95_path /storage/roms/bios/mpr-18811-mx.ic1 - -;Path to Ultraman ROM image. -ss.cart.ultraman_path /storage/roms/bios/mpr-19367-mx.ic1 - -;Enable CD (image) sanity checks. -ss.cd_sanity 1 - -;Correct aspect ratio. -ss.correct_aspect 1 - -;CD image to use with bootable cart ROM image loading. -ss.dbg_exe_cdpath - -;Disassembly font size. -ss.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -ss.debugger.memcharenc SJIS - -;Enable (automatic) usage of this module. -ss.enable 1 - -;Force monophonic sound output. -ss.forcemono 0 - -;Enable horizontal blend(blur) filter. -ss.h_blend 0 - -;Show horizontal overscan area. -ss.h_overscan 1 - -;ss, Builtin, builtin: SMPC Reset -ss.input.builtin.builtin.smpc_reset - -;ss, Builtin, builtin: ST-V Pause -ss.input.builtin.builtin.stv_pause keyboard 0x0 86 && keyboard 0x0 88 - -;ss, Builtin, builtin: ST-V Service -ss.input.builtin.builtin.stv_service keyboard 0x0 86 && keyboard 0x0 87 - -;ss, Builtin, builtin: ST-V Test -ss.input.builtin.builtin.stv_test keyboard 0x0 86 && keyboard 0x0 84 - -;Emulated mouse sensitivity. -ss.input.mouse_sensitivity 0.50 - -;Input device for Virtual Port 1 -ss.input.port1 gamepad - -;ss, Virtual Port 1, 3D Control Pad: A -ss.input.port1.3dpad.a joystick 0x0003045e028e01010008000b00000000 button_0 - -;ss, Virtual Port 1, 3D Control Pad: Analog DOWN ↓ -ss.input.port1.3dpad.analog_down joystick 0x0003045e028e01010008000b00000000 abs_1+ - -;ss, Virtual Port 1, 3D Control Pad: Analog LEFT ← -ss.input.port1.3dpad.analog_left joystick 0x0003045e028e01010008000b00000000 abs_0- - -;ss, Virtual Port 1, 3D Control Pad: Analog RIGHT → -ss.input.port1.3dpad.analog_right joystick 0x0003045e028e01010008000b00000000 abs_0+ - -;ss, Virtual Port 1, 3D Control Pad: Analog UP ↑ -ss.input.port1.3dpad.analog_up joystick 0x0003045e028e01010008000b00000000 abs_1- - -;ss, Virtual Port 1, 3D Control Pad: B -ss.input.port1.3dpad.b joystick 0x0003045e028e01010008000b00000000 button_1 - -;ss, Virtual Port 1, 3D Control Pad: C -ss.input.port1.3dpad.c joystick 0x0003045e028e01010008000b00000000 button_5 - -;ss, Virtual Port 1, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port1.3dpad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;ss, Virtual Port 1, 3D Control Pad: D-Pad LEFT ← -ss.input.port1.3dpad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;ss, Virtual Port 1, 3D Control Pad: Left Shoulder (Analog) -ss.input.port1.3dpad.ls keyboard 0x0 39 || joystick 0x0003045e028e01010008000b00000000 abs_2+ || joystick 0x0003045e028e01010008000b00000000 abs_2- - -;ss, Virtual Port 1, 3D Control Pad: Mode -ss.input.port1.3dpad.mode joystick 0x0003045e028e01010008000b00000000 button_8 - -;Default position for switch "Mode". -ss.input.port1.3dpad.mode.defpos analog - -;ss, Virtual Port 1, 3D Control Pad: D-Pad RIGHT → -ss.input.port1.3dpad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;ss, Virtual Port 1, 3D Control Pad: Right Shoulder (Analog) -ss.input.port1.3dpad.rs joystick 0x0003045e028e01010008000b00000000 abs_5+ || joystick 0x0003045e028e01010008000b00000000 abs_5- - -;ss, Virtual Port 1, 3D Control Pad: START -ss.input.port1.3dpad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;ss, Virtual Port 1, 3D Control Pad: D-Pad UP ↑ -ss.input.port1.3dpad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;ss, Virtual Port 1, 3D Control Pad: X -ss.input.port1.3dpad.x joystick 0x0003045e028e01010008000b00000000 button_2 - -;ss, Virtual Port 1, 3D Control Pad: Y -ss.input.port1.3dpad.y joystick 0x0003045e028e01010008000b00000000 button_3 - -;ss, Virtual Port 1, 3D Control Pad: Z -ss.input.port1.3dpad.z joystick 0x0003045e028e01010008000b00000000 button_4 - -;ss, Virtual Port 1, Dual Mission: A (R Stick Trigger) -ss.input.port1.dmission.a - -;ss, Virtual Port 1, Dual Mission: A AF -ss.input.port1.dmission.afa - -;Default position for switch "A AF". -ss.input.port1.dmission.afa.defpos off - -;ss, Virtual Port 1, Dual Mission: B AF -ss.input.port1.dmission.afb - -;Default position for switch "B AF". -ss.input.port1.dmission.afb.defpos off - -;ss, Virtual Port 1, Dual Mission: C AF -ss.input.port1.dmission.afc - -;Default position for switch "C AF". -ss.input.port1.dmission.afc.defpos off - -;ss, Virtual Port 1, Dual Mission: L AF -ss.input.port1.dmission.afl - -;Default position for switch "L AF". -ss.input.port1.dmission.afl.defpos off - -;ss, Virtual Port 1, Dual Mission: R AF -ss.input.port1.dmission.afr - -;Default position for switch "R AF". -ss.input.port1.dmission.afr.defpos off - -;ss, Virtual Port 1, Dual Mission: Autofire Speed -ss.input.port1.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port1.dmission.afspeed.defpos 1 - -;ss, Virtual Port 1, Dual Mission: X AF -ss.input.port1.dmission.afx - -;Default position for switch "X AF". -ss.input.port1.dmission.afx.defpos off - -;ss, Virtual Port 1, Dual Mission: Y AF -ss.input.port1.dmission.afy - -;Default position for switch "Y AF". -ss.input.port1.dmission.afy.defpos off - -;ss, Virtual Port 1, Dual Mission: Z AF -ss.input.port1.dmission.afz - -;Default position for switch "Z AF". -ss.input.port1.dmission.afz.defpos off - -;ss, Virtual Port 1, Dual Mission: B (R Stick Left Button) -ss.input.port1.dmission.b - -;ss, Virtual Port 1, Dual Mission: C (R Stick Right Button) -ss.input.port1.dmission.c - -;ss, Virtual Port 1, Dual Mission: L -ss.input.port1.dmission.l - -;ss, Virtual Port 1, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port1.dmission.lstick_back - -;ss, Virtual Port 1, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port1.dmission.lstick_fore - -;ss, Virtual Port 1, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port1.dmission.lstick_left - -;ss, Virtual Port 1, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port1.dmission.lstick_right - -;ss, Virtual Port 1, Dual Mission: L Throttle Down (Analog) -ss.input.port1.dmission.lthrottle_down - -;ss, Virtual Port 1, Dual Mission: L Throttle Up (Analog) -ss.input.port1.dmission.lthrottle_up - -;ss, Virtual Port 1, Dual Mission: R -ss.input.port1.dmission.r - -;ss, Virtual Port 1, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port1.dmission.rstick_back - -;ss, Virtual Port 1, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port1.dmission.rstick_fore - -;ss, Virtual Port 1, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port1.dmission.rstick_left - -;ss, Virtual Port 1, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port1.dmission.rstick_right - -;ss, Virtual Port 1, Dual Mission: R Throttle Down (Analog) -ss.input.port1.dmission.rthrottle_down - -;ss, Virtual Port 1, Dual Mission: R Throttle Up (Analog) -ss.input.port1.dmission.rthrottle_up - -;ss, Virtual Port 1, Dual Mission: START -ss.input.port1.dmission.start - -;ss, Virtual Port 1, Dual Mission: X (L Stick Trigger) -ss.input.port1.dmission.x - -;ss, Virtual Port 1, Dual Mission: Y (L Stick Left Button) -ss.input.port1.dmission.y - -;ss, Virtual Port 1, Dual Mission: Z (L Stick Right Button) -ss.input.port1.dmission.z - -;ss, Virtual Port 1, Digital Gamepad: A -ss.input.port1.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;ss, Virtual Port 1, Digital Gamepad: B -ss.input.port1.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;ss, Virtual Port 1, Digital Gamepad: C -ss.input.port1.gamepad.c joystick 0x0003045e028e01010008000b00000000 button_2 - -;ss, Virtual Port 1, Digital Gamepad: DOWN ↓ -ss.input.port1.gamepad.down joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;ss, Virtual Port 1, Digital Gamepad: LEFT ← -ss.input.port1.gamepad.left joystick 0x0003045e028e01010008000b00000000 abs_6- - -;ss, Virtual Port 1, Digital Gamepad: Left Shoulder -ss.input.port1.gamepad.ls keyboard 0x0 9 - -;ss, Virtual Port 1, Digital Gamepad: RIGHT → -ss.input.port1.gamepad.right joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;ss, Virtual Port 1, Digital Gamepad: Right Shoulder -ss.input.port1.gamepad.rs keyboard 0x0 10 - -;ss, Virtual Port 1, Digital Gamepad: START -ss.input.port1.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;ss, Virtual Port 1, Digital Gamepad: UP ↑ -ss.input.port1.gamepad.up joystick 0x0003045e028e01010008000b00000000 abs_7- - -;ss, Virtual Port 1, Digital Gamepad: X -ss.input.port1.gamepad.x joystick 0x0003045e028e01010008000b00000000 button_3 - -;ss, Virtual Port 1, Digital Gamepad: Y -ss.input.port1.gamepad.y joystick 0x0003045e028e01010008000b00000000 button_4 - -;ss, Virtual Port 1, Digital Gamepad: Z -ss.input.port1.gamepad.z joystick 0x0003045e028e01010008000b00000000 button_5 - -;ss, Virtual Port 1, Light Gun: Offscreen Shot(Simulated) -ss.input.port1.gun.offscreen_shot joystick 0x0003045e028e01010008000b00000000 button_3 - -;ss, Virtual Port 1, Light Gun: START -ss.input.port1.gun.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;ss, Virtual Port 1, Light Gun: Trigger -ss.input.port1.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 1, Light Gun: X Axis -ss.input.port1.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 1, Light Gun: Y Axis -ss.input.port1.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 1. -ss.input.port1.gun_chairs 0xFF0000 - -;ss, Virtual Port 1, Keyboard (JP): 0(Zero) -ss.input.port1.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 1, Keyboard (JP): 1(One) -ss.input.port1.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 1, Keyboard (JP): 2 -ss.input.port1.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 1, Keyboard (JP): 3 -ss.input.port1.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 1, Keyboard (JP): 4 -ss.input.port1.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 1, Keyboard (JP): 5 -ss.input.port1.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 1, Keyboard (JP): 6 -ss.input.port1.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 1, Keyboard (JP): 7 -ss.input.port1.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 1, Keyboard (JP): 8 -ss.input.port1.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 1, Keyboard (JP): 9 -ss.input.port1.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 1, Keyboard (JP): A -ss.input.port1.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 1, Keyboard (JP): At @ -ss.input.port1.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 1, Keyboard (JP): B -ss.input.port1.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 1, Keyboard (JP): Backslash \ -ss.input.port1.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 1, Keyboard (JP): Backspace -ss.input.port1.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 1, Keyboard (JP): C -ss.input.port1.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 1, Keyboard (JP): Caps Lock/英数 -ss.input.port1.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 1, Keyboard (JP): Circumflex ^ -ss.input.port1.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 1, Keyboard (JP): Colon : -ss.input.port1.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 1, Keyboard (JP): Comma , -ss.input.port1.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 1, Keyboard (JP): 変換 -ss.input.port1.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 1, Keyboard (JP): D -ss.input.port1.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 1, Keyboard (JP): Delete -ss.input.port1.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 1, Keyboard (JP): Down -ss.input.port1.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 1, Keyboard (JP): E -ss.input.port1.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 1, Keyboard (JP): End -ss.input.port1.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 1, Keyboard (JP): Enter -ss.input.port1.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 1, Keyboard (JP): Escape -ss.input.port1.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 1, Keyboard (JP): F -ss.input.port1.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 1, Keyboard (JP): F1 -ss.input.port1.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 1, Keyboard (JP): F10 -ss.input.port1.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 1, Keyboard (JP): F11 -ss.input.port1.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 1, Keyboard (JP): F12 -ss.input.port1.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 1, Keyboard (JP): F2 -ss.input.port1.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 1, Keyboard (JP): F3 -ss.input.port1.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 1, Keyboard (JP): F4 -ss.input.port1.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 1, Keyboard (JP): F5 -ss.input.port1.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 1, Keyboard (JP): F6 -ss.input.port1.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 1, Keyboard (JP): F7 -ss.input.port1.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 1, Keyboard (JP): F8 -ss.input.port1.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 1, Keyboard (JP): F9 -ss.input.port1.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 1, Keyboard (JP): G -ss.input.port1.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 1, Keyboard (JP): H -ss.input.port1.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 1, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port1.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 1, Keyboard (JP): Home -ss.input.port1.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 1, Keyboard (JP): 半角/全角/漢字 -ss.input.port1.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 1, Keyboard (JP): I -ss.input.port1.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 1, Keyboard (JP): Insert -ss.input.port1.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 1, Keyboard (JP): J -ss.input.port1.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 1, Keyboard (JP): K -ss.input.port1.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 1, Keyboard (JP): L -ss.input.port1.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 1, Keyboard (JP): Left Alt -ss.input.port1.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 1, Keyboard (JP): Left Ctrl -ss.input.port1.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 1, Keyboard (JP): Cursor Left -ss.input.port1.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 1, Keyboard (JP): Left Bracket [ -ss.input.port1.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 1, Keyboard (JP): Left Shift -ss.input.port1.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 1, Keyboard (JP): M -ss.input.port1.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 1, Keyboard (JP): Minus - -ss.input.port1.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 1, Keyboard (JP): N -ss.input.port1.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 1, Keyboard (JP): 無変換 -ss.input.port1.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 1, Keyboard (JP): O -ss.input.port1.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 1, Keyboard (JP): P -ss.input.port1.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 1, Keyboard (JP): Page Down -ss.input.port1.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 1, Keyboard (JP): Page Up -ss.input.port1.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 1, Keyboard (JP): Pause -ss.input.port1.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 1, Keyboard (JP): Period . -ss.input.port1.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 1, Keyboard (JP): Print Screen -ss.input.port1.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 1, Keyboard (JP): Q -ss.input.port1.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 1, Keyboard (JP): R -ss.input.port1.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 1, Keyboard (JP): Right Alt -ss.input.port1.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 1, Keyboard (JP): Right Ctrl -ss.input.port1.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 1, Keyboard (JP): Right -ss.input.port1.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 1, Keyboard (JP): Right Bracket ] -ss.input.port1.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 1, Keyboard (JP): Right Shift -ss.input.port1.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 1, Keyboard (JP): S -ss.input.port1.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 1, Keyboard (JP): Scroll Lock -ss.input.port1.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 1, Keyboard (JP): Semicolon ; -ss.input.port1.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 1, Keyboard (JP): Slash / -ss.input.port1.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 1, Keyboard (JP): Space -ss.input.port1.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 1, Keyboard (JP): T -ss.input.port1.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 1, Keyboard (JP): Tab -ss.input.port1.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 1, Keyboard (JP): U -ss.input.port1.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 1, Keyboard (JP): Up -ss.input.port1.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 1, Keyboard (JP): V -ss.input.port1.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 1, Keyboard (JP): W -ss.input.port1.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 1, Keyboard (JP): X -ss.input.port1.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 1, Keyboard (JP): Y -ss.input.port1.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 1, Keyboard (JP): Yen ¥ -ss.input.port1.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 1, Keyboard (JP): Z -ss.input.port1.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 1, Keyboard (US): 0(Zero) -ss.input.port1.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 1, Keyboard (US): 1(One) -ss.input.port1.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 1, Keyboard (US): 2 -ss.input.port1.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 1, Keyboard (US): 3 -ss.input.port1.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 1, Keyboard (US): 4 -ss.input.port1.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 1, Keyboard (US): 5 -ss.input.port1.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 1, Keyboard (US): 6 -ss.input.port1.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 1, Keyboard (US): 7 -ss.input.port1.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 1, Keyboard (US): 8 -ss.input.port1.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 1, Keyboard (US): 9 -ss.input.port1.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 1, Keyboard (US): A -ss.input.port1.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 1, Keyboard (US): B -ss.input.port1.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 1, Keyboard (US): Backslash \ -ss.input.port1.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 1, Keyboard (US): Backspace -ss.input.port1.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 1, Keyboard (US): C -ss.input.port1.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 1, Keyboard (US): Caps Lock -ss.input.port1.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 1, Keyboard (US): Comma , -ss.input.port1.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 1, Keyboard (US): D -ss.input.port1.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 1, Keyboard (US): Delete -ss.input.port1.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 1, Keyboard (US): Down -ss.input.port1.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 1, Keyboard (US): E -ss.input.port1.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 1, Keyboard (US): End -ss.input.port1.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 1, Keyboard (US): Enter -ss.input.port1.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 1, Keyboard (US): Equals = -ss.input.port1.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 1, Keyboard (US): Escape -ss.input.port1.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 1, Keyboard (US): F -ss.input.port1.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 1, Keyboard (US): F1 -ss.input.port1.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 1, Keyboard (US): F10 -ss.input.port1.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 1, Keyboard (US): F11 -ss.input.port1.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 1, Keyboard (US): F12 -ss.input.port1.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 1, Keyboard (US): F2 -ss.input.port1.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 1, Keyboard (US): F3 -ss.input.port1.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 1, Keyboard (US): F4 -ss.input.port1.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 1, Keyboard (US): F5 -ss.input.port1.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 1, Keyboard (US): F6 -ss.input.port1.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 1, Keyboard (US): F7 -ss.input.port1.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 1, Keyboard (US): F8 -ss.input.port1.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 1, Keyboard (US): F9 -ss.input.port1.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 1, Keyboard (US): G -ss.input.port1.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 1, Keyboard (US): Grave ` -ss.input.port1.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 1, Keyboard (US): H -ss.input.port1.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 1, Keyboard (US): Home -ss.input.port1.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 1, Keyboard (US): I -ss.input.port1.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 1, Keyboard (US): Insert -ss.input.port1.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 1, Keyboard (US): J -ss.input.port1.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 1, Keyboard (US): K -ss.input.port1.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 1, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port1.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 1, Keyboard (US): Keypad Center/5 -ss.input.port1.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 1, Keyboard (US): Keypad Delete -ss.input.port1.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 1, Keyboard (US): Keypad Down/2 -ss.input.port1.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 1, Keyboard (US): Keypad End/1 -ss.input.port1.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 1, Keyboard (US): Keypad Enter -ss.input.port1.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 1, Keyboard (US): Keypad Home/7 -ss.input.port1.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 1, Keyboard (US): Keypad Insert/0 -ss.input.port1.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 1, Keyboard (US): Keypad Left/4 -ss.input.port1.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 1, Keyboard (US): Keypad Minus -ss.input.port1.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 1, Keyboard (US): Keypad Pagedown/3 -ss.input.port1.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 1, Keyboard (US): Keypad Pageup/9 -ss.input.port1.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 1, Keyboard (US): Keypad Plus -ss.input.port1.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 1, Keyboard (US): Keypad Right/6 -ss.input.port1.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 1, Keyboard (US): Keypad Slash(Divide) -ss.input.port1.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 1, Keyboard (US): Keypad Up/8 -ss.input.port1.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 1, Keyboard (US): L -ss.input.port1.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 1, Keyboard (US): Left Alt -ss.input.port1.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 1, Keyboard (US): Left Ctrl -ss.input.port1.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 1, Keyboard (US): Cursor Left -ss.input.port1.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 1, Keyboard (US): Left Bracket [ -ss.input.port1.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 1, Keyboard (US): Left Shift -ss.input.port1.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 1, Keyboard (US): M -ss.input.port1.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 1, Keyboard (US): Minus - -ss.input.port1.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 1, Keyboard (US): N -ss.input.port1.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 1, Keyboard (US): Num Lock -ss.input.port1.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 1, Keyboard (US): O -ss.input.port1.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 1, Keyboard (US): P -ss.input.port1.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 1, Keyboard (US): Page Down -ss.input.port1.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 1, Keyboard (US): Page Up -ss.input.port1.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 1, Keyboard (US): Pause -ss.input.port1.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 1, Keyboard (US): Period . -ss.input.port1.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 1, Keyboard (US): Print Screen -ss.input.port1.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 1, Keyboard (US): Q -ss.input.port1.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 1, Keyboard (US): Quote ' -ss.input.port1.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 1, Keyboard (US): R -ss.input.port1.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 1, Keyboard (US): Right Alt -ss.input.port1.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 1, Keyboard (US): Right Ctrl -ss.input.port1.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 1, Keyboard (US): Right -ss.input.port1.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 1, Keyboard (US): Right Bracket ] -ss.input.port1.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 1, Keyboard (US): Right Shift -ss.input.port1.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 1, Keyboard (US): S -ss.input.port1.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 1, Keyboard (US): Scroll Lock -ss.input.port1.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 1, Keyboard (US): Semicolon ; -ss.input.port1.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 1, Keyboard (US): Slash / -ss.input.port1.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 1, Keyboard (US): Space -ss.input.port1.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 1, Keyboard (US): T -ss.input.port1.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 1, Keyboard (US): Tab -ss.input.port1.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 1, Keyboard (US): U -ss.input.port1.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 1, Keyboard (US): Up -ss.input.port1.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 1, Keyboard (US): V -ss.input.port1.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 1, Keyboard (US): W -ss.input.port1.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 1, Keyboard (US): X -ss.input.port1.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 1, Keyboard (US): Y -ss.input.port1.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 1, Keyboard (US): Z -ss.input.port1.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 1, Mission Stick: A (Stick Trigger) -ss.input.port1.mission.a - -;ss, Virtual Port 1, Mission Stick: A AF -ss.input.port1.mission.afa - -;Default position for switch "A AF". -ss.input.port1.mission.afa.defpos off - -;ss, Virtual Port 1, Mission Stick: B AF -ss.input.port1.mission.afb - -;Default position for switch "B AF". -ss.input.port1.mission.afb.defpos off - -;ss, Virtual Port 1, Mission Stick: C AF -ss.input.port1.mission.afc - -;Default position for switch "C AF". -ss.input.port1.mission.afc.defpos off - -;ss, Virtual Port 1, Mission Stick: L AF -ss.input.port1.mission.afl - -;Default position for switch "L AF". -ss.input.port1.mission.afl.defpos off - -;ss, Virtual Port 1, Mission Stick: R AF -ss.input.port1.mission.afr - -;Default position for switch "R AF". -ss.input.port1.mission.afr.defpos off - -;ss, Virtual Port 1, Mission Stick: AF Speed -ss.input.port1.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port1.mission.afspeed.defpos 1 - -;ss, Virtual Port 1, Mission Stick: X AF -ss.input.port1.mission.afx - -;Default position for switch "X AF". -ss.input.port1.mission.afx.defpos off - -;ss, Virtual Port 1, Mission Stick: Y AF -ss.input.port1.mission.afy - -;Default position for switch "Y AF". -ss.input.port1.mission.afy.defpos off - -;ss, Virtual Port 1, Mission Stick: Z AF -ss.input.port1.mission.afz - -;Default position for switch "Z AF". -ss.input.port1.mission.afz.defpos off - -;ss, Virtual Port 1, Mission Stick: B (Stick Left Button) -ss.input.port1.mission.b - -;ss, Virtual Port 1, Mission Stick: C (Stick Right Button) -ss.input.port1.mission.c - -;ss, Virtual Port 1, Mission Stick: L -ss.input.port1.mission.l - -;ss, Virtual Port 1, Mission Stick: R -ss.input.port1.mission.r - -;ss, Virtual Port 1, Mission Stick: START -ss.input.port1.mission.start - -;ss, Virtual Port 1, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port1.mission.stick_back - -;ss, Virtual Port 1, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port1.mission.stick_fore - -;ss, Virtual Port 1, Mission Stick: Stick LEFT ← (Analog) -ss.input.port1.mission.stick_left - -;ss, Virtual Port 1, Mission Stick: Stick RIGHT → (Analog) -ss.input.port1.mission.stick_right - -;ss, Virtual Port 1, Mission Stick: Throttle Down (Analog) -ss.input.port1.mission.throttle_down - -;ss, Virtual Port 1, Mission Stick: Throttle Up (Analog) -ss.input.port1.mission.throttle_up - -;ss, Virtual Port 1, Mission Stick: X -ss.input.port1.mission.x - -;ss, Virtual Port 1, Mission Stick: Y -ss.input.port1.mission.y - -;ss, Virtual Port 1, Mission Stick: Z -ss.input.port1.mission.z - -;ss, Virtual Port 1, Mouse: Left Button -ss.input.port1.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 1, Mouse: Middle Button -ss.input.port1.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 1, Mouse: Motion Down -ss.input.port1.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 1, Mouse: Motion Left -ss.input.port1.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 1, Mouse: Motion Right -ss.input.port1.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 1, Mouse: Motion Up -ss.input.port1.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 1, Mouse: Right Button -ss.input.port1.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 1, Mouse: Start -ss.input.port1.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 1, Steering Wheel: A (R Group) -ss.input.port1.wheel.a - -;ss, Virtual Port 1, Steering Wheel: Analog LEFT ← -ss.input.port1.wheel.analog_left - -;ss, Virtual Port 1, Steering Wheel: Analog RIGHT → -ss.input.port1.wheel.analog_right - -;ss, Virtual Port 1, Steering Wheel: B (R Group) -ss.input.port1.wheel.b - -;ss, Virtual Port 1, Steering Wheel: C (R Group) -ss.input.port1.wheel.c - -;ss, Virtual Port 1, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port1.wheel.down - -;ss, Virtual Port 1, Steering Wheel: START -ss.input.port1.wheel.start - -;ss, Virtual Port 1, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port1.wheel.up - -;ss, Virtual Port 1, Steering Wheel: X (L Group) -ss.input.port1.wheel.x - -;ss, Virtual Port 1, Steering Wheel: Y (L Group) -ss.input.port1.wheel.y - -;ss, Virtual Port 1, Steering Wheel: Z (L Group) -ss.input.port1.wheel.z - -;Input device for Virtual Port 10 -ss.input.port10 gamepad - -;ss, Virtual Port 10, 3D Control Pad: A -ss.input.port10.3dpad.a - -;ss, Virtual Port 10, 3D Control Pad: Analog DOWN ↓ -ss.input.port10.3dpad.analog_down - -;ss, Virtual Port 10, 3D Control Pad: Analog LEFT ← -ss.input.port10.3dpad.analog_left - -;ss, Virtual Port 10, 3D Control Pad: Analog RIGHT → -ss.input.port10.3dpad.analog_right - -;ss, Virtual Port 10, 3D Control Pad: Analog UP ↑ -ss.input.port10.3dpad.analog_up - -;ss, Virtual Port 10, 3D Control Pad: B -ss.input.port10.3dpad.b - -;ss, Virtual Port 10, 3D Control Pad: C -ss.input.port10.3dpad.c - -;ss, Virtual Port 10, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port10.3dpad.down - -;ss, Virtual Port 10, 3D Control Pad: D-Pad LEFT ← -ss.input.port10.3dpad.left - -;ss, Virtual Port 10, 3D Control Pad: Left Shoulder (Analog) -ss.input.port10.3dpad.ls - -;ss, Virtual Port 10, 3D Control Pad: Mode -ss.input.port10.3dpad.mode - -;Default position for switch "Mode". -ss.input.port10.3dpad.mode.defpos digital - -;ss, Virtual Port 10, 3D Control Pad: D-Pad RIGHT → -ss.input.port10.3dpad.right - -;ss, Virtual Port 10, 3D Control Pad: Right Shoulder (Analog) -ss.input.port10.3dpad.rs - -;ss, Virtual Port 10, 3D Control Pad: START -ss.input.port10.3dpad.start - -;ss, Virtual Port 10, 3D Control Pad: D-Pad UP ↑ -ss.input.port10.3dpad.up - -;ss, Virtual Port 10, 3D Control Pad: X -ss.input.port10.3dpad.x - -;ss, Virtual Port 10, 3D Control Pad: Y -ss.input.port10.3dpad.y - -;ss, Virtual Port 10, 3D Control Pad: Z -ss.input.port10.3dpad.z - -;ss, Virtual Port 10, Dual Mission: A (R Stick Trigger) -ss.input.port10.dmission.a - -;ss, Virtual Port 10, Dual Mission: A AF -ss.input.port10.dmission.afa - -;Default position for switch "A AF". -ss.input.port10.dmission.afa.defpos off - -;ss, Virtual Port 10, Dual Mission: B AF -ss.input.port10.dmission.afb - -;Default position for switch "B AF". -ss.input.port10.dmission.afb.defpos off - -;ss, Virtual Port 10, Dual Mission: C AF -ss.input.port10.dmission.afc - -;Default position for switch "C AF". -ss.input.port10.dmission.afc.defpos off - -;ss, Virtual Port 10, Dual Mission: L AF -ss.input.port10.dmission.afl - -;Default position for switch "L AF". -ss.input.port10.dmission.afl.defpos off - -;ss, Virtual Port 10, Dual Mission: R AF -ss.input.port10.dmission.afr - -;Default position for switch "R AF". -ss.input.port10.dmission.afr.defpos off - -;ss, Virtual Port 10, Dual Mission: Autofire Speed -ss.input.port10.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port10.dmission.afspeed.defpos 1 - -;ss, Virtual Port 10, Dual Mission: X AF -ss.input.port10.dmission.afx - -;Default position for switch "X AF". -ss.input.port10.dmission.afx.defpos off - -;ss, Virtual Port 10, Dual Mission: Y AF -ss.input.port10.dmission.afy - -;Default position for switch "Y AF". -ss.input.port10.dmission.afy.defpos off - -;ss, Virtual Port 10, Dual Mission: Z AF -ss.input.port10.dmission.afz - -;Default position for switch "Z AF". -ss.input.port10.dmission.afz.defpos off - -;ss, Virtual Port 10, Dual Mission: B (R Stick Left Button) -ss.input.port10.dmission.b - -;ss, Virtual Port 10, Dual Mission: C (R Stick Right Button) -ss.input.port10.dmission.c - -;ss, Virtual Port 10, Dual Mission: L -ss.input.port10.dmission.l - -;ss, Virtual Port 10, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port10.dmission.lstick_back - -;ss, Virtual Port 10, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port10.dmission.lstick_fore - -;ss, Virtual Port 10, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port10.dmission.lstick_left - -;ss, Virtual Port 10, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port10.dmission.lstick_right - -;ss, Virtual Port 10, Dual Mission: L Throttle Down (Analog) -ss.input.port10.dmission.lthrottle_down - -;ss, Virtual Port 10, Dual Mission: L Throttle Up (Analog) -ss.input.port10.dmission.lthrottle_up - -;ss, Virtual Port 10, Dual Mission: R -ss.input.port10.dmission.r - -;ss, Virtual Port 10, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port10.dmission.rstick_back - -;ss, Virtual Port 10, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port10.dmission.rstick_fore - -;ss, Virtual Port 10, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port10.dmission.rstick_left - -;ss, Virtual Port 10, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port10.dmission.rstick_right - -;ss, Virtual Port 10, Dual Mission: R Throttle Down (Analog) -ss.input.port10.dmission.rthrottle_down - -;ss, Virtual Port 10, Dual Mission: R Throttle Up (Analog) -ss.input.port10.dmission.rthrottle_up - -;ss, Virtual Port 10, Dual Mission: START -ss.input.port10.dmission.start - -;ss, Virtual Port 10, Dual Mission: X (L Stick Trigger) -ss.input.port10.dmission.x - -;ss, Virtual Port 10, Dual Mission: Y (L Stick Left Button) -ss.input.port10.dmission.y - -;ss, Virtual Port 10, Dual Mission: Z (L Stick Right Button) -ss.input.port10.dmission.z - -;ss, Virtual Port 10, Digital Gamepad: A -ss.input.port10.gamepad.a - -;ss, Virtual Port 10, Digital Gamepad: B -ss.input.port10.gamepad.b - -;ss, Virtual Port 10, Digital Gamepad: C -ss.input.port10.gamepad.c - -;ss, Virtual Port 10, Digital Gamepad: DOWN ↓ -ss.input.port10.gamepad.down - -;ss, Virtual Port 10, Digital Gamepad: LEFT ← -ss.input.port10.gamepad.left - -;ss, Virtual Port 10, Digital Gamepad: Left Shoulder -ss.input.port10.gamepad.ls - -;ss, Virtual Port 10, Digital Gamepad: RIGHT → -ss.input.port10.gamepad.right - -;ss, Virtual Port 10, Digital Gamepad: Right Shoulder -ss.input.port10.gamepad.rs - -;ss, Virtual Port 10, Digital Gamepad: START -ss.input.port10.gamepad.start - -;ss, Virtual Port 10, Digital Gamepad: UP ↑ -ss.input.port10.gamepad.up - -;ss, Virtual Port 10, Digital Gamepad: X -ss.input.port10.gamepad.x - -;ss, Virtual Port 10, Digital Gamepad: Y -ss.input.port10.gamepad.y - -;ss, Virtual Port 10, Digital Gamepad: Z -ss.input.port10.gamepad.z - -;ss, Virtual Port 10, Light Gun: Offscreen Shot(Simulated) -ss.input.port10.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 10, Light Gun: START -ss.input.port10.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 10, Light Gun: Trigger -ss.input.port10.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 10, Light Gun: X Axis -ss.input.port10.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 10, Light Gun: Y Axis -ss.input.port10.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 10. -ss.input.port10.gun_chairs 0x00FF80 - -;ss, Virtual Port 10, Keyboard (JP): 0(Zero) -ss.input.port10.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 10, Keyboard (JP): 1(One) -ss.input.port10.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 10, Keyboard (JP): 2 -ss.input.port10.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 10, Keyboard (JP): 3 -ss.input.port10.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 10, Keyboard (JP): 4 -ss.input.port10.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 10, Keyboard (JP): 5 -ss.input.port10.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 10, Keyboard (JP): 6 -ss.input.port10.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 10, Keyboard (JP): 7 -ss.input.port10.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 10, Keyboard (JP): 8 -ss.input.port10.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 10, Keyboard (JP): 9 -ss.input.port10.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 10, Keyboard (JP): A -ss.input.port10.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 10, Keyboard (JP): At @ -ss.input.port10.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 10, Keyboard (JP): B -ss.input.port10.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 10, Keyboard (JP): Backslash \ -ss.input.port10.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 10, Keyboard (JP): Backspace -ss.input.port10.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 10, Keyboard (JP): C -ss.input.port10.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 10, Keyboard (JP): Caps Lock/英数 -ss.input.port10.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 10, Keyboard (JP): Circumflex ^ -ss.input.port10.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 10, Keyboard (JP): Colon : -ss.input.port10.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 10, Keyboard (JP): Comma , -ss.input.port10.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 10, Keyboard (JP): 変換 -ss.input.port10.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 10, Keyboard (JP): D -ss.input.port10.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 10, Keyboard (JP): Delete -ss.input.port10.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 10, Keyboard (JP): Down -ss.input.port10.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 10, Keyboard (JP): E -ss.input.port10.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 10, Keyboard (JP): End -ss.input.port10.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 10, Keyboard (JP): Enter -ss.input.port10.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 10, Keyboard (JP): Escape -ss.input.port10.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 10, Keyboard (JP): F -ss.input.port10.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 10, Keyboard (JP): F1 -ss.input.port10.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 10, Keyboard (JP): F10 -ss.input.port10.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 10, Keyboard (JP): F11 -ss.input.port10.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 10, Keyboard (JP): F12 -ss.input.port10.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 10, Keyboard (JP): F2 -ss.input.port10.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 10, Keyboard (JP): F3 -ss.input.port10.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 10, Keyboard (JP): F4 -ss.input.port10.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 10, Keyboard (JP): F5 -ss.input.port10.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 10, Keyboard (JP): F6 -ss.input.port10.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 10, Keyboard (JP): F7 -ss.input.port10.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 10, Keyboard (JP): F8 -ss.input.port10.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 10, Keyboard (JP): F9 -ss.input.port10.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 10, Keyboard (JP): G -ss.input.port10.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 10, Keyboard (JP): H -ss.input.port10.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 10, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port10.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 10, Keyboard (JP): Home -ss.input.port10.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 10, Keyboard (JP): 半角/全角/漢字 -ss.input.port10.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 10, Keyboard (JP): I -ss.input.port10.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 10, Keyboard (JP): Insert -ss.input.port10.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 10, Keyboard (JP): J -ss.input.port10.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 10, Keyboard (JP): K -ss.input.port10.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 10, Keyboard (JP): L -ss.input.port10.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 10, Keyboard (JP): Left Alt -ss.input.port10.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 10, Keyboard (JP): Left Ctrl -ss.input.port10.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 10, Keyboard (JP): Cursor Left -ss.input.port10.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 10, Keyboard (JP): Left Bracket [ -ss.input.port10.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 10, Keyboard (JP): Left Shift -ss.input.port10.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 10, Keyboard (JP): M -ss.input.port10.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 10, Keyboard (JP): Minus - -ss.input.port10.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 10, Keyboard (JP): N -ss.input.port10.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 10, Keyboard (JP): 無変換 -ss.input.port10.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 10, Keyboard (JP): O -ss.input.port10.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 10, Keyboard (JP): P -ss.input.port10.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 10, Keyboard (JP): Page Down -ss.input.port10.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 10, Keyboard (JP): Page Up -ss.input.port10.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 10, Keyboard (JP): Pause -ss.input.port10.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 10, Keyboard (JP): Period . -ss.input.port10.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 10, Keyboard (JP): Print Screen -ss.input.port10.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 10, Keyboard (JP): Q -ss.input.port10.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 10, Keyboard (JP): R -ss.input.port10.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 10, Keyboard (JP): Right Alt -ss.input.port10.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 10, Keyboard (JP): Right Ctrl -ss.input.port10.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 10, Keyboard (JP): Right -ss.input.port10.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 10, Keyboard (JP): Right Bracket ] -ss.input.port10.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 10, Keyboard (JP): Right Shift -ss.input.port10.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 10, Keyboard (JP): S -ss.input.port10.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 10, Keyboard (JP): Scroll Lock -ss.input.port10.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 10, Keyboard (JP): Semicolon ; -ss.input.port10.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 10, Keyboard (JP): Slash / -ss.input.port10.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 10, Keyboard (JP): Space -ss.input.port10.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 10, Keyboard (JP): T -ss.input.port10.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 10, Keyboard (JP): Tab -ss.input.port10.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 10, Keyboard (JP): U -ss.input.port10.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 10, Keyboard (JP): Up -ss.input.port10.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 10, Keyboard (JP): V -ss.input.port10.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 10, Keyboard (JP): W -ss.input.port10.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 10, Keyboard (JP): X -ss.input.port10.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 10, Keyboard (JP): Y -ss.input.port10.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 10, Keyboard (JP): Yen ¥ -ss.input.port10.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 10, Keyboard (JP): Z -ss.input.port10.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 10, Keyboard (US): 0(Zero) -ss.input.port10.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 10, Keyboard (US): 1(One) -ss.input.port10.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 10, Keyboard (US): 2 -ss.input.port10.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 10, Keyboard (US): 3 -ss.input.port10.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 10, Keyboard (US): 4 -ss.input.port10.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 10, Keyboard (US): 5 -ss.input.port10.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 10, Keyboard (US): 6 -ss.input.port10.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 10, Keyboard (US): 7 -ss.input.port10.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 10, Keyboard (US): 8 -ss.input.port10.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 10, Keyboard (US): 9 -ss.input.port10.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 10, Keyboard (US): A -ss.input.port10.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 10, Keyboard (US): B -ss.input.port10.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 10, Keyboard (US): Backslash \ -ss.input.port10.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 10, Keyboard (US): Backspace -ss.input.port10.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 10, Keyboard (US): C -ss.input.port10.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 10, Keyboard (US): Caps Lock -ss.input.port10.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 10, Keyboard (US): Comma , -ss.input.port10.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 10, Keyboard (US): D -ss.input.port10.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 10, Keyboard (US): Delete -ss.input.port10.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 10, Keyboard (US): Down -ss.input.port10.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 10, Keyboard (US): E -ss.input.port10.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 10, Keyboard (US): End -ss.input.port10.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 10, Keyboard (US): Enter -ss.input.port10.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 10, Keyboard (US): Equals = -ss.input.port10.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 10, Keyboard (US): Escape -ss.input.port10.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 10, Keyboard (US): F -ss.input.port10.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 10, Keyboard (US): F1 -ss.input.port10.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 10, Keyboard (US): F10 -ss.input.port10.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 10, Keyboard (US): F11 -ss.input.port10.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 10, Keyboard (US): F12 -ss.input.port10.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 10, Keyboard (US): F2 -ss.input.port10.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 10, Keyboard (US): F3 -ss.input.port10.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 10, Keyboard (US): F4 -ss.input.port10.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 10, Keyboard (US): F5 -ss.input.port10.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 10, Keyboard (US): F6 -ss.input.port10.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 10, Keyboard (US): F7 -ss.input.port10.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 10, Keyboard (US): F8 -ss.input.port10.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 10, Keyboard (US): F9 -ss.input.port10.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 10, Keyboard (US): G -ss.input.port10.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 10, Keyboard (US): Grave ` -ss.input.port10.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 10, Keyboard (US): H -ss.input.port10.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 10, Keyboard (US): Home -ss.input.port10.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 10, Keyboard (US): I -ss.input.port10.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 10, Keyboard (US): Insert -ss.input.port10.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 10, Keyboard (US): J -ss.input.port10.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 10, Keyboard (US): K -ss.input.port10.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 10, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port10.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 10, Keyboard (US): Keypad Center/5 -ss.input.port10.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 10, Keyboard (US): Keypad Delete -ss.input.port10.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 10, Keyboard (US): Keypad Down/2 -ss.input.port10.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 10, Keyboard (US): Keypad End/1 -ss.input.port10.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 10, Keyboard (US): Keypad Enter -ss.input.port10.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 10, Keyboard (US): Keypad Home/7 -ss.input.port10.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 10, Keyboard (US): Keypad Insert/0 -ss.input.port10.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 10, Keyboard (US): Keypad Left/4 -ss.input.port10.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 10, Keyboard (US): Keypad Minus -ss.input.port10.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 10, Keyboard (US): Keypad Pagedown/3 -ss.input.port10.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 10, Keyboard (US): Keypad Pageup/9 -ss.input.port10.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 10, Keyboard (US): Keypad Plus -ss.input.port10.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 10, Keyboard (US): Keypad Right/6 -ss.input.port10.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 10, Keyboard (US): Keypad Slash(Divide) -ss.input.port10.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 10, Keyboard (US): Keypad Up/8 -ss.input.port10.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 10, Keyboard (US): L -ss.input.port10.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 10, Keyboard (US): Left Alt -ss.input.port10.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 10, Keyboard (US): Left Ctrl -ss.input.port10.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 10, Keyboard (US): Cursor Left -ss.input.port10.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 10, Keyboard (US): Left Bracket [ -ss.input.port10.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 10, Keyboard (US): Left Shift -ss.input.port10.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 10, Keyboard (US): M -ss.input.port10.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 10, Keyboard (US): Minus - -ss.input.port10.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 10, Keyboard (US): N -ss.input.port10.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 10, Keyboard (US): Num Lock -ss.input.port10.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 10, Keyboard (US): O -ss.input.port10.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 10, Keyboard (US): P -ss.input.port10.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 10, Keyboard (US): Page Down -ss.input.port10.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 10, Keyboard (US): Page Up -ss.input.port10.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 10, Keyboard (US): Pause -ss.input.port10.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 10, Keyboard (US): Period . -ss.input.port10.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 10, Keyboard (US): Print Screen -ss.input.port10.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 10, Keyboard (US): Q -ss.input.port10.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 10, Keyboard (US): Quote ' -ss.input.port10.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 10, Keyboard (US): R -ss.input.port10.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 10, Keyboard (US): Right Alt -ss.input.port10.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 10, Keyboard (US): Right Ctrl -ss.input.port10.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 10, Keyboard (US): Right -ss.input.port10.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 10, Keyboard (US): Right Bracket ] -ss.input.port10.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 10, Keyboard (US): Right Shift -ss.input.port10.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 10, Keyboard (US): S -ss.input.port10.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 10, Keyboard (US): Scroll Lock -ss.input.port10.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 10, Keyboard (US): Semicolon ; -ss.input.port10.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 10, Keyboard (US): Slash / -ss.input.port10.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 10, Keyboard (US): Space -ss.input.port10.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 10, Keyboard (US): T -ss.input.port10.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 10, Keyboard (US): Tab -ss.input.port10.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 10, Keyboard (US): U -ss.input.port10.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 10, Keyboard (US): Up -ss.input.port10.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 10, Keyboard (US): V -ss.input.port10.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 10, Keyboard (US): W -ss.input.port10.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 10, Keyboard (US): X -ss.input.port10.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 10, Keyboard (US): Y -ss.input.port10.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 10, Keyboard (US): Z -ss.input.port10.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 10, Mission Stick: A (Stick Trigger) -ss.input.port10.mission.a - -;ss, Virtual Port 10, Mission Stick: A AF -ss.input.port10.mission.afa - -;Default position for switch "A AF". -ss.input.port10.mission.afa.defpos off - -;ss, Virtual Port 10, Mission Stick: B AF -ss.input.port10.mission.afb - -;Default position for switch "B AF". -ss.input.port10.mission.afb.defpos off - -;ss, Virtual Port 10, Mission Stick: C AF -ss.input.port10.mission.afc - -;Default position for switch "C AF". -ss.input.port10.mission.afc.defpos off - -;ss, Virtual Port 10, Mission Stick: L AF -ss.input.port10.mission.afl - -;Default position for switch "L AF". -ss.input.port10.mission.afl.defpos off - -;ss, Virtual Port 10, Mission Stick: R AF -ss.input.port10.mission.afr - -;Default position for switch "R AF". -ss.input.port10.mission.afr.defpos off - -;ss, Virtual Port 10, Mission Stick: AF Speed -ss.input.port10.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port10.mission.afspeed.defpos 1 - -;ss, Virtual Port 10, Mission Stick: X AF -ss.input.port10.mission.afx - -;Default position for switch "X AF". -ss.input.port10.mission.afx.defpos off - -;ss, Virtual Port 10, Mission Stick: Y AF -ss.input.port10.mission.afy - -;Default position for switch "Y AF". -ss.input.port10.mission.afy.defpos off - -;ss, Virtual Port 10, Mission Stick: Z AF -ss.input.port10.mission.afz - -;Default position for switch "Z AF". -ss.input.port10.mission.afz.defpos off - -;ss, Virtual Port 10, Mission Stick: B (Stick Left Button) -ss.input.port10.mission.b - -;ss, Virtual Port 10, Mission Stick: C (Stick Right Button) -ss.input.port10.mission.c - -;ss, Virtual Port 10, Mission Stick: L -ss.input.port10.mission.l - -;ss, Virtual Port 10, Mission Stick: R -ss.input.port10.mission.r - -;ss, Virtual Port 10, Mission Stick: START -ss.input.port10.mission.start - -;ss, Virtual Port 10, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port10.mission.stick_back - -;ss, Virtual Port 10, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port10.mission.stick_fore - -;ss, Virtual Port 10, Mission Stick: Stick LEFT ← (Analog) -ss.input.port10.mission.stick_left - -;ss, Virtual Port 10, Mission Stick: Stick RIGHT → (Analog) -ss.input.port10.mission.stick_right - -;ss, Virtual Port 10, Mission Stick: Throttle Down (Analog) -ss.input.port10.mission.throttle_down - -;ss, Virtual Port 10, Mission Stick: Throttle Up (Analog) -ss.input.port10.mission.throttle_up - -;ss, Virtual Port 10, Mission Stick: X -ss.input.port10.mission.x - -;ss, Virtual Port 10, Mission Stick: Y -ss.input.port10.mission.y - -;ss, Virtual Port 10, Mission Stick: Z -ss.input.port10.mission.z - -;ss, Virtual Port 10, Mouse: Left Button -ss.input.port10.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 10, Mouse: Middle Button -ss.input.port10.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 10, Mouse: Motion Down -ss.input.port10.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 10, Mouse: Motion Left -ss.input.port10.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 10, Mouse: Motion Right -ss.input.port10.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 10, Mouse: Motion Up -ss.input.port10.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 10, Mouse: Right Button -ss.input.port10.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 10, Mouse: Start -ss.input.port10.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 10, Steering Wheel: A (R Group) -ss.input.port10.wheel.a - -;ss, Virtual Port 10, Steering Wheel: Analog LEFT ← -ss.input.port10.wheel.analog_left - -;ss, Virtual Port 10, Steering Wheel: Analog RIGHT → -ss.input.port10.wheel.analog_right - -;ss, Virtual Port 10, Steering Wheel: B (R Group) -ss.input.port10.wheel.b - -;ss, Virtual Port 10, Steering Wheel: C (R Group) -ss.input.port10.wheel.c - -;ss, Virtual Port 10, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port10.wheel.down - -;ss, Virtual Port 10, Steering Wheel: START -ss.input.port10.wheel.start - -;ss, Virtual Port 10, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port10.wheel.up - -;ss, Virtual Port 10, Steering Wheel: X (L Group) -ss.input.port10.wheel.x - -;ss, Virtual Port 10, Steering Wheel: Y (L Group) -ss.input.port10.wheel.y - -;ss, Virtual Port 10, Steering Wheel: Z (L Group) -ss.input.port10.wheel.z - -;Input device for Virtual Port 11 -ss.input.port11 gamepad - -;ss, Virtual Port 11, 3D Control Pad: A -ss.input.port11.3dpad.a - -;ss, Virtual Port 11, 3D Control Pad: Analog DOWN ↓ -ss.input.port11.3dpad.analog_down - -;ss, Virtual Port 11, 3D Control Pad: Analog LEFT ← -ss.input.port11.3dpad.analog_left - -;ss, Virtual Port 11, 3D Control Pad: Analog RIGHT → -ss.input.port11.3dpad.analog_right - -;ss, Virtual Port 11, 3D Control Pad: Analog UP ↑ -ss.input.port11.3dpad.analog_up - -;ss, Virtual Port 11, 3D Control Pad: B -ss.input.port11.3dpad.b - -;ss, Virtual Port 11, 3D Control Pad: C -ss.input.port11.3dpad.c - -;ss, Virtual Port 11, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port11.3dpad.down - -;ss, Virtual Port 11, 3D Control Pad: D-Pad LEFT ← -ss.input.port11.3dpad.left - -;ss, Virtual Port 11, 3D Control Pad: Left Shoulder (Analog) -ss.input.port11.3dpad.ls - -;ss, Virtual Port 11, 3D Control Pad: Mode -ss.input.port11.3dpad.mode - -;Default position for switch "Mode". -ss.input.port11.3dpad.mode.defpos digital - -;ss, Virtual Port 11, 3D Control Pad: D-Pad RIGHT → -ss.input.port11.3dpad.right - -;ss, Virtual Port 11, 3D Control Pad: Right Shoulder (Analog) -ss.input.port11.3dpad.rs - -;ss, Virtual Port 11, 3D Control Pad: START -ss.input.port11.3dpad.start - -;ss, Virtual Port 11, 3D Control Pad: D-Pad UP ↑ -ss.input.port11.3dpad.up - -;ss, Virtual Port 11, 3D Control Pad: X -ss.input.port11.3dpad.x - -;ss, Virtual Port 11, 3D Control Pad: Y -ss.input.port11.3dpad.y - -;ss, Virtual Port 11, 3D Control Pad: Z -ss.input.port11.3dpad.z - -;ss, Virtual Port 11, Dual Mission: A (R Stick Trigger) -ss.input.port11.dmission.a - -;ss, Virtual Port 11, Dual Mission: A AF -ss.input.port11.dmission.afa - -;Default position for switch "A AF". -ss.input.port11.dmission.afa.defpos off - -;ss, Virtual Port 11, Dual Mission: B AF -ss.input.port11.dmission.afb - -;Default position for switch "B AF". -ss.input.port11.dmission.afb.defpos off - -;ss, Virtual Port 11, Dual Mission: C AF -ss.input.port11.dmission.afc - -;Default position for switch "C AF". -ss.input.port11.dmission.afc.defpos off - -;ss, Virtual Port 11, Dual Mission: L AF -ss.input.port11.dmission.afl - -;Default position for switch "L AF". -ss.input.port11.dmission.afl.defpos off - -;ss, Virtual Port 11, Dual Mission: R AF -ss.input.port11.dmission.afr - -;Default position for switch "R AF". -ss.input.port11.dmission.afr.defpos off - -;ss, Virtual Port 11, Dual Mission: Autofire Speed -ss.input.port11.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port11.dmission.afspeed.defpos 1 - -;ss, Virtual Port 11, Dual Mission: X AF -ss.input.port11.dmission.afx - -;Default position for switch "X AF". -ss.input.port11.dmission.afx.defpos off - -;ss, Virtual Port 11, Dual Mission: Y AF -ss.input.port11.dmission.afy - -;Default position for switch "Y AF". -ss.input.port11.dmission.afy.defpos off - -;ss, Virtual Port 11, Dual Mission: Z AF -ss.input.port11.dmission.afz - -;Default position for switch "Z AF". -ss.input.port11.dmission.afz.defpos off - -;ss, Virtual Port 11, Dual Mission: B (R Stick Left Button) -ss.input.port11.dmission.b - -;ss, Virtual Port 11, Dual Mission: C (R Stick Right Button) -ss.input.port11.dmission.c - -;ss, Virtual Port 11, Dual Mission: L -ss.input.port11.dmission.l - -;ss, Virtual Port 11, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port11.dmission.lstick_back - -;ss, Virtual Port 11, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port11.dmission.lstick_fore - -;ss, Virtual Port 11, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port11.dmission.lstick_left - -;ss, Virtual Port 11, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port11.dmission.lstick_right - -;ss, Virtual Port 11, Dual Mission: L Throttle Down (Analog) -ss.input.port11.dmission.lthrottle_down - -;ss, Virtual Port 11, Dual Mission: L Throttle Up (Analog) -ss.input.port11.dmission.lthrottle_up - -;ss, Virtual Port 11, Dual Mission: R -ss.input.port11.dmission.r - -;ss, Virtual Port 11, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port11.dmission.rstick_back - -;ss, Virtual Port 11, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port11.dmission.rstick_fore - -;ss, Virtual Port 11, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port11.dmission.rstick_left - -;ss, Virtual Port 11, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port11.dmission.rstick_right - -;ss, Virtual Port 11, Dual Mission: R Throttle Down (Analog) -ss.input.port11.dmission.rthrottle_down - -;ss, Virtual Port 11, Dual Mission: R Throttle Up (Analog) -ss.input.port11.dmission.rthrottle_up - -;ss, Virtual Port 11, Dual Mission: START -ss.input.port11.dmission.start - -;ss, Virtual Port 11, Dual Mission: X (L Stick Trigger) -ss.input.port11.dmission.x - -;ss, Virtual Port 11, Dual Mission: Y (L Stick Left Button) -ss.input.port11.dmission.y - -;ss, Virtual Port 11, Dual Mission: Z (L Stick Right Button) -ss.input.port11.dmission.z - -;ss, Virtual Port 11, Digital Gamepad: A -ss.input.port11.gamepad.a - -;ss, Virtual Port 11, Digital Gamepad: B -ss.input.port11.gamepad.b - -;ss, Virtual Port 11, Digital Gamepad: C -ss.input.port11.gamepad.c - -;ss, Virtual Port 11, Digital Gamepad: DOWN ↓ -ss.input.port11.gamepad.down - -;ss, Virtual Port 11, Digital Gamepad: LEFT ← -ss.input.port11.gamepad.left - -;ss, Virtual Port 11, Digital Gamepad: Left Shoulder -ss.input.port11.gamepad.ls - -;ss, Virtual Port 11, Digital Gamepad: RIGHT → -ss.input.port11.gamepad.right - -;ss, Virtual Port 11, Digital Gamepad: Right Shoulder -ss.input.port11.gamepad.rs - -;ss, Virtual Port 11, Digital Gamepad: START -ss.input.port11.gamepad.start - -;ss, Virtual Port 11, Digital Gamepad: UP ↑ -ss.input.port11.gamepad.up - -;ss, Virtual Port 11, Digital Gamepad: X -ss.input.port11.gamepad.x - -;ss, Virtual Port 11, Digital Gamepad: Y -ss.input.port11.gamepad.y - -;ss, Virtual Port 11, Digital Gamepad: Z -ss.input.port11.gamepad.z - -;ss, Virtual Port 11, Light Gun: Offscreen Shot(Simulated) -ss.input.port11.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 11, Light Gun: START -ss.input.port11.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 11, Light Gun: Trigger -ss.input.port11.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 11, Light Gun: X Axis -ss.input.port11.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 11, Light Gun: Y Axis -ss.input.port11.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 11. -ss.input.port11.gun_chairs 0x8080FF - -;ss, Virtual Port 11, Keyboard (JP): 0(Zero) -ss.input.port11.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 11, Keyboard (JP): 1(One) -ss.input.port11.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 11, Keyboard (JP): 2 -ss.input.port11.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 11, Keyboard (JP): 3 -ss.input.port11.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 11, Keyboard (JP): 4 -ss.input.port11.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 11, Keyboard (JP): 5 -ss.input.port11.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 11, Keyboard (JP): 6 -ss.input.port11.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 11, Keyboard (JP): 7 -ss.input.port11.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 11, Keyboard (JP): 8 -ss.input.port11.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 11, Keyboard (JP): 9 -ss.input.port11.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 11, Keyboard (JP): A -ss.input.port11.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 11, Keyboard (JP): At @ -ss.input.port11.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 11, Keyboard (JP): B -ss.input.port11.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 11, Keyboard (JP): Backslash \ -ss.input.port11.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 11, Keyboard (JP): Backspace -ss.input.port11.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 11, Keyboard (JP): C -ss.input.port11.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 11, Keyboard (JP): Caps Lock/英数 -ss.input.port11.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 11, Keyboard (JP): Circumflex ^ -ss.input.port11.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 11, Keyboard (JP): Colon : -ss.input.port11.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 11, Keyboard (JP): Comma , -ss.input.port11.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 11, Keyboard (JP): 変換 -ss.input.port11.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 11, Keyboard (JP): D -ss.input.port11.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 11, Keyboard (JP): Delete -ss.input.port11.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 11, Keyboard (JP): Down -ss.input.port11.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 11, Keyboard (JP): E -ss.input.port11.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 11, Keyboard (JP): End -ss.input.port11.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 11, Keyboard (JP): Enter -ss.input.port11.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 11, Keyboard (JP): Escape -ss.input.port11.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 11, Keyboard (JP): F -ss.input.port11.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 11, Keyboard (JP): F1 -ss.input.port11.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 11, Keyboard (JP): F10 -ss.input.port11.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 11, Keyboard (JP): F11 -ss.input.port11.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 11, Keyboard (JP): F12 -ss.input.port11.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 11, Keyboard (JP): F2 -ss.input.port11.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 11, Keyboard (JP): F3 -ss.input.port11.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 11, Keyboard (JP): F4 -ss.input.port11.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 11, Keyboard (JP): F5 -ss.input.port11.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 11, Keyboard (JP): F6 -ss.input.port11.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 11, Keyboard (JP): F7 -ss.input.port11.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 11, Keyboard (JP): F8 -ss.input.port11.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 11, Keyboard (JP): F9 -ss.input.port11.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 11, Keyboard (JP): G -ss.input.port11.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 11, Keyboard (JP): H -ss.input.port11.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 11, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port11.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 11, Keyboard (JP): Home -ss.input.port11.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 11, Keyboard (JP): 半角/全角/漢字 -ss.input.port11.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 11, Keyboard (JP): I -ss.input.port11.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 11, Keyboard (JP): Insert -ss.input.port11.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 11, Keyboard (JP): J -ss.input.port11.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 11, Keyboard (JP): K -ss.input.port11.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 11, Keyboard (JP): L -ss.input.port11.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 11, Keyboard (JP): Left Alt -ss.input.port11.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 11, Keyboard (JP): Left Ctrl -ss.input.port11.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 11, Keyboard (JP): Cursor Left -ss.input.port11.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 11, Keyboard (JP): Left Bracket [ -ss.input.port11.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 11, Keyboard (JP): Left Shift -ss.input.port11.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 11, Keyboard (JP): M -ss.input.port11.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 11, Keyboard (JP): Minus - -ss.input.port11.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 11, Keyboard (JP): N -ss.input.port11.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 11, Keyboard (JP): 無変換 -ss.input.port11.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 11, Keyboard (JP): O -ss.input.port11.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 11, Keyboard (JP): P -ss.input.port11.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 11, Keyboard (JP): Page Down -ss.input.port11.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 11, Keyboard (JP): Page Up -ss.input.port11.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 11, Keyboard (JP): Pause -ss.input.port11.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 11, Keyboard (JP): Period . -ss.input.port11.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 11, Keyboard (JP): Print Screen -ss.input.port11.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 11, Keyboard (JP): Q -ss.input.port11.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 11, Keyboard (JP): R -ss.input.port11.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 11, Keyboard (JP): Right Alt -ss.input.port11.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 11, Keyboard (JP): Right Ctrl -ss.input.port11.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 11, Keyboard (JP): Right -ss.input.port11.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 11, Keyboard (JP): Right Bracket ] -ss.input.port11.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 11, Keyboard (JP): Right Shift -ss.input.port11.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 11, Keyboard (JP): S -ss.input.port11.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 11, Keyboard (JP): Scroll Lock -ss.input.port11.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 11, Keyboard (JP): Semicolon ; -ss.input.port11.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 11, Keyboard (JP): Slash / -ss.input.port11.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 11, Keyboard (JP): Space -ss.input.port11.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 11, Keyboard (JP): T -ss.input.port11.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 11, Keyboard (JP): Tab -ss.input.port11.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 11, Keyboard (JP): U -ss.input.port11.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 11, Keyboard (JP): Up -ss.input.port11.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 11, Keyboard (JP): V -ss.input.port11.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 11, Keyboard (JP): W -ss.input.port11.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 11, Keyboard (JP): X -ss.input.port11.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 11, Keyboard (JP): Y -ss.input.port11.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 11, Keyboard (JP): Yen ¥ -ss.input.port11.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 11, Keyboard (JP): Z -ss.input.port11.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 11, Keyboard (US): 0(Zero) -ss.input.port11.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 11, Keyboard (US): 1(One) -ss.input.port11.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 11, Keyboard (US): 2 -ss.input.port11.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 11, Keyboard (US): 3 -ss.input.port11.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 11, Keyboard (US): 4 -ss.input.port11.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 11, Keyboard (US): 5 -ss.input.port11.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 11, Keyboard (US): 6 -ss.input.port11.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 11, Keyboard (US): 7 -ss.input.port11.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 11, Keyboard (US): 8 -ss.input.port11.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 11, Keyboard (US): 9 -ss.input.port11.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 11, Keyboard (US): A -ss.input.port11.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 11, Keyboard (US): B -ss.input.port11.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 11, Keyboard (US): Backslash \ -ss.input.port11.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 11, Keyboard (US): Backspace -ss.input.port11.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 11, Keyboard (US): C -ss.input.port11.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 11, Keyboard (US): Caps Lock -ss.input.port11.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 11, Keyboard (US): Comma , -ss.input.port11.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 11, Keyboard (US): D -ss.input.port11.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 11, Keyboard (US): Delete -ss.input.port11.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 11, Keyboard (US): Down -ss.input.port11.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 11, Keyboard (US): E -ss.input.port11.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 11, Keyboard (US): End -ss.input.port11.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 11, Keyboard (US): Enter -ss.input.port11.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 11, Keyboard (US): Equals = -ss.input.port11.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 11, Keyboard (US): Escape -ss.input.port11.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 11, Keyboard (US): F -ss.input.port11.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 11, Keyboard (US): F1 -ss.input.port11.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 11, Keyboard (US): F10 -ss.input.port11.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 11, Keyboard (US): F11 -ss.input.port11.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 11, Keyboard (US): F12 -ss.input.port11.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 11, Keyboard (US): F2 -ss.input.port11.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 11, Keyboard (US): F3 -ss.input.port11.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 11, Keyboard (US): F4 -ss.input.port11.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 11, Keyboard (US): F5 -ss.input.port11.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 11, Keyboard (US): F6 -ss.input.port11.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 11, Keyboard (US): F7 -ss.input.port11.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 11, Keyboard (US): F8 -ss.input.port11.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 11, Keyboard (US): F9 -ss.input.port11.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 11, Keyboard (US): G -ss.input.port11.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 11, Keyboard (US): Grave ` -ss.input.port11.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 11, Keyboard (US): H -ss.input.port11.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 11, Keyboard (US): Home -ss.input.port11.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 11, Keyboard (US): I -ss.input.port11.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 11, Keyboard (US): Insert -ss.input.port11.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 11, Keyboard (US): J -ss.input.port11.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 11, Keyboard (US): K -ss.input.port11.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 11, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port11.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 11, Keyboard (US): Keypad Center/5 -ss.input.port11.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 11, Keyboard (US): Keypad Delete -ss.input.port11.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 11, Keyboard (US): Keypad Down/2 -ss.input.port11.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 11, Keyboard (US): Keypad End/1 -ss.input.port11.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 11, Keyboard (US): Keypad Enter -ss.input.port11.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 11, Keyboard (US): Keypad Home/7 -ss.input.port11.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 11, Keyboard (US): Keypad Insert/0 -ss.input.port11.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 11, Keyboard (US): Keypad Left/4 -ss.input.port11.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 11, Keyboard (US): Keypad Minus -ss.input.port11.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 11, Keyboard (US): Keypad Pagedown/3 -ss.input.port11.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 11, Keyboard (US): Keypad Pageup/9 -ss.input.port11.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 11, Keyboard (US): Keypad Plus -ss.input.port11.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 11, Keyboard (US): Keypad Right/6 -ss.input.port11.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 11, Keyboard (US): Keypad Slash(Divide) -ss.input.port11.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 11, Keyboard (US): Keypad Up/8 -ss.input.port11.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 11, Keyboard (US): L -ss.input.port11.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 11, Keyboard (US): Left Alt -ss.input.port11.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 11, Keyboard (US): Left Ctrl -ss.input.port11.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 11, Keyboard (US): Cursor Left -ss.input.port11.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 11, Keyboard (US): Left Bracket [ -ss.input.port11.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 11, Keyboard (US): Left Shift -ss.input.port11.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 11, Keyboard (US): M -ss.input.port11.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 11, Keyboard (US): Minus - -ss.input.port11.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 11, Keyboard (US): N -ss.input.port11.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 11, Keyboard (US): Num Lock -ss.input.port11.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 11, Keyboard (US): O -ss.input.port11.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 11, Keyboard (US): P -ss.input.port11.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 11, Keyboard (US): Page Down -ss.input.port11.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 11, Keyboard (US): Page Up -ss.input.port11.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 11, Keyboard (US): Pause -ss.input.port11.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 11, Keyboard (US): Period . -ss.input.port11.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 11, Keyboard (US): Print Screen -ss.input.port11.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 11, Keyboard (US): Q -ss.input.port11.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 11, Keyboard (US): Quote ' -ss.input.port11.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 11, Keyboard (US): R -ss.input.port11.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 11, Keyboard (US): Right Alt -ss.input.port11.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 11, Keyboard (US): Right Ctrl -ss.input.port11.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 11, Keyboard (US): Right -ss.input.port11.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 11, Keyboard (US): Right Bracket ] -ss.input.port11.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 11, Keyboard (US): Right Shift -ss.input.port11.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 11, Keyboard (US): S -ss.input.port11.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 11, Keyboard (US): Scroll Lock -ss.input.port11.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 11, Keyboard (US): Semicolon ; -ss.input.port11.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 11, Keyboard (US): Slash / -ss.input.port11.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 11, Keyboard (US): Space -ss.input.port11.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 11, Keyboard (US): T -ss.input.port11.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 11, Keyboard (US): Tab -ss.input.port11.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 11, Keyboard (US): U -ss.input.port11.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 11, Keyboard (US): Up -ss.input.port11.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 11, Keyboard (US): V -ss.input.port11.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 11, Keyboard (US): W -ss.input.port11.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 11, Keyboard (US): X -ss.input.port11.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 11, Keyboard (US): Y -ss.input.port11.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 11, Keyboard (US): Z -ss.input.port11.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 11, Mission Stick: A (Stick Trigger) -ss.input.port11.mission.a - -;ss, Virtual Port 11, Mission Stick: A AF -ss.input.port11.mission.afa - -;Default position for switch "A AF". -ss.input.port11.mission.afa.defpos off - -;ss, Virtual Port 11, Mission Stick: B AF -ss.input.port11.mission.afb - -;Default position for switch "B AF". -ss.input.port11.mission.afb.defpos off - -;ss, Virtual Port 11, Mission Stick: C AF -ss.input.port11.mission.afc - -;Default position for switch "C AF". -ss.input.port11.mission.afc.defpos off - -;ss, Virtual Port 11, Mission Stick: L AF -ss.input.port11.mission.afl - -;Default position for switch "L AF". -ss.input.port11.mission.afl.defpos off - -;ss, Virtual Port 11, Mission Stick: R AF -ss.input.port11.mission.afr - -;Default position for switch "R AF". -ss.input.port11.mission.afr.defpos off - -;ss, Virtual Port 11, Mission Stick: AF Speed -ss.input.port11.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port11.mission.afspeed.defpos 1 - -;ss, Virtual Port 11, Mission Stick: X AF -ss.input.port11.mission.afx - -;Default position for switch "X AF". -ss.input.port11.mission.afx.defpos off - -;ss, Virtual Port 11, Mission Stick: Y AF -ss.input.port11.mission.afy - -;Default position for switch "Y AF". -ss.input.port11.mission.afy.defpos off - -;ss, Virtual Port 11, Mission Stick: Z AF -ss.input.port11.mission.afz - -;Default position for switch "Z AF". -ss.input.port11.mission.afz.defpos off - -;ss, Virtual Port 11, Mission Stick: B (Stick Left Button) -ss.input.port11.mission.b - -;ss, Virtual Port 11, Mission Stick: C (Stick Right Button) -ss.input.port11.mission.c - -;ss, Virtual Port 11, Mission Stick: L -ss.input.port11.mission.l - -;ss, Virtual Port 11, Mission Stick: R -ss.input.port11.mission.r - -;ss, Virtual Port 11, Mission Stick: START -ss.input.port11.mission.start - -;ss, Virtual Port 11, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port11.mission.stick_back - -;ss, Virtual Port 11, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port11.mission.stick_fore - -;ss, Virtual Port 11, Mission Stick: Stick LEFT ← (Analog) -ss.input.port11.mission.stick_left - -;ss, Virtual Port 11, Mission Stick: Stick RIGHT → (Analog) -ss.input.port11.mission.stick_right - -;ss, Virtual Port 11, Mission Stick: Throttle Down (Analog) -ss.input.port11.mission.throttle_down - -;ss, Virtual Port 11, Mission Stick: Throttle Up (Analog) -ss.input.port11.mission.throttle_up - -;ss, Virtual Port 11, Mission Stick: X -ss.input.port11.mission.x - -;ss, Virtual Port 11, Mission Stick: Y -ss.input.port11.mission.y - -;ss, Virtual Port 11, Mission Stick: Z -ss.input.port11.mission.z - -;ss, Virtual Port 11, Mouse: Left Button -ss.input.port11.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 11, Mouse: Middle Button -ss.input.port11.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 11, Mouse: Motion Down -ss.input.port11.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 11, Mouse: Motion Left -ss.input.port11.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 11, Mouse: Motion Right -ss.input.port11.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 11, Mouse: Motion Up -ss.input.port11.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 11, Mouse: Right Button -ss.input.port11.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 11, Mouse: Start -ss.input.port11.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 11, Steering Wheel: A (R Group) -ss.input.port11.wheel.a - -;ss, Virtual Port 11, Steering Wheel: Analog LEFT ← -ss.input.port11.wheel.analog_left - -;ss, Virtual Port 11, Steering Wheel: Analog RIGHT → -ss.input.port11.wheel.analog_right - -;ss, Virtual Port 11, Steering Wheel: B (R Group) -ss.input.port11.wheel.b - -;ss, Virtual Port 11, Steering Wheel: C (R Group) -ss.input.port11.wheel.c - -;ss, Virtual Port 11, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port11.wheel.down - -;ss, Virtual Port 11, Steering Wheel: START -ss.input.port11.wheel.start - -;ss, Virtual Port 11, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port11.wheel.up - -;ss, Virtual Port 11, Steering Wheel: X (L Group) -ss.input.port11.wheel.x - -;ss, Virtual Port 11, Steering Wheel: Y (L Group) -ss.input.port11.wheel.y - -;ss, Virtual Port 11, Steering Wheel: Z (L Group) -ss.input.port11.wheel.z - -;Input device for Virtual Port 12 -ss.input.port12 gamepad - -;ss, Virtual Port 12, 3D Control Pad: A -ss.input.port12.3dpad.a - -;ss, Virtual Port 12, 3D Control Pad: Analog DOWN ↓ -ss.input.port12.3dpad.analog_down - -;ss, Virtual Port 12, 3D Control Pad: Analog LEFT ← -ss.input.port12.3dpad.analog_left - -;ss, Virtual Port 12, 3D Control Pad: Analog RIGHT → -ss.input.port12.3dpad.analog_right - -;ss, Virtual Port 12, 3D Control Pad: Analog UP ↑ -ss.input.port12.3dpad.analog_up - -;ss, Virtual Port 12, 3D Control Pad: B -ss.input.port12.3dpad.b - -;ss, Virtual Port 12, 3D Control Pad: C -ss.input.port12.3dpad.c - -;ss, Virtual Port 12, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port12.3dpad.down - -;ss, Virtual Port 12, 3D Control Pad: D-Pad LEFT ← -ss.input.port12.3dpad.left - -;ss, Virtual Port 12, 3D Control Pad: Left Shoulder (Analog) -ss.input.port12.3dpad.ls - -;ss, Virtual Port 12, 3D Control Pad: Mode -ss.input.port12.3dpad.mode - -;Default position for switch "Mode". -ss.input.port12.3dpad.mode.defpos digital - -;ss, Virtual Port 12, 3D Control Pad: D-Pad RIGHT → -ss.input.port12.3dpad.right - -;ss, Virtual Port 12, 3D Control Pad: Right Shoulder (Analog) -ss.input.port12.3dpad.rs - -;ss, Virtual Port 12, 3D Control Pad: START -ss.input.port12.3dpad.start - -;ss, Virtual Port 12, 3D Control Pad: D-Pad UP ↑ -ss.input.port12.3dpad.up - -;ss, Virtual Port 12, 3D Control Pad: X -ss.input.port12.3dpad.x - -;ss, Virtual Port 12, 3D Control Pad: Y -ss.input.port12.3dpad.y - -;ss, Virtual Port 12, 3D Control Pad: Z -ss.input.port12.3dpad.z - -;ss, Virtual Port 12, Dual Mission: A (R Stick Trigger) -ss.input.port12.dmission.a - -;ss, Virtual Port 12, Dual Mission: A AF -ss.input.port12.dmission.afa - -;Default position for switch "A AF". -ss.input.port12.dmission.afa.defpos off - -;ss, Virtual Port 12, Dual Mission: B AF -ss.input.port12.dmission.afb - -;Default position for switch "B AF". -ss.input.port12.dmission.afb.defpos off - -;ss, Virtual Port 12, Dual Mission: C AF -ss.input.port12.dmission.afc - -;Default position for switch "C AF". -ss.input.port12.dmission.afc.defpos off - -;ss, Virtual Port 12, Dual Mission: L AF -ss.input.port12.dmission.afl - -;Default position for switch "L AF". -ss.input.port12.dmission.afl.defpos off - -;ss, Virtual Port 12, Dual Mission: R AF -ss.input.port12.dmission.afr - -;Default position for switch "R AF". -ss.input.port12.dmission.afr.defpos off - -;ss, Virtual Port 12, Dual Mission: Autofire Speed -ss.input.port12.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port12.dmission.afspeed.defpos 1 - -;ss, Virtual Port 12, Dual Mission: X AF -ss.input.port12.dmission.afx - -;Default position for switch "X AF". -ss.input.port12.dmission.afx.defpos off - -;ss, Virtual Port 12, Dual Mission: Y AF -ss.input.port12.dmission.afy - -;Default position for switch "Y AF". -ss.input.port12.dmission.afy.defpos off - -;ss, Virtual Port 12, Dual Mission: Z AF -ss.input.port12.dmission.afz - -;Default position for switch "Z AF". -ss.input.port12.dmission.afz.defpos off - -;ss, Virtual Port 12, Dual Mission: B (R Stick Left Button) -ss.input.port12.dmission.b - -;ss, Virtual Port 12, Dual Mission: C (R Stick Right Button) -ss.input.port12.dmission.c - -;ss, Virtual Port 12, Dual Mission: L -ss.input.port12.dmission.l - -;ss, Virtual Port 12, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port12.dmission.lstick_back - -;ss, Virtual Port 12, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port12.dmission.lstick_fore - -;ss, Virtual Port 12, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port12.dmission.lstick_left - -;ss, Virtual Port 12, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port12.dmission.lstick_right - -;ss, Virtual Port 12, Dual Mission: L Throttle Down (Analog) -ss.input.port12.dmission.lthrottle_down - -;ss, Virtual Port 12, Dual Mission: L Throttle Up (Analog) -ss.input.port12.dmission.lthrottle_up - -;ss, Virtual Port 12, Dual Mission: R -ss.input.port12.dmission.r - -;ss, Virtual Port 12, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port12.dmission.rstick_back - -;ss, Virtual Port 12, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port12.dmission.rstick_fore - -;ss, Virtual Port 12, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port12.dmission.rstick_left - -;ss, Virtual Port 12, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port12.dmission.rstick_right - -;ss, Virtual Port 12, Dual Mission: R Throttle Down (Analog) -ss.input.port12.dmission.rthrottle_down - -;ss, Virtual Port 12, Dual Mission: R Throttle Up (Analog) -ss.input.port12.dmission.rthrottle_up - -;ss, Virtual Port 12, Dual Mission: START -ss.input.port12.dmission.start - -;ss, Virtual Port 12, Dual Mission: X (L Stick Trigger) -ss.input.port12.dmission.x - -;ss, Virtual Port 12, Dual Mission: Y (L Stick Left Button) -ss.input.port12.dmission.y - -;ss, Virtual Port 12, Dual Mission: Z (L Stick Right Button) -ss.input.port12.dmission.z - -;ss, Virtual Port 12, Digital Gamepad: A -ss.input.port12.gamepad.a - -;ss, Virtual Port 12, Digital Gamepad: B -ss.input.port12.gamepad.b - -;ss, Virtual Port 12, Digital Gamepad: C -ss.input.port12.gamepad.c - -;ss, Virtual Port 12, Digital Gamepad: DOWN ↓ -ss.input.port12.gamepad.down - -;ss, Virtual Port 12, Digital Gamepad: LEFT ← -ss.input.port12.gamepad.left - -;ss, Virtual Port 12, Digital Gamepad: Left Shoulder -ss.input.port12.gamepad.ls - -;ss, Virtual Port 12, Digital Gamepad: RIGHT → -ss.input.port12.gamepad.right - -;ss, Virtual Port 12, Digital Gamepad: Right Shoulder -ss.input.port12.gamepad.rs - -;ss, Virtual Port 12, Digital Gamepad: START -ss.input.port12.gamepad.start - -;ss, Virtual Port 12, Digital Gamepad: UP ↑ -ss.input.port12.gamepad.up - -;ss, Virtual Port 12, Digital Gamepad: X -ss.input.port12.gamepad.x - -;ss, Virtual Port 12, Digital Gamepad: Y -ss.input.port12.gamepad.y - -;ss, Virtual Port 12, Digital Gamepad: Z -ss.input.port12.gamepad.z - -;ss, Virtual Port 12, Light Gun: Offscreen Shot(Simulated) -ss.input.port12.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 12, Light Gun: START -ss.input.port12.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 12, Light Gun: Trigger -ss.input.port12.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 12, Light Gun: X Axis -ss.input.port12.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 12, Light Gun: Y Axis -ss.input.port12.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 12. -ss.input.port12.gun_chairs 0xFF8080 - -;ss, Virtual Port 12, Keyboard (JP): 0(Zero) -ss.input.port12.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 12, Keyboard (JP): 1(One) -ss.input.port12.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 12, Keyboard (JP): 2 -ss.input.port12.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 12, Keyboard (JP): 3 -ss.input.port12.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 12, Keyboard (JP): 4 -ss.input.port12.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 12, Keyboard (JP): 5 -ss.input.port12.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 12, Keyboard (JP): 6 -ss.input.port12.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 12, Keyboard (JP): 7 -ss.input.port12.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 12, Keyboard (JP): 8 -ss.input.port12.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 12, Keyboard (JP): 9 -ss.input.port12.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 12, Keyboard (JP): A -ss.input.port12.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 12, Keyboard (JP): At @ -ss.input.port12.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 12, Keyboard (JP): B -ss.input.port12.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 12, Keyboard (JP): Backslash \ -ss.input.port12.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 12, Keyboard (JP): Backspace -ss.input.port12.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 12, Keyboard (JP): C -ss.input.port12.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 12, Keyboard (JP): Caps Lock/英数 -ss.input.port12.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 12, Keyboard (JP): Circumflex ^ -ss.input.port12.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 12, Keyboard (JP): Colon : -ss.input.port12.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 12, Keyboard (JP): Comma , -ss.input.port12.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 12, Keyboard (JP): 変換 -ss.input.port12.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 12, Keyboard (JP): D -ss.input.port12.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 12, Keyboard (JP): Delete -ss.input.port12.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 12, Keyboard (JP): Down -ss.input.port12.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 12, Keyboard (JP): E -ss.input.port12.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 12, Keyboard (JP): End -ss.input.port12.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 12, Keyboard (JP): Enter -ss.input.port12.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 12, Keyboard (JP): Escape -ss.input.port12.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 12, Keyboard (JP): F -ss.input.port12.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 12, Keyboard (JP): F1 -ss.input.port12.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 12, Keyboard (JP): F10 -ss.input.port12.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 12, Keyboard (JP): F11 -ss.input.port12.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 12, Keyboard (JP): F12 -ss.input.port12.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 12, Keyboard (JP): F2 -ss.input.port12.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 12, Keyboard (JP): F3 -ss.input.port12.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 12, Keyboard (JP): F4 -ss.input.port12.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 12, Keyboard (JP): F5 -ss.input.port12.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 12, Keyboard (JP): F6 -ss.input.port12.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 12, Keyboard (JP): F7 -ss.input.port12.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 12, Keyboard (JP): F8 -ss.input.port12.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 12, Keyboard (JP): F9 -ss.input.port12.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 12, Keyboard (JP): G -ss.input.port12.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 12, Keyboard (JP): H -ss.input.port12.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 12, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port12.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 12, Keyboard (JP): Home -ss.input.port12.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 12, Keyboard (JP): 半角/全角/漢字 -ss.input.port12.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 12, Keyboard (JP): I -ss.input.port12.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 12, Keyboard (JP): Insert -ss.input.port12.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 12, Keyboard (JP): J -ss.input.port12.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 12, Keyboard (JP): K -ss.input.port12.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 12, Keyboard (JP): L -ss.input.port12.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 12, Keyboard (JP): Left Alt -ss.input.port12.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 12, Keyboard (JP): Left Ctrl -ss.input.port12.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 12, Keyboard (JP): Cursor Left -ss.input.port12.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 12, Keyboard (JP): Left Bracket [ -ss.input.port12.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 12, Keyboard (JP): Left Shift -ss.input.port12.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 12, Keyboard (JP): M -ss.input.port12.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 12, Keyboard (JP): Minus - -ss.input.port12.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 12, Keyboard (JP): N -ss.input.port12.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 12, Keyboard (JP): 無変換 -ss.input.port12.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 12, Keyboard (JP): O -ss.input.port12.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 12, Keyboard (JP): P -ss.input.port12.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 12, Keyboard (JP): Page Down -ss.input.port12.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 12, Keyboard (JP): Page Up -ss.input.port12.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 12, Keyboard (JP): Pause -ss.input.port12.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 12, Keyboard (JP): Period . -ss.input.port12.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 12, Keyboard (JP): Print Screen -ss.input.port12.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 12, Keyboard (JP): Q -ss.input.port12.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 12, Keyboard (JP): R -ss.input.port12.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 12, Keyboard (JP): Right Alt -ss.input.port12.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 12, Keyboard (JP): Right Ctrl -ss.input.port12.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 12, Keyboard (JP): Right -ss.input.port12.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 12, Keyboard (JP): Right Bracket ] -ss.input.port12.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 12, Keyboard (JP): Right Shift -ss.input.port12.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 12, Keyboard (JP): S -ss.input.port12.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 12, Keyboard (JP): Scroll Lock -ss.input.port12.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 12, Keyboard (JP): Semicolon ; -ss.input.port12.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 12, Keyboard (JP): Slash / -ss.input.port12.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 12, Keyboard (JP): Space -ss.input.port12.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 12, Keyboard (JP): T -ss.input.port12.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 12, Keyboard (JP): Tab -ss.input.port12.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 12, Keyboard (JP): U -ss.input.port12.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 12, Keyboard (JP): Up -ss.input.port12.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 12, Keyboard (JP): V -ss.input.port12.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 12, Keyboard (JP): W -ss.input.port12.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 12, Keyboard (JP): X -ss.input.port12.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 12, Keyboard (JP): Y -ss.input.port12.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 12, Keyboard (JP): Yen ¥ -ss.input.port12.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 12, Keyboard (JP): Z -ss.input.port12.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 12, Keyboard (US): 0(Zero) -ss.input.port12.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 12, Keyboard (US): 1(One) -ss.input.port12.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 12, Keyboard (US): 2 -ss.input.port12.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 12, Keyboard (US): 3 -ss.input.port12.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 12, Keyboard (US): 4 -ss.input.port12.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 12, Keyboard (US): 5 -ss.input.port12.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 12, Keyboard (US): 6 -ss.input.port12.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 12, Keyboard (US): 7 -ss.input.port12.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 12, Keyboard (US): 8 -ss.input.port12.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 12, Keyboard (US): 9 -ss.input.port12.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 12, Keyboard (US): A -ss.input.port12.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 12, Keyboard (US): B -ss.input.port12.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 12, Keyboard (US): Backslash \ -ss.input.port12.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 12, Keyboard (US): Backspace -ss.input.port12.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 12, Keyboard (US): C -ss.input.port12.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 12, Keyboard (US): Caps Lock -ss.input.port12.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 12, Keyboard (US): Comma , -ss.input.port12.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 12, Keyboard (US): D -ss.input.port12.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 12, Keyboard (US): Delete -ss.input.port12.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 12, Keyboard (US): Down -ss.input.port12.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 12, Keyboard (US): E -ss.input.port12.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 12, Keyboard (US): End -ss.input.port12.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 12, Keyboard (US): Enter -ss.input.port12.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 12, Keyboard (US): Equals = -ss.input.port12.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 12, Keyboard (US): Escape -ss.input.port12.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 12, Keyboard (US): F -ss.input.port12.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 12, Keyboard (US): F1 -ss.input.port12.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 12, Keyboard (US): F10 -ss.input.port12.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 12, Keyboard (US): F11 -ss.input.port12.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 12, Keyboard (US): F12 -ss.input.port12.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 12, Keyboard (US): F2 -ss.input.port12.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 12, Keyboard (US): F3 -ss.input.port12.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 12, Keyboard (US): F4 -ss.input.port12.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 12, Keyboard (US): F5 -ss.input.port12.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 12, Keyboard (US): F6 -ss.input.port12.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 12, Keyboard (US): F7 -ss.input.port12.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 12, Keyboard (US): F8 -ss.input.port12.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 12, Keyboard (US): F9 -ss.input.port12.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 12, Keyboard (US): G -ss.input.port12.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 12, Keyboard (US): Grave ` -ss.input.port12.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 12, Keyboard (US): H -ss.input.port12.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 12, Keyboard (US): Home -ss.input.port12.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 12, Keyboard (US): I -ss.input.port12.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 12, Keyboard (US): Insert -ss.input.port12.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 12, Keyboard (US): J -ss.input.port12.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 12, Keyboard (US): K -ss.input.port12.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 12, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port12.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 12, Keyboard (US): Keypad Center/5 -ss.input.port12.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 12, Keyboard (US): Keypad Delete -ss.input.port12.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 12, Keyboard (US): Keypad Down/2 -ss.input.port12.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 12, Keyboard (US): Keypad End/1 -ss.input.port12.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 12, Keyboard (US): Keypad Enter -ss.input.port12.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 12, Keyboard (US): Keypad Home/7 -ss.input.port12.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 12, Keyboard (US): Keypad Insert/0 -ss.input.port12.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 12, Keyboard (US): Keypad Left/4 -ss.input.port12.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 12, Keyboard (US): Keypad Minus -ss.input.port12.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 12, Keyboard (US): Keypad Pagedown/3 -ss.input.port12.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 12, Keyboard (US): Keypad Pageup/9 -ss.input.port12.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 12, Keyboard (US): Keypad Plus -ss.input.port12.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 12, Keyboard (US): Keypad Right/6 -ss.input.port12.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 12, Keyboard (US): Keypad Slash(Divide) -ss.input.port12.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 12, Keyboard (US): Keypad Up/8 -ss.input.port12.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 12, Keyboard (US): L -ss.input.port12.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 12, Keyboard (US): Left Alt -ss.input.port12.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 12, Keyboard (US): Left Ctrl -ss.input.port12.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 12, Keyboard (US): Cursor Left -ss.input.port12.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 12, Keyboard (US): Left Bracket [ -ss.input.port12.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 12, Keyboard (US): Left Shift -ss.input.port12.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 12, Keyboard (US): M -ss.input.port12.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 12, Keyboard (US): Minus - -ss.input.port12.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 12, Keyboard (US): N -ss.input.port12.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 12, Keyboard (US): Num Lock -ss.input.port12.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 12, Keyboard (US): O -ss.input.port12.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 12, Keyboard (US): P -ss.input.port12.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 12, Keyboard (US): Page Down -ss.input.port12.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 12, Keyboard (US): Page Up -ss.input.port12.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 12, Keyboard (US): Pause -ss.input.port12.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 12, Keyboard (US): Period . -ss.input.port12.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 12, Keyboard (US): Print Screen -ss.input.port12.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 12, Keyboard (US): Q -ss.input.port12.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 12, Keyboard (US): Quote ' -ss.input.port12.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 12, Keyboard (US): R -ss.input.port12.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 12, Keyboard (US): Right Alt -ss.input.port12.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 12, Keyboard (US): Right Ctrl -ss.input.port12.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 12, Keyboard (US): Right -ss.input.port12.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 12, Keyboard (US): Right Bracket ] -ss.input.port12.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 12, Keyboard (US): Right Shift -ss.input.port12.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 12, Keyboard (US): S -ss.input.port12.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 12, Keyboard (US): Scroll Lock -ss.input.port12.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 12, Keyboard (US): Semicolon ; -ss.input.port12.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 12, Keyboard (US): Slash / -ss.input.port12.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 12, Keyboard (US): Space -ss.input.port12.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 12, Keyboard (US): T -ss.input.port12.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 12, Keyboard (US): Tab -ss.input.port12.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 12, Keyboard (US): U -ss.input.port12.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 12, Keyboard (US): Up -ss.input.port12.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 12, Keyboard (US): V -ss.input.port12.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 12, Keyboard (US): W -ss.input.port12.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 12, Keyboard (US): X -ss.input.port12.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 12, Keyboard (US): Y -ss.input.port12.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 12, Keyboard (US): Z -ss.input.port12.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 12, Mission Stick: A (Stick Trigger) -ss.input.port12.mission.a - -;ss, Virtual Port 12, Mission Stick: A AF -ss.input.port12.mission.afa - -;Default position for switch "A AF". -ss.input.port12.mission.afa.defpos off - -;ss, Virtual Port 12, Mission Stick: B AF -ss.input.port12.mission.afb - -;Default position for switch "B AF". -ss.input.port12.mission.afb.defpos off - -;ss, Virtual Port 12, Mission Stick: C AF -ss.input.port12.mission.afc - -;Default position for switch "C AF". -ss.input.port12.mission.afc.defpos off - -;ss, Virtual Port 12, Mission Stick: L AF -ss.input.port12.mission.afl - -;Default position for switch "L AF". -ss.input.port12.mission.afl.defpos off - -;ss, Virtual Port 12, Mission Stick: R AF -ss.input.port12.mission.afr - -;Default position for switch "R AF". -ss.input.port12.mission.afr.defpos off - -;ss, Virtual Port 12, Mission Stick: AF Speed -ss.input.port12.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port12.mission.afspeed.defpos 1 - -;ss, Virtual Port 12, Mission Stick: X AF -ss.input.port12.mission.afx - -;Default position for switch "X AF". -ss.input.port12.mission.afx.defpos off - -;ss, Virtual Port 12, Mission Stick: Y AF -ss.input.port12.mission.afy - -;Default position for switch "Y AF". -ss.input.port12.mission.afy.defpos off - -;ss, Virtual Port 12, Mission Stick: Z AF -ss.input.port12.mission.afz - -;Default position for switch "Z AF". -ss.input.port12.mission.afz.defpos off - -;ss, Virtual Port 12, Mission Stick: B (Stick Left Button) -ss.input.port12.mission.b - -;ss, Virtual Port 12, Mission Stick: C (Stick Right Button) -ss.input.port12.mission.c - -;ss, Virtual Port 12, Mission Stick: L -ss.input.port12.mission.l - -;ss, Virtual Port 12, Mission Stick: R -ss.input.port12.mission.r - -;ss, Virtual Port 12, Mission Stick: START -ss.input.port12.mission.start - -;ss, Virtual Port 12, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port12.mission.stick_back - -;ss, Virtual Port 12, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port12.mission.stick_fore - -;ss, Virtual Port 12, Mission Stick: Stick LEFT ← (Analog) -ss.input.port12.mission.stick_left - -;ss, Virtual Port 12, Mission Stick: Stick RIGHT → (Analog) -ss.input.port12.mission.stick_right - -;ss, Virtual Port 12, Mission Stick: Throttle Down (Analog) -ss.input.port12.mission.throttle_down - -;ss, Virtual Port 12, Mission Stick: Throttle Up (Analog) -ss.input.port12.mission.throttle_up - -;ss, Virtual Port 12, Mission Stick: X -ss.input.port12.mission.x - -;ss, Virtual Port 12, Mission Stick: Y -ss.input.port12.mission.y - -;ss, Virtual Port 12, Mission Stick: Z -ss.input.port12.mission.z - -;ss, Virtual Port 12, Mouse: Left Button -ss.input.port12.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 12, Mouse: Middle Button -ss.input.port12.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 12, Mouse: Motion Down -ss.input.port12.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 12, Mouse: Motion Left -ss.input.port12.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 12, Mouse: Motion Right -ss.input.port12.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 12, Mouse: Motion Up -ss.input.port12.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 12, Mouse: Right Button -ss.input.port12.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 12, Mouse: Start -ss.input.port12.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 12, Steering Wheel: A (R Group) -ss.input.port12.wheel.a - -;ss, Virtual Port 12, Steering Wheel: Analog LEFT ← -ss.input.port12.wheel.analog_left - -;ss, Virtual Port 12, Steering Wheel: Analog RIGHT → -ss.input.port12.wheel.analog_right - -;ss, Virtual Port 12, Steering Wheel: B (R Group) -ss.input.port12.wheel.b - -;ss, Virtual Port 12, Steering Wheel: C (R Group) -ss.input.port12.wheel.c - -;ss, Virtual Port 12, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port12.wheel.down - -;ss, Virtual Port 12, Steering Wheel: START -ss.input.port12.wheel.start - -;ss, Virtual Port 12, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port12.wheel.up - -;ss, Virtual Port 12, Steering Wheel: X (L Group) -ss.input.port12.wheel.x - -;ss, Virtual Port 12, Steering Wheel: Y (L Group) -ss.input.port12.wheel.y - -;ss, Virtual Port 12, Steering Wheel: Z (L Group) -ss.input.port12.wheel.z - -;Input device for Virtual Port 2 -ss.input.port2 gamepad - -;ss, Virtual Port 2, 3D Control Pad: A -ss.input.port2.3dpad.a - -;ss, Virtual Port 2, 3D Control Pad: Analog DOWN ↓ -ss.input.port2.3dpad.analog_down - -;ss, Virtual Port 2, 3D Control Pad: Analog LEFT ← -ss.input.port2.3dpad.analog_left - -;ss, Virtual Port 2, 3D Control Pad: Analog RIGHT → -ss.input.port2.3dpad.analog_right - -;ss, Virtual Port 2, 3D Control Pad: Analog UP ↑ -ss.input.port2.3dpad.analog_up - -;ss, Virtual Port 2, 3D Control Pad: B -ss.input.port2.3dpad.b - -;ss, Virtual Port 2, 3D Control Pad: C -ss.input.port2.3dpad.c - -;ss, Virtual Port 2, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port2.3dpad.down - -;ss, Virtual Port 2, 3D Control Pad: D-Pad LEFT ← -ss.input.port2.3dpad.left - -;ss, Virtual Port 2, 3D Control Pad: Left Shoulder (Analog) -ss.input.port2.3dpad.ls - -;ss, Virtual Port 2, 3D Control Pad: Mode -ss.input.port2.3dpad.mode - -;Default position for switch "Mode". -ss.input.port2.3dpad.mode.defpos digital - -;ss, Virtual Port 2, 3D Control Pad: D-Pad RIGHT → -ss.input.port2.3dpad.right - -;ss, Virtual Port 2, 3D Control Pad: Right Shoulder (Analog) -ss.input.port2.3dpad.rs - -;ss, Virtual Port 2, 3D Control Pad: START -ss.input.port2.3dpad.start - -;ss, Virtual Port 2, 3D Control Pad: D-Pad UP ↑ -ss.input.port2.3dpad.up - -;ss, Virtual Port 2, 3D Control Pad: X -ss.input.port2.3dpad.x - -;ss, Virtual Port 2, 3D Control Pad: Y -ss.input.port2.3dpad.y - -;ss, Virtual Port 2, 3D Control Pad: Z -ss.input.port2.3dpad.z - -;ss, Virtual Port 2, Dual Mission: A (R Stick Trigger) -ss.input.port2.dmission.a - -;ss, Virtual Port 2, Dual Mission: A AF -ss.input.port2.dmission.afa - -;Default position for switch "A AF". -ss.input.port2.dmission.afa.defpos off - -;ss, Virtual Port 2, Dual Mission: B AF -ss.input.port2.dmission.afb - -;Default position for switch "B AF". -ss.input.port2.dmission.afb.defpos off - -;ss, Virtual Port 2, Dual Mission: C AF -ss.input.port2.dmission.afc - -;Default position for switch "C AF". -ss.input.port2.dmission.afc.defpos off - -;ss, Virtual Port 2, Dual Mission: L AF -ss.input.port2.dmission.afl - -;Default position for switch "L AF". -ss.input.port2.dmission.afl.defpos off - -;ss, Virtual Port 2, Dual Mission: R AF -ss.input.port2.dmission.afr - -;Default position for switch "R AF". -ss.input.port2.dmission.afr.defpos off - -;ss, Virtual Port 2, Dual Mission: Autofire Speed -ss.input.port2.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port2.dmission.afspeed.defpos 1 - -;ss, Virtual Port 2, Dual Mission: X AF -ss.input.port2.dmission.afx - -;Default position for switch "X AF". -ss.input.port2.dmission.afx.defpos off - -;ss, Virtual Port 2, Dual Mission: Y AF -ss.input.port2.dmission.afy - -;Default position for switch "Y AF". -ss.input.port2.dmission.afy.defpos off - -;ss, Virtual Port 2, Dual Mission: Z AF -ss.input.port2.dmission.afz - -;Default position for switch "Z AF". -ss.input.port2.dmission.afz.defpos off - -;ss, Virtual Port 2, Dual Mission: B (R Stick Left Button) -ss.input.port2.dmission.b - -;ss, Virtual Port 2, Dual Mission: C (R Stick Right Button) -ss.input.port2.dmission.c - -;ss, Virtual Port 2, Dual Mission: L -ss.input.port2.dmission.l - -;ss, Virtual Port 2, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port2.dmission.lstick_back - -;ss, Virtual Port 2, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port2.dmission.lstick_fore - -;ss, Virtual Port 2, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port2.dmission.lstick_left - -;ss, Virtual Port 2, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port2.dmission.lstick_right - -;ss, Virtual Port 2, Dual Mission: L Throttle Down (Analog) -ss.input.port2.dmission.lthrottle_down - -;ss, Virtual Port 2, Dual Mission: L Throttle Up (Analog) -ss.input.port2.dmission.lthrottle_up - -;ss, Virtual Port 2, Dual Mission: R -ss.input.port2.dmission.r - -;ss, Virtual Port 2, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port2.dmission.rstick_back - -;ss, Virtual Port 2, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port2.dmission.rstick_fore - -;ss, Virtual Port 2, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port2.dmission.rstick_left - -;ss, Virtual Port 2, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port2.dmission.rstick_right - -;ss, Virtual Port 2, Dual Mission: R Throttle Down (Analog) -ss.input.port2.dmission.rthrottle_down - -;ss, Virtual Port 2, Dual Mission: R Throttle Up (Analog) -ss.input.port2.dmission.rthrottle_up - -;ss, Virtual Port 2, Dual Mission: START -ss.input.port2.dmission.start - -;ss, Virtual Port 2, Dual Mission: X (L Stick Trigger) -ss.input.port2.dmission.x - -;ss, Virtual Port 2, Dual Mission: Y (L Stick Left Button) -ss.input.port2.dmission.y - -;ss, Virtual Port 2, Dual Mission: Z (L Stick Right Button) -ss.input.port2.dmission.z - -;ss, Virtual Port 2, Digital Gamepad: A -ss.input.port2.gamepad.a - -;ss, Virtual Port 2, Digital Gamepad: B -ss.input.port2.gamepad.b - -;ss, Virtual Port 2, Digital Gamepad: C -ss.input.port2.gamepad.c - -;ss, Virtual Port 2, Digital Gamepad: DOWN ↓ -ss.input.port2.gamepad.down - -;ss, Virtual Port 2, Digital Gamepad: LEFT ← -ss.input.port2.gamepad.left - -;ss, Virtual Port 2, Digital Gamepad: Left Shoulder -ss.input.port2.gamepad.ls - -;ss, Virtual Port 2, Digital Gamepad: RIGHT → -ss.input.port2.gamepad.right - -;ss, Virtual Port 2, Digital Gamepad: Right Shoulder -ss.input.port2.gamepad.rs - -;ss, Virtual Port 2, Digital Gamepad: START -ss.input.port2.gamepad.start - -;ss, Virtual Port 2, Digital Gamepad: UP ↑ -ss.input.port2.gamepad.up - -;ss, Virtual Port 2, Digital Gamepad: X -ss.input.port2.gamepad.x - -;ss, Virtual Port 2, Digital Gamepad: Y -ss.input.port2.gamepad.y - -;ss, Virtual Port 2, Digital Gamepad: Z -ss.input.port2.gamepad.z - -;ss, Virtual Port 2, Light Gun: Offscreen Shot(Simulated) -ss.input.port2.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 2, Light Gun: START -ss.input.port2.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 2, Light Gun: Trigger -ss.input.port2.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 2, Light Gun: X Axis -ss.input.port2.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 2, Light Gun: Y Axis -ss.input.port2.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 2. -ss.input.port2.gun_chairs 0x00FF00 - -;ss, Virtual Port 2, Keyboard (JP): 0(Zero) -ss.input.port2.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 2, Keyboard (JP): 1(One) -ss.input.port2.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 2, Keyboard (JP): 2 -ss.input.port2.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 2, Keyboard (JP): 3 -ss.input.port2.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 2, Keyboard (JP): 4 -ss.input.port2.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 2, Keyboard (JP): 5 -ss.input.port2.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 2, Keyboard (JP): 6 -ss.input.port2.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 2, Keyboard (JP): 7 -ss.input.port2.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 2, Keyboard (JP): 8 -ss.input.port2.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 2, Keyboard (JP): 9 -ss.input.port2.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 2, Keyboard (JP): A -ss.input.port2.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 2, Keyboard (JP): At @ -ss.input.port2.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 2, Keyboard (JP): B -ss.input.port2.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 2, Keyboard (JP): Backslash \ -ss.input.port2.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 2, Keyboard (JP): Backspace -ss.input.port2.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 2, Keyboard (JP): C -ss.input.port2.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 2, Keyboard (JP): Caps Lock/英数 -ss.input.port2.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 2, Keyboard (JP): Circumflex ^ -ss.input.port2.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 2, Keyboard (JP): Colon : -ss.input.port2.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 2, Keyboard (JP): Comma , -ss.input.port2.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 2, Keyboard (JP): 変換 -ss.input.port2.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 2, Keyboard (JP): D -ss.input.port2.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 2, Keyboard (JP): Delete -ss.input.port2.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 2, Keyboard (JP): Down -ss.input.port2.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 2, Keyboard (JP): E -ss.input.port2.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 2, Keyboard (JP): End -ss.input.port2.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 2, Keyboard (JP): Enter -ss.input.port2.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 2, Keyboard (JP): Escape -ss.input.port2.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 2, Keyboard (JP): F -ss.input.port2.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 2, Keyboard (JP): F1 -ss.input.port2.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 2, Keyboard (JP): F10 -ss.input.port2.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 2, Keyboard (JP): F11 -ss.input.port2.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 2, Keyboard (JP): F12 -ss.input.port2.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 2, Keyboard (JP): F2 -ss.input.port2.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 2, Keyboard (JP): F3 -ss.input.port2.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 2, Keyboard (JP): F4 -ss.input.port2.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 2, Keyboard (JP): F5 -ss.input.port2.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 2, Keyboard (JP): F6 -ss.input.port2.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 2, Keyboard (JP): F7 -ss.input.port2.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 2, Keyboard (JP): F8 -ss.input.port2.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 2, Keyboard (JP): F9 -ss.input.port2.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 2, Keyboard (JP): G -ss.input.port2.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 2, Keyboard (JP): H -ss.input.port2.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 2, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port2.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 2, Keyboard (JP): Home -ss.input.port2.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 2, Keyboard (JP): 半角/全角/漢字 -ss.input.port2.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 2, Keyboard (JP): I -ss.input.port2.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 2, Keyboard (JP): Insert -ss.input.port2.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 2, Keyboard (JP): J -ss.input.port2.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 2, Keyboard (JP): K -ss.input.port2.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 2, Keyboard (JP): L -ss.input.port2.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 2, Keyboard (JP): Left Alt -ss.input.port2.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 2, Keyboard (JP): Left Ctrl -ss.input.port2.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 2, Keyboard (JP): Cursor Left -ss.input.port2.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 2, Keyboard (JP): Left Bracket [ -ss.input.port2.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 2, Keyboard (JP): Left Shift -ss.input.port2.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 2, Keyboard (JP): M -ss.input.port2.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 2, Keyboard (JP): Minus - -ss.input.port2.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 2, Keyboard (JP): N -ss.input.port2.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 2, Keyboard (JP): 無変換 -ss.input.port2.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 2, Keyboard (JP): O -ss.input.port2.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 2, Keyboard (JP): P -ss.input.port2.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 2, Keyboard (JP): Page Down -ss.input.port2.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 2, Keyboard (JP): Page Up -ss.input.port2.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 2, Keyboard (JP): Pause -ss.input.port2.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 2, Keyboard (JP): Period . -ss.input.port2.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 2, Keyboard (JP): Print Screen -ss.input.port2.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 2, Keyboard (JP): Q -ss.input.port2.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 2, Keyboard (JP): R -ss.input.port2.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 2, Keyboard (JP): Right Alt -ss.input.port2.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 2, Keyboard (JP): Right Ctrl -ss.input.port2.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 2, Keyboard (JP): Right -ss.input.port2.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 2, Keyboard (JP): Right Bracket ] -ss.input.port2.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 2, Keyboard (JP): Right Shift -ss.input.port2.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 2, Keyboard (JP): S -ss.input.port2.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 2, Keyboard (JP): Scroll Lock -ss.input.port2.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 2, Keyboard (JP): Semicolon ; -ss.input.port2.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 2, Keyboard (JP): Slash / -ss.input.port2.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 2, Keyboard (JP): Space -ss.input.port2.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 2, Keyboard (JP): T -ss.input.port2.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 2, Keyboard (JP): Tab -ss.input.port2.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 2, Keyboard (JP): U -ss.input.port2.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 2, Keyboard (JP): Up -ss.input.port2.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 2, Keyboard (JP): V -ss.input.port2.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 2, Keyboard (JP): W -ss.input.port2.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 2, Keyboard (JP): X -ss.input.port2.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 2, Keyboard (JP): Y -ss.input.port2.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 2, Keyboard (JP): Yen ¥ -ss.input.port2.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 2, Keyboard (JP): Z -ss.input.port2.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 2, Keyboard (US): 0(Zero) -ss.input.port2.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 2, Keyboard (US): 1(One) -ss.input.port2.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 2, Keyboard (US): 2 -ss.input.port2.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 2, Keyboard (US): 3 -ss.input.port2.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 2, Keyboard (US): 4 -ss.input.port2.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 2, Keyboard (US): 5 -ss.input.port2.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 2, Keyboard (US): 6 -ss.input.port2.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 2, Keyboard (US): 7 -ss.input.port2.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 2, Keyboard (US): 8 -ss.input.port2.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 2, Keyboard (US): 9 -ss.input.port2.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 2, Keyboard (US): A -ss.input.port2.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 2, Keyboard (US): B -ss.input.port2.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 2, Keyboard (US): Backslash \ -ss.input.port2.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 2, Keyboard (US): Backspace -ss.input.port2.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 2, Keyboard (US): C -ss.input.port2.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 2, Keyboard (US): Caps Lock -ss.input.port2.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 2, Keyboard (US): Comma , -ss.input.port2.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 2, Keyboard (US): D -ss.input.port2.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 2, Keyboard (US): Delete -ss.input.port2.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 2, Keyboard (US): Down -ss.input.port2.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 2, Keyboard (US): E -ss.input.port2.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 2, Keyboard (US): End -ss.input.port2.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 2, Keyboard (US): Enter -ss.input.port2.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 2, Keyboard (US): Equals = -ss.input.port2.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 2, Keyboard (US): Escape -ss.input.port2.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 2, Keyboard (US): F -ss.input.port2.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 2, Keyboard (US): F1 -ss.input.port2.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 2, Keyboard (US): F10 -ss.input.port2.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 2, Keyboard (US): F11 -ss.input.port2.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 2, Keyboard (US): F12 -ss.input.port2.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 2, Keyboard (US): F2 -ss.input.port2.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 2, Keyboard (US): F3 -ss.input.port2.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 2, Keyboard (US): F4 -ss.input.port2.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 2, Keyboard (US): F5 -ss.input.port2.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 2, Keyboard (US): F6 -ss.input.port2.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 2, Keyboard (US): F7 -ss.input.port2.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 2, Keyboard (US): F8 -ss.input.port2.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 2, Keyboard (US): F9 -ss.input.port2.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 2, Keyboard (US): G -ss.input.port2.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 2, Keyboard (US): Grave ` -ss.input.port2.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 2, Keyboard (US): H -ss.input.port2.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 2, Keyboard (US): Home -ss.input.port2.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 2, Keyboard (US): I -ss.input.port2.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 2, Keyboard (US): Insert -ss.input.port2.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 2, Keyboard (US): J -ss.input.port2.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 2, Keyboard (US): K -ss.input.port2.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 2, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port2.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 2, Keyboard (US): Keypad Center/5 -ss.input.port2.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 2, Keyboard (US): Keypad Delete -ss.input.port2.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 2, Keyboard (US): Keypad Down/2 -ss.input.port2.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 2, Keyboard (US): Keypad End/1 -ss.input.port2.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 2, Keyboard (US): Keypad Enter -ss.input.port2.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 2, Keyboard (US): Keypad Home/7 -ss.input.port2.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 2, Keyboard (US): Keypad Insert/0 -ss.input.port2.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 2, Keyboard (US): Keypad Left/4 -ss.input.port2.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 2, Keyboard (US): Keypad Minus -ss.input.port2.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 2, Keyboard (US): Keypad Pagedown/3 -ss.input.port2.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 2, Keyboard (US): Keypad Pageup/9 -ss.input.port2.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 2, Keyboard (US): Keypad Plus -ss.input.port2.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 2, Keyboard (US): Keypad Right/6 -ss.input.port2.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 2, Keyboard (US): Keypad Slash(Divide) -ss.input.port2.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 2, Keyboard (US): Keypad Up/8 -ss.input.port2.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 2, Keyboard (US): L -ss.input.port2.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 2, Keyboard (US): Left Alt -ss.input.port2.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 2, Keyboard (US): Left Ctrl -ss.input.port2.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 2, Keyboard (US): Cursor Left -ss.input.port2.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 2, Keyboard (US): Left Bracket [ -ss.input.port2.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 2, Keyboard (US): Left Shift -ss.input.port2.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 2, Keyboard (US): M -ss.input.port2.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 2, Keyboard (US): Minus - -ss.input.port2.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 2, Keyboard (US): N -ss.input.port2.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 2, Keyboard (US): Num Lock -ss.input.port2.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 2, Keyboard (US): O -ss.input.port2.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 2, Keyboard (US): P -ss.input.port2.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 2, Keyboard (US): Page Down -ss.input.port2.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 2, Keyboard (US): Page Up -ss.input.port2.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 2, Keyboard (US): Pause -ss.input.port2.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 2, Keyboard (US): Period . -ss.input.port2.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 2, Keyboard (US): Print Screen -ss.input.port2.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 2, Keyboard (US): Q -ss.input.port2.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 2, Keyboard (US): Quote ' -ss.input.port2.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 2, Keyboard (US): R -ss.input.port2.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 2, Keyboard (US): Right Alt -ss.input.port2.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 2, Keyboard (US): Right Ctrl -ss.input.port2.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 2, Keyboard (US): Right -ss.input.port2.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 2, Keyboard (US): Right Bracket ] -ss.input.port2.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 2, Keyboard (US): Right Shift -ss.input.port2.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 2, Keyboard (US): S -ss.input.port2.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 2, Keyboard (US): Scroll Lock -ss.input.port2.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 2, Keyboard (US): Semicolon ; -ss.input.port2.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 2, Keyboard (US): Slash / -ss.input.port2.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 2, Keyboard (US): Space -ss.input.port2.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 2, Keyboard (US): T -ss.input.port2.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 2, Keyboard (US): Tab -ss.input.port2.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 2, Keyboard (US): U -ss.input.port2.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 2, Keyboard (US): Up -ss.input.port2.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 2, Keyboard (US): V -ss.input.port2.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 2, Keyboard (US): W -ss.input.port2.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 2, Keyboard (US): X -ss.input.port2.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 2, Keyboard (US): Y -ss.input.port2.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 2, Keyboard (US): Z -ss.input.port2.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 2, Mission Stick: A (Stick Trigger) -ss.input.port2.mission.a - -;ss, Virtual Port 2, Mission Stick: A AF -ss.input.port2.mission.afa - -;Default position for switch "A AF". -ss.input.port2.mission.afa.defpos off - -;ss, Virtual Port 2, Mission Stick: B AF -ss.input.port2.mission.afb - -;Default position for switch "B AF". -ss.input.port2.mission.afb.defpos off - -;ss, Virtual Port 2, Mission Stick: C AF -ss.input.port2.mission.afc - -;Default position for switch "C AF". -ss.input.port2.mission.afc.defpos off - -;ss, Virtual Port 2, Mission Stick: L AF -ss.input.port2.mission.afl - -;Default position for switch "L AF". -ss.input.port2.mission.afl.defpos off - -;ss, Virtual Port 2, Mission Stick: R AF -ss.input.port2.mission.afr - -;Default position for switch "R AF". -ss.input.port2.mission.afr.defpos off - -;ss, Virtual Port 2, Mission Stick: AF Speed -ss.input.port2.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port2.mission.afspeed.defpos 1 - -;ss, Virtual Port 2, Mission Stick: X AF -ss.input.port2.mission.afx - -;Default position for switch "X AF". -ss.input.port2.mission.afx.defpos off - -;ss, Virtual Port 2, Mission Stick: Y AF -ss.input.port2.mission.afy - -;Default position for switch "Y AF". -ss.input.port2.mission.afy.defpos off - -;ss, Virtual Port 2, Mission Stick: Z AF -ss.input.port2.mission.afz - -;Default position for switch "Z AF". -ss.input.port2.mission.afz.defpos off - -;ss, Virtual Port 2, Mission Stick: B (Stick Left Button) -ss.input.port2.mission.b - -;ss, Virtual Port 2, Mission Stick: C (Stick Right Button) -ss.input.port2.mission.c - -;ss, Virtual Port 2, Mission Stick: L -ss.input.port2.mission.l - -;ss, Virtual Port 2, Mission Stick: R -ss.input.port2.mission.r - -;ss, Virtual Port 2, Mission Stick: START -ss.input.port2.mission.start - -;ss, Virtual Port 2, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port2.mission.stick_back - -;ss, Virtual Port 2, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port2.mission.stick_fore - -;ss, Virtual Port 2, Mission Stick: Stick LEFT ← (Analog) -ss.input.port2.mission.stick_left - -;ss, Virtual Port 2, Mission Stick: Stick RIGHT → (Analog) -ss.input.port2.mission.stick_right - -;ss, Virtual Port 2, Mission Stick: Throttle Down (Analog) -ss.input.port2.mission.throttle_down - -;ss, Virtual Port 2, Mission Stick: Throttle Up (Analog) -ss.input.port2.mission.throttle_up - -;ss, Virtual Port 2, Mission Stick: X -ss.input.port2.mission.x - -;ss, Virtual Port 2, Mission Stick: Y -ss.input.port2.mission.y - -;ss, Virtual Port 2, Mission Stick: Z -ss.input.port2.mission.z - -;ss, Virtual Port 2, Mouse: Left Button -ss.input.port2.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 2, Mouse: Middle Button -ss.input.port2.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 2, Mouse: Motion Down -ss.input.port2.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 2, Mouse: Motion Left -ss.input.port2.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 2, Mouse: Motion Right -ss.input.port2.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 2, Mouse: Motion Up -ss.input.port2.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 2, Mouse: Right Button -ss.input.port2.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 2, Mouse: Start -ss.input.port2.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 2, Steering Wheel: A (R Group) -ss.input.port2.wheel.a - -;ss, Virtual Port 2, Steering Wheel: Analog LEFT ← -ss.input.port2.wheel.analog_left - -;ss, Virtual Port 2, Steering Wheel: Analog RIGHT → -ss.input.port2.wheel.analog_right - -;ss, Virtual Port 2, Steering Wheel: B (R Group) -ss.input.port2.wheel.b - -;ss, Virtual Port 2, Steering Wheel: C (R Group) -ss.input.port2.wheel.c - -;ss, Virtual Port 2, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port2.wheel.down - -;ss, Virtual Port 2, Steering Wheel: START -ss.input.port2.wheel.start - -;ss, Virtual Port 2, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port2.wheel.up - -;ss, Virtual Port 2, Steering Wheel: X (L Group) -ss.input.port2.wheel.x - -;ss, Virtual Port 2, Steering Wheel: Y (L Group) -ss.input.port2.wheel.y - -;ss, Virtual Port 2, Steering Wheel: Z (L Group) -ss.input.port2.wheel.z - -;Input device for Virtual Port 3 -ss.input.port3 gamepad - -;ss, Virtual Port 3, 3D Control Pad: A -ss.input.port3.3dpad.a - -;ss, Virtual Port 3, 3D Control Pad: Analog DOWN ↓ -ss.input.port3.3dpad.analog_down - -;ss, Virtual Port 3, 3D Control Pad: Analog LEFT ← -ss.input.port3.3dpad.analog_left - -;ss, Virtual Port 3, 3D Control Pad: Analog RIGHT → -ss.input.port3.3dpad.analog_right - -;ss, Virtual Port 3, 3D Control Pad: Analog UP ↑ -ss.input.port3.3dpad.analog_up - -;ss, Virtual Port 3, 3D Control Pad: B -ss.input.port3.3dpad.b - -;ss, Virtual Port 3, 3D Control Pad: C -ss.input.port3.3dpad.c - -;ss, Virtual Port 3, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port3.3dpad.down - -;ss, Virtual Port 3, 3D Control Pad: D-Pad LEFT ← -ss.input.port3.3dpad.left - -;ss, Virtual Port 3, 3D Control Pad: Left Shoulder (Analog) -ss.input.port3.3dpad.ls - -;ss, Virtual Port 3, 3D Control Pad: Mode -ss.input.port3.3dpad.mode - -;Default position for switch "Mode". -ss.input.port3.3dpad.mode.defpos digital - -;ss, Virtual Port 3, 3D Control Pad: D-Pad RIGHT → -ss.input.port3.3dpad.right - -;ss, Virtual Port 3, 3D Control Pad: Right Shoulder (Analog) -ss.input.port3.3dpad.rs - -;ss, Virtual Port 3, 3D Control Pad: START -ss.input.port3.3dpad.start - -;ss, Virtual Port 3, 3D Control Pad: D-Pad UP ↑ -ss.input.port3.3dpad.up - -;ss, Virtual Port 3, 3D Control Pad: X -ss.input.port3.3dpad.x - -;ss, Virtual Port 3, 3D Control Pad: Y -ss.input.port3.3dpad.y - -;ss, Virtual Port 3, 3D Control Pad: Z -ss.input.port3.3dpad.z - -;ss, Virtual Port 3, Dual Mission: A (R Stick Trigger) -ss.input.port3.dmission.a - -;ss, Virtual Port 3, Dual Mission: A AF -ss.input.port3.dmission.afa - -;Default position for switch "A AF". -ss.input.port3.dmission.afa.defpos off - -;ss, Virtual Port 3, Dual Mission: B AF -ss.input.port3.dmission.afb - -;Default position for switch "B AF". -ss.input.port3.dmission.afb.defpos off - -;ss, Virtual Port 3, Dual Mission: C AF -ss.input.port3.dmission.afc - -;Default position for switch "C AF". -ss.input.port3.dmission.afc.defpos off - -;ss, Virtual Port 3, Dual Mission: L AF -ss.input.port3.dmission.afl - -;Default position for switch "L AF". -ss.input.port3.dmission.afl.defpos off - -;ss, Virtual Port 3, Dual Mission: R AF -ss.input.port3.dmission.afr - -;Default position for switch "R AF". -ss.input.port3.dmission.afr.defpos off - -;ss, Virtual Port 3, Dual Mission: Autofire Speed -ss.input.port3.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port3.dmission.afspeed.defpos 1 - -;ss, Virtual Port 3, Dual Mission: X AF -ss.input.port3.dmission.afx - -;Default position for switch "X AF". -ss.input.port3.dmission.afx.defpos off - -;ss, Virtual Port 3, Dual Mission: Y AF -ss.input.port3.dmission.afy - -;Default position for switch "Y AF". -ss.input.port3.dmission.afy.defpos off - -;ss, Virtual Port 3, Dual Mission: Z AF -ss.input.port3.dmission.afz - -;Default position for switch "Z AF". -ss.input.port3.dmission.afz.defpos off - -;ss, Virtual Port 3, Dual Mission: B (R Stick Left Button) -ss.input.port3.dmission.b - -;ss, Virtual Port 3, Dual Mission: C (R Stick Right Button) -ss.input.port3.dmission.c - -;ss, Virtual Port 3, Dual Mission: L -ss.input.port3.dmission.l - -;ss, Virtual Port 3, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port3.dmission.lstick_back - -;ss, Virtual Port 3, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port3.dmission.lstick_fore - -;ss, Virtual Port 3, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port3.dmission.lstick_left - -;ss, Virtual Port 3, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port3.dmission.lstick_right - -;ss, Virtual Port 3, Dual Mission: L Throttle Down (Analog) -ss.input.port3.dmission.lthrottle_down - -;ss, Virtual Port 3, Dual Mission: L Throttle Up (Analog) -ss.input.port3.dmission.lthrottle_up - -;ss, Virtual Port 3, Dual Mission: R -ss.input.port3.dmission.r - -;ss, Virtual Port 3, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port3.dmission.rstick_back - -;ss, Virtual Port 3, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port3.dmission.rstick_fore - -;ss, Virtual Port 3, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port3.dmission.rstick_left - -;ss, Virtual Port 3, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port3.dmission.rstick_right - -;ss, Virtual Port 3, Dual Mission: R Throttle Down (Analog) -ss.input.port3.dmission.rthrottle_down - -;ss, Virtual Port 3, Dual Mission: R Throttle Up (Analog) -ss.input.port3.dmission.rthrottle_up - -;ss, Virtual Port 3, Dual Mission: START -ss.input.port3.dmission.start - -;ss, Virtual Port 3, Dual Mission: X (L Stick Trigger) -ss.input.port3.dmission.x - -;ss, Virtual Port 3, Dual Mission: Y (L Stick Left Button) -ss.input.port3.dmission.y - -;ss, Virtual Port 3, Dual Mission: Z (L Stick Right Button) -ss.input.port3.dmission.z - -;ss, Virtual Port 3, Digital Gamepad: A -ss.input.port3.gamepad.a - -;ss, Virtual Port 3, Digital Gamepad: B -ss.input.port3.gamepad.b - -;ss, Virtual Port 3, Digital Gamepad: C -ss.input.port3.gamepad.c - -;ss, Virtual Port 3, Digital Gamepad: DOWN ↓ -ss.input.port3.gamepad.down - -;ss, Virtual Port 3, Digital Gamepad: LEFT ← -ss.input.port3.gamepad.left - -;ss, Virtual Port 3, Digital Gamepad: Left Shoulder -ss.input.port3.gamepad.ls - -;ss, Virtual Port 3, Digital Gamepad: RIGHT → -ss.input.port3.gamepad.right - -;ss, Virtual Port 3, Digital Gamepad: Right Shoulder -ss.input.port3.gamepad.rs - -;ss, Virtual Port 3, Digital Gamepad: START -ss.input.port3.gamepad.start - -;ss, Virtual Port 3, Digital Gamepad: UP ↑ -ss.input.port3.gamepad.up - -;ss, Virtual Port 3, Digital Gamepad: X -ss.input.port3.gamepad.x - -;ss, Virtual Port 3, Digital Gamepad: Y -ss.input.port3.gamepad.y - -;ss, Virtual Port 3, Digital Gamepad: Z -ss.input.port3.gamepad.z - -;ss, Virtual Port 3, Light Gun: Offscreen Shot(Simulated) -ss.input.port3.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 3, Light Gun: START -ss.input.port3.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 3, Light Gun: Trigger -ss.input.port3.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 3, Light Gun: X Axis -ss.input.port3.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 3, Light Gun: Y Axis -ss.input.port3.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 3. -ss.input.port3.gun_chairs 0xFF00FF - -;ss, Virtual Port 3, Keyboard (JP): 0(Zero) -ss.input.port3.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 3, Keyboard (JP): 1(One) -ss.input.port3.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 3, Keyboard (JP): 2 -ss.input.port3.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 3, Keyboard (JP): 3 -ss.input.port3.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 3, Keyboard (JP): 4 -ss.input.port3.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 3, Keyboard (JP): 5 -ss.input.port3.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 3, Keyboard (JP): 6 -ss.input.port3.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 3, Keyboard (JP): 7 -ss.input.port3.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 3, Keyboard (JP): 8 -ss.input.port3.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 3, Keyboard (JP): 9 -ss.input.port3.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 3, Keyboard (JP): A -ss.input.port3.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 3, Keyboard (JP): At @ -ss.input.port3.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 3, Keyboard (JP): B -ss.input.port3.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 3, Keyboard (JP): Backslash \ -ss.input.port3.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 3, Keyboard (JP): Backspace -ss.input.port3.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 3, Keyboard (JP): C -ss.input.port3.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 3, Keyboard (JP): Caps Lock/英数 -ss.input.port3.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 3, Keyboard (JP): Circumflex ^ -ss.input.port3.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 3, Keyboard (JP): Colon : -ss.input.port3.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 3, Keyboard (JP): Comma , -ss.input.port3.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 3, Keyboard (JP): 変換 -ss.input.port3.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 3, Keyboard (JP): D -ss.input.port3.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 3, Keyboard (JP): Delete -ss.input.port3.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 3, Keyboard (JP): Down -ss.input.port3.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 3, Keyboard (JP): E -ss.input.port3.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 3, Keyboard (JP): End -ss.input.port3.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 3, Keyboard (JP): Enter -ss.input.port3.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 3, Keyboard (JP): Escape -ss.input.port3.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 3, Keyboard (JP): F -ss.input.port3.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 3, Keyboard (JP): F1 -ss.input.port3.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 3, Keyboard (JP): F10 -ss.input.port3.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 3, Keyboard (JP): F11 -ss.input.port3.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 3, Keyboard (JP): F12 -ss.input.port3.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 3, Keyboard (JP): F2 -ss.input.port3.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 3, Keyboard (JP): F3 -ss.input.port3.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 3, Keyboard (JP): F4 -ss.input.port3.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 3, Keyboard (JP): F5 -ss.input.port3.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 3, Keyboard (JP): F6 -ss.input.port3.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 3, Keyboard (JP): F7 -ss.input.port3.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 3, Keyboard (JP): F8 -ss.input.port3.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 3, Keyboard (JP): F9 -ss.input.port3.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 3, Keyboard (JP): G -ss.input.port3.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 3, Keyboard (JP): H -ss.input.port3.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 3, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port3.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 3, Keyboard (JP): Home -ss.input.port3.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 3, Keyboard (JP): 半角/全角/漢字 -ss.input.port3.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 3, Keyboard (JP): I -ss.input.port3.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 3, Keyboard (JP): Insert -ss.input.port3.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 3, Keyboard (JP): J -ss.input.port3.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 3, Keyboard (JP): K -ss.input.port3.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 3, Keyboard (JP): L -ss.input.port3.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 3, Keyboard (JP): Left Alt -ss.input.port3.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 3, Keyboard (JP): Left Ctrl -ss.input.port3.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 3, Keyboard (JP): Cursor Left -ss.input.port3.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 3, Keyboard (JP): Left Bracket [ -ss.input.port3.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 3, Keyboard (JP): Left Shift -ss.input.port3.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 3, Keyboard (JP): M -ss.input.port3.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 3, Keyboard (JP): Minus - -ss.input.port3.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 3, Keyboard (JP): N -ss.input.port3.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 3, Keyboard (JP): 無変換 -ss.input.port3.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 3, Keyboard (JP): O -ss.input.port3.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 3, Keyboard (JP): P -ss.input.port3.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 3, Keyboard (JP): Page Down -ss.input.port3.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 3, Keyboard (JP): Page Up -ss.input.port3.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 3, Keyboard (JP): Pause -ss.input.port3.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 3, Keyboard (JP): Period . -ss.input.port3.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 3, Keyboard (JP): Print Screen -ss.input.port3.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 3, Keyboard (JP): Q -ss.input.port3.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 3, Keyboard (JP): R -ss.input.port3.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 3, Keyboard (JP): Right Alt -ss.input.port3.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 3, Keyboard (JP): Right Ctrl -ss.input.port3.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 3, Keyboard (JP): Right -ss.input.port3.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 3, Keyboard (JP): Right Bracket ] -ss.input.port3.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 3, Keyboard (JP): Right Shift -ss.input.port3.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 3, Keyboard (JP): S -ss.input.port3.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 3, Keyboard (JP): Scroll Lock -ss.input.port3.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 3, Keyboard (JP): Semicolon ; -ss.input.port3.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 3, Keyboard (JP): Slash / -ss.input.port3.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 3, Keyboard (JP): Space -ss.input.port3.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 3, Keyboard (JP): T -ss.input.port3.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 3, Keyboard (JP): Tab -ss.input.port3.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 3, Keyboard (JP): U -ss.input.port3.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 3, Keyboard (JP): Up -ss.input.port3.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 3, Keyboard (JP): V -ss.input.port3.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 3, Keyboard (JP): W -ss.input.port3.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 3, Keyboard (JP): X -ss.input.port3.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 3, Keyboard (JP): Y -ss.input.port3.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 3, Keyboard (JP): Yen ¥ -ss.input.port3.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 3, Keyboard (JP): Z -ss.input.port3.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 3, Keyboard (US): 0(Zero) -ss.input.port3.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 3, Keyboard (US): 1(One) -ss.input.port3.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 3, Keyboard (US): 2 -ss.input.port3.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 3, Keyboard (US): 3 -ss.input.port3.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 3, Keyboard (US): 4 -ss.input.port3.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 3, Keyboard (US): 5 -ss.input.port3.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 3, Keyboard (US): 6 -ss.input.port3.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 3, Keyboard (US): 7 -ss.input.port3.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 3, Keyboard (US): 8 -ss.input.port3.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 3, Keyboard (US): 9 -ss.input.port3.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 3, Keyboard (US): A -ss.input.port3.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 3, Keyboard (US): B -ss.input.port3.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 3, Keyboard (US): Backslash \ -ss.input.port3.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 3, Keyboard (US): Backspace -ss.input.port3.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 3, Keyboard (US): C -ss.input.port3.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 3, Keyboard (US): Caps Lock -ss.input.port3.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 3, Keyboard (US): Comma , -ss.input.port3.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 3, Keyboard (US): D -ss.input.port3.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 3, Keyboard (US): Delete -ss.input.port3.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 3, Keyboard (US): Down -ss.input.port3.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 3, Keyboard (US): E -ss.input.port3.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 3, Keyboard (US): End -ss.input.port3.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 3, Keyboard (US): Enter -ss.input.port3.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 3, Keyboard (US): Equals = -ss.input.port3.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 3, Keyboard (US): Escape -ss.input.port3.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 3, Keyboard (US): F -ss.input.port3.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 3, Keyboard (US): F1 -ss.input.port3.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 3, Keyboard (US): F10 -ss.input.port3.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 3, Keyboard (US): F11 -ss.input.port3.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 3, Keyboard (US): F12 -ss.input.port3.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 3, Keyboard (US): F2 -ss.input.port3.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 3, Keyboard (US): F3 -ss.input.port3.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 3, Keyboard (US): F4 -ss.input.port3.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 3, Keyboard (US): F5 -ss.input.port3.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 3, Keyboard (US): F6 -ss.input.port3.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 3, Keyboard (US): F7 -ss.input.port3.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 3, Keyboard (US): F8 -ss.input.port3.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 3, Keyboard (US): F9 -ss.input.port3.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 3, Keyboard (US): G -ss.input.port3.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 3, Keyboard (US): Grave ` -ss.input.port3.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 3, Keyboard (US): H -ss.input.port3.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 3, Keyboard (US): Home -ss.input.port3.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 3, Keyboard (US): I -ss.input.port3.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 3, Keyboard (US): Insert -ss.input.port3.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 3, Keyboard (US): J -ss.input.port3.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 3, Keyboard (US): K -ss.input.port3.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 3, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port3.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 3, Keyboard (US): Keypad Center/5 -ss.input.port3.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 3, Keyboard (US): Keypad Delete -ss.input.port3.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 3, Keyboard (US): Keypad Down/2 -ss.input.port3.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 3, Keyboard (US): Keypad End/1 -ss.input.port3.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 3, Keyboard (US): Keypad Enter -ss.input.port3.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 3, Keyboard (US): Keypad Home/7 -ss.input.port3.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 3, Keyboard (US): Keypad Insert/0 -ss.input.port3.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 3, Keyboard (US): Keypad Left/4 -ss.input.port3.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 3, Keyboard (US): Keypad Minus -ss.input.port3.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 3, Keyboard (US): Keypad Pagedown/3 -ss.input.port3.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 3, Keyboard (US): Keypad Pageup/9 -ss.input.port3.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 3, Keyboard (US): Keypad Plus -ss.input.port3.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 3, Keyboard (US): Keypad Right/6 -ss.input.port3.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 3, Keyboard (US): Keypad Slash(Divide) -ss.input.port3.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 3, Keyboard (US): Keypad Up/8 -ss.input.port3.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 3, Keyboard (US): L -ss.input.port3.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 3, Keyboard (US): Left Alt -ss.input.port3.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 3, Keyboard (US): Left Ctrl -ss.input.port3.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 3, Keyboard (US): Cursor Left -ss.input.port3.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 3, Keyboard (US): Left Bracket [ -ss.input.port3.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 3, Keyboard (US): Left Shift -ss.input.port3.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 3, Keyboard (US): M -ss.input.port3.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 3, Keyboard (US): Minus - -ss.input.port3.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 3, Keyboard (US): N -ss.input.port3.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 3, Keyboard (US): Num Lock -ss.input.port3.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 3, Keyboard (US): O -ss.input.port3.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 3, Keyboard (US): P -ss.input.port3.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 3, Keyboard (US): Page Down -ss.input.port3.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 3, Keyboard (US): Page Up -ss.input.port3.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 3, Keyboard (US): Pause -ss.input.port3.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 3, Keyboard (US): Period . -ss.input.port3.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 3, Keyboard (US): Print Screen -ss.input.port3.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 3, Keyboard (US): Q -ss.input.port3.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 3, Keyboard (US): Quote ' -ss.input.port3.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 3, Keyboard (US): R -ss.input.port3.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 3, Keyboard (US): Right Alt -ss.input.port3.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 3, Keyboard (US): Right Ctrl -ss.input.port3.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 3, Keyboard (US): Right -ss.input.port3.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 3, Keyboard (US): Right Bracket ] -ss.input.port3.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 3, Keyboard (US): Right Shift -ss.input.port3.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 3, Keyboard (US): S -ss.input.port3.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 3, Keyboard (US): Scroll Lock -ss.input.port3.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 3, Keyboard (US): Semicolon ; -ss.input.port3.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 3, Keyboard (US): Slash / -ss.input.port3.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 3, Keyboard (US): Space -ss.input.port3.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 3, Keyboard (US): T -ss.input.port3.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 3, Keyboard (US): Tab -ss.input.port3.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 3, Keyboard (US): U -ss.input.port3.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 3, Keyboard (US): Up -ss.input.port3.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 3, Keyboard (US): V -ss.input.port3.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 3, Keyboard (US): W -ss.input.port3.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 3, Keyboard (US): X -ss.input.port3.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 3, Keyboard (US): Y -ss.input.port3.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 3, Keyboard (US): Z -ss.input.port3.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 3, Mission Stick: A (Stick Trigger) -ss.input.port3.mission.a - -;ss, Virtual Port 3, Mission Stick: A AF -ss.input.port3.mission.afa - -;Default position for switch "A AF". -ss.input.port3.mission.afa.defpos off - -;ss, Virtual Port 3, Mission Stick: B AF -ss.input.port3.mission.afb - -;Default position for switch "B AF". -ss.input.port3.mission.afb.defpos off - -;ss, Virtual Port 3, Mission Stick: C AF -ss.input.port3.mission.afc - -;Default position for switch "C AF". -ss.input.port3.mission.afc.defpos off - -;ss, Virtual Port 3, Mission Stick: L AF -ss.input.port3.mission.afl - -;Default position for switch "L AF". -ss.input.port3.mission.afl.defpos off - -;ss, Virtual Port 3, Mission Stick: R AF -ss.input.port3.mission.afr - -;Default position for switch "R AF". -ss.input.port3.mission.afr.defpos off - -;ss, Virtual Port 3, Mission Stick: AF Speed -ss.input.port3.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port3.mission.afspeed.defpos 1 - -;ss, Virtual Port 3, Mission Stick: X AF -ss.input.port3.mission.afx - -;Default position for switch "X AF". -ss.input.port3.mission.afx.defpos off - -;ss, Virtual Port 3, Mission Stick: Y AF -ss.input.port3.mission.afy - -;Default position for switch "Y AF". -ss.input.port3.mission.afy.defpos off - -;ss, Virtual Port 3, Mission Stick: Z AF -ss.input.port3.mission.afz - -;Default position for switch "Z AF". -ss.input.port3.mission.afz.defpos off - -;ss, Virtual Port 3, Mission Stick: B (Stick Left Button) -ss.input.port3.mission.b - -;ss, Virtual Port 3, Mission Stick: C (Stick Right Button) -ss.input.port3.mission.c - -;ss, Virtual Port 3, Mission Stick: L -ss.input.port3.mission.l - -;ss, Virtual Port 3, Mission Stick: R -ss.input.port3.mission.r - -;ss, Virtual Port 3, Mission Stick: START -ss.input.port3.mission.start - -;ss, Virtual Port 3, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port3.mission.stick_back - -;ss, Virtual Port 3, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port3.mission.stick_fore - -;ss, Virtual Port 3, Mission Stick: Stick LEFT ← (Analog) -ss.input.port3.mission.stick_left - -;ss, Virtual Port 3, Mission Stick: Stick RIGHT → (Analog) -ss.input.port3.mission.stick_right - -;ss, Virtual Port 3, Mission Stick: Throttle Down (Analog) -ss.input.port3.mission.throttle_down - -;ss, Virtual Port 3, Mission Stick: Throttle Up (Analog) -ss.input.port3.mission.throttle_up - -;ss, Virtual Port 3, Mission Stick: X -ss.input.port3.mission.x - -;ss, Virtual Port 3, Mission Stick: Y -ss.input.port3.mission.y - -;ss, Virtual Port 3, Mission Stick: Z -ss.input.port3.mission.z - -;ss, Virtual Port 3, Mouse: Left Button -ss.input.port3.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 3, Mouse: Middle Button -ss.input.port3.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 3, Mouse: Motion Down -ss.input.port3.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 3, Mouse: Motion Left -ss.input.port3.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 3, Mouse: Motion Right -ss.input.port3.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 3, Mouse: Motion Up -ss.input.port3.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 3, Mouse: Right Button -ss.input.port3.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 3, Mouse: Start -ss.input.port3.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 3, Steering Wheel: A (R Group) -ss.input.port3.wheel.a - -;ss, Virtual Port 3, Steering Wheel: Analog LEFT ← -ss.input.port3.wheel.analog_left - -;ss, Virtual Port 3, Steering Wheel: Analog RIGHT → -ss.input.port3.wheel.analog_right - -;ss, Virtual Port 3, Steering Wheel: B (R Group) -ss.input.port3.wheel.b - -;ss, Virtual Port 3, Steering Wheel: C (R Group) -ss.input.port3.wheel.c - -;ss, Virtual Port 3, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port3.wheel.down - -;ss, Virtual Port 3, Steering Wheel: START -ss.input.port3.wheel.start - -;ss, Virtual Port 3, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port3.wheel.up - -;ss, Virtual Port 3, Steering Wheel: X (L Group) -ss.input.port3.wheel.x - -;ss, Virtual Port 3, Steering Wheel: Y (L Group) -ss.input.port3.wheel.y - -;ss, Virtual Port 3, Steering Wheel: Z (L Group) -ss.input.port3.wheel.z - -;Input device for Virtual Port 4 -ss.input.port4 gamepad - -;ss, Virtual Port 4, 3D Control Pad: A -ss.input.port4.3dpad.a - -;ss, Virtual Port 4, 3D Control Pad: Analog DOWN ↓ -ss.input.port4.3dpad.analog_down - -;ss, Virtual Port 4, 3D Control Pad: Analog LEFT ← -ss.input.port4.3dpad.analog_left - -;ss, Virtual Port 4, 3D Control Pad: Analog RIGHT → -ss.input.port4.3dpad.analog_right - -;ss, Virtual Port 4, 3D Control Pad: Analog UP ↑ -ss.input.port4.3dpad.analog_up - -;ss, Virtual Port 4, 3D Control Pad: B -ss.input.port4.3dpad.b - -;ss, Virtual Port 4, 3D Control Pad: C -ss.input.port4.3dpad.c - -;ss, Virtual Port 4, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port4.3dpad.down - -;ss, Virtual Port 4, 3D Control Pad: D-Pad LEFT ← -ss.input.port4.3dpad.left - -;ss, Virtual Port 4, 3D Control Pad: Left Shoulder (Analog) -ss.input.port4.3dpad.ls - -;ss, Virtual Port 4, 3D Control Pad: Mode -ss.input.port4.3dpad.mode - -;Default position for switch "Mode". -ss.input.port4.3dpad.mode.defpos digital - -;ss, Virtual Port 4, 3D Control Pad: D-Pad RIGHT → -ss.input.port4.3dpad.right - -;ss, Virtual Port 4, 3D Control Pad: Right Shoulder (Analog) -ss.input.port4.3dpad.rs - -;ss, Virtual Port 4, 3D Control Pad: START -ss.input.port4.3dpad.start - -;ss, Virtual Port 4, 3D Control Pad: D-Pad UP ↑ -ss.input.port4.3dpad.up - -;ss, Virtual Port 4, 3D Control Pad: X -ss.input.port4.3dpad.x - -;ss, Virtual Port 4, 3D Control Pad: Y -ss.input.port4.3dpad.y - -;ss, Virtual Port 4, 3D Control Pad: Z -ss.input.port4.3dpad.z - -;ss, Virtual Port 4, Dual Mission: A (R Stick Trigger) -ss.input.port4.dmission.a - -;ss, Virtual Port 4, Dual Mission: A AF -ss.input.port4.dmission.afa - -;Default position for switch "A AF". -ss.input.port4.dmission.afa.defpos off - -;ss, Virtual Port 4, Dual Mission: B AF -ss.input.port4.dmission.afb - -;Default position for switch "B AF". -ss.input.port4.dmission.afb.defpos off - -;ss, Virtual Port 4, Dual Mission: C AF -ss.input.port4.dmission.afc - -;Default position for switch "C AF". -ss.input.port4.dmission.afc.defpos off - -;ss, Virtual Port 4, Dual Mission: L AF -ss.input.port4.dmission.afl - -;Default position for switch "L AF". -ss.input.port4.dmission.afl.defpos off - -;ss, Virtual Port 4, Dual Mission: R AF -ss.input.port4.dmission.afr - -;Default position for switch "R AF". -ss.input.port4.dmission.afr.defpos off - -;ss, Virtual Port 4, Dual Mission: Autofire Speed -ss.input.port4.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port4.dmission.afspeed.defpos 1 - -;ss, Virtual Port 4, Dual Mission: X AF -ss.input.port4.dmission.afx - -;Default position for switch "X AF". -ss.input.port4.dmission.afx.defpos off - -;ss, Virtual Port 4, Dual Mission: Y AF -ss.input.port4.dmission.afy - -;Default position for switch "Y AF". -ss.input.port4.dmission.afy.defpos off - -;ss, Virtual Port 4, Dual Mission: Z AF -ss.input.port4.dmission.afz - -;Default position for switch "Z AF". -ss.input.port4.dmission.afz.defpos off - -;ss, Virtual Port 4, Dual Mission: B (R Stick Left Button) -ss.input.port4.dmission.b - -;ss, Virtual Port 4, Dual Mission: C (R Stick Right Button) -ss.input.port4.dmission.c - -;ss, Virtual Port 4, Dual Mission: L -ss.input.port4.dmission.l - -;ss, Virtual Port 4, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port4.dmission.lstick_back - -;ss, Virtual Port 4, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port4.dmission.lstick_fore - -;ss, Virtual Port 4, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port4.dmission.lstick_left - -;ss, Virtual Port 4, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port4.dmission.lstick_right - -;ss, Virtual Port 4, Dual Mission: L Throttle Down (Analog) -ss.input.port4.dmission.lthrottle_down - -;ss, Virtual Port 4, Dual Mission: L Throttle Up (Analog) -ss.input.port4.dmission.lthrottle_up - -;ss, Virtual Port 4, Dual Mission: R -ss.input.port4.dmission.r - -;ss, Virtual Port 4, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port4.dmission.rstick_back - -;ss, Virtual Port 4, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port4.dmission.rstick_fore - -;ss, Virtual Port 4, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port4.dmission.rstick_left - -;ss, Virtual Port 4, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port4.dmission.rstick_right - -;ss, Virtual Port 4, Dual Mission: R Throttle Down (Analog) -ss.input.port4.dmission.rthrottle_down - -;ss, Virtual Port 4, Dual Mission: R Throttle Up (Analog) -ss.input.port4.dmission.rthrottle_up - -;ss, Virtual Port 4, Dual Mission: START -ss.input.port4.dmission.start - -;ss, Virtual Port 4, Dual Mission: X (L Stick Trigger) -ss.input.port4.dmission.x - -;ss, Virtual Port 4, Dual Mission: Y (L Stick Left Button) -ss.input.port4.dmission.y - -;ss, Virtual Port 4, Dual Mission: Z (L Stick Right Button) -ss.input.port4.dmission.z - -;ss, Virtual Port 4, Digital Gamepad: A -ss.input.port4.gamepad.a - -;ss, Virtual Port 4, Digital Gamepad: B -ss.input.port4.gamepad.b - -;ss, Virtual Port 4, Digital Gamepad: C -ss.input.port4.gamepad.c - -;ss, Virtual Port 4, Digital Gamepad: DOWN ↓ -ss.input.port4.gamepad.down - -;ss, Virtual Port 4, Digital Gamepad: LEFT ← -ss.input.port4.gamepad.left - -;ss, Virtual Port 4, Digital Gamepad: Left Shoulder -ss.input.port4.gamepad.ls - -;ss, Virtual Port 4, Digital Gamepad: RIGHT → -ss.input.port4.gamepad.right - -;ss, Virtual Port 4, Digital Gamepad: Right Shoulder -ss.input.port4.gamepad.rs - -;ss, Virtual Port 4, Digital Gamepad: START -ss.input.port4.gamepad.start - -;ss, Virtual Port 4, Digital Gamepad: UP ↑ -ss.input.port4.gamepad.up - -;ss, Virtual Port 4, Digital Gamepad: X -ss.input.port4.gamepad.x - -;ss, Virtual Port 4, Digital Gamepad: Y -ss.input.port4.gamepad.y - -;ss, Virtual Port 4, Digital Gamepad: Z -ss.input.port4.gamepad.z - -;ss, Virtual Port 4, Light Gun: Offscreen Shot(Simulated) -ss.input.port4.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 4, Light Gun: START -ss.input.port4.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 4, Light Gun: Trigger -ss.input.port4.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 4, Light Gun: X Axis -ss.input.port4.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 4, Light Gun: Y Axis -ss.input.port4.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 4. -ss.input.port4.gun_chairs 0xFF8000 - -;ss, Virtual Port 4, Keyboard (JP): 0(Zero) -ss.input.port4.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 4, Keyboard (JP): 1(One) -ss.input.port4.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 4, Keyboard (JP): 2 -ss.input.port4.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 4, Keyboard (JP): 3 -ss.input.port4.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 4, Keyboard (JP): 4 -ss.input.port4.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 4, Keyboard (JP): 5 -ss.input.port4.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 4, Keyboard (JP): 6 -ss.input.port4.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 4, Keyboard (JP): 7 -ss.input.port4.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 4, Keyboard (JP): 8 -ss.input.port4.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 4, Keyboard (JP): 9 -ss.input.port4.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 4, Keyboard (JP): A -ss.input.port4.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 4, Keyboard (JP): At @ -ss.input.port4.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 4, Keyboard (JP): B -ss.input.port4.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 4, Keyboard (JP): Backslash \ -ss.input.port4.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 4, Keyboard (JP): Backspace -ss.input.port4.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 4, Keyboard (JP): C -ss.input.port4.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 4, Keyboard (JP): Caps Lock/英数 -ss.input.port4.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 4, Keyboard (JP): Circumflex ^ -ss.input.port4.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 4, Keyboard (JP): Colon : -ss.input.port4.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 4, Keyboard (JP): Comma , -ss.input.port4.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 4, Keyboard (JP): 変換 -ss.input.port4.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 4, Keyboard (JP): D -ss.input.port4.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 4, Keyboard (JP): Delete -ss.input.port4.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 4, Keyboard (JP): Down -ss.input.port4.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 4, Keyboard (JP): E -ss.input.port4.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 4, Keyboard (JP): End -ss.input.port4.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 4, Keyboard (JP): Enter -ss.input.port4.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 4, Keyboard (JP): Escape -ss.input.port4.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 4, Keyboard (JP): F -ss.input.port4.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 4, Keyboard (JP): F1 -ss.input.port4.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 4, Keyboard (JP): F10 -ss.input.port4.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 4, Keyboard (JP): F11 -ss.input.port4.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 4, Keyboard (JP): F12 -ss.input.port4.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 4, Keyboard (JP): F2 -ss.input.port4.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 4, Keyboard (JP): F3 -ss.input.port4.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 4, Keyboard (JP): F4 -ss.input.port4.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 4, Keyboard (JP): F5 -ss.input.port4.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 4, Keyboard (JP): F6 -ss.input.port4.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 4, Keyboard (JP): F7 -ss.input.port4.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 4, Keyboard (JP): F8 -ss.input.port4.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 4, Keyboard (JP): F9 -ss.input.port4.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 4, Keyboard (JP): G -ss.input.port4.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 4, Keyboard (JP): H -ss.input.port4.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 4, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port4.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 4, Keyboard (JP): Home -ss.input.port4.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 4, Keyboard (JP): 半角/全角/漢字 -ss.input.port4.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 4, Keyboard (JP): I -ss.input.port4.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 4, Keyboard (JP): Insert -ss.input.port4.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 4, Keyboard (JP): J -ss.input.port4.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 4, Keyboard (JP): K -ss.input.port4.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 4, Keyboard (JP): L -ss.input.port4.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 4, Keyboard (JP): Left Alt -ss.input.port4.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 4, Keyboard (JP): Left Ctrl -ss.input.port4.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 4, Keyboard (JP): Cursor Left -ss.input.port4.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 4, Keyboard (JP): Left Bracket [ -ss.input.port4.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 4, Keyboard (JP): Left Shift -ss.input.port4.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 4, Keyboard (JP): M -ss.input.port4.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 4, Keyboard (JP): Minus - -ss.input.port4.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 4, Keyboard (JP): N -ss.input.port4.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 4, Keyboard (JP): 無変換 -ss.input.port4.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 4, Keyboard (JP): O -ss.input.port4.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 4, Keyboard (JP): P -ss.input.port4.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 4, Keyboard (JP): Page Down -ss.input.port4.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 4, Keyboard (JP): Page Up -ss.input.port4.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 4, Keyboard (JP): Pause -ss.input.port4.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 4, Keyboard (JP): Period . -ss.input.port4.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 4, Keyboard (JP): Print Screen -ss.input.port4.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 4, Keyboard (JP): Q -ss.input.port4.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 4, Keyboard (JP): R -ss.input.port4.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 4, Keyboard (JP): Right Alt -ss.input.port4.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 4, Keyboard (JP): Right Ctrl -ss.input.port4.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 4, Keyboard (JP): Right -ss.input.port4.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 4, Keyboard (JP): Right Bracket ] -ss.input.port4.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 4, Keyboard (JP): Right Shift -ss.input.port4.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 4, Keyboard (JP): S -ss.input.port4.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 4, Keyboard (JP): Scroll Lock -ss.input.port4.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 4, Keyboard (JP): Semicolon ; -ss.input.port4.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 4, Keyboard (JP): Slash / -ss.input.port4.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 4, Keyboard (JP): Space -ss.input.port4.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 4, Keyboard (JP): T -ss.input.port4.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 4, Keyboard (JP): Tab -ss.input.port4.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 4, Keyboard (JP): U -ss.input.port4.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 4, Keyboard (JP): Up -ss.input.port4.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 4, Keyboard (JP): V -ss.input.port4.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 4, Keyboard (JP): W -ss.input.port4.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 4, Keyboard (JP): X -ss.input.port4.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 4, Keyboard (JP): Y -ss.input.port4.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 4, Keyboard (JP): Yen ¥ -ss.input.port4.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 4, Keyboard (JP): Z -ss.input.port4.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 4, Keyboard (US): 0(Zero) -ss.input.port4.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 4, Keyboard (US): 1(One) -ss.input.port4.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 4, Keyboard (US): 2 -ss.input.port4.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 4, Keyboard (US): 3 -ss.input.port4.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 4, Keyboard (US): 4 -ss.input.port4.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 4, Keyboard (US): 5 -ss.input.port4.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 4, Keyboard (US): 6 -ss.input.port4.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 4, Keyboard (US): 7 -ss.input.port4.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 4, Keyboard (US): 8 -ss.input.port4.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 4, Keyboard (US): 9 -ss.input.port4.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 4, Keyboard (US): A -ss.input.port4.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 4, Keyboard (US): B -ss.input.port4.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 4, Keyboard (US): Backslash \ -ss.input.port4.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 4, Keyboard (US): Backspace -ss.input.port4.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 4, Keyboard (US): C -ss.input.port4.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 4, Keyboard (US): Caps Lock -ss.input.port4.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 4, Keyboard (US): Comma , -ss.input.port4.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 4, Keyboard (US): D -ss.input.port4.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 4, Keyboard (US): Delete -ss.input.port4.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 4, Keyboard (US): Down -ss.input.port4.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 4, Keyboard (US): E -ss.input.port4.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 4, Keyboard (US): End -ss.input.port4.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 4, Keyboard (US): Enter -ss.input.port4.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 4, Keyboard (US): Equals = -ss.input.port4.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 4, Keyboard (US): Escape -ss.input.port4.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 4, Keyboard (US): F -ss.input.port4.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 4, Keyboard (US): F1 -ss.input.port4.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 4, Keyboard (US): F10 -ss.input.port4.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 4, Keyboard (US): F11 -ss.input.port4.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 4, Keyboard (US): F12 -ss.input.port4.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 4, Keyboard (US): F2 -ss.input.port4.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 4, Keyboard (US): F3 -ss.input.port4.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 4, Keyboard (US): F4 -ss.input.port4.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 4, Keyboard (US): F5 -ss.input.port4.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 4, Keyboard (US): F6 -ss.input.port4.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 4, Keyboard (US): F7 -ss.input.port4.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 4, Keyboard (US): F8 -ss.input.port4.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 4, Keyboard (US): F9 -ss.input.port4.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 4, Keyboard (US): G -ss.input.port4.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 4, Keyboard (US): Grave ` -ss.input.port4.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 4, Keyboard (US): H -ss.input.port4.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 4, Keyboard (US): Home -ss.input.port4.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 4, Keyboard (US): I -ss.input.port4.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 4, Keyboard (US): Insert -ss.input.port4.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 4, Keyboard (US): J -ss.input.port4.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 4, Keyboard (US): K -ss.input.port4.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 4, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port4.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 4, Keyboard (US): Keypad Center/5 -ss.input.port4.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 4, Keyboard (US): Keypad Delete -ss.input.port4.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 4, Keyboard (US): Keypad Down/2 -ss.input.port4.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 4, Keyboard (US): Keypad End/1 -ss.input.port4.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 4, Keyboard (US): Keypad Enter -ss.input.port4.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 4, Keyboard (US): Keypad Home/7 -ss.input.port4.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 4, Keyboard (US): Keypad Insert/0 -ss.input.port4.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 4, Keyboard (US): Keypad Left/4 -ss.input.port4.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 4, Keyboard (US): Keypad Minus -ss.input.port4.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 4, Keyboard (US): Keypad Pagedown/3 -ss.input.port4.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 4, Keyboard (US): Keypad Pageup/9 -ss.input.port4.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 4, Keyboard (US): Keypad Plus -ss.input.port4.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 4, Keyboard (US): Keypad Right/6 -ss.input.port4.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 4, Keyboard (US): Keypad Slash(Divide) -ss.input.port4.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 4, Keyboard (US): Keypad Up/8 -ss.input.port4.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 4, Keyboard (US): L -ss.input.port4.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 4, Keyboard (US): Left Alt -ss.input.port4.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 4, Keyboard (US): Left Ctrl -ss.input.port4.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 4, Keyboard (US): Cursor Left -ss.input.port4.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 4, Keyboard (US): Left Bracket [ -ss.input.port4.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 4, Keyboard (US): Left Shift -ss.input.port4.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 4, Keyboard (US): M -ss.input.port4.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 4, Keyboard (US): Minus - -ss.input.port4.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 4, Keyboard (US): N -ss.input.port4.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 4, Keyboard (US): Num Lock -ss.input.port4.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 4, Keyboard (US): O -ss.input.port4.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 4, Keyboard (US): P -ss.input.port4.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 4, Keyboard (US): Page Down -ss.input.port4.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 4, Keyboard (US): Page Up -ss.input.port4.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 4, Keyboard (US): Pause -ss.input.port4.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 4, Keyboard (US): Period . -ss.input.port4.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 4, Keyboard (US): Print Screen -ss.input.port4.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 4, Keyboard (US): Q -ss.input.port4.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 4, Keyboard (US): Quote ' -ss.input.port4.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 4, Keyboard (US): R -ss.input.port4.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 4, Keyboard (US): Right Alt -ss.input.port4.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 4, Keyboard (US): Right Ctrl -ss.input.port4.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 4, Keyboard (US): Right -ss.input.port4.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 4, Keyboard (US): Right Bracket ] -ss.input.port4.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 4, Keyboard (US): Right Shift -ss.input.port4.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 4, Keyboard (US): S -ss.input.port4.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 4, Keyboard (US): Scroll Lock -ss.input.port4.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 4, Keyboard (US): Semicolon ; -ss.input.port4.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 4, Keyboard (US): Slash / -ss.input.port4.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 4, Keyboard (US): Space -ss.input.port4.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 4, Keyboard (US): T -ss.input.port4.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 4, Keyboard (US): Tab -ss.input.port4.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 4, Keyboard (US): U -ss.input.port4.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 4, Keyboard (US): Up -ss.input.port4.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 4, Keyboard (US): V -ss.input.port4.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 4, Keyboard (US): W -ss.input.port4.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 4, Keyboard (US): X -ss.input.port4.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 4, Keyboard (US): Y -ss.input.port4.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 4, Keyboard (US): Z -ss.input.port4.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 4, Mission Stick: A (Stick Trigger) -ss.input.port4.mission.a - -;ss, Virtual Port 4, Mission Stick: A AF -ss.input.port4.mission.afa - -;Default position for switch "A AF". -ss.input.port4.mission.afa.defpos off - -;ss, Virtual Port 4, Mission Stick: B AF -ss.input.port4.mission.afb - -;Default position for switch "B AF". -ss.input.port4.mission.afb.defpos off - -;ss, Virtual Port 4, Mission Stick: C AF -ss.input.port4.mission.afc - -;Default position for switch "C AF". -ss.input.port4.mission.afc.defpos off - -;ss, Virtual Port 4, Mission Stick: L AF -ss.input.port4.mission.afl - -;Default position for switch "L AF". -ss.input.port4.mission.afl.defpos off - -;ss, Virtual Port 4, Mission Stick: R AF -ss.input.port4.mission.afr - -;Default position for switch "R AF". -ss.input.port4.mission.afr.defpos off - -;ss, Virtual Port 4, Mission Stick: AF Speed -ss.input.port4.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port4.mission.afspeed.defpos 1 - -;ss, Virtual Port 4, Mission Stick: X AF -ss.input.port4.mission.afx - -;Default position for switch "X AF". -ss.input.port4.mission.afx.defpos off - -;ss, Virtual Port 4, Mission Stick: Y AF -ss.input.port4.mission.afy - -;Default position for switch "Y AF". -ss.input.port4.mission.afy.defpos off - -;ss, Virtual Port 4, Mission Stick: Z AF -ss.input.port4.mission.afz - -;Default position for switch "Z AF". -ss.input.port4.mission.afz.defpos off - -;ss, Virtual Port 4, Mission Stick: B (Stick Left Button) -ss.input.port4.mission.b - -;ss, Virtual Port 4, Mission Stick: C (Stick Right Button) -ss.input.port4.mission.c - -;ss, Virtual Port 4, Mission Stick: L -ss.input.port4.mission.l - -;ss, Virtual Port 4, Mission Stick: R -ss.input.port4.mission.r - -;ss, Virtual Port 4, Mission Stick: START -ss.input.port4.mission.start - -;ss, Virtual Port 4, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port4.mission.stick_back - -;ss, Virtual Port 4, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port4.mission.stick_fore - -;ss, Virtual Port 4, Mission Stick: Stick LEFT ← (Analog) -ss.input.port4.mission.stick_left - -;ss, Virtual Port 4, Mission Stick: Stick RIGHT → (Analog) -ss.input.port4.mission.stick_right - -;ss, Virtual Port 4, Mission Stick: Throttle Down (Analog) -ss.input.port4.mission.throttle_down - -;ss, Virtual Port 4, Mission Stick: Throttle Up (Analog) -ss.input.port4.mission.throttle_up - -;ss, Virtual Port 4, Mission Stick: X -ss.input.port4.mission.x - -;ss, Virtual Port 4, Mission Stick: Y -ss.input.port4.mission.y - -;ss, Virtual Port 4, Mission Stick: Z -ss.input.port4.mission.z - -;ss, Virtual Port 4, Mouse: Left Button -ss.input.port4.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 4, Mouse: Middle Button -ss.input.port4.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 4, Mouse: Motion Down -ss.input.port4.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 4, Mouse: Motion Left -ss.input.port4.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 4, Mouse: Motion Right -ss.input.port4.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 4, Mouse: Motion Up -ss.input.port4.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 4, Mouse: Right Button -ss.input.port4.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 4, Mouse: Start -ss.input.port4.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 4, Steering Wheel: A (R Group) -ss.input.port4.wheel.a - -;ss, Virtual Port 4, Steering Wheel: Analog LEFT ← -ss.input.port4.wheel.analog_left - -;ss, Virtual Port 4, Steering Wheel: Analog RIGHT → -ss.input.port4.wheel.analog_right - -;ss, Virtual Port 4, Steering Wheel: B (R Group) -ss.input.port4.wheel.b - -;ss, Virtual Port 4, Steering Wheel: C (R Group) -ss.input.port4.wheel.c - -;ss, Virtual Port 4, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port4.wheel.down - -;ss, Virtual Port 4, Steering Wheel: START -ss.input.port4.wheel.start - -;ss, Virtual Port 4, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port4.wheel.up - -;ss, Virtual Port 4, Steering Wheel: X (L Group) -ss.input.port4.wheel.x - -;ss, Virtual Port 4, Steering Wheel: Y (L Group) -ss.input.port4.wheel.y - -;ss, Virtual Port 4, Steering Wheel: Z (L Group) -ss.input.port4.wheel.z - -;Input device for Virtual Port 5 -ss.input.port5 gamepad - -;ss, Virtual Port 5, 3D Control Pad: A -ss.input.port5.3dpad.a - -;ss, Virtual Port 5, 3D Control Pad: Analog DOWN ↓ -ss.input.port5.3dpad.analog_down - -;ss, Virtual Port 5, 3D Control Pad: Analog LEFT ← -ss.input.port5.3dpad.analog_left - -;ss, Virtual Port 5, 3D Control Pad: Analog RIGHT → -ss.input.port5.3dpad.analog_right - -;ss, Virtual Port 5, 3D Control Pad: Analog UP ↑ -ss.input.port5.3dpad.analog_up - -;ss, Virtual Port 5, 3D Control Pad: B -ss.input.port5.3dpad.b - -;ss, Virtual Port 5, 3D Control Pad: C -ss.input.port5.3dpad.c - -;ss, Virtual Port 5, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port5.3dpad.down - -;ss, Virtual Port 5, 3D Control Pad: D-Pad LEFT ← -ss.input.port5.3dpad.left - -;ss, Virtual Port 5, 3D Control Pad: Left Shoulder (Analog) -ss.input.port5.3dpad.ls - -;ss, Virtual Port 5, 3D Control Pad: Mode -ss.input.port5.3dpad.mode - -;Default position for switch "Mode". -ss.input.port5.3dpad.mode.defpos digital - -;ss, Virtual Port 5, 3D Control Pad: D-Pad RIGHT → -ss.input.port5.3dpad.right - -;ss, Virtual Port 5, 3D Control Pad: Right Shoulder (Analog) -ss.input.port5.3dpad.rs - -;ss, Virtual Port 5, 3D Control Pad: START -ss.input.port5.3dpad.start - -;ss, Virtual Port 5, 3D Control Pad: D-Pad UP ↑ -ss.input.port5.3dpad.up - -;ss, Virtual Port 5, 3D Control Pad: X -ss.input.port5.3dpad.x - -;ss, Virtual Port 5, 3D Control Pad: Y -ss.input.port5.3dpad.y - -;ss, Virtual Port 5, 3D Control Pad: Z -ss.input.port5.3dpad.z - -;ss, Virtual Port 5, Dual Mission: A (R Stick Trigger) -ss.input.port5.dmission.a - -;ss, Virtual Port 5, Dual Mission: A AF -ss.input.port5.dmission.afa - -;Default position for switch "A AF". -ss.input.port5.dmission.afa.defpos off - -;ss, Virtual Port 5, Dual Mission: B AF -ss.input.port5.dmission.afb - -;Default position for switch "B AF". -ss.input.port5.dmission.afb.defpos off - -;ss, Virtual Port 5, Dual Mission: C AF -ss.input.port5.dmission.afc - -;Default position for switch "C AF". -ss.input.port5.dmission.afc.defpos off - -;ss, Virtual Port 5, Dual Mission: L AF -ss.input.port5.dmission.afl - -;Default position for switch "L AF". -ss.input.port5.dmission.afl.defpos off - -;ss, Virtual Port 5, Dual Mission: R AF -ss.input.port5.dmission.afr - -;Default position for switch "R AF". -ss.input.port5.dmission.afr.defpos off - -;ss, Virtual Port 5, Dual Mission: Autofire Speed -ss.input.port5.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port5.dmission.afspeed.defpos 1 - -;ss, Virtual Port 5, Dual Mission: X AF -ss.input.port5.dmission.afx - -;Default position for switch "X AF". -ss.input.port5.dmission.afx.defpos off - -;ss, Virtual Port 5, Dual Mission: Y AF -ss.input.port5.dmission.afy - -;Default position for switch "Y AF". -ss.input.port5.dmission.afy.defpos off - -;ss, Virtual Port 5, Dual Mission: Z AF -ss.input.port5.dmission.afz - -;Default position for switch "Z AF". -ss.input.port5.dmission.afz.defpos off - -;ss, Virtual Port 5, Dual Mission: B (R Stick Left Button) -ss.input.port5.dmission.b - -;ss, Virtual Port 5, Dual Mission: C (R Stick Right Button) -ss.input.port5.dmission.c - -;ss, Virtual Port 5, Dual Mission: L -ss.input.port5.dmission.l - -;ss, Virtual Port 5, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port5.dmission.lstick_back - -;ss, Virtual Port 5, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port5.dmission.lstick_fore - -;ss, Virtual Port 5, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port5.dmission.lstick_left - -;ss, Virtual Port 5, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port5.dmission.lstick_right - -;ss, Virtual Port 5, Dual Mission: L Throttle Down (Analog) -ss.input.port5.dmission.lthrottle_down - -;ss, Virtual Port 5, Dual Mission: L Throttle Up (Analog) -ss.input.port5.dmission.lthrottle_up - -;ss, Virtual Port 5, Dual Mission: R -ss.input.port5.dmission.r - -;ss, Virtual Port 5, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port5.dmission.rstick_back - -;ss, Virtual Port 5, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port5.dmission.rstick_fore - -;ss, Virtual Port 5, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port5.dmission.rstick_left - -;ss, Virtual Port 5, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port5.dmission.rstick_right - -;ss, Virtual Port 5, Dual Mission: R Throttle Down (Analog) -ss.input.port5.dmission.rthrottle_down - -;ss, Virtual Port 5, Dual Mission: R Throttle Up (Analog) -ss.input.port5.dmission.rthrottle_up - -;ss, Virtual Port 5, Dual Mission: START -ss.input.port5.dmission.start - -;ss, Virtual Port 5, Dual Mission: X (L Stick Trigger) -ss.input.port5.dmission.x - -;ss, Virtual Port 5, Dual Mission: Y (L Stick Left Button) -ss.input.port5.dmission.y - -;ss, Virtual Port 5, Dual Mission: Z (L Stick Right Button) -ss.input.port5.dmission.z - -;ss, Virtual Port 5, Digital Gamepad: A -ss.input.port5.gamepad.a - -;ss, Virtual Port 5, Digital Gamepad: B -ss.input.port5.gamepad.b - -;ss, Virtual Port 5, Digital Gamepad: C -ss.input.port5.gamepad.c - -;ss, Virtual Port 5, Digital Gamepad: DOWN ↓ -ss.input.port5.gamepad.down - -;ss, Virtual Port 5, Digital Gamepad: LEFT ← -ss.input.port5.gamepad.left - -;ss, Virtual Port 5, Digital Gamepad: Left Shoulder -ss.input.port5.gamepad.ls - -;ss, Virtual Port 5, Digital Gamepad: RIGHT → -ss.input.port5.gamepad.right - -;ss, Virtual Port 5, Digital Gamepad: Right Shoulder -ss.input.port5.gamepad.rs - -;ss, Virtual Port 5, Digital Gamepad: START -ss.input.port5.gamepad.start - -;ss, Virtual Port 5, Digital Gamepad: UP ↑ -ss.input.port5.gamepad.up - -;ss, Virtual Port 5, Digital Gamepad: X -ss.input.port5.gamepad.x - -;ss, Virtual Port 5, Digital Gamepad: Y -ss.input.port5.gamepad.y - -;ss, Virtual Port 5, Digital Gamepad: Z -ss.input.port5.gamepad.z - -;ss, Virtual Port 5, Light Gun: Offscreen Shot(Simulated) -ss.input.port5.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 5, Light Gun: START -ss.input.port5.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 5, Light Gun: Trigger -ss.input.port5.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 5, Light Gun: X Axis -ss.input.port5.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 5, Light Gun: Y Axis -ss.input.port5.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 5. -ss.input.port5.gun_chairs 0xFFFF00 - -;ss, Virtual Port 5, Keyboard (JP): 0(Zero) -ss.input.port5.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 5, Keyboard (JP): 1(One) -ss.input.port5.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 5, Keyboard (JP): 2 -ss.input.port5.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 5, Keyboard (JP): 3 -ss.input.port5.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 5, Keyboard (JP): 4 -ss.input.port5.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 5, Keyboard (JP): 5 -ss.input.port5.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 5, Keyboard (JP): 6 -ss.input.port5.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 5, Keyboard (JP): 7 -ss.input.port5.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 5, Keyboard (JP): 8 -ss.input.port5.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 5, Keyboard (JP): 9 -ss.input.port5.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 5, Keyboard (JP): A -ss.input.port5.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 5, Keyboard (JP): At @ -ss.input.port5.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 5, Keyboard (JP): B -ss.input.port5.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 5, Keyboard (JP): Backslash \ -ss.input.port5.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 5, Keyboard (JP): Backspace -ss.input.port5.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 5, Keyboard (JP): C -ss.input.port5.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 5, Keyboard (JP): Caps Lock/英数 -ss.input.port5.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 5, Keyboard (JP): Circumflex ^ -ss.input.port5.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 5, Keyboard (JP): Colon : -ss.input.port5.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 5, Keyboard (JP): Comma , -ss.input.port5.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 5, Keyboard (JP): 変換 -ss.input.port5.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 5, Keyboard (JP): D -ss.input.port5.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 5, Keyboard (JP): Delete -ss.input.port5.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 5, Keyboard (JP): Down -ss.input.port5.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 5, Keyboard (JP): E -ss.input.port5.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 5, Keyboard (JP): End -ss.input.port5.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 5, Keyboard (JP): Enter -ss.input.port5.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 5, Keyboard (JP): Escape -ss.input.port5.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 5, Keyboard (JP): F -ss.input.port5.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 5, Keyboard (JP): F1 -ss.input.port5.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 5, Keyboard (JP): F10 -ss.input.port5.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 5, Keyboard (JP): F11 -ss.input.port5.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 5, Keyboard (JP): F12 -ss.input.port5.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 5, Keyboard (JP): F2 -ss.input.port5.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 5, Keyboard (JP): F3 -ss.input.port5.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 5, Keyboard (JP): F4 -ss.input.port5.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 5, Keyboard (JP): F5 -ss.input.port5.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 5, Keyboard (JP): F6 -ss.input.port5.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 5, Keyboard (JP): F7 -ss.input.port5.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 5, Keyboard (JP): F8 -ss.input.port5.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 5, Keyboard (JP): F9 -ss.input.port5.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 5, Keyboard (JP): G -ss.input.port5.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 5, Keyboard (JP): H -ss.input.port5.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 5, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port5.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 5, Keyboard (JP): Home -ss.input.port5.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 5, Keyboard (JP): 半角/全角/漢字 -ss.input.port5.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 5, Keyboard (JP): I -ss.input.port5.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 5, Keyboard (JP): Insert -ss.input.port5.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 5, Keyboard (JP): J -ss.input.port5.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 5, Keyboard (JP): K -ss.input.port5.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 5, Keyboard (JP): L -ss.input.port5.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 5, Keyboard (JP): Left Alt -ss.input.port5.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 5, Keyboard (JP): Left Ctrl -ss.input.port5.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 5, Keyboard (JP): Cursor Left -ss.input.port5.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 5, Keyboard (JP): Left Bracket [ -ss.input.port5.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 5, Keyboard (JP): Left Shift -ss.input.port5.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 5, Keyboard (JP): M -ss.input.port5.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 5, Keyboard (JP): Minus - -ss.input.port5.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 5, Keyboard (JP): N -ss.input.port5.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 5, Keyboard (JP): 無変換 -ss.input.port5.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 5, Keyboard (JP): O -ss.input.port5.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 5, Keyboard (JP): P -ss.input.port5.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 5, Keyboard (JP): Page Down -ss.input.port5.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 5, Keyboard (JP): Page Up -ss.input.port5.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 5, Keyboard (JP): Pause -ss.input.port5.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 5, Keyboard (JP): Period . -ss.input.port5.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 5, Keyboard (JP): Print Screen -ss.input.port5.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 5, Keyboard (JP): Q -ss.input.port5.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 5, Keyboard (JP): R -ss.input.port5.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 5, Keyboard (JP): Right Alt -ss.input.port5.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 5, Keyboard (JP): Right Ctrl -ss.input.port5.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 5, Keyboard (JP): Right -ss.input.port5.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 5, Keyboard (JP): Right Bracket ] -ss.input.port5.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 5, Keyboard (JP): Right Shift -ss.input.port5.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 5, Keyboard (JP): S -ss.input.port5.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 5, Keyboard (JP): Scroll Lock -ss.input.port5.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 5, Keyboard (JP): Semicolon ; -ss.input.port5.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 5, Keyboard (JP): Slash / -ss.input.port5.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 5, Keyboard (JP): Space -ss.input.port5.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 5, Keyboard (JP): T -ss.input.port5.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 5, Keyboard (JP): Tab -ss.input.port5.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 5, Keyboard (JP): U -ss.input.port5.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 5, Keyboard (JP): Up -ss.input.port5.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 5, Keyboard (JP): V -ss.input.port5.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 5, Keyboard (JP): W -ss.input.port5.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 5, Keyboard (JP): X -ss.input.port5.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 5, Keyboard (JP): Y -ss.input.port5.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 5, Keyboard (JP): Yen ¥ -ss.input.port5.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 5, Keyboard (JP): Z -ss.input.port5.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 5, Keyboard (US): 0(Zero) -ss.input.port5.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 5, Keyboard (US): 1(One) -ss.input.port5.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 5, Keyboard (US): 2 -ss.input.port5.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 5, Keyboard (US): 3 -ss.input.port5.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 5, Keyboard (US): 4 -ss.input.port5.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 5, Keyboard (US): 5 -ss.input.port5.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 5, Keyboard (US): 6 -ss.input.port5.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 5, Keyboard (US): 7 -ss.input.port5.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 5, Keyboard (US): 8 -ss.input.port5.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 5, Keyboard (US): 9 -ss.input.port5.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 5, Keyboard (US): A -ss.input.port5.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 5, Keyboard (US): B -ss.input.port5.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 5, Keyboard (US): Backslash \ -ss.input.port5.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 5, Keyboard (US): Backspace -ss.input.port5.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 5, Keyboard (US): C -ss.input.port5.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 5, Keyboard (US): Caps Lock -ss.input.port5.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 5, Keyboard (US): Comma , -ss.input.port5.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 5, Keyboard (US): D -ss.input.port5.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 5, Keyboard (US): Delete -ss.input.port5.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 5, Keyboard (US): Down -ss.input.port5.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 5, Keyboard (US): E -ss.input.port5.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 5, Keyboard (US): End -ss.input.port5.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 5, Keyboard (US): Enter -ss.input.port5.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 5, Keyboard (US): Equals = -ss.input.port5.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 5, Keyboard (US): Escape -ss.input.port5.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 5, Keyboard (US): F -ss.input.port5.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 5, Keyboard (US): F1 -ss.input.port5.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 5, Keyboard (US): F10 -ss.input.port5.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 5, Keyboard (US): F11 -ss.input.port5.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 5, Keyboard (US): F12 -ss.input.port5.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 5, Keyboard (US): F2 -ss.input.port5.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 5, Keyboard (US): F3 -ss.input.port5.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 5, Keyboard (US): F4 -ss.input.port5.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 5, Keyboard (US): F5 -ss.input.port5.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 5, Keyboard (US): F6 -ss.input.port5.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 5, Keyboard (US): F7 -ss.input.port5.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 5, Keyboard (US): F8 -ss.input.port5.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 5, Keyboard (US): F9 -ss.input.port5.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 5, Keyboard (US): G -ss.input.port5.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 5, Keyboard (US): Grave ` -ss.input.port5.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 5, Keyboard (US): H -ss.input.port5.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 5, Keyboard (US): Home -ss.input.port5.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 5, Keyboard (US): I -ss.input.port5.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 5, Keyboard (US): Insert -ss.input.port5.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 5, Keyboard (US): J -ss.input.port5.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 5, Keyboard (US): K -ss.input.port5.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 5, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port5.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 5, Keyboard (US): Keypad Center/5 -ss.input.port5.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 5, Keyboard (US): Keypad Delete -ss.input.port5.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 5, Keyboard (US): Keypad Down/2 -ss.input.port5.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 5, Keyboard (US): Keypad End/1 -ss.input.port5.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 5, Keyboard (US): Keypad Enter -ss.input.port5.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 5, Keyboard (US): Keypad Home/7 -ss.input.port5.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 5, Keyboard (US): Keypad Insert/0 -ss.input.port5.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 5, Keyboard (US): Keypad Left/4 -ss.input.port5.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 5, Keyboard (US): Keypad Minus -ss.input.port5.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 5, Keyboard (US): Keypad Pagedown/3 -ss.input.port5.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 5, Keyboard (US): Keypad Pageup/9 -ss.input.port5.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 5, Keyboard (US): Keypad Plus -ss.input.port5.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 5, Keyboard (US): Keypad Right/6 -ss.input.port5.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 5, Keyboard (US): Keypad Slash(Divide) -ss.input.port5.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 5, Keyboard (US): Keypad Up/8 -ss.input.port5.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 5, Keyboard (US): L -ss.input.port5.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 5, Keyboard (US): Left Alt -ss.input.port5.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 5, Keyboard (US): Left Ctrl -ss.input.port5.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 5, Keyboard (US): Cursor Left -ss.input.port5.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 5, Keyboard (US): Left Bracket [ -ss.input.port5.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 5, Keyboard (US): Left Shift -ss.input.port5.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 5, Keyboard (US): M -ss.input.port5.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 5, Keyboard (US): Minus - -ss.input.port5.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 5, Keyboard (US): N -ss.input.port5.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 5, Keyboard (US): Num Lock -ss.input.port5.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 5, Keyboard (US): O -ss.input.port5.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 5, Keyboard (US): P -ss.input.port5.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 5, Keyboard (US): Page Down -ss.input.port5.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 5, Keyboard (US): Page Up -ss.input.port5.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 5, Keyboard (US): Pause -ss.input.port5.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 5, Keyboard (US): Period . -ss.input.port5.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 5, Keyboard (US): Print Screen -ss.input.port5.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 5, Keyboard (US): Q -ss.input.port5.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 5, Keyboard (US): Quote ' -ss.input.port5.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 5, Keyboard (US): R -ss.input.port5.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 5, Keyboard (US): Right Alt -ss.input.port5.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 5, Keyboard (US): Right Ctrl -ss.input.port5.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 5, Keyboard (US): Right -ss.input.port5.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 5, Keyboard (US): Right Bracket ] -ss.input.port5.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 5, Keyboard (US): Right Shift -ss.input.port5.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 5, Keyboard (US): S -ss.input.port5.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 5, Keyboard (US): Scroll Lock -ss.input.port5.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 5, Keyboard (US): Semicolon ; -ss.input.port5.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 5, Keyboard (US): Slash / -ss.input.port5.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 5, Keyboard (US): Space -ss.input.port5.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 5, Keyboard (US): T -ss.input.port5.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 5, Keyboard (US): Tab -ss.input.port5.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 5, Keyboard (US): U -ss.input.port5.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 5, Keyboard (US): Up -ss.input.port5.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 5, Keyboard (US): V -ss.input.port5.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 5, Keyboard (US): W -ss.input.port5.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 5, Keyboard (US): X -ss.input.port5.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 5, Keyboard (US): Y -ss.input.port5.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 5, Keyboard (US): Z -ss.input.port5.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 5, Mission Stick: A (Stick Trigger) -ss.input.port5.mission.a - -;ss, Virtual Port 5, Mission Stick: A AF -ss.input.port5.mission.afa - -;Default position for switch "A AF". -ss.input.port5.mission.afa.defpos off - -;ss, Virtual Port 5, Mission Stick: B AF -ss.input.port5.mission.afb - -;Default position for switch "B AF". -ss.input.port5.mission.afb.defpos off - -;ss, Virtual Port 5, Mission Stick: C AF -ss.input.port5.mission.afc - -;Default position for switch "C AF". -ss.input.port5.mission.afc.defpos off - -;ss, Virtual Port 5, Mission Stick: L AF -ss.input.port5.mission.afl - -;Default position for switch "L AF". -ss.input.port5.mission.afl.defpos off - -;ss, Virtual Port 5, Mission Stick: R AF -ss.input.port5.mission.afr - -;Default position for switch "R AF". -ss.input.port5.mission.afr.defpos off - -;ss, Virtual Port 5, Mission Stick: AF Speed -ss.input.port5.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port5.mission.afspeed.defpos 1 - -;ss, Virtual Port 5, Mission Stick: X AF -ss.input.port5.mission.afx - -;Default position for switch "X AF". -ss.input.port5.mission.afx.defpos off - -;ss, Virtual Port 5, Mission Stick: Y AF -ss.input.port5.mission.afy - -;Default position for switch "Y AF". -ss.input.port5.mission.afy.defpos off - -;ss, Virtual Port 5, Mission Stick: Z AF -ss.input.port5.mission.afz - -;Default position for switch "Z AF". -ss.input.port5.mission.afz.defpos off - -;ss, Virtual Port 5, Mission Stick: B (Stick Left Button) -ss.input.port5.mission.b - -;ss, Virtual Port 5, Mission Stick: C (Stick Right Button) -ss.input.port5.mission.c - -;ss, Virtual Port 5, Mission Stick: L -ss.input.port5.mission.l - -;ss, Virtual Port 5, Mission Stick: R -ss.input.port5.mission.r - -;ss, Virtual Port 5, Mission Stick: START -ss.input.port5.mission.start - -;ss, Virtual Port 5, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port5.mission.stick_back - -;ss, Virtual Port 5, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port5.mission.stick_fore - -;ss, Virtual Port 5, Mission Stick: Stick LEFT ← (Analog) -ss.input.port5.mission.stick_left - -;ss, Virtual Port 5, Mission Stick: Stick RIGHT → (Analog) -ss.input.port5.mission.stick_right - -;ss, Virtual Port 5, Mission Stick: Throttle Down (Analog) -ss.input.port5.mission.throttle_down - -;ss, Virtual Port 5, Mission Stick: Throttle Up (Analog) -ss.input.port5.mission.throttle_up - -;ss, Virtual Port 5, Mission Stick: X -ss.input.port5.mission.x - -;ss, Virtual Port 5, Mission Stick: Y -ss.input.port5.mission.y - -;ss, Virtual Port 5, Mission Stick: Z -ss.input.port5.mission.z - -;ss, Virtual Port 5, Mouse: Left Button -ss.input.port5.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 5, Mouse: Middle Button -ss.input.port5.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 5, Mouse: Motion Down -ss.input.port5.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 5, Mouse: Motion Left -ss.input.port5.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 5, Mouse: Motion Right -ss.input.port5.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 5, Mouse: Motion Up -ss.input.port5.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 5, Mouse: Right Button -ss.input.port5.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 5, Mouse: Start -ss.input.port5.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 5, Steering Wheel: A (R Group) -ss.input.port5.wheel.a - -;ss, Virtual Port 5, Steering Wheel: Analog LEFT ← -ss.input.port5.wheel.analog_left - -;ss, Virtual Port 5, Steering Wheel: Analog RIGHT → -ss.input.port5.wheel.analog_right - -;ss, Virtual Port 5, Steering Wheel: B (R Group) -ss.input.port5.wheel.b - -;ss, Virtual Port 5, Steering Wheel: C (R Group) -ss.input.port5.wheel.c - -;ss, Virtual Port 5, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port5.wheel.down - -;ss, Virtual Port 5, Steering Wheel: START -ss.input.port5.wheel.start - -;ss, Virtual Port 5, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port5.wheel.up - -;ss, Virtual Port 5, Steering Wheel: X (L Group) -ss.input.port5.wheel.x - -;ss, Virtual Port 5, Steering Wheel: Y (L Group) -ss.input.port5.wheel.y - -;ss, Virtual Port 5, Steering Wheel: Z (L Group) -ss.input.port5.wheel.z - -;Input device for Virtual Port 6 -ss.input.port6 gamepad - -;ss, Virtual Port 6, 3D Control Pad: A -ss.input.port6.3dpad.a - -;ss, Virtual Port 6, 3D Control Pad: Analog DOWN ↓ -ss.input.port6.3dpad.analog_down - -;ss, Virtual Port 6, 3D Control Pad: Analog LEFT ← -ss.input.port6.3dpad.analog_left - -;ss, Virtual Port 6, 3D Control Pad: Analog RIGHT → -ss.input.port6.3dpad.analog_right - -;ss, Virtual Port 6, 3D Control Pad: Analog UP ↑ -ss.input.port6.3dpad.analog_up - -;ss, Virtual Port 6, 3D Control Pad: B -ss.input.port6.3dpad.b - -;ss, Virtual Port 6, 3D Control Pad: C -ss.input.port6.3dpad.c - -;ss, Virtual Port 6, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port6.3dpad.down - -;ss, Virtual Port 6, 3D Control Pad: D-Pad LEFT ← -ss.input.port6.3dpad.left - -;ss, Virtual Port 6, 3D Control Pad: Left Shoulder (Analog) -ss.input.port6.3dpad.ls - -;ss, Virtual Port 6, 3D Control Pad: Mode -ss.input.port6.3dpad.mode - -;Default position for switch "Mode". -ss.input.port6.3dpad.mode.defpos digital - -;ss, Virtual Port 6, 3D Control Pad: D-Pad RIGHT → -ss.input.port6.3dpad.right - -;ss, Virtual Port 6, 3D Control Pad: Right Shoulder (Analog) -ss.input.port6.3dpad.rs - -;ss, Virtual Port 6, 3D Control Pad: START -ss.input.port6.3dpad.start - -;ss, Virtual Port 6, 3D Control Pad: D-Pad UP ↑ -ss.input.port6.3dpad.up - -;ss, Virtual Port 6, 3D Control Pad: X -ss.input.port6.3dpad.x - -;ss, Virtual Port 6, 3D Control Pad: Y -ss.input.port6.3dpad.y - -;ss, Virtual Port 6, 3D Control Pad: Z -ss.input.port6.3dpad.z - -;ss, Virtual Port 6, Dual Mission: A (R Stick Trigger) -ss.input.port6.dmission.a - -;ss, Virtual Port 6, Dual Mission: A AF -ss.input.port6.dmission.afa - -;Default position for switch "A AF". -ss.input.port6.dmission.afa.defpos off - -;ss, Virtual Port 6, Dual Mission: B AF -ss.input.port6.dmission.afb - -;Default position for switch "B AF". -ss.input.port6.dmission.afb.defpos off - -;ss, Virtual Port 6, Dual Mission: C AF -ss.input.port6.dmission.afc - -;Default position for switch "C AF". -ss.input.port6.dmission.afc.defpos off - -;ss, Virtual Port 6, Dual Mission: L AF -ss.input.port6.dmission.afl - -;Default position for switch "L AF". -ss.input.port6.dmission.afl.defpos off - -;ss, Virtual Port 6, Dual Mission: R AF -ss.input.port6.dmission.afr - -;Default position for switch "R AF". -ss.input.port6.dmission.afr.defpos off - -;ss, Virtual Port 6, Dual Mission: Autofire Speed -ss.input.port6.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port6.dmission.afspeed.defpos 1 - -;ss, Virtual Port 6, Dual Mission: X AF -ss.input.port6.dmission.afx - -;Default position for switch "X AF". -ss.input.port6.dmission.afx.defpos off - -;ss, Virtual Port 6, Dual Mission: Y AF -ss.input.port6.dmission.afy - -;Default position for switch "Y AF". -ss.input.port6.dmission.afy.defpos off - -;ss, Virtual Port 6, Dual Mission: Z AF -ss.input.port6.dmission.afz - -;Default position for switch "Z AF". -ss.input.port6.dmission.afz.defpos off - -;ss, Virtual Port 6, Dual Mission: B (R Stick Left Button) -ss.input.port6.dmission.b - -;ss, Virtual Port 6, Dual Mission: C (R Stick Right Button) -ss.input.port6.dmission.c - -;ss, Virtual Port 6, Dual Mission: L -ss.input.port6.dmission.l - -;ss, Virtual Port 6, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port6.dmission.lstick_back - -;ss, Virtual Port 6, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port6.dmission.lstick_fore - -;ss, Virtual Port 6, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port6.dmission.lstick_left - -;ss, Virtual Port 6, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port6.dmission.lstick_right - -;ss, Virtual Port 6, Dual Mission: L Throttle Down (Analog) -ss.input.port6.dmission.lthrottle_down - -;ss, Virtual Port 6, Dual Mission: L Throttle Up (Analog) -ss.input.port6.dmission.lthrottle_up - -;ss, Virtual Port 6, Dual Mission: R -ss.input.port6.dmission.r - -;ss, Virtual Port 6, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port6.dmission.rstick_back - -;ss, Virtual Port 6, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port6.dmission.rstick_fore - -;ss, Virtual Port 6, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port6.dmission.rstick_left - -;ss, Virtual Port 6, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port6.dmission.rstick_right - -;ss, Virtual Port 6, Dual Mission: R Throttle Down (Analog) -ss.input.port6.dmission.rthrottle_down - -;ss, Virtual Port 6, Dual Mission: R Throttle Up (Analog) -ss.input.port6.dmission.rthrottle_up - -;ss, Virtual Port 6, Dual Mission: START -ss.input.port6.dmission.start - -;ss, Virtual Port 6, Dual Mission: X (L Stick Trigger) -ss.input.port6.dmission.x - -;ss, Virtual Port 6, Dual Mission: Y (L Stick Left Button) -ss.input.port6.dmission.y - -;ss, Virtual Port 6, Dual Mission: Z (L Stick Right Button) -ss.input.port6.dmission.z - -;ss, Virtual Port 6, Digital Gamepad: A -ss.input.port6.gamepad.a - -;ss, Virtual Port 6, Digital Gamepad: B -ss.input.port6.gamepad.b - -;ss, Virtual Port 6, Digital Gamepad: C -ss.input.port6.gamepad.c - -;ss, Virtual Port 6, Digital Gamepad: DOWN ↓ -ss.input.port6.gamepad.down - -;ss, Virtual Port 6, Digital Gamepad: LEFT ← -ss.input.port6.gamepad.left - -;ss, Virtual Port 6, Digital Gamepad: Left Shoulder -ss.input.port6.gamepad.ls - -;ss, Virtual Port 6, Digital Gamepad: RIGHT → -ss.input.port6.gamepad.right - -;ss, Virtual Port 6, Digital Gamepad: Right Shoulder -ss.input.port6.gamepad.rs - -;ss, Virtual Port 6, Digital Gamepad: START -ss.input.port6.gamepad.start - -;ss, Virtual Port 6, Digital Gamepad: UP ↑ -ss.input.port6.gamepad.up - -;ss, Virtual Port 6, Digital Gamepad: X -ss.input.port6.gamepad.x - -;ss, Virtual Port 6, Digital Gamepad: Y -ss.input.port6.gamepad.y - -;ss, Virtual Port 6, Digital Gamepad: Z -ss.input.port6.gamepad.z - -;ss, Virtual Port 6, Light Gun: Offscreen Shot(Simulated) -ss.input.port6.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 6, Light Gun: START -ss.input.port6.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 6, Light Gun: Trigger -ss.input.port6.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 6, Light Gun: X Axis -ss.input.port6.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 6, Light Gun: Y Axis -ss.input.port6.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 6. -ss.input.port6.gun_chairs 0x00FFFF - -;ss, Virtual Port 6, Keyboard (JP): 0(Zero) -ss.input.port6.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 6, Keyboard (JP): 1(One) -ss.input.port6.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 6, Keyboard (JP): 2 -ss.input.port6.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 6, Keyboard (JP): 3 -ss.input.port6.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 6, Keyboard (JP): 4 -ss.input.port6.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 6, Keyboard (JP): 5 -ss.input.port6.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 6, Keyboard (JP): 6 -ss.input.port6.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 6, Keyboard (JP): 7 -ss.input.port6.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 6, Keyboard (JP): 8 -ss.input.port6.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 6, Keyboard (JP): 9 -ss.input.port6.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 6, Keyboard (JP): A -ss.input.port6.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 6, Keyboard (JP): At @ -ss.input.port6.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 6, Keyboard (JP): B -ss.input.port6.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 6, Keyboard (JP): Backslash \ -ss.input.port6.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 6, Keyboard (JP): Backspace -ss.input.port6.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 6, Keyboard (JP): C -ss.input.port6.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 6, Keyboard (JP): Caps Lock/英数 -ss.input.port6.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 6, Keyboard (JP): Circumflex ^ -ss.input.port6.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 6, Keyboard (JP): Colon : -ss.input.port6.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 6, Keyboard (JP): Comma , -ss.input.port6.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 6, Keyboard (JP): 変換 -ss.input.port6.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 6, Keyboard (JP): D -ss.input.port6.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 6, Keyboard (JP): Delete -ss.input.port6.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 6, Keyboard (JP): Down -ss.input.port6.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 6, Keyboard (JP): E -ss.input.port6.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 6, Keyboard (JP): End -ss.input.port6.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 6, Keyboard (JP): Enter -ss.input.port6.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 6, Keyboard (JP): Escape -ss.input.port6.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 6, Keyboard (JP): F -ss.input.port6.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 6, Keyboard (JP): F1 -ss.input.port6.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 6, Keyboard (JP): F10 -ss.input.port6.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 6, Keyboard (JP): F11 -ss.input.port6.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 6, Keyboard (JP): F12 -ss.input.port6.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 6, Keyboard (JP): F2 -ss.input.port6.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 6, Keyboard (JP): F3 -ss.input.port6.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 6, Keyboard (JP): F4 -ss.input.port6.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 6, Keyboard (JP): F5 -ss.input.port6.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 6, Keyboard (JP): F6 -ss.input.port6.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 6, Keyboard (JP): F7 -ss.input.port6.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 6, Keyboard (JP): F8 -ss.input.port6.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 6, Keyboard (JP): F9 -ss.input.port6.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 6, Keyboard (JP): G -ss.input.port6.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 6, Keyboard (JP): H -ss.input.port6.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 6, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port6.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 6, Keyboard (JP): Home -ss.input.port6.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 6, Keyboard (JP): 半角/全角/漢字 -ss.input.port6.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 6, Keyboard (JP): I -ss.input.port6.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 6, Keyboard (JP): Insert -ss.input.port6.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 6, Keyboard (JP): J -ss.input.port6.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 6, Keyboard (JP): K -ss.input.port6.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 6, Keyboard (JP): L -ss.input.port6.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 6, Keyboard (JP): Left Alt -ss.input.port6.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 6, Keyboard (JP): Left Ctrl -ss.input.port6.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 6, Keyboard (JP): Cursor Left -ss.input.port6.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 6, Keyboard (JP): Left Bracket [ -ss.input.port6.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 6, Keyboard (JP): Left Shift -ss.input.port6.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 6, Keyboard (JP): M -ss.input.port6.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 6, Keyboard (JP): Minus - -ss.input.port6.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 6, Keyboard (JP): N -ss.input.port6.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 6, Keyboard (JP): 無変換 -ss.input.port6.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 6, Keyboard (JP): O -ss.input.port6.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 6, Keyboard (JP): P -ss.input.port6.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 6, Keyboard (JP): Page Down -ss.input.port6.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 6, Keyboard (JP): Page Up -ss.input.port6.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 6, Keyboard (JP): Pause -ss.input.port6.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 6, Keyboard (JP): Period . -ss.input.port6.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 6, Keyboard (JP): Print Screen -ss.input.port6.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 6, Keyboard (JP): Q -ss.input.port6.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 6, Keyboard (JP): R -ss.input.port6.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 6, Keyboard (JP): Right Alt -ss.input.port6.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 6, Keyboard (JP): Right Ctrl -ss.input.port6.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 6, Keyboard (JP): Right -ss.input.port6.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 6, Keyboard (JP): Right Bracket ] -ss.input.port6.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 6, Keyboard (JP): Right Shift -ss.input.port6.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 6, Keyboard (JP): S -ss.input.port6.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 6, Keyboard (JP): Scroll Lock -ss.input.port6.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 6, Keyboard (JP): Semicolon ; -ss.input.port6.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 6, Keyboard (JP): Slash / -ss.input.port6.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 6, Keyboard (JP): Space -ss.input.port6.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 6, Keyboard (JP): T -ss.input.port6.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 6, Keyboard (JP): Tab -ss.input.port6.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 6, Keyboard (JP): U -ss.input.port6.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 6, Keyboard (JP): Up -ss.input.port6.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 6, Keyboard (JP): V -ss.input.port6.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 6, Keyboard (JP): W -ss.input.port6.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 6, Keyboard (JP): X -ss.input.port6.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 6, Keyboard (JP): Y -ss.input.port6.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 6, Keyboard (JP): Yen ¥ -ss.input.port6.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 6, Keyboard (JP): Z -ss.input.port6.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 6, Keyboard (US): 0(Zero) -ss.input.port6.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 6, Keyboard (US): 1(One) -ss.input.port6.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 6, Keyboard (US): 2 -ss.input.port6.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 6, Keyboard (US): 3 -ss.input.port6.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 6, Keyboard (US): 4 -ss.input.port6.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 6, Keyboard (US): 5 -ss.input.port6.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 6, Keyboard (US): 6 -ss.input.port6.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 6, Keyboard (US): 7 -ss.input.port6.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 6, Keyboard (US): 8 -ss.input.port6.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 6, Keyboard (US): 9 -ss.input.port6.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 6, Keyboard (US): A -ss.input.port6.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 6, Keyboard (US): B -ss.input.port6.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 6, Keyboard (US): Backslash \ -ss.input.port6.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 6, Keyboard (US): Backspace -ss.input.port6.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 6, Keyboard (US): C -ss.input.port6.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 6, Keyboard (US): Caps Lock -ss.input.port6.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 6, Keyboard (US): Comma , -ss.input.port6.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 6, Keyboard (US): D -ss.input.port6.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 6, Keyboard (US): Delete -ss.input.port6.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 6, Keyboard (US): Down -ss.input.port6.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 6, Keyboard (US): E -ss.input.port6.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 6, Keyboard (US): End -ss.input.port6.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 6, Keyboard (US): Enter -ss.input.port6.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 6, Keyboard (US): Equals = -ss.input.port6.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 6, Keyboard (US): Escape -ss.input.port6.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 6, Keyboard (US): F -ss.input.port6.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 6, Keyboard (US): F1 -ss.input.port6.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 6, Keyboard (US): F10 -ss.input.port6.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 6, Keyboard (US): F11 -ss.input.port6.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 6, Keyboard (US): F12 -ss.input.port6.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 6, Keyboard (US): F2 -ss.input.port6.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 6, Keyboard (US): F3 -ss.input.port6.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 6, Keyboard (US): F4 -ss.input.port6.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 6, Keyboard (US): F5 -ss.input.port6.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 6, Keyboard (US): F6 -ss.input.port6.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 6, Keyboard (US): F7 -ss.input.port6.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 6, Keyboard (US): F8 -ss.input.port6.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 6, Keyboard (US): F9 -ss.input.port6.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 6, Keyboard (US): G -ss.input.port6.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 6, Keyboard (US): Grave ` -ss.input.port6.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 6, Keyboard (US): H -ss.input.port6.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 6, Keyboard (US): Home -ss.input.port6.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 6, Keyboard (US): I -ss.input.port6.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 6, Keyboard (US): Insert -ss.input.port6.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 6, Keyboard (US): J -ss.input.port6.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 6, Keyboard (US): K -ss.input.port6.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 6, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port6.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 6, Keyboard (US): Keypad Center/5 -ss.input.port6.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 6, Keyboard (US): Keypad Delete -ss.input.port6.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 6, Keyboard (US): Keypad Down/2 -ss.input.port6.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 6, Keyboard (US): Keypad End/1 -ss.input.port6.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 6, Keyboard (US): Keypad Enter -ss.input.port6.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 6, Keyboard (US): Keypad Home/7 -ss.input.port6.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 6, Keyboard (US): Keypad Insert/0 -ss.input.port6.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 6, Keyboard (US): Keypad Left/4 -ss.input.port6.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 6, Keyboard (US): Keypad Minus -ss.input.port6.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 6, Keyboard (US): Keypad Pagedown/3 -ss.input.port6.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 6, Keyboard (US): Keypad Pageup/9 -ss.input.port6.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 6, Keyboard (US): Keypad Plus -ss.input.port6.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 6, Keyboard (US): Keypad Right/6 -ss.input.port6.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 6, Keyboard (US): Keypad Slash(Divide) -ss.input.port6.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 6, Keyboard (US): Keypad Up/8 -ss.input.port6.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 6, Keyboard (US): L -ss.input.port6.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 6, Keyboard (US): Left Alt -ss.input.port6.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 6, Keyboard (US): Left Ctrl -ss.input.port6.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 6, Keyboard (US): Cursor Left -ss.input.port6.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 6, Keyboard (US): Left Bracket [ -ss.input.port6.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 6, Keyboard (US): Left Shift -ss.input.port6.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 6, Keyboard (US): M -ss.input.port6.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 6, Keyboard (US): Minus - -ss.input.port6.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 6, Keyboard (US): N -ss.input.port6.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 6, Keyboard (US): Num Lock -ss.input.port6.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 6, Keyboard (US): O -ss.input.port6.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 6, Keyboard (US): P -ss.input.port6.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 6, Keyboard (US): Page Down -ss.input.port6.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 6, Keyboard (US): Page Up -ss.input.port6.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 6, Keyboard (US): Pause -ss.input.port6.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 6, Keyboard (US): Period . -ss.input.port6.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 6, Keyboard (US): Print Screen -ss.input.port6.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 6, Keyboard (US): Q -ss.input.port6.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 6, Keyboard (US): Quote ' -ss.input.port6.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 6, Keyboard (US): R -ss.input.port6.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 6, Keyboard (US): Right Alt -ss.input.port6.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 6, Keyboard (US): Right Ctrl -ss.input.port6.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 6, Keyboard (US): Right -ss.input.port6.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 6, Keyboard (US): Right Bracket ] -ss.input.port6.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 6, Keyboard (US): Right Shift -ss.input.port6.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 6, Keyboard (US): S -ss.input.port6.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 6, Keyboard (US): Scroll Lock -ss.input.port6.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 6, Keyboard (US): Semicolon ; -ss.input.port6.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 6, Keyboard (US): Slash / -ss.input.port6.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 6, Keyboard (US): Space -ss.input.port6.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 6, Keyboard (US): T -ss.input.port6.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 6, Keyboard (US): Tab -ss.input.port6.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 6, Keyboard (US): U -ss.input.port6.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 6, Keyboard (US): Up -ss.input.port6.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 6, Keyboard (US): V -ss.input.port6.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 6, Keyboard (US): W -ss.input.port6.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 6, Keyboard (US): X -ss.input.port6.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 6, Keyboard (US): Y -ss.input.port6.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 6, Keyboard (US): Z -ss.input.port6.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 6, Mission Stick: A (Stick Trigger) -ss.input.port6.mission.a - -;ss, Virtual Port 6, Mission Stick: A AF -ss.input.port6.mission.afa - -;Default position for switch "A AF". -ss.input.port6.mission.afa.defpos off - -;ss, Virtual Port 6, Mission Stick: B AF -ss.input.port6.mission.afb - -;Default position for switch "B AF". -ss.input.port6.mission.afb.defpos off - -;ss, Virtual Port 6, Mission Stick: C AF -ss.input.port6.mission.afc - -;Default position for switch "C AF". -ss.input.port6.mission.afc.defpos off - -;ss, Virtual Port 6, Mission Stick: L AF -ss.input.port6.mission.afl - -;Default position for switch "L AF". -ss.input.port6.mission.afl.defpos off - -;ss, Virtual Port 6, Mission Stick: R AF -ss.input.port6.mission.afr - -;Default position for switch "R AF". -ss.input.port6.mission.afr.defpos off - -;ss, Virtual Port 6, Mission Stick: AF Speed -ss.input.port6.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port6.mission.afspeed.defpos 1 - -;ss, Virtual Port 6, Mission Stick: X AF -ss.input.port6.mission.afx - -;Default position for switch "X AF". -ss.input.port6.mission.afx.defpos off - -;ss, Virtual Port 6, Mission Stick: Y AF -ss.input.port6.mission.afy - -;Default position for switch "Y AF". -ss.input.port6.mission.afy.defpos off - -;ss, Virtual Port 6, Mission Stick: Z AF -ss.input.port6.mission.afz - -;Default position for switch "Z AF". -ss.input.port6.mission.afz.defpos off - -;ss, Virtual Port 6, Mission Stick: B (Stick Left Button) -ss.input.port6.mission.b - -;ss, Virtual Port 6, Mission Stick: C (Stick Right Button) -ss.input.port6.mission.c - -;ss, Virtual Port 6, Mission Stick: L -ss.input.port6.mission.l - -;ss, Virtual Port 6, Mission Stick: R -ss.input.port6.mission.r - -;ss, Virtual Port 6, Mission Stick: START -ss.input.port6.mission.start - -;ss, Virtual Port 6, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port6.mission.stick_back - -;ss, Virtual Port 6, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port6.mission.stick_fore - -;ss, Virtual Port 6, Mission Stick: Stick LEFT ← (Analog) -ss.input.port6.mission.stick_left - -;ss, Virtual Port 6, Mission Stick: Stick RIGHT → (Analog) -ss.input.port6.mission.stick_right - -;ss, Virtual Port 6, Mission Stick: Throttle Down (Analog) -ss.input.port6.mission.throttle_down - -;ss, Virtual Port 6, Mission Stick: Throttle Up (Analog) -ss.input.port6.mission.throttle_up - -;ss, Virtual Port 6, Mission Stick: X -ss.input.port6.mission.x - -;ss, Virtual Port 6, Mission Stick: Y -ss.input.port6.mission.y - -;ss, Virtual Port 6, Mission Stick: Z -ss.input.port6.mission.z - -;ss, Virtual Port 6, Mouse: Left Button -ss.input.port6.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 6, Mouse: Middle Button -ss.input.port6.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 6, Mouse: Motion Down -ss.input.port6.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 6, Mouse: Motion Left -ss.input.port6.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 6, Mouse: Motion Right -ss.input.port6.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 6, Mouse: Motion Up -ss.input.port6.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 6, Mouse: Right Button -ss.input.port6.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 6, Mouse: Start -ss.input.port6.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 6, Steering Wheel: A (R Group) -ss.input.port6.wheel.a - -;ss, Virtual Port 6, Steering Wheel: Analog LEFT ← -ss.input.port6.wheel.analog_left - -;ss, Virtual Port 6, Steering Wheel: Analog RIGHT → -ss.input.port6.wheel.analog_right - -;ss, Virtual Port 6, Steering Wheel: B (R Group) -ss.input.port6.wheel.b - -;ss, Virtual Port 6, Steering Wheel: C (R Group) -ss.input.port6.wheel.c - -;ss, Virtual Port 6, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port6.wheel.down - -;ss, Virtual Port 6, Steering Wheel: START -ss.input.port6.wheel.start - -;ss, Virtual Port 6, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port6.wheel.up - -;ss, Virtual Port 6, Steering Wheel: X (L Group) -ss.input.port6.wheel.x - -;ss, Virtual Port 6, Steering Wheel: Y (L Group) -ss.input.port6.wheel.y - -;ss, Virtual Port 6, Steering Wheel: Z (L Group) -ss.input.port6.wheel.z - -;Input device for Virtual Port 7 -ss.input.port7 gamepad - -;ss, Virtual Port 7, 3D Control Pad: A -ss.input.port7.3dpad.a - -;ss, Virtual Port 7, 3D Control Pad: Analog DOWN ↓ -ss.input.port7.3dpad.analog_down - -;ss, Virtual Port 7, 3D Control Pad: Analog LEFT ← -ss.input.port7.3dpad.analog_left - -;ss, Virtual Port 7, 3D Control Pad: Analog RIGHT → -ss.input.port7.3dpad.analog_right - -;ss, Virtual Port 7, 3D Control Pad: Analog UP ↑ -ss.input.port7.3dpad.analog_up - -;ss, Virtual Port 7, 3D Control Pad: B -ss.input.port7.3dpad.b - -;ss, Virtual Port 7, 3D Control Pad: C -ss.input.port7.3dpad.c - -;ss, Virtual Port 7, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port7.3dpad.down - -;ss, Virtual Port 7, 3D Control Pad: D-Pad LEFT ← -ss.input.port7.3dpad.left - -;ss, Virtual Port 7, 3D Control Pad: Left Shoulder (Analog) -ss.input.port7.3dpad.ls - -;ss, Virtual Port 7, 3D Control Pad: Mode -ss.input.port7.3dpad.mode - -;Default position for switch "Mode". -ss.input.port7.3dpad.mode.defpos digital - -;ss, Virtual Port 7, 3D Control Pad: D-Pad RIGHT → -ss.input.port7.3dpad.right - -;ss, Virtual Port 7, 3D Control Pad: Right Shoulder (Analog) -ss.input.port7.3dpad.rs - -;ss, Virtual Port 7, 3D Control Pad: START -ss.input.port7.3dpad.start - -;ss, Virtual Port 7, 3D Control Pad: D-Pad UP ↑ -ss.input.port7.3dpad.up - -;ss, Virtual Port 7, 3D Control Pad: X -ss.input.port7.3dpad.x - -;ss, Virtual Port 7, 3D Control Pad: Y -ss.input.port7.3dpad.y - -;ss, Virtual Port 7, 3D Control Pad: Z -ss.input.port7.3dpad.z - -;ss, Virtual Port 7, Dual Mission: A (R Stick Trigger) -ss.input.port7.dmission.a - -;ss, Virtual Port 7, Dual Mission: A AF -ss.input.port7.dmission.afa - -;Default position for switch "A AF". -ss.input.port7.dmission.afa.defpos off - -;ss, Virtual Port 7, Dual Mission: B AF -ss.input.port7.dmission.afb - -;Default position for switch "B AF". -ss.input.port7.dmission.afb.defpos off - -;ss, Virtual Port 7, Dual Mission: C AF -ss.input.port7.dmission.afc - -;Default position for switch "C AF". -ss.input.port7.dmission.afc.defpos off - -;ss, Virtual Port 7, Dual Mission: L AF -ss.input.port7.dmission.afl - -;Default position for switch "L AF". -ss.input.port7.dmission.afl.defpos off - -;ss, Virtual Port 7, Dual Mission: R AF -ss.input.port7.dmission.afr - -;Default position for switch "R AF". -ss.input.port7.dmission.afr.defpos off - -;ss, Virtual Port 7, Dual Mission: Autofire Speed -ss.input.port7.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port7.dmission.afspeed.defpos 1 - -;ss, Virtual Port 7, Dual Mission: X AF -ss.input.port7.dmission.afx - -;Default position for switch "X AF". -ss.input.port7.dmission.afx.defpos off - -;ss, Virtual Port 7, Dual Mission: Y AF -ss.input.port7.dmission.afy - -;Default position for switch "Y AF". -ss.input.port7.dmission.afy.defpos off - -;ss, Virtual Port 7, Dual Mission: Z AF -ss.input.port7.dmission.afz - -;Default position for switch "Z AF". -ss.input.port7.dmission.afz.defpos off - -;ss, Virtual Port 7, Dual Mission: B (R Stick Left Button) -ss.input.port7.dmission.b - -;ss, Virtual Port 7, Dual Mission: C (R Stick Right Button) -ss.input.port7.dmission.c - -;ss, Virtual Port 7, Dual Mission: L -ss.input.port7.dmission.l - -;ss, Virtual Port 7, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port7.dmission.lstick_back - -;ss, Virtual Port 7, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port7.dmission.lstick_fore - -;ss, Virtual Port 7, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port7.dmission.lstick_left - -;ss, Virtual Port 7, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port7.dmission.lstick_right - -;ss, Virtual Port 7, Dual Mission: L Throttle Down (Analog) -ss.input.port7.dmission.lthrottle_down - -;ss, Virtual Port 7, Dual Mission: L Throttle Up (Analog) -ss.input.port7.dmission.lthrottle_up - -;ss, Virtual Port 7, Dual Mission: R -ss.input.port7.dmission.r - -;ss, Virtual Port 7, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port7.dmission.rstick_back - -;ss, Virtual Port 7, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port7.dmission.rstick_fore - -;ss, Virtual Port 7, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port7.dmission.rstick_left - -;ss, Virtual Port 7, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port7.dmission.rstick_right - -;ss, Virtual Port 7, Dual Mission: R Throttle Down (Analog) -ss.input.port7.dmission.rthrottle_down - -;ss, Virtual Port 7, Dual Mission: R Throttle Up (Analog) -ss.input.port7.dmission.rthrottle_up - -;ss, Virtual Port 7, Dual Mission: START -ss.input.port7.dmission.start - -;ss, Virtual Port 7, Dual Mission: X (L Stick Trigger) -ss.input.port7.dmission.x - -;ss, Virtual Port 7, Dual Mission: Y (L Stick Left Button) -ss.input.port7.dmission.y - -;ss, Virtual Port 7, Dual Mission: Z (L Stick Right Button) -ss.input.port7.dmission.z - -;ss, Virtual Port 7, Digital Gamepad: A -ss.input.port7.gamepad.a - -;ss, Virtual Port 7, Digital Gamepad: B -ss.input.port7.gamepad.b - -;ss, Virtual Port 7, Digital Gamepad: C -ss.input.port7.gamepad.c - -;ss, Virtual Port 7, Digital Gamepad: DOWN ↓ -ss.input.port7.gamepad.down - -;ss, Virtual Port 7, Digital Gamepad: LEFT ← -ss.input.port7.gamepad.left - -;ss, Virtual Port 7, Digital Gamepad: Left Shoulder -ss.input.port7.gamepad.ls - -;ss, Virtual Port 7, Digital Gamepad: RIGHT → -ss.input.port7.gamepad.right - -;ss, Virtual Port 7, Digital Gamepad: Right Shoulder -ss.input.port7.gamepad.rs - -;ss, Virtual Port 7, Digital Gamepad: START -ss.input.port7.gamepad.start - -;ss, Virtual Port 7, Digital Gamepad: UP ↑ -ss.input.port7.gamepad.up - -;ss, Virtual Port 7, Digital Gamepad: X -ss.input.port7.gamepad.x - -;ss, Virtual Port 7, Digital Gamepad: Y -ss.input.port7.gamepad.y - -;ss, Virtual Port 7, Digital Gamepad: Z -ss.input.port7.gamepad.z - -;ss, Virtual Port 7, Light Gun: Offscreen Shot(Simulated) -ss.input.port7.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 7, Light Gun: START -ss.input.port7.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 7, Light Gun: Trigger -ss.input.port7.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 7, Light Gun: X Axis -ss.input.port7.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 7, Light Gun: Y Axis -ss.input.port7.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 7. -ss.input.port7.gun_chairs 0x0080FF - -;ss, Virtual Port 7, Keyboard (JP): 0(Zero) -ss.input.port7.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 7, Keyboard (JP): 1(One) -ss.input.port7.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 7, Keyboard (JP): 2 -ss.input.port7.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 7, Keyboard (JP): 3 -ss.input.port7.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 7, Keyboard (JP): 4 -ss.input.port7.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 7, Keyboard (JP): 5 -ss.input.port7.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 7, Keyboard (JP): 6 -ss.input.port7.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 7, Keyboard (JP): 7 -ss.input.port7.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 7, Keyboard (JP): 8 -ss.input.port7.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 7, Keyboard (JP): 9 -ss.input.port7.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 7, Keyboard (JP): A -ss.input.port7.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 7, Keyboard (JP): At @ -ss.input.port7.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 7, Keyboard (JP): B -ss.input.port7.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 7, Keyboard (JP): Backslash \ -ss.input.port7.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 7, Keyboard (JP): Backspace -ss.input.port7.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 7, Keyboard (JP): C -ss.input.port7.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 7, Keyboard (JP): Caps Lock/英数 -ss.input.port7.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 7, Keyboard (JP): Circumflex ^ -ss.input.port7.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 7, Keyboard (JP): Colon : -ss.input.port7.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 7, Keyboard (JP): Comma , -ss.input.port7.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 7, Keyboard (JP): 変換 -ss.input.port7.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 7, Keyboard (JP): D -ss.input.port7.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 7, Keyboard (JP): Delete -ss.input.port7.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 7, Keyboard (JP): Down -ss.input.port7.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 7, Keyboard (JP): E -ss.input.port7.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 7, Keyboard (JP): End -ss.input.port7.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 7, Keyboard (JP): Enter -ss.input.port7.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 7, Keyboard (JP): Escape -ss.input.port7.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 7, Keyboard (JP): F -ss.input.port7.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 7, Keyboard (JP): F1 -ss.input.port7.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 7, Keyboard (JP): F10 -ss.input.port7.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 7, Keyboard (JP): F11 -ss.input.port7.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 7, Keyboard (JP): F12 -ss.input.port7.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 7, Keyboard (JP): F2 -ss.input.port7.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 7, Keyboard (JP): F3 -ss.input.port7.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 7, Keyboard (JP): F4 -ss.input.port7.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 7, Keyboard (JP): F5 -ss.input.port7.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 7, Keyboard (JP): F6 -ss.input.port7.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 7, Keyboard (JP): F7 -ss.input.port7.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 7, Keyboard (JP): F8 -ss.input.port7.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 7, Keyboard (JP): F9 -ss.input.port7.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 7, Keyboard (JP): G -ss.input.port7.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 7, Keyboard (JP): H -ss.input.port7.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 7, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port7.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 7, Keyboard (JP): Home -ss.input.port7.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 7, Keyboard (JP): 半角/全角/漢字 -ss.input.port7.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 7, Keyboard (JP): I -ss.input.port7.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 7, Keyboard (JP): Insert -ss.input.port7.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 7, Keyboard (JP): J -ss.input.port7.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 7, Keyboard (JP): K -ss.input.port7.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 7, Keyboard (JP): L -ss.input.port7.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 7, Keyboard (JP): Left Alt -ss.input.port7.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 7, Keyboard (JP): Left Ctrl -ss.input.port7.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 7, Keyboard (JP): Cursor Left -ss.input.port7.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 7, Keyboard (JP): Left Bracket [ -ss.input.port7.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 7, Keyboard (JP): Left Shift -ss.input.port7.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 7, Keyboard (JP): M -ss.input.port7.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 7, Keyboard (JP): Minus - -ss.input.port7.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 7, Keyboard (JP): N -ss.input.port7.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 7, Keyboard (JP): 無変換 -ss.input.port7.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 7, Keyboard (JP): O -ss.input.port7.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 7, Keyboard (JP): P -ss.input.port7.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 7, Keyboard (JP): Page Down -ss.input.port7.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 7, Keyboard (JP): Page Up -ss.input.port7.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 7, Keyboard (JP): Pause -ss.input.port7.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 7, Keyboard (JP): Period . -ss.input.port7.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 7, Keyboard (JP): Print Screen -ss.input.port7.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 7, Keyboard (JP): Q -ss.input.port7.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 7, Keyboard (JP): R -ss.input.port7.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 7, Keyboard (JP): Right Alt -ss.input.port7.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 7, Keyboard (JP): Right Ctrl -ss.input.port7.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 7, Keyboard (JP): Right -ss.input.port7.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 7, Keyboard (JP): Right Bracket ] -ss.input.port7.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 7, Keyboard (JP): Right Shift -ss.input.port7.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 7, Keyboard (JP): S -ss.input.port7.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 7, Keyboard (JP): Scroll Lock -ss.input.port7.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 7, Keyboard (JP): Semicolon ; -ss.input.port7.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 7, Keyboard (JP): Slash / -ss.input.port7.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 7, Keyboard (JP): Space -ss.input.port7.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 7, Keyboard (JP): T -ss.input.port7.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 7, Keyboard (JP): Tab -ss.input.port7.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 7, Keyboard (JP): U -ss.input.port7.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 7, Keyboard (JP): Up -ss.input.port7.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 7, Keyboard (JP): V -ss.input.port7.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 7, Keyboard (JP): W -ss.input.port7.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 7, Keyboard (JP): X -ss.input.port7.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 7, Keyboard (JP): Y -ss.input.port7.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 7, Keyboard (JP): Yen ¥ -ss.input.port7.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 7, Keyboard (JP): Z -ss.input.port7.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 7, Keyboard (US): 0(Zero) -ss.input.port7.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 7, Keyboard (US): 1(One) -ss.input.port7.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 7, Keyboard (US): 2 -ss.input.port7.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 7, Keyboard (US): 3 -ss.input.port7.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 7, Keyboard (US): 4 -ss.input.port7.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 7, Keyboard (US): 5 -ss.input.port7.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 7, Keyboard (US): 6 -ss.input.port7.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 7, Keyboard (US): 7 -ss.input.port7.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 7, Keyboard (US): 8 -ss.input.port7.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 7, Keyboard (US): 9 -ss.input.port7.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 7, Keyboard (US): A -ss.input.port7.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 7, Keyboard (US): B -ss.input.port7.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 7, Keyboard (US): Backslash \ -ss.input.port7.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 7, Keyboard (US): Backspace -ss.input.port7.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 7, Keyboard (US): C -ss.input.port7.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 7, Keyboard (US): Caps Lock -ss.input.port7.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 7, Keyboard (US): Comma , -ss.input.port7.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 7, Keyboard (US): D -ss.input.port7.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 7, Keyboard (US): Delete -ss.input.port7.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 7, Keyboard (US): Down -ss.input.port7.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 7, Keyboard (US): E -ss.input.port7.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 7, Keyboard (US): End -ss.input.port7.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 7, Keyboard (US): Enter -ss.input.port7.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 7, Keyboard (US): Equals = -ss.input.port7.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 7, Keyboard (US): Escape -ss.input.port7.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 7, Keyboard (US): F -ss.input.port7.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 7, Keyboard (US): F1 -ss.input.port7.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 7, Keyboard (US): F10 -ss.input.port7.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 7, Keyboard (US): F11 -ss.input.port7.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 7, Keyboard (US): F12 -ss.input.port7.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 7, Keyboard (US): F2 -ss.input.port7.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 7, Keyboard (US): F3 -ss.input.port7.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 7, Keyboard (US): F4 -ss.input.port7.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 7, Keyboard (US): F5 -ss.input.port7.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 7, Keyboard (US): F6 -ss.input.port7.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 7, Keyboard (US): F7 -ss.input.port7.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 7, Keyboard (US): F8 -ss.input.port7.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 7, Keyboard (US): F9 -ss.input.port7.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 7, Keyboard (US): G -ss.input.port7.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 7, Keyboard (US): Grave ` -ss.input.port7.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 7, Keyboard (US): H -ss.input.port7.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 7, Keyboard (US): Home -ss.input.port7.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 7, Keyboard (US): I -ss.input.port7.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 7, Keyboard (US): Insert -ss.input.port7.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 7, Keyboard (US): J -ss.input.port7.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 7, Keyboard (US): K -ss.input.port7.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 7, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port7.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 7, Keyboard (US): Keypad Center/5 -ss.input.port7.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 7, Keyboard (US): Keypad Delete -ss.input.port7.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 7, Keyboard (US): Keypad Down/2 -ss.input.port7.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 7, Keyboard (US): Keypad End/1 -ss.input.port7.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 7, Keyboard (US): Keypad Enter -ss.input.port7.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 7, Keyboard (US): Keypad Home/7 -ss.input.port7.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 7, Keyboard (US): Keypad Insert/0 -ss.input.port7.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 7, Keyboard (US): Keypad Left/4 -ss.input.port7.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 7, Keyboard (US): Keypad Minus -ss.input.port7.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 7, Keyboard (US): Keypad Pagedown/3 -ss.input.port7.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 7, Keyboard (US): Keypad Pageup/9 -ss.input.port7.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 7, Keyboard (US): Keypad Plus -ss.input.port7.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 7, Keyboard (US): Keypad Right/6 -ss.input.port7.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 7, Keyboard (US): Keypad Slash(Divide) -ss.input.port7.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 7, Keyboard (US): Keypad Up/8 -ss.input.port7.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 7, Keyboard (US): L -ss.input.port7.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 7, Keyboard (US): Left Alt -ss.input.port7.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 7, Keyboard (US): Left Ctrl -ss.input.port7.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 7, Keyboard (US): Cursor Left -ss.input.port7.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 7, Keyboard (US): Left Bracket [ -ss.input.port7.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 7, Keyboard (US): Left Shift -ss.input.port7.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 7, Keyboard (US): M -ss.input.port7.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 7, Keyboard (US): Minus - -ss.input.port7.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 7, Keyboard (US): N -ss.input.port7.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 7, Keyboard (US): Num Lock -ss.input.port7.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 7, Keyboard (US): O -ss.input.port7.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 7, Keyboard (US): P -ss.input.port7.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 7, Keyboard (US): Page Down -ss.input.port7.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 7, Keyboard (US): Page Up -ss.input.port7.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 7, Keyboard (US): Pause -ss.input.port7.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 7, Keyboard (US): Period . -ss.input.port7.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 7, Keyboard (US): Print Screen -ss.input.port7.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 7, Keyboard (US): Q -ss.input.port7.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 7, Keyboard (US): Quote ' -ss.input.port7.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 7, Keyboard (US): R -ss.input.port7.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 7, Keyboard (US): Right Alt -ss.input.port7.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 7, Keyboard (US): Right Ctrl -ss.input.port7.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 7, Keyboard (US): Right -ss.input.port7.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 7, Keyboard (US): Right Bracket ] -ss.input.port7.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 7, Keyboard (US): Right Shift -ss.input.port7.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 7, Keyboard (US): S -ss.input.port7.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 7, Keyboard (US): Scroll Lock -ss.input.port7.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 7, Keyboard (US): Semicolon ; -ss.input.port7.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 7, Keyboard (US): Slash / -ss.input.port7.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 7, Keyboard (US): Space -ss.input.port7.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 7, Keyboard (US): T -ss.input.port7.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 7, Keyboard (US): Tab -ss.input.port7.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 7, Keyboard (US): U -ss.input.port7.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 7, Keyboard (US): Up -ss.input.port7.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 7, Keyboard (US): V -ss.input.port7.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 7, Keyboard (US): W -ss.input.port7.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 7, Keyboard (US): X -ss.input.port7.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 7, Keyboard (US): Y -ss.input.port7.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 7, Keyboard (US): Z -ss.input.port7.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 7, Mission Stick: A (Stick Trigger) -ss.input.port7.mission.a - -;ss, Virtual Port 7, Mission Stick: A AF -ss.input.port7.mission.afa - -;Default position for switch "A AF". -ss.input.port7.mission.afa.defpos off - -;ss, Virtual Port 7, Mission Stick: B AF -ss.input.port7.mission.afb - -;Default position for switch "B AF". -ss.input.port7.mission.afb.defpos off - -;ss, Virtual Port 7, Mission Stick: C AF -ss.input.port7.mission.afc - -;Default position for switch "C AF". -ss.input.port7.mission.afc.defpos off - -;ss, Virtual Port 7, Mission Stick: L AF -ss.input.port7.mission.afl - -;Default position for switch "L AF". -ss.input.port7.mission.afl.defpos off - -;ss, Virtual Port 7, Mission Stick: R AF -ss.input.port7.mission.afr - -;Default position for switch "R AF". -ss.input.port7.mission.afr.defpos off - -;ss, Virtual Port 7, Mission Stick: AF Speed -ss.input.port7.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port7.mission.afspeed.defpos 1 - -;ss, Virtual Port 7, Mission Stick: X AF -ss.input.port7.mission.afx - -;Default position for switch "X AF". -ss.input.port7.mission.afx.defpos off - -;ss, Virtual Port 7, Mission Stick: Y AF -ss.input.port7.mission.afy - -;Default position for switch "Y AF". -ss.input.port7.mission.afy.defpos off - -;ss, Virtual Port 7, Mission Stick: Z AF -ss.input.port7.mission.afz - -;Default position for switch "Z AF". -ss.input.port7.mission.afz.defpos off - -;ss, Virtual Port 7, Mission Stick: B (Stick Left Button) -ss.input.port7.mission.b - -;ss, Virtual Port 7, Mission Stick: C (Stick Right Button) -ss.input.port7.mission.c - -;ss, Virtual Port 7, Mission Stick: L -ss.input.port7.mission.l - -;ss, Virtual Port 7, Mission Stick: R -ss.input.port7.mission.r - -;ss, Virtual Port 7, Mission Stick: START -ss.input.port7.mission.start - -;ss, Virtual Port 7, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port7.mission.stick_back - -;ss, Virtual Port 7, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port7.mission.stick_fore - -;ss, Virtual Port 7, Mission Stick: Stick LEFT ← (Analog) -ss.input.port7.mission.stick_left - -;ss, Virtual Port 7, Mission Stick: Stick RIGHT → (Analog) -ss.input.port7.mission.stick_right - -;ss, Virtual Port 7, Mission Stick: Throttle Down (Analog) -ss.input.port7.mission.throttle_down - -;ss, Virtual Port 7, Mission Stick: Throttle Up (Analog) -ss.input.port7.mission.throttle_up - -;ss, Virtual Port 7, Mission Stick: X -ss.input.port7.mission.x - -;ss, Virtual Port 7, Mission Stick: Y -ss.input.port7.mission.y - -;ss, Virtual Port 7, Mission Stick: Z -ss.input.port7.mission.z - -;ss, Virtual Port 7, Mouse: Left Button -ss.input.port7.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 7, Mouse: Middle Button -ss.input.port7.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 7, Mouse: Motion Down -ss.input.port7.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 7, Mouse: Motion Left -ss.input.port7.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 7, Mouse: Motion Right -ss.input.port7.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 7, Mouse: Motion Up -ss.input.port7.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 7, Mouse: Right Button -ss.input.port7.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 7, Mouse: Start -ss.input.port7.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 7, Steering Wheel: A (R Group) -ss.input.port7.wheel.a - -;ss, Virtual Port 7, Steering Wheel: Analog LEFT ← -ss.input.port7.wheel.analog_left - -;ss, Virtual Port 7, Steering Wheel: Analog RIGHT → -ss.input.port7.wheel.analog_right - -;ss, Virtual Port 7, Steering Wheel: B (R Group) -ss.input.port7.wheel.b - -;ss, Virtual Port 7, Steering Wheel: C (R Group) -ss.input.port7.wheel.c - -;ss, Virtual Port 7, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port7.wheel.down - -;ss, Virtual Port 7, Steering Wheel: START -ss.input.port7.wheel.start - -;ss, Virtual Port 7, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port7.wheel.up - -;ss, Virtual Port 7, Steering Wheel: X (L Group) -ss.input.port7.wheel.x - -;ss, Virtual Port 7, Steering Wheel: Y (L Group) -ss.input.port7.wheel.y - -;ss, Virtual Port 7, Steering Wheel: Z (L Group) -ss.input.port7.wheel.z - -;Input device for Virtual Port 8 -ss.input.port8 gamepad - -;ss, Virtual Port 8, 3D Control Pad: A -ss.input.port8.3dpad.a - -;ss, Virtual Port 8, 3D Control Pad: Analog DOWN ↓ -ss.input.port8.3dpad.analog_down - -;ss, Virtual Port 8, 3D Control Pad: Analog LEFT ← -ss.input.port8.3dpad.analog_left - -;ss, Virtual Port 8, 3D Control Pad: Analog RIGHT → -ss.input.port8.3dpad.analog_right - -;ss, Virtual Port 8, 3D Control Pad: Analog UP ↑ -ss.input.port8.3dpad.analog_up - -;ss, Virtual Port 8, 3D Control Pad: B -ss.input.port8.3dpad.b - -;ss, Virtual Port 8, 3D Control Pad: C -ss.input.port8.3dpad.c - -;ss, Virtual Port 8, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port8.3dpad.down - -;ss, Virtual Port 8, 3D Control Pad: D-Pad LEFT ← -ss.input.port8.3dpad.left - -;ss, Virtual Port 8, 3D Control Pad: Left Shoulder (Analog) -ss.input.port8.3dpad.ls - -;ss, Virtual Port 8, 3D Control Pad: Mode -ss.input.port8.3dpad.mode - -;Default position for switch "Mode". -ss.input.port8.3dpad.mode.defpos digital - -;ss, Virtual Port 8, 3D Control Pad: D-Pad RIGHT → -ss.input.port8.3dpad.right - -;ss, Virtual Port 8, 3D Control Pad: Right Shoulder (Analog) -ss.input.port8.3dpad.rs - -;ss, Virtual Port 8, 3D Control Pad: START -ss.input.port8.3dpad.start - -;ss, Virtual Port 8, 3D Control Pad: D-Pad UP ↑ -ss.input.port8.3dpad.up - -;ss, Virtual Port 8, 3D Control Pad: X -ss.input.port8.3dpad.x - -;ss, Virtual Port 8, 3D Control Pad: Y -ss.input.port8.3dpad.y - -;ss, Virtual Port 8, 3D Control Pad: Z -ss.input.port8.3dpad.z - -;ss, Virtual Port 8, Dual Mission: A (R Stick Trigger) -ss.input.port8.dmission.a - -;ss, Virtual Port 8, Dual Mission: A AF -ss.input.port8.dmission.afa - -;Default position for switch "A AF". -ss.input.port8.dmission.afa.defpos off - -;ss, Virtual Port 8, Dual Mission: B AF -ss.input.port8.dmission.afb - -;Default position for switch "B AF". -ss.input.port8.dmission.afb.defpos off - -;ss, Virtual Port 8, Dual Mission: C AF -ss.input.port8.dmission.afc - -;Default position for switch "C AF". -ss.input.port8.dmission.afc.defpos off - -;ss, Virtual Port 8, Dual Mission: L AF -ss.input.port8.dmission.afl - -;Default position for switch "L AF". -ss.input.port8.dmission.afl.defpos off - -;ss, Virtual Port 8, Dual Mission: R AF -ss.input.port8.dmission.afr - -;Default position for switch "R AF". -ss.input.port8.dmission.afr.defpos off - -;ss, Virtual Port 8, Dual Mission: Autofire Speed -ss.input.port8.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port8.dmission.afspeed.defpos 1 - -;ss, Virtual Port 8, Dual Mission: X AF -ss.input.port8.dmission.afx - -;Default position for switch "X AF". -ss.input.port8.dmission.afx.defpos off - -;ss, Virtual Port 8, Dual Mission: Y AF -ss.input.port8.dmission.afy - -;Default position for switch "Y AF". -ss.input.port8.dmission.afy.defpos off - -;ss, Virtual Port 8, Dual Mission: Z AF -ss.input.port8.dmission.afz - -;Default position for switch "Z AF". -ss.input.port8.dmission.afz.defpos off - -;ss, Virtual Port 8, Dual Mission: B (R Stick Left Button) -ss.input.port8.dmission.b - -;ss, Virtual Port 8, Dual Mission: C (R Stick Right Button) -ss.input.port8.dmission.c - -;ss, Virtual Port 8, Dual Mission: L -ss.input.port8.dmission.l - -;ss, Virtual Port 8, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port8.dmission.lstick_back - -;ss, Virtual Port 8, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port8.dmission.lstick_fore - -;ss, Virtual Port 8, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port8.dmission.lstick_left - -;ss, Virtual Port 8, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port8.dmission.lstick_right - -;ss, Virtual Port 8, Dual Mission: L Throttle Down (Analog) -ss.input.port8.dmission.lthrottle_down - -;ss, Virtual Port 8, Dual Mission: L Throttle Up (Analog) -ss.input.port8.dmission.lthrottle_up - -;ss, Virtual Port 8, Dual Mission: R -ss.input.port8.dmission.r - -;ss, Virtual Port 8, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port8.dmission.rstick_back - -;ss, Virtual Port 8, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port8.dmission.rstick_fore - -;ss, Virtual Port 8, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port8.dmission.rstick_left - -;ss, Virtual Port 8, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port8.dmission.rstick_right - -;ss, Virtual Port 8, Dual Mission: R Throttle Down (Analog) -ss.input.port8.dmission.rthrottle_down - -;ss, Virtual Port 8, Dual Mission: R Throttle Up (Analog) -ss.input.port8.dmission.rthrottle_up - -;ss, Virtual Port 8, Dual Mission: START -ss.input.port8.dmission.start - -;ss, Virtual Port 8, Dual Mission: X (L Stick Trigger) -ss.input.port8.dmission.x - -;ss, Virtual Port 8, Dual Mission: Y (L Stick Left Button) -ss.input.port8.dmission.y - -;ss, Virtual Port 8, Dual Mission: Z (L Stick Right Button) -ss.input.port8.dmission.z - -;ss, Virtual Port 8, Digital Gamepad: A -ss.input.port8.gamepad.a - -;ss, Virtual Port 8, Digital Gamepad: B -ss.input.port8.gamepad.b - -;ss, Virtual Port 8, Digital Gamepad: C -ss.input.port8.gamepad.c - -;ss, Virtual Port 8, Digital Gamepad: DOWN ↓ -ss.input.port8.gamepad.down - -;ss, Virtual Port 8, Digital Gamepad: LEFT ← -ss.input.port8.gamepad.left - -;ss, Virtual Port 8, Digital Gamepad: Left Shoulder -ss.input.port8.gamepad.ls - -;ss, Virtual Port 8, Digital Gamepad: RIGHT → -ss.input.port8.gamepad.right - -;ss, Virtual Port 8, Digital Gamepad: Right Shoulder -ss.input.port8.gamepad.rs - -;ss, Virtual Port 8, Digital Gamepad: START -ss.input.port8.gamepad.start - -;ss, Virtual Port 8, Digital Gamepad: UP ↑ -ss.input.port8.gamepad.up - -;ss, Virtual Port 8, Digital Gamepad: X -ss.input.port8.gamepad.x - -;ss, Virtual Port 8, Digital Gamepad: Y -ss.input.port8.gamepad.y - -;ss, Virtual Port 8, Digital Gamepad: Z -ss.input.port8.gamepad.z - -;ss, Virtual Port 8, Light Gun: Offscreen Shot(Simulated) -ss.input.port8.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 8, Light Gun: START -ss.input.port8.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 8, Light Gun: Trigger -ss.input.port8.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 8, Light Gun: X Axis -ss.input.port8.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 8, Light Gun: Y Axis -ss.input.port8.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 8. -ss.input.port8.gun_chairs 0x8000FF - -;ss, Virtual Port 8, Keyboard (JP): 0(Zero) -ss.input.port8.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 8, Keyboard (JP): 1(One) -ss.input.port8.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 8, Keyboard (JP): 2 -ss.input.port8.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 8, Keyboard (JP): 3 -ss.input.port8.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 8, Keyboard (JP): 4 -ss.input.port8.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 8, Keyboard (JP): 5 -ss.input.port8.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 8, Keyboard (JP): 6 -ss.input.port8.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 8, Keyboard (JP): 7 -ss.input.port8.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 8, Keyboard (JP): 8 -ss.input.port8.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 8, Keyboard (JP): 9 -ss.input.port8.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 8, Keyboard (JP): A -ss.input.port8.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 8, Keyboard (JP): At @ -ss.input.port8.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 8, Keyboard (JP): B -ss.input.port8.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 8, Keyboard (JP): Backslash \ -ss.input.port8.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 8, Keyboard (JP): Backspace -ss.input.port8.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 8, Keyboard (JP): C -ss.input.port8.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 8, Keyboard (JP): Caps Lock/英数 -ss.input.port8.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 8, Keyboard (JP): Circumflex ^ -ss.input.port8.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 8, Keyboard (JP): Colon : -ss.input.port8.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 8, Keyboard (JP): Comma , -ss.input.port8.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 8, Keyboard (JP): 変換 -ss.input.port8.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 8, Keyboard (JP): D -ss.input.port8.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 8, Keyboard (JP): Delete -ss.input.port8.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 8, Keyboard (JP): Down -ss.input.port8.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 8, Keyboard (JP): E -ss.input.port8.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 8, Keyboard (JP): End -ss.input.port8.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 8, Keyboard (JP): Enter -ss.input.port8.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 8, Keyboard (JP): Escape -ss.input.port8.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 8, Keyboard (JP): F -ss.input.port8.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 8, Keyboard (JP): F1 -ss.input.port8.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 8, Keyboard (JP): F10 -ss.input.port8.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 8, Keyboard (JP): F11 -ss.input.port8.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 8, Keyboard (JP): F12 -ss.input.port8.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 8, Keyboard (JP): F2 -ss.input.port8.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 8, Keyboard (JP): F3 -ss.input.port8.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 8, Keyboard (JP): F4 -ss.input.port8.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 8, Keyboard (JP): F5 -ss.input.port8.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 8, Keyboard (JP): F6 -ss.input.port8.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 8, Keyboard (JP): F7 -ss.input.port8.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 8, Keyboard (JP): F8 -ss.input.port8.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 8, Keyboard (JP): F9 -ss.input.port8.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 8, Keyboard (JP): G -ss.input.port8.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 8, Keyboard (JP): H -ss.input.port8.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 8, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port8.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 8, Keyboard (JP): Home -ss.input.port8.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 8, Keyboard (JP): 半角/全角/漢字 -ss.input.port8.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 8, Keyboard (JP): I -ss.input.port8.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 8, Keyboard (JP): Insert -ss.input.port8.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 8, Keyboard (JP): J -ss.input.port8.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 8, Keyboard (JP): K -ss.input.port8.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 8, Keyboard (JP): L -ss.input.port8.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 8, Keyboard (JP): Left Alt -ss.input.port8.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 8, Keyboard (JP): Left Ctrl -ss.input.port8.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 8, Keyboard (JP): Cursor Left -ss.input.port8.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 8, Keyboard (JP): Left Bracket [ -ss.input.port8.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 8, Keyboard (JP): Left Shift -ss.input.port8.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 8, Keyboard (JP): M -ss.input.port8.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 8, Keyboard (JP): Minus - -ss.input.port8.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 8, Keyboard (JP): N -ss.input.port8.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 8, Keyboard (JP): 無変換 -ss.input.port8.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 8, Keyboard (JP): O -ss.input.port8.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 8, Keyboard (JP): P -ss.input.port8.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 8, Keyboard (JP): Page Down -ss.input.port8.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 8, Keyboard (JP): Page Up -ss.input.port8.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 8, Keyboard (JP): Pause -ss.input.port8.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 8, Keyboard (JP): Period . -ss.input.port8.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 8, Keyboard (JP): Print Screen -ss.input.port8.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 8, Keyboard (JP): Q -ss.input.port8.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 8, Keyboard (JP): R -ss.input.port8.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 8, Keyboard (JP): Right Alt -ss.input.port8.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 8, Keyboard (JP): Right Ctrl -ss.input.port8.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 8, Keyboard (JP): Right -ss.input.port8.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 8, Keyboard (JP): Right Bracket ] -ss.input.port8.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 8, Keyboard (JP): Right Shift -ss.input.port8.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 8, Keyboard (JP): S -ss.input.port8.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 8, Keyboard (JP): Scroll Lock -ss.input.port8.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 8, Keyboard (JP): Semicolon ; -ss.input.port8.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 8, Keyboard (JP): Slash / -ss.input.port8.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 8, Keyboard (JP): Space -ss.input.port8.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 8, Keyboard (JP): T -ss.input.port8.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 8, Keyboard (JP): Tab -ss.input.port8.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 8, Keyboard (JP): U -ss.input.port8.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 8, Keyboard (JP): Up -ss.input.port8.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 8, Keyboard (JP): V -ss.input.port8.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 8, Keyboard (JP): W -ss.input.port8.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 8, Keyboard (JP): X -ss.input.port8.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 8, Keyboard (JP): Y -ss.input.port8.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 8, Keyboard (JP): Yen ¥ -ss.input.port8.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 8, Keyboard (JP): Z -ss.input.port8.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 8, Keyboard (US): 0(Zero) -ss.input.port8.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 8, Keyboard (US): 1(One) -ss.input.port8.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 8, Keyboard (US): 2 -ss.input.port8.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 8, Keyboard (US): 3 -ss.input.port8.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 8, Keyboard (US): 4 -ss.input.port8.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 8, Keyboard (US): 5 -ss.input.port8.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 8, Keyboard (US): 6 -ss.input.port8.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 8, Keyboard (US): 7 -ss.input.port8.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 8, Keyboard (US): 8 -ss.input.port8.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 8, Keyboard (US): 9 -ss.input.port8.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 8, Keyboard (US): A -ss.input.port8.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 8, Keyboard (US): B -ss.input.port8.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 8, Keyboard (US): Backslash \ -ss.input.port8.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 8, Keyboard (US): Backspace -ss.input.port8.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 8, Keyboard (US): C -ss.input.port8.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 8, Keyboard (US): Caps Lock -ss.input.port8.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 8, Keyboard (US): Comma , -ss.input.port8.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 8, Keyboard (US): D -ss.input.port8.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 8, Keyboard (US): Delete -ss.input.port8.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 8, Keyboard (US): Down -ss.input.port8.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 8, Keyboard (US): E -ss.input.port8.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 8, Keyboard (US): End -ss.input.port8.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 8, Keyboard (US): Enter -ss.input.port8.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 8, Keyboard (US): Equals = -ss.input.port8.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 8, Keyboard (US): Escape -ss.input.port8.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 8, Keyboard (US): F -ss.input.port8.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 8, Keyboard (US): F1 -ss.input.port8.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 8, Keyboard (US): F10 -ss.input.port8.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 8, Keyboard (US): F11 -ss.input.port8.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 8, Keyboard (US): F12 -ss.input.port8.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 8, Keyboard (US): F2 -ss.input.port8.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 8, Keyboard (US): F3 -ss.input.port8.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 8, Keyboard (US): F4 -ss.input.port8.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 8, Keyboard (US): F5 -ss.input.port8.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 8, Keyboard (US): F6 -ss.input.port8.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 8, Keyboard (US): F7 -ss.input.port8.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 8, Keyboard (US): F8 -ss.input.port8.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 8, Keyboard (US): F9 -ss.input.port8.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 8, Keyboard (US): G -ss.input.port8.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 8, Keyboard (US): Grave ` -ss.input.port8.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 8, Keyboard (US): H -ss.input.port8.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 8, Keyboard (US): Home -ss.input.port8.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 8, Keyboard (US): I -ss.input.port8.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 8, Keyboard (US): Insert -ss.input.port8.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 8, Keyboard (US): J -ss.input.port8.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 8, Keyboard (US): K -ss.input.port8.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 8, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port8.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 8, Keyboard (US): Keypad Center/5 -ss.input.port8.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 8, Keyboard (US): Keypad Delete -ss.input.port8.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 8, Keyboard (US): Keypad Down/2 -ss.input.port8.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 8, Keyboard (US): Keypad End/1 -ss.input.port8.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 8, Keyboard (US): Keypad Enter -ss.input.port8.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 8, Keyboard (US): Keypad Home/7 -ss.input.port8.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 8, Keyboard (US): Keypad Insert/0 -ss.input.port8.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 8, Keyboard (US): Keypad Left/4 -ss.input.port8.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 8, Keyboard (US): Keypad Minus -ss.input.port8.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 8, Keyboard (US): Keypad Pagedown/3 -ss.input.port8.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 8, Keyboard (US): Keypad Pageup/9 -ss.input.port8.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 8, Keyboard (US): Keypad Plus -ss.input.port8.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 8, Keyboard (US): Keypad Right/6 -ss.input.port8.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 8, Keyboard (US): Keypad Slash(Divide) -ss.input.port8.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 8, Keyboard (US): Keypad Up/8 -ss.input.port8.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 8, Keyboard (US): L -ss.input.port8.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 8, Keyboard (US): Left Alt -ss.input.port8.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 8, Keyboard (US): Left Ctrl -ss.input.port8.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 8, Keyboard (US): Cursor Left -ss.input.port8.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 8, Keyboard (US): Left Bracket [ -ss.input.port8.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 8, Keyboard (US): Left Shift -ss.input.port8.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 8, Keyboard (US): M -ss.input.port8.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 8, Keyboard (US): Minus - -ss.input.port8.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 8, Keyboard (US): N -ss.input.port8.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 8, Keyboard (US): Num Lock -ss.input.port8.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 8, Keyboard (US): O -ss.input.port8.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 8, Keyboard (US): P -ss.input.port8.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 8, Keyboard (US): Page Down -ss.input.port8.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 8, Keyboard (US): Page Up -ss.input.port8.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 8, Keyboard (US): Pause -ss.input.port8.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 8, Keyboard (US): Period . -ss.input.port8.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 8, Keyboard (US): Print Screen -ss.input.port8.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 8, Keyboard (US): Q -ss.input.port8.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 8, Keyboard (US): Quote ' -ss.input.port8.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 8, Keyboard (US): R -ss.input.port8.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 8, Keyboard (US): Right Alt -ss.input.port8.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 8, Keyboard (US): Right Ctrl -ss.input.port8.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 8, Keyboard (US): Right -ss.input.port8.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 8, Keyboard (US): Right Bracket ] -ss.input.port8.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 8, Keyboard (US): Right Shift -ss.input.port8.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 8, Keyboard (US): S -ss.input.port8.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 8, Keyboard (US): Scroll Lock -ss.input.port8.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 8, Keyboard (US): Semicolon ; -ss.input.port8.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 8, Keyboard (US): Slash / -ss.input.port8.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 8, Keyboard (US): Space -ss.input.port8.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 8, Keyboard (US): T -ss.input.port8.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 8, Keyboard (US): Tab -ss.input.port8.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 8, Keyboard (US): U -ss.input.port8.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 8, Keyboard (US): Up -ss.input.port8.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 8, Keyboard (US): V -ss.input.port8.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 8, Keyboard (US): W -ss.input.port8.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 8, Keyboard (US): X -ss.input.port8.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 8, Keyboard (US): Y -ss.input.port8.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 8, Keyboard (US): Z -ss.input.port8.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 8, Mission Stick: A (Stick Trigger) -ss.input.port8.mission.a - -;ss, Virtual Port 8, Mission Stick: A AF -ss.input.port8.mission.afa - -;Default position for switch "A AF". -ss.input.port8.mission.afa.defpos off - -;ss, Virtual Port 8, Mission Stick: B AF -ss.input.port8.mission.afb - -;Default position for switch "B AF". -ss.input.port8.mission.afb.defpos off - -;ss, Virtual Port 8, Mission Stick: C AF -ss.input.port8.mission.afc - -;Default position for switch "C AF". -ss.input.port8.mission.afc.defpos off - -;ss, Virtual Port 8, Mission Stick: L AF -ss.input.port8.mission.afl - -;Default position for switch "L AF". -ss.input.port8.mission.afl.defpos off - -;ss, Virtual Port 8, Mission Stick: R AF -ss.input.port8.mission.afr - -;Default position for switch "R AF". -ss.input.port8.mission.afr.defpos off - -;ss, Virtual Port 8, Mission Stick: AF Speed -ss.input.port8.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port8.mission.afspeed.defpos 1 - -;ss, Virtual Port 8, Mission Stick: X AF -ss.input.port8.mission.afx - -;Default position for switch "X AF". -ss.input.port8.mission.afx.defpos off - -;ss, Virtual Port 8, Mission Stick: Y AF -ss.input.port8.mission.afy - -;Default position for switch "Y AF". -ss.input.port8.mission.afy.defpos off - -;ss, Virtual Port 8, Mission Stick: Z AF -ss.input.port8.mission.afz - -;Default position for switch "Z AF". -ss.input.port8.mission.afz.defpos off - -;ss, Virtual Port 8, Mission Stick: B (Stick Left Button) -ss.input.port8.mission.b - -;ss, Virtual Port 8, Mission Stick: C (Stick Right Button) -ss.input.port8.mission.c - -;ss, Virtual Port 8, Mission Stick: L -ss.input.port8.mission.l - -;ss, Virtual Port 8, Mission Stick: R -ss.input.port8.mission.r - -;ss, Virtual Port 8, Mission Stick: START -ss.input.port8.mission.start - -;ss, Virtual Port 8, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port8.mission.stick_back - -;ss, Virtual Port 8, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port8.mission.stick_fore - -;ss, Virtual Port 8, Mission Stick: Stick LEFT ← (Analog) -ss.input.port8.mission.stick_left - -;ss, Virtual Port 8, Mission Stick: Stick RIGHT → (Analog) -ss.input.port8.mission.stick_right - -;ss, Virtual Port 8, Mission Stick: Throttle Down (Analog) -ss.input.port8.mission.throttle_down - -;ss, Virtual Port 8, Mission Stick: Throttle Up (Analog) -ss.input.port8.mission.throttle_up - -;ss, Virtual Port 8, Mission Stick: X -ss.input.port8.mission.x - -;ss, Virtual Port 8, Mission Stick: Y -ss.input.port8.mission.y - -;ss, Virtual Port 8, Mission Stick: Z -ss.input.port8.mission.z - -;ss, Virtual Port 8, Mouse: Left Button -ss.input.port8.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 8, Mouse: Middle Button -ss.input.port8.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 8, Mouse: Motion Down -ss.input.port8.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 8, Mouse: Motion Left -ss.input.port8.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 8, Mouse: Motion Right -ss.input.port8.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 8, Mouse: Motion Up -ss.input.port8.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 8, Mouse: Right Button -ss.input.port8.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 8, Mouse: Start -ss.input.port8.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 8, Steering Wheel: A (R Group) -ss.input.port8.wheel.a - -;ss, Virtual Port 8, Steering Wheel: Analog LEFT ← -ss.input.port8.wheel.analog_left - -;ss, Virtual Port 8, Steering Wheel: Analog RIGHT → -ss.input.port8.wheel.analog_right - -;ss, Virtual Port 8, Steering Wheel: B (R Group) -ss.input.port8.wheel.b - -;ss, Virtual Port 8, Steering Wheel: C (R Group) -ss.input.port8.wheel.c - -;ss, Virtual Port 8, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port8.wheel.down - -;ss, Virtual Port 8, Steering Wheel: START -ss.input.port8.wheel.start - -;ss, Virtual Port 8, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port8.wheel.up - -;ss, Virtual Port 8, Steering Wheel: X (L Group) -ss.input.port8.wheel.x - -;ss, Virtual Port 8, Steering Wheel: Y (L Group) -ss.input.port8.wheel.y - -;ss, Virtual Port 8, Steering Wheel: Z (L Group) -ss.input.port8.wheel.z - -;Input device for Virtual Port 9 -ss.input.port9 gamepad - -;ss, Virtual Port 9, 3D Control Pad: A -ss.input.port9.3dpad.a - -;ss, Virtual Port 9, 3D Control Pad: Analog DOWN ↓ -ss.input.port9.3dpad.analog_down - -;ss, Virtual Port 9, 3D Control Pad: Analog LEFT ← -ss.input.port9.3dpad.analog_left - -;ss, Virtual Port 9, 3D Control Pad: Analog RIGHT → -ss.input.port9.3dpad.analog_right - -;ss, Virtual Port 9, 3D Control Pad: Analog UP ↑ -ss.input.port9.3dpad.analog_up - -;ss, Virtual Port 9, 3D Control Pad: B -ss.input.port9.3dpad.b - -;ss, Virtual Port 9, 3D Control Pad: C -ss.input.port9.3dpad.c - -;ss, Virtual Port 9, 3D Control Pad: D-Pad DOWN ↓ -ss.input.port9.3dpad.down - -;ss, Virtual Port 9, 3D Control Pad: D-Pad LEFT ← -ss.input.port9.3dpad.left - -;ss, Virtual Port 9, 3D Control Pad: Left Shoulder (Analog) -ss.input.port9.3dpad.ls - -;ss, Virtual Port 9, 3D Control Pad: Mode -ss.input.port9.3dpad.mode - -;Default position for switch "Mode". -ss.input.port9.3dpad.mode.defpos digital - -;ss, Virtual Port 9, 3D Control Pad: D-Pad RIGHT → -ss.input.port9.3dpad.right - -;ss, Virtual Port 9, 3D Control Pad: Right Shoulder (Analog) -ss.input.port9.3dpad.rs - -;ss, Virtual Port 9, 3D Control Pad: START -ss.input.port9.3dpad.start - -;ss, Virtual Port 9, 3D Control Pad: D-Pad UP ↑ -ss.input.port9.3dpad.up - -;ss, Virtual Port 9, 3D Control Pad: X -ss.input.port9.3dpad.x - -;ss, Virtual Port 9, 3D Control Pad: Y -ss.input.port9.3dpad.y - -;ss, Virtual Port 9, 3D Control Pad: Z -ss.input.port9.3dpad.z - -;ss, Virtual Port 9, Dual Mission: A (R Stick Trigger) -ss.input.port9.dmission.a - -;ss, Virtual Port 9, Dual Mission: A AF -ss.input.port9.dmission.afa - -;Default position for switch "A AF". -ss.input.port9.dmission.afa.defpos off - -;ss, Virtual Port 9, Dual Mission: B AF -ss.input.port9.dmission.afb - -;Default position for switch "B AF". -ss.input.port9.dmission.afb.defpos off - -;ss, Virtual Port 9, Dual Mission: C AF -ss.input.port9.dmission.afc - -;Default position for switch "C AF". -ss.input.port9.dmission.afc.defpos off - -;ss, Virtual Port 9, Dual Mission: L AF -ss.input.port9.dmission.afl - -;Default position for switch "L AF". -ss.input.port9.dmission.afl.defpos off - -;ss, Virtual Port 9, Dual Mission: R AF -ss.input.port9.dmission.afr - -;Default position for switch "R AF". -ss.input.port9.dmission.afr.defpos off - -;ss, Virtual Port 9, Dual Mission: Autofire Speed -ss.input.port9.dmission.afspeed - -;Default position for switch "Autofire Speed". -ss.input.port9.dmission.afspeed.defpos 1 - -;ss, Virtual Port 9, Dual Mission: X AF -ss.input.port9.dmission.afx - -;Default position for switch "X AF". -ss.input.port9.dmission.afx.defpos off - -;ss, Virtual Port 9, Dual Mission: Y AF -ss.input.port9.dmission.afy - -;Default position for switch "Y AF". -ss.input.port9.dmission.afy.defpos off - -;ss, Virtual Port 9, Dual Mission: Z AF -ss.input.port9.dmission.afz - -;Default position for switch "Z AF". -ss.input.port9.dmission.afz.defpos off - -;ss, Virtual Port 9, Dual Mission: B (R Stick Left Button) -ss.input.port9.dmission.b - -;ss, Virtual Port 9, Dual Mission: C (R Stick Right Button) -ss.input.port9.dmission.c - -;ss, Virtual Port 9, Dual Mission: L -ss.input.port9.dmission.l - -;ss, Virtual Port 9, Dual Mission: L Stick BACK ↓ (Analog) -ss.input.port9.dmission.lstick_back - -;ss, Virtual Port 9, Dual Mission: L Stick FORE ↑ (Analog) -ss.input.port9.dmission.lstick_fore - -;ss, Virtual Port 9, Dual Mission: L Stick LEFT ← (Analog) -ss.input.port9.dmission.lstick_left - -;ss, Virtual Port 9, Dual Mission: L Stick RIGHT → (Analog) -ss.input.port9.dmission.lstick_right - -;ss, Virtual Port 9, Dual Mission: L Throttle Down (Analog) -ss.input.port9.dmission.lthrottle_down - -;ss, Virtual Port 9, Dual Mission: L Throttle Up (Analog) -ss.input.port9.dmission.lthrottle_up - -;ss, Virtual Port 9, Dual Mission: R -ss.input.port9.dmission.r - -;ss, Virtual Port 9, Dual Mission: R Stick BACK ↓ (Analog) -ss.input.port9.dmission.rstick_back - -;ss, Virtual Port 9, Dual Mission: R Stick FORE ↑ (Analog) -ss.input.port9.dmission.rstick_fore - -;ss, Virtual Port 9, Dual Mission: R Stick LEFT ← (Analog) -ss.input.port9.dmission.rstick_left - -;ss, Virtual Port 9, Dual Mission: R Stick RIGHT → (Analog) -ss.input.port9.dmission.rstick_right - -;ss, Virtual Port 9, Dual Mission: R Throttle Down (Analog) -ss.input.port9.dmission.rthrottle_down - -;ss, Virtual Port 9, Dual Mission: R Throttle Up (Analog) -ss.input.port9.dmission.rthrottle_up - -;ss, Virtual Port 9, Dual Mission: START -ss.input.port9.dmission.start - -;ss, Virtual Port 9, Dual Mission: X (L Stick Trigger) -ss.input.port9.dmission.x - -;ss, Virtual Port 9, Dual Mission: Y (L Stick Left Button) -ss.input.port9.dmission.y - -;ss, Virtual Port 9, Dual Mission: Z (L Stick Right Button) -ss.input.port9.dmission.z - -;ss, Virtual Port 9, Digital Gamepad: A -ss.input.port9.gamepad.a - -;ss, Virtual Port 9, Digital Gamepad: B -ss.input.port9.gamepad.b - -;ss, Virtual Port 9, Digital Gamepad: C -ss.input.port9.gamepad.c - -;ss, Virtual Port 9, Digital Gamepad: DOWN ↓ -ss.input.port9.gamepad.down - -;ss, Virtual Port 9, Digital Gamepad: LEFT ← -ss.input.port9.gamepad.left - -;ss, Virtual Port 9, Digital Gamepad: Left Shoulder -ss.input.port9.gamepad.ls - -;ss, Virtual Port 9, Digital Gamepad: RIGHT → -ss.input.port9.gamepad.right - -;ss, Virtual Port 9, Digital Gamepad: Right Shoulder -ss.input.port9.gamepad.rs - -;ss, Virtual Port 9, Digital Gamepad: START -ss.input.port9.gamepad.start - -;ss, Virtual Port 9, Digital Gamepad: UP ↑ -ss.input.port9.gamepad.up - -;ss, Virtual Port 9, Digital Gamepad: X -ss.input.port9.gamepad.x - -;ss, Virtual Port 9, Digital Gamepad: Y -ss.input.port9.gamepad.y - -;ss, Virtual Port 9, Digital Gamepad: Z -ss.input.port9.gamepad.z - -;ss, Virtual Port 9, Light Gun: Offscreen Shot(Simulated) -ss.input.port9.gun.offscreen_shot mouse 0x0 button_right - -;ss, Virtual Port 9, Light Gun: START -ss.input.port9.gun.start mouse 0x0 button_middle - -;ss, Virtual Port 9, Light Gun: Trigger -ss.input.port9.gun.trigger mouse 0x0 button_left - -;ss, Virtual Port 9, Light Gun: X Axis -ss.input.port9.gun.x_axis mouse 0x0 cursor_x-+ - -;ss, Virtual Port 9, Light Gun: Y Axis -ss.input.port9.gun.y_axis mouse 0x0 cursor_y-+ - -;Crosshairs color for lightgun on virtual port 9. -ss.input.port9.gun_chairs 0xFF80FF - -;ss, Virtual Port 9, Keyboard (JP): 0(Zero) -ss.input.port9.jpkeyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 9, Keyboard (JP): 1(One) -ss.input.port9.jpkeyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 9, Keyboard (JP): 2 -ss.input.port9.jpkeyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 9, Keyboard (JP): 3 -ss.input.port9.jpkeyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 9, Keyboard (JP): 4 -ss.input.port9.jpkeyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 9, Keyboard (JP): 5 -ss.input.port9.jpkeyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 9, Keyboard (JP): 6 -ss.input.port9.jpkeyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 9, Keyboard (JP): 7 -ss.input.port9.jpkeyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 9, Keyboard (JP): 8 -ss.input.port9.jpkeyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 9, Keyboard (JP): 9 -ss.input.port9.jpkeyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 9, Keyboard (JP): A -ss.input.port9.jpkeyboard.a keyboard 0x0 4 - -;ss, Virtual Port 9, Keyboard (JP): At @ -ss.input.port9.jpkeyboard.at keyboard 0x0 47 - -;ss, Virtual Port 9, Keyboard (JP): B -ss.input.port9.jpkeyboard.b keyboard 0x0 5 - -;ss, Virtual Port 9, Keyboard (JP): Backslash \ -ss.input.port9.jpkeyboard.backslash keyboard 0x0 135 - -;ss, Virtual Port 9, Keyboard (JP): Backspace -ss.input.port9.jpkeyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 9, Keyboard (JP): C -ss.input.port9.jpkeyboard.c keyboard 0x0 6 - -;ss, Virtual Port 9, Keyboard (JP): Caps Lock/英数 -ss.input.port9.jpkeyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 9, Keyboard (JP): Circumflex ^ -ss.input.port9.jpkeyboard.circumflex keyboard 0x0 46 - -;ss, Virtual Port 9, Keyboard (JP): Colon : -ss.input.port9.jpkeyboard.colon keyboard 0x0 52 - -;ss, Virtual Port 9, Keyboard (JP): Comma , -ss.input.port9.jpkeyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 9, Keyboard (JP): 変換 -ss.input.port9.jpkeyboard.conv keyboard 0x0 138 - -;ss, Virtual Port 9, Keyboard (JP): D -ss.input.port9.jpkeyboard.d keyboard 0x0 7 - -;ss, Virtual Port 9, Keyboard (JP): Delete -ss.input.port9.jpkeyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 9, Keyboard (JP): Down -ss.input.port9.jpkeyboard.down keyboard 0x0 81 - -;ss, Virtual Port 9, Keyboard (JP): E -ss.input.port9.jpkeyboard.e keyboard 0x0 8 - -;ss, Virtual Port 9, Keyboard (JP): End -ss.input.port9.jpkeyboard.end keyboard 0x0 77 - -;ss, Virtual Port 9, Keyboard (JP): Enter -ss.input.port9.jpkeyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 9, Keyboard (JP): Escape -ss.input.port9.jpkeyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 9, Keyboard (JP): F -ss.input.port9.jpkeyboard.f keyboard 0x0 9 - -;ss, Virtual Port 9, Keyboard (JP): F1 -ss.input.port9.jpkeyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 9, Keyboard (JP): F10 -ss.input.port9.jpkeyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 9, Keyboard (JP): F11 -ss.input.port9.jpkeyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 9, Keyboard (JP): F12 -ss.input.port9.jpkeyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 9, Keyboard (JP): F2 -ss.input.port9.jpkeyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 9, Keyboard (JP): F3 -ss.input.port9.jpkeyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 9, Keyboard (JP): F4 -ss.input.port9.jpkeyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 9, Keyboard (JP): F5 -ss.input.port9.jpkeyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 9, Keyboard (JP): F6 -ss.input.port9.jpkeyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 9, Keyboard (JP): F7 -ss.input.port9.jpkeyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 9, Keyboard (JP): F8 -ss.input.port9.jpkeyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 9, Keyboard (JP): F9 -ss.input.port9.jpkeyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 9, Keyboard (JP): G -ss.input.port9.jpkeyboard.g keyboard 0x0 10 - -;ss, Virtual Port 9, Keyboard (JP): H -ss.input.port9.jpkeyboard.h keyboard 0x0 11 - -;ss, Virtual Port 9, Keyboard (JP): ひらがな/カタカナ/ローマ字 -ss.input.port9.jpkeyboard.hkr keyboard 0x0 136 - -;ss, Virtual Port 9, Keyboard (JP): Home -ss.input.port9.jpkeyboard.home keyboard 0x0 74 - -;ss, Virtual Port 9, Keyboard (JP): 半角/全角/漢字 -ss.input.port9.jpkeyboard.hwfw keyboard 0x0 53 - -;ss, Virtual Port 9, Keyboard (JP): I -ss.input.port9.jpkeyboard.i keyboard 0x0 12 - -;ss, Virtual Port 9, Keyboard (JP): Insert -ss.input.port9.jpkeyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 9, Keyboard (JP): J -ss.input.port9.jpkeyboard.j keyboard 0x0 13 - -;ss, Virtual Port 9, Keyboard (JP): K -ss.input.port9.jpkeyboard.k keyboard 0x0 14 - -;ss, Virtual Port 9, Keyboard (JP): L -ss.input.port9.jpkeyboard.l keyboard 0x0 15 - -;ss, Virtual Port 9, Keyboard (JP): Left Alt -ss.input.port9.jpkeyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 9, Keyboard (JP): Left Ctrl -ss.input.port9.jpkeyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 9, Keyboard (JP): Cursor Left -ss.input.port9.jpkeyboard.left keyboard 0x0 80 - -;ss, Virtual Port 9, Keyboard (JP): Left Bracket [ -ss.input.port9.jpkeyboard.leftbracket keyboard 0x0 48 - -;ss, Virtual Port 9, Keyboard (JP): Left Shift -ss.input.port9.jpkeyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 9, Keyboard (JP): M -ss.input.port9.jpkeyboard.m keyboard 0x0 16 - -;ss, Virtual Port 9, Keyboard (JP): Minus - -ss.input.port9.jpkeyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 9, Keyboard (JP): N -ss.input.port9.jpkeyboard.n keyboard 0x0 17 - -;ss, Virtual Port 9, Keyboard (JP): 無変換 -ss.input.port9.jpkeyboard.nonconv keyboard 0x0 139 - -;ss, Virtual Port 9, Keyboard (JP): O -ss.input.port9.jpkeyboard.o keyboard 0x0 18 - -;ss, Virtual Port 9, Keyboard (JP): P -ss.input.port9.jpkeyboard.p keyboard 0x0 19 - -;ss, Virtual Port 9, Keyboard (JP): Page Down -ss.input.port9.jpkeyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 9, Keyboard (JP): Page Up -ss.input.port9.jpkeyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 9, Keyboard (JP): Pause -ss.input.port9.jpkeyboard.pause keyboard 0x0 72 || keyboard 0x0 83 - -;ss, Virtual Port 9, Keyboard (JP): Period . -ss.input.port9.jpkeyboard.period keyboard 0x0 55 - -;ss, Virtual Port 9, Keyboard (JP): Print Screen -ss.input.port9.jpkeyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 9, Keyboard (JP): Q -ss.input.port9.jpkeyboard.q keyboard 0x0 20 - -;ss, Virtual Port 9, Keyboard (JP): R -ss.input.port9.jpkeyboard.r keyboard 0x0 21 - -;ss, Virtual Port 9, Keyboard (JP): Right Alt -ss.input.port9.jpkeyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 9, Keyboard (JP): Right Ctrl -ss.input.port9.jpkeyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 9, Keyboard (JP): Right -ss.input.port9.jpkeyboard.right keyboard 0x0 79 - -;ss, Virtual Port 9, Keyboard (JP): Right Bracket ] -ss.input.port9.jpkeyboard.rightbracket keyboard 0x0 49 - -;ss, Virtual Port 9, Keyboard (JP): Right Shift -ss.input.port9.jpkeyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 9, Keyboard (JP): S -ss.input.port9.jpkeyboard.s keyboard 0x0 22 - -;ss, Virtual Port 9, Keyboard (JP): Scroll Lock -ss.input.port9.jpkeyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 9, Keyboard (JP): Semicolon ; -ss.input.port9.jpkeyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 9, Keyboard (JP): Slash / -ss.input.port9.jpkeyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 9, Keyboard (JP): Space -ss.input.port9.jpkeyboard.space keyboard 0x0 44 - -;ss, Virtual Port 9, Keyboard (JP): T -ss.input.port9.jpkeyboard.t keyboard 0x0 23 - -;ss, Virtual Port 9, Keyboard (JP): Tab -ss.input.port9.jpkeyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 9, Keyboard (JP): U -ss.input.port9.jpkeyboard.u keyboard 0x0 24 - -;ss, Virtual Port 9, Keyboard (JP): Up -ss.input.port9.jpkeyboard.up keyboard 0x0 82 - -;ss, Virtual Port 9, Keyboard (JP): V -ss.input.port9.jpkeyboard.v keyboard 0x0 25 - -;ss, Virtual Port 9, Keyboard (JP): W -ss.input.port9.jpkeyboard.w keyboard 0x0 26 - -;ss, Virtual Port 9, Keyboard (JP): X -ss.input.port9.jpkeyboard.x keyboard 0x0 27 - -;ss, Virtual Port 9, Keyboard (JP): Y -ss.input.port9.jpkeyboard.y keyboard 0x0 28 - -;ss, Virtual Port 9, Keyboard (JP): Yen ¥ -ss.input.port9.jpkeyboard.yen keyboard 0x0 137 - -;ss, Virtual Port 9, Keyboard (JP): Z -ss.input.port9.jpkeyboard.z keyboard 0x0 29 - -;ss, Virtual Port 9, Keyboard (US): 0(Zero) -ss.input.port9.keyboard.0 keyboard 0x0 39 - -;ss, Virtual Port 9, Keyboard (US): 1(One) -ss.input.port9.keyboard.1 keyboard 0x0 30 - -;ss, Virtual Port 9, Keyboard (US): 2 -ss.input.port9.keyboard.2 keyboard 0x0 31 - -;ss, Virtual Port 9, Keyboard (US): 3 -ss.input.port9.keyboard.3 keyboard 0x0 32 - -;ss, Virtual Port 9, Keyboard (US): 4 -ss.input.port9.keyboard.4 keyboard 0x0 33 - -;ss, Virtual Port 9, Keyboard (US): 5 -ss.input.port9.keyboard.5 keyboard 0x0 34 - -;ss, Virtual Port 9, Keyboard (US): 6 -ss.input.port9.keyboard.6 keyboard 0x0 35 - -;ss, Virtual Port 9, Keyboard (US): 7 -ss.input.port9.keyboard.7 keyboard 0x0 36 - -;ss, Virtual Port 9, Keyboard (US): 8 -ss.input.port9.keyboard.8 keyboard 0x0 37 - -;ss, Virtual Port 9, Keyboard (US): 9 -ss.input.port9.keyboard.9 keyboard 0x0 38 - -;ss, Virtual Port 9, Keyboard (US): A -ss.input.port9.keyboard.a keyboard 0x0 4 - -;ss, Virtual Port 9, Keyboard (US): B -ss.input.port9.keyboard.b keyboard 0x0 5 - -;ss, Virtual Port 9, Keyboard (US): Backslash \ -ss.input.port9.keyboard.backslash keyboard 0x0 49 || keyboard 0x0 135 - -;ss, Virtual Port 9, Keyboard (US): Backspace -ss.input.port9.keyboard.backspace keyboard 0x0 42 - -;ss, Virtual Port 9, Keyboard (US): C -ss.input.port9.keyboard.c keyboard 0x0 6 - -;ss, Virtual Port 9, Keyboard (US): Caps Lock -ss.input.port9.keyboard.capslock keyboard 0x0 57 - -;ss, Virtual Port 9, Keyboard (US): Comma , -ss.input.port9.keyboard.comma keyboard 0x0 54 - -;ss, Virtual Port 9, Keyboard (US): D -ss.input.port9.keyboard.d keyboard 0x0 7 - -;ss, Virtual Port 9, Keyboard (US): Delete -ss.input.port9.keyboard.delete keyboard 0x0 76 - -;ss, Virtual Port 9, Keyboard (US): Down -ss.input.port9.keyboard.down keyboard 0x0 81 - -;ss, Virtual Port 9, Keyboard (US): E -ss.input.port9.keyboard.e keyboard 0x0 8 - -;ss, Virtual Port 9, Keyboard (US): End -ss.input.port9.keyboard.end keyboard 0x0 77 - -;ss, Virtual Port 9, Keyboard (US): Enter -ss.input.port9.keyboard.enter keyboard 0x0 40 - -;ss, Virtual Port 9, Keyboard (US): Equals = -ss.input.port9.keyboard.equals keyboard 0x0 46 - -;ss, Virtual Port 9, Keyboard (US): Escape -ss.input.port9.keyboard.esc keyboard 0x0 41 - -;ss, Virtual Port 9, Keyboard (US): F -ss.input.port9.keyboard.f keyboard 0x0 9 - -;ss, Virtual Port 9, Keyboard (US): F1 -ss.input.port9.keyboard.f1 keyboard 0x0 58 - -;ss, Virtual Port 9, Keyboard (US): F10 -ss.input.port9.keyboard.f10 keyboard 0x0 67 - -;ss, Virtual Port 9, Keyboard (US): F11 -ss.input.port9.keyboard.f11 keyboard 0x0 68 - -;ss, Virtual Port 9, Keyboard (US): F12 -ss.input.port9.keyboard.f12 keyboard 0x0 69 - -;ss, Virtual Port 9, Keyboard (US): F2 -ss.input.port9.keyboard.f2 keyboard 0x0 59 - -;ss, Virtual Port 9, Keyboard (US): F3 -ss.input.port9.keyboard.f3 keyboard 0x0 60 - -;ss, Virtual Port 9, Keyboard (US): F4 -ss.input.port9.keyboard.f4 keyboard 0x0 61 - -;ss, Virtual Port 9, Keyboard (US): F5 -ss.input.port9.keyboard.f5 keyboard 0x0 62 - -;ss, Virtual Port 9, Keyboard (US): F6 -ss.input.port9.keyboard.f6 keyboard 0x0 63 - -;ss, Virtual Port 9, Keyboard (US): F7 -ss.input.port9.keyboard.f7 keyboard 0x0 64 - -;ss, Virtual Port 9, Keyboard (US): F8 -ss.input.port9.keyboard.f8 keyboard 0x0 65 - -;ss, Virtual Port 9, Keyboard (US): F9 -ss.input.port9.keyboard.f9 keyboard 0x0 66 - -;ss, Virtual Port 9, Keyboard (US): G -ss.input.port9.keyboard.g keyboard 0x0 10 - -;ss, Virtual Port 9, Keyboard (US): Grave ` -ss.input.port9.keyboard.grave keyboard 0x0 53 - -;ss, Virtual Port 9, Keyboard (US): H -ss.input.port9.keyboard.h keyboard 0x0 11 - -;ss, Virtual Port 9, Keyboard (US): Home -ss.input.port9.keyboard.home keyboard 0x0 74 - -;ss, Virtual Port 9, Keyboard (US): I -ss.input.port9.keyboard.i keyboard 0x0 12 - -;ss, Virtual Port 9, Keyboard (US): Insert -ss.input.port9.keyboard.insert keyboard 0x0 73 - -;ss, Virtual Port 9, Keyboard (US): J -ss.input.port9.keyboard.j keyboard 0x0 13 - -;ss, Virtual Port 9, Keyboard (US): K -ss.input.port9.keyboard.k keyboard 0x0 14 - -;ss, Virtual Port 9, Keyboard (US): Keypad Asterisk(Multiply) -ss.input.port9.keyboard.kp_asterisk keyboard 0x0 85 - -;ss, Virtual Port 9, Keyboard (US): Keypad Center/5 -ss.input.port9.keyboard.kp_center keyboard 0x0 93 - -;ss, Virtual Port 9, Keyboard (US): Keypad Delete -ss.input.port9.keyboard.kp_delete keyboard 0x0 99 - -;ss, Virtual Port 9, Keyboard (US): Keypad Down/2 -ss.input.port9.keyboard.kp_down keyboard 0x0 90 - -;ss, Virtual Port 9, Keyboard (US): Keypad End/1 -ss.input.port9.keyboard.kp_end keyboard 0x0 89 - -;ss, Virtual Port 9, Keyboard (US): Keypad Enter -ss.input.port9.keyboard.kp_enter keyboard 0x0 88 - -;ss, Virtual Port 9, Keyboard (US): Keypad Home/7 -ss.input.port9.keyboard.kp_home keyboard 0x0 95 - -;ss, Virtual Port 9, Keyboard (US): Keypad Insert/0 -ss.input.port9.keyboard.kp_insert keyboard 0x0 98 - -;ss, Virtual Port 9, Keyboard (US): Keypad Left/4 -ss.input.port9.keyboard.kp_left keyboard 0x0 92 - -;ss, Virtual Port 9, Keyboard (US): Keypad Minus -ss.input.port9.keyboard.kp_minus keyboard 0x0 86 - -;ss, Virtual Port 9, Keyboard (US): Keypad Pagedown/3 -ss.input.port9.keyboard.kp_pagedown keyboard 0x0 91 - -;ss, Virtual Port 9, Keyboard (US): Keypad Pageup/9 -ss.input.port9.keyboard.kp_pageup keyboard 0x0 97 - -;ss, Virtual Port 9, Keyboard (US): Keypad Plus -ss.input.port9.keyboard.kp_plus keyboard 0x0 87 - -;ss, Virtual Port 9, Keyboard (US): Keypad Right/6 -ss.input.port9.keyboard.kp_right keyboard 0x0 94 - -;ss, Virtual Port 9, Keyboard (US): Keypad Slash(Divide) -ss.input.port9.keyboard.kp_slash keyboard 0x0 84 - -;ss, Virtual Port 9, Keyboard (US): Keypad Up/8 -ss.input.port9.keyboard.kp_up keyboard 0x0 96 - -;ss, Virtual Port 9, Keyboard (US): L -ss.input.port9.keyboard.l keyboard 0x0 15 - -;ss, Virtual Port 9, Keyboard (US): Left Alt -ss.input.port9.keyboard.lalt keyboard 0x0 226 - -;ss, Virtual Port 9, Keyboard (US): Left Ctrl -ss.input.port9.keyboard.lctrl keyboard 0x0 224 - -;ss, Virtual Port 9, Keyboard (US): Cursor Left -ss.input.port9.keyboard.left keyboard 0x0 80 - -;ss, Virtual Port 9, Keyboard (US): Left Bracket [ -ss.input.port9.keyboard.leftbracket keyboard 0x0 47 - -;ss, Virtual Port 9, Keyboard (US): Left Shift -ss.input.port9.keyboard.lshift keyboard 0x0 225 - -;ss, Virtual Port 9, Keyboard (US): M -ss.input.port9.keyboard.m keyboard 0x0 16 - -;ss, Virtual Port 9, Keyboard (US): Minus - -ss.input.port9.keyboard.minus keyboard 0x0 45 - -;ss, Virtual Port 9, Keyboard (US): N -ss.input.port9.keyboard.n keyboard 0x0 17 - -;ss, Virtual Port 9, Keyboard (US): Num Lock -ss.input.port9.keyboard.numlock keyboard 0x0 83 - -;ss, Virtual Port 9, Keyboard (US): O -ss.input.port9.keyboard.o keyboard 0x0 18 - -;ss, Virtual Port 9, Keyboard (US): P -ss.input.port9.keyboard.p keyboard 0x0 19 - -;ss, Virtual Port 9, Keyboard (US): Page Down -ss.input.port9.keyboard.pagedown keyboard 0x0 78 - -;ss, Virtual Port 9, Keyboard (US): Page Up -ss.input.port9.keyboard.pageup keyboard 0x0 75 - -;ss, Virtual Port 9, Keyboard (US): Pause -ss.input.port9.keyboard.pause keyboard 0x0 72 - -;ss, Virtual Port 9, Keyboard (US): Period . -ss.input.port9.keyboard.period keyboard 0x0 55 - -;ss, Virtual Port 9, Keyboard (US): Print Screen -ss.input.port9.keyboard.printscreen keyboard 0x0 70 - -;ss, Virtual Port 9, Keyboard (US): Q -ss.input.port9.keyboard.q keyboard 0x0 20 - -;ss, Virtual Port 9, Keyboard (US): Quote ' -ss.input.port9.keyboard.quote keyboard 0x0 52 - -;ss, Virtual Port 9, Keyboard (US): R -ss.input.port9.keyboard.r keyboard 0x0 21 - -;ss, Virtual Port 9, Keyboard (US): Right Alt -ss.input.port9.keyboard.ralt keyboard 0x0 230 - -;ss, Virtual Port 9, Keyboard (US): Right Ctrl -ss.input.port9.keyboard.rctrl keyboard 0x0 228 - -;ss, Virtual Port 9, Keyboard (US): Right -ss.input.port9.keyboard.right keyboard 0x0 79 - -;ss, Virtual Port 9, Keyboard (US): Right Bracket ] -ss.input.port9.keyboard.rightbracket keyboard 0x0 48 - -;ss, Virtual Port 9, Keyboard (US): Right Shift -ss.input.port9.keyboard.rshift keyboard 0x0 229 - -;ss, Virtual Port 9, Keyboard (US): S -ss.input.port9.keyboard.s keyboard 0x0 22 - -;ss, Virtual Port 9, Keyboard (US): Scroll Lock -ss.input.port9.keyboard.scrolllock keyboard 0x0 71 - -;ss, Virtual Port 9, Keyboard (US): Semicolon ; -ss.input.port9.keyboard.semicolon keyboard 0x0 51 - -;ss, Virtual Port 9, Keyboard (US): Slash / -ss.input.port9.keyboard.slash keyboard 0x0 56 - -;ss, Virtual Port 9, Keyboard (US): Space -ss.input.port9.keyboard.space keyboard 0x0 44 - -;ss, Virtual Port 9, Keyboard (US): T -ss.input.port9.keyboard.t keyboard 0x0 23 - -;ss, Virtual Port 9, Keyboard (US): Tab -ss.input.port9.keyboard.tab keyboard 0x0 43 - -;ss, Virtual Port 9, Keyboard (US): U -ss.input.port9.keyboard.u keyboard 0x0 24 - -;ss, Virtual Port 9, Keyboard (US): Up -ss.input.port9.keyboard.up keyboard 0x0 82 - -;ss, Virtual Port 9, Keyboard (US): V -ss.input.port9.keyboard.v keyboard 0x0 25 - -;ss, Virtual Port 9, Keyboard (US): W -ss.input.port9.keyboard.w keyboard 0x0 26 - -;ss, Virtual Port 9, Keyboard (US): X -ss.input.port9.keyboard.x keyboard 0x0 27 - -;ss, Virtual Port 9, Keyboard (US): Y -ss.input.port9.keyboard.y keyboard 0x0 28 - -;ss, Virtual Port 9, Keyboard (US): Z -ss.input.port9.keyboard.z keyboard 0x0 29 - -;ss, Virtual Port 9, Mission Stick: A (Stick Trigger) -ss.input.port9.mission.a - -;ss, Virtual Port 9, Mission Stick: A AF -ss.input.port9.mission.afa - -;Default position for switch "A AF". -ss.input.port9.mission.afa.defpos off - -;ss, Virtual Port 9, Mission Stick: B AF -ss.input.port9.mission.afb - -;Default position for switch "B AF". -ss.input.port9.mission.afb.defpos off - -;ss, Virtual Port 9, Mission Stick: C AF -ss.input.port9.mission.afc - -;Default position for switch "C AF". -ss.input.port9.mission.afc.defpos off - -;ss, Virtual Port 9, Mission Stick: L AF -ss.input.port9.mission.afl - -;Default position for switch "L AF". -ss.input.port9.mission.afl.defpos off - -;ss, Virtual Port 9, Mission Stick: R AF -ss.input.port9.mission.afr - -;Default position for switch "R AF". -ss.input.port9.mission.afr.defpos off - -;ss, Virtual Port 9, Mission Stick: AF Speed -ss.input.port9.mission.afspeed - -;Default position for switch "AF Speed". -ss.input.port9.mission.afspeed.defpos 1 - -;ss, Virtual Port 9, Mission Stick: X AF -ss.input.port9.mission.afx - -;Default position for switch "X AF". -ss.input.port9.mission.afx.defpos off - -;ss, Virtual Port 9, Mission Stick: Y AF -ss.input.port9.mission.afy - -;Default position for switch "Y AF". -ss.input.port9.mission.afy.defpos off - -;ss, Virtual Port 9, Mission Stick: Z AF -ss.input.port9.mission.afz - -;Default position for switch "Z AF". -ss.input.port9.mission.afz.defpos off - -;ss, Virtual Port 9, Mission Stick: B (Stick Left Button) -ss.input.port9.mission.b - -;ss, Virtual Port 9, Mission Stick: C (Stick Right Button) -ss.input.port9.mission.c - -;ss, Virtual Port 9, Mission Stick: L -ss.input.port9.mission.l - -;ss, Virtual Port 9, Mission Stick: R -ss.input.port9.mission.r - -;ss, Virtual Port 9, Mission Stick: START -ss.input.port9.mission.start - -;ss, Virtual Port 9, Mission Stick: Stick BACK ↓ (Analog) -ss.input.port9.mission.stick_back - -;ss, Virtual Port 9, Mission Stick: Stick FORE ↑ (Analog) -ss.input.port9.mission.stick_fore - -;ss, Virtual Port 9, Mission Stick: Stick LEFT ← (Analog) -ss.input.port9.mission.stick_left - -;ss, Virtual Port 9, Mission Stick: Stick RIGHT → (Analog) -ss.input.port9.mission.stick_right - -;ss, Virtual Port 9, Mission Stick: Throttle Down (Analog) -ss.input.port9.mission.throttle_down - -;ss, Virtual Port 9, Mission Stick: Throttle Up (Analog) -ss.input.port9.mission.throttle_up - -;ss, Virtual Port 9, Mission Stick: X -ss.input.port9.mission.x - -;ss, Virtual Port 9, Mission Stick: Y -ss.input.port9.mission.y - -;ss, Virtual Port 9, Mission Stick: Z -ss.input.port9.mission.z - -;ss, Virtual Port 9, Mouse: Left Button -ss.input.port9.mouse.left mouse 0x0 button_left - -;ss, Virtual Port 9, Mouse: Middle Button -ss.input.port9.mouse.middle mouse 0x0 button_middle - -;ss, Virtual Port 9, Mouse: Motion Down -ss.input.port9.mouse.motion_down mouse 0x0 rel_y+ - -;ss, Virtual Port 9, Mouse: Motion Left -ss.input.port9.mouse.motion_left mouse 0x0 rel_x- - -;ss, Virtual Port 9, Mouse: Motion Right -ss.input.port9.mouse.motion_right mouse 0x0 rel_x+ - -;ss, Virtual Port 9, Mouse: Motion Up -ss.input.port9.mouse.motion_up mouse 0x0 rel_y- - -;ss, Virtual Port 9, Mouse: Right Button -ss.input.port9.mouse.right mouse 0x0 button_right - -;ss, Virtual Port 9, Mouse: Start -ss.input.port9.mouse.start keyboard 0x0 40 - -;ss, Virtual Port 9, Steering Wheel: A (R Group) -ss.input.port9.wheel.a - -;ss, Virtual Port 9, Steering Wheel: Analog LEFT ← -ss.input.port9.wheel.analog_left - -;ss, Virtual Port 9, Steering Wheel: Analog RIGHT → -ss.input.port9.wheel.analog_right - -;ss, Virtual Port 9, Steering Wheel: B (R Group) -ss.input.port9.wheel.b - -;ss, Virtual Port 9, Steering Wheel: C (R Group) -ss.input.port9.wheel.c - -;ss, Virtual Port 9, Steering Wheel: R Gear Shift(Equiv. DOWN ↓) -ss.input.port9.wheel.down - -;ss, Virtual Port 9, Steering Wheel: START -ss.input.port9.wheel.start - -;ss, Virtual Port 9, Steering Wheel: L Gear Shift(Equiv. UP ↑) -ss.input.port9.wheel.up - -;ss, Virtual Port 9, Steering Wheel: X (L Group) -ss.input.port9.wheel.x - -;ss, Virtual Port 9, Steering Wheel: Y (L Group) -ss.input.port9.wheel.y - -;ss, Virtual Port 9, Steering Wheel: Z (L Group) -ss.input.port9.wheel.z - -;Enable multitap on Saturn port 1. -ss.input.sport1.multitap 0 - -;Enable multitap on Saturn port 2. -ss.input.sport2.multitap 0 - -;Attempt to auto-detect region of game. -ss.region_autodetect 1 - -;Default region to use. -ss.region_default jp - -;Enable scanlines with specified opacity. -ss.scanlines 0 - -;SCSP output resampler quality. -ss.scsp.resamp_quality 4 - -;Enable specified OpenGL shader. -ss.shader scale2x - -;Force interlaced video to be treated as progressive. -ss.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -ss.shader.goat.hdiv 0.50 - -;Mask pattern. -ss.shader.goat.pat goatron - -;Enable scanlines effect. -ss.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -ss.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -ss.shader.goat.vdiv 0.50 - -;Last displayed scanline in NTSC mode. -ss.slend 239 - -;Last displayed scanline in PAL mode. -ss.slendp 255 - -;First displayed scanline in NTSC mode. -ss.slstart 0 - -;First displayed scanline in PAL mode. -ss.slstartp 0 - -;Automatically set RTC on game load. -ss.smpc.autortc 1 - -;BIOS language. -ss.smpc.autortc.lang english - -;Enable specified special video scaler. -ss.special none - -;Stretch to fill screen. -ss.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -ss.tblur 0 - -;Accumulate color data rather than discarding it. -ss.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -ss.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -ss.videoip 1 - -;Full-screen horizontal resolution. -ss.xres 0 - -;Scaling factor for the X axis in windowed mode. -ss.xscale 3.000000 - -;Scaling factor for the X axis in fullscreen mode. -ss.xscalefs 1.000000 - -;Full-screen vertical resolution. -ss.yres 0 - -;Scaling factor for the Y axis in windowed mode. -ss.yscale 3.000000 - -;Scaling factor for the Y axis in fullscreen mode. -ss.yscalefs 1.000000 - -;3D mode. -vb.3dmode anaglyph - -;Reverse left/right 3D views. -vb.3dreverse 0 - -;Allow draw skipping. -vb.allow_draw_skip 0 - -;Anaglyph maximum-brightness color for left view. -vb.anaglyph.lcolor 0xffba00 - -;Anaglyph preset colors. -vb.anaglyph.preset red_blue - -;Anaglyph maximum-brightness color for right view. -vb.anaglyph.rcolor 0x00baff - -;CPU emulation mode. -vb.cpu_emulation accurate - -;Disassembly font size. -vb.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -vb.debugger.memcharenc shift_jis - -;Default maximum-brightness color to use in non-anaglyph 3D modes. -vb.default_color 0xF0F0F0 - -;Disable parallax for BG and OBJ rendering. -vb.disable_parallax 0 - -;Enable (automatic) usage of this module. -vb.enable 1 - -;Force monophonic sound output. -vb.forcemono 0 - -;vb, Built-In, Gamepad: A -vb.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;vb, Built-In, Gamepad: B -vb.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;vb, Built-In, Gamepad: DOWN ↓ (Left D-Pad) -vb.input.builtin.gamepad.down-l joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;vb, Built-In, Gamepad: DOWN ↓ (Right D-Pad) -vb.input.builtin.gamepad.down-r joystick 0x0003045e028e01010008000b00000000 abs_4+ - -;vb, Built-In, Gamepad: LEFT ← (Left D-Pad) -vb.input.builtin.gamepad.left-l joystick 0x0003045e028e01010008000b00000000 abs_6- - -;vb, Built-In, Gamepad: LEFT ← (Right D-Pad) -vb.input.builtin.gamepad.left-r joystick 0x0003045e028e01010008000b00000000 abs_3- - -;vb, Built-In, Gamepad: Left-Back -vb.input.builtin.gamepad.lt joystick 0x0003045e028e01010008000b00000000 button_4 - -;vb, Built-In, Gamepad: Rapid A -vb.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;vb, Built-In, Gamepad: Rapid B -vb.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;vb, Built-In, Gamepad: RIGHT → (Left D-Pad) -vb.input.builtin.gamepad.right-l joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;vb, Built-In, Gamepad: RIGHT → (Right D-Pad) -vb.input.builtin.gamepad.right-r joystick 0x0003045e028e01010008000b00000000 abs_3+ - -;vb, Built-In, Gamepad: Right-Back -vb.input.builtin.gamepad.rt joystick 0x0003045e028e01010008000b00000000 button_5 - -;vb, Built-In, Gamepad: Select -vb.input.builtin.gamepad.select joystick 0x0003045e028e01010008000b00000000 button_6 - -;vb, Built-In, Gamepad: Start -vb.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;vb, Built-In, Gamepad: UP ↑ (Left D-Pad) -vb.input.builtin.gamepad.up-l joystick 0x0003045e028e01010008000b00000000 abs_7- - -;vb, Built-In, Gamepad: UP ↑ (Right D-Pad) -vb.input.builtin.gamepad.up-r joystick 0x0003045e028e01010008000b00000000 abs_4- - -;Input latency reduction hack. -vb.input.instant_read_hack 1 - -;vb, System, Misc: Battery Voltage -vb.input.system.misc.battery - -;Default position for switch "Battery Voltage". -vb.input.system.misc.battery.defpos normal - -;Display latency reduction hack. -vb.instant_display_hack 0 - -;LED on duration to linear RGB conversion coefficient. -vb.ledonscale 1.75 - -;Line Interlaced prescale. -vb.liprescale 2 - -;Enable scanlines with specified opacity. -vb.scanlines 0 - -;Enable specified OpenGL shader. -vb.shader sabr - -;Force interlaced video to be treated as progressive. -vb.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -vb.shader.goat.hdiv 0.50 - -;Mask pattern. -vb.shader.goat.pat goatron - -;Enable scanlines effect. -vb.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -vb.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -vb.shader.goat.vdiv 0.50 - -;Number of pixels to separate L/R views by. -vb.sidebyside.separation 0 - -;Enable specified special video scaler. -vb.special none - -;Stretch to fill screen. -vb.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -vb.tblur 0 - -;Accumulate color data rather than discarding it. -vb.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -vb.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -vb.videoip 0 - -;Full-screen horizontal resolution. -vb.xres 0 - -;Scaling factor for the X axis in windowed mode. -vb.xscale 2.000000 - -;Scaling factor for the X axis in fullscreen mode. -vb.xscalefs 1.000000 - -;Full-screen vertical resolution. -vb.yres 0 - -;Scaling factor for the Y axis in windowed mode. -vb.yscale 2.000000 - -;Scaling factor for the Y axis in fullscreen mode. -vb.yscalefs 1.000000 - -;Enable time synchronization(waiting) for frame blitting. -video.blit_timesync 1 - -;Preferred window manager cursor visibility. -video.cursorvis hidden - -;Deinterlacer to use for interlaced video. -video.deinterlacer weave - -;Attempt to disable desktop composition. -video.disable_composition 1 - -;Video output driver. -video.driver default - -;Force backbuffer clear before drawing. -video.force_bbclear 0 - -;Enable frameskip during emulation rendering. -video.frameskip 1 - -;Enable fullscreen mode. -video.fs 1 - -;Display to use with fullscreen mode. -video.fs.display -1 - -;Preferred source data pixel format for emulated video. -video.glformat auto - -;Attempt to synchronize OpenGL page flips to vertical retrace period. -video.glvsync 1 - -;Birth Day -wswan.bday 23 - -;Blood Type -wswan.blood O - -;Birth Month -wswan.bmonth 6 - -;Birth Year -wswan.byear 1989 - -;Disassembly font size. -wswan.debugger.disfontsize 5x7 - -;Character encoding for the debugger's memory editor. -wswan.debugger.memcharenc shift_jis - -;Enable (automatic) usage of this module. -wswan.enable 1 - -;Enable comms to external program. -wswan.excomm 0 - -;Comms external program path. -wswan.excomm.path wonderfence - -;Force monophonic sound output. -wswan.forcemono 0 - -;Input device for Built-In -wswan.input.builtin gamepad - -;wswan, Built-In, Gamepad: A -wswan.input.builtin.gamepad.a joystick 0x0003045e028e01010008000b00000000 button_1 - -;wswan, Built-In, Gamepad: B -wswan.input.builtin.gamepad.b joystick 0x0003045e028e01010008000b00000000 button_0 - -;wswan, Built-In, Gamepad: X3(X DOWN ↓) -wswan.input.builtin.gamepad.down-x joystick 0x0003045e028e01010008000b00000000 abs_7+ - -;wswan, Built-In, Gamepad: Y3(Y DOWN ↓) -wswan.input.builtin.gamepad.down-y joystick 0x0003045e028e01010008000b00000000 abs_2+ || joystick 0x0003045e028e01010008000b00000000 abs_2- - -;wswan, Built-In, Gamepad: X4(X LEFT ←) -wswan.input.builtin.gamepad.left-x joystick 0x0003045e028e01010008000b00000000 abs_6- - -;wswan, Built-In, Gamepad: Y4(Y LEFT ←) -wswan.input.builtin.gamepad.left-y joystick 0x0003045e028e01010008000b00000000 button_4 - -;wswan, Built-In, Gamepad: Rapid A -wswan.input.builtin.gamepad.rapid_a joystick 0x0003045e028e01010008000b00000000 button_3 - -;wswan, Built-In, Gamepad: Rapid B -wswan.input.builtin.gamepad.rapid_b joystick 0x0003045e028e01010008000b00000000 button_2 - -;wswan, Built-In, Gamepad: X2(X RIGHT →) -wswan.input.builtin.gamepad.right-x joystick 0x0003045e028e01010008000b00000000 abs_6+ - -;wswan, Built-In, Gamepad: Y2(Y RIGHT →) -wswan.input.builtin.gamepad.right-y joystick 0x0003045e028e01010008000b00000000 button_5 - -;wswan, Built-In, Gamepad: Start -wswan.input.builtin.gamepad.start joystick 0x0003045e028e01010008000b00000000 button_7 - -;wswan, Built-In, Gamepad: X1(X UP ↑) -wswan.input.builtin.gamepad.up-x joystick 0x0003045e028e01010008000b00000000 abs_7- - -;wswan, Built-In, Gamepad: Y1(Y UP ↑) -wswan.input.builtin.gamepad.up-y joystick 0x0003045e028e01010008000b00000000 abs_5- - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): A (right) -wswan.input.builtin.gamepadraa.a keyboard 0x0 91 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): A'(center, upper) -wswan.input.builtin.gamepadraa.ap keyboard 0x0 94 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): B (center, lower) -wswan.input.builtin.gamepadraa.b keyboard 0x0 90 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): B'(left) -wswan.input.builtin.gamepadraa.bp keyboard 0x0 93 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X3(X DOWN ↓) -wswan.input.builtin.gamepadraa.down-x keyboard 0x0 22 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y3(Y DOWN ↓) -wswan.input.builtin.gamepadraa.down-y keyboard 0x0 81 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X4(X LEFT ←) -wswan.input.builtin.gamepadraa.left-x keyboard 0x0 4 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y4(Y LEFT ←) -wswan.input.builtin.gamepadraa.left-y keyboard 0x0 80 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X2(X RIGHT →) -wswan.input.builtin.gamepadraa.right-x keyboard 0x0 7 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y2(Y RIGHT →) -wswan.input.builtin.gamepadraa.right-y keyboard 0x0 79 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Start -wswan.input.builtin.gamepadraa.start keyboard 0x0 40 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): X1(X UP ↑) -wswan.input.builtin.gamepadraa.up-x keyboard 0x0 26 - -;wswan, Built-In, Gamepad(Rotation Auto-Adjust): Y1(Y UP ↑) -wswan.input.builtin.gamepadraa.up-y keyboard 0x0 82 - -;Language games should display text in. -wswan.language english - -;Name -wswan.name Mednafen - -;Enable scanlines with specified opacity. -wswan.scanlines 0 - -;Sex -wswan.sex F - -;Enable specified OpenGL shader. -wswan.shader sabr - -;Force interlaced video to be treated as progressive. -wswan.shader.goat.fprog 0 - -;Constant RGB horizontal divergence. -wswan.shader.goat.hdiv 0.50 - -;Mask pattern. -wswan.shader.goat.pat goatron - -;Enable scanlines effect. -wswan.shader.goat.slen 1 - -;Transparency of otherwise-opaque mask areas. -wswan.shader.goat.tp 0.50 - -;Constant RGB vertical divergence. -wswan.shader.goat.vdiv 0.50 - -;Enable specified special video scaler. -wswan.special none - -;Stretch to fill screen. -wswan.stretch aspect - -;Enable video temporal blur(50/50 previous/current frame by default). -wswan.tblur 0 - -;Accumulate color data rather than discarding it. -wswan.tblur.accum 0 - -;Blur amount in accumulation mode, specified in percentage of accumulation buffer to mix with the current frame. -wswan.tblur.accum.amount 50 - -;Enable (bi)linear interpolation. -wswan.videoip 0 - -;Full-screen horizontal resolution. -wswan.xres 0 - -;Scaling factor for the X axis in windowed mode. -wswan.xscale 4.000000 - -;Scaling factor for the X axis in fullscreen mode. -wswan.xscalefs 1.000000 - -;Full-screen vertical resolution. -wswan.yres 0 - -;Scaling factor for the Y axis in windowed mode. -wswan.yscale 4.000000 - -;Scaling factor for the Y axis in fullscreen mode. -wswan.yscalefs 1.000000 - diff --git a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg index 5c52b44b5..228a62ab5 100644 --- a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg @@ -9,7 +9,7 @@ affinity.cd 0 ;Main emulation thread CPU affinity mask. -affinity.emu 0 +affinity.emu 0x3 ;Video blitting thread CPU affinity mask. affinity.video 0 @@ -1146,10 +1146,10 @@ md.input.port1.gamepad6.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ md.input.port1.gamepad6.c joystick @GUID1@ @DEVICE_BTN_EAST@ ;md, Virtual Port 1, 6-Button Gamepad: DOWN ↓ -md.input.port1.gamepad6.down joystick @GUID1@ @DEVICE_BTN_DOWN@ +md.input.port1.gamepad6.down joystick @GUID1@ @DEVICE_BTN_DPAD_DOWN@ ;md, Virtual Port 1, 6-Button Gamepad: LEFT ← -md.input.port1.gamepad6.left joystick @GUID1@ @DEVICE_BTN_LEFT@ +md.input.port1.gamepad6.left joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ;md, Virtual Port 1, 6-Button Gamepad: Mode md.input.port1.gamepad6.mode joystick @GUID1@ @DEVICE_BTN_SELECT@ @@ -1173,13 +1173,13 @@ md.input.port1.gamepad6.rapid_y md.input.port1.gamepad6.rapid_z ;md, Virtual Port 1, 6-Button Gamepad: RIGHT → -md.input.port1.gamepad6.right joystick @GUID1@ @DEVICE_BTN_WEST@ +md.input.port1.gamepad6.right joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ;md, Virtual Port 1, 6-Button Gamepad: Start md.input.port1.gamepad6.start joystick @GUID1@ @DEVICE_BTN_START@ ;md, Virtual Port 1, 6-Button Gamepad: UP ↑ -md.input.port1.gamepad6.up joystick @GUID1@ @DEVICE_BTN_UP@ +md.input.port1.gamepad6.up joystick @GUID1@ @DEVICE_BTN_DPAD_UP@ ;md, Virtual Port 1, 6-Button Gamepad: X md.input.port1.gamepad6.x joystick @GUID1@ @DEVICE_BTN_TL@ @@ -6021,7 +6021,7 @@ snes_faust.affinity.msu1.audio 0 snes_faust.affinity.msu1.data 0 ;PPU rendering thread CPU affinity mask. -snes_faust.affinity.ppu 0 +snes_faust.affinity.ppu 0xc ;Correct aspect ratio. snes_faust.correct_aspect 1 @@ -6756,7 +6756,7 @@ vb.debugger.memcharenc shift_jis vb.default_color 0xF0F0F0 ;Disable parallax for BG and OBJ rendering. -vb.disable_parallax 1 +vb.disable_parallax 0 ;Enable (automatic) usage of this module. vb.enable 1 @@ -9879,9 +9879,9 @@ ss.input.port1.3dpad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ ss.input.port1.3dpad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.3dpad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ +ss.input.port1.3dpad.down joystick @GUID1@ @DEVICE_BTN_DPAD_DOWN@ -ss.input.port1.3dpad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ +ss.input.port1.3dpad.left joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ss.input.port1.3dpad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ || joystick @GUID1@ @DEVICE_BTN_TL2_MINUS@ @@ -9889,13 +9889,13 @@ ss.input.port1.3dpad.mode joystick ss.input.port1.3dpad.mode.defpos analog -ss.input.port1.3dpad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ +ss.input.port1.3dpad.right joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ss.input.port1.3dpad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ || joystick @GUID1@ @DEVICE_BTN_TR2_MINUS@ ss.input.port1.3dpad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.3dpad.up joystick @GUID1@ @DEVICE_BTN_UP@ +ss.input.port1.3dpad.up joystick @GUID1@ @DEVICE_BTN_DPAD_UP@ ss.input.port1.3dpad.x joystick @GUID1@ @DEVICE_BTN_WEST@ @@ -9987,19 +9987,19 @@ ss.input.port1.gamepad.b joystick @GUID1@ @DEVICE_BTN_SOUTH@ ss.input.port1.gamepad.c joystick @GUID1@ @DEVICE_BTN_TR@ -ss.input.port1.gamepad.down joystick @GUID1@ @DEVICE_BTN_DOWN@ +ss.input.port1.gamepad.down joystick @GUID1@ @DEVICE_BTN_DPAD_DOWN@ -ss.input.port1.gamepad.left joystick @GUID1@ @DEVICE_BTN_LEFT@ +ss.input.port1.gamepad.left joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ss.input.port1.gamepad.ls joystick @GUID1@ @DEVICE_BTN_TL2@ -ss.input.port1.gamepad.right joystick @GUID1@ @DEVICE_BTN_RIGHT@ +ss.input.port1.gamepad.right joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ss.input.port1.gamepad.rs joystick @GUID1@ @DEVICE_BTN_TR2@ ss.input.port1.gamepad.start joystick @GUID1@ @DEVICE_BTN_START@ -ss.input.port1.gamepad.up joystick @GUID1@ @DEVICE_BTN_UP@ +ss.input.port1.gamepad.up joystick @GUID1@ @DEVICE_BTN_DPAD_UP@ ss.input.port1.gamepad.x joystick @GUID1@ @DEVICE_BTN_WEST@ diff --git a/packages/emulators/standalone/mednafen/package.mk b/packages/emulators/standalone/mednafen/package.mk index 0dcdc4726..19fc7f7a6 100644 --- a/packages/emulators/standalone/mednafen/package.mk +++ b/packages/emulators/standalone/mednafen/package.mk @@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2023-present asoderq/sydarn2 (https://github.com/asoderq) +# Copyright (C) 2023-present sydarn (https://github.com/asoderq) PKG_NAME="mednafen" PKG_VERSION="1.31.0-UNSTABLE" @@ -13,18 +13,17 @@ pre_configure_target() { # unsupported modules DISABLED_MODULES+=" --disable-apple2 \ - --disable-sasplay \ + --disable-sasplay \ --disable-ssfplay" case ${DEVICE} in - RK3326) + RK3326|RK3566) DISABLED_MODULES+=" --disable-snes \ --disable-ss \ --disable-psx" ;; - RK356*) - DISABLED_MODULES+=" --disable-ss \ - --disable-psx" + S922X|RK3399|RK3588) + DISABLED_MODULES+=" --disable-ss" ;; esac @@ -37,13 +36,10 @@ makeinstall_target() { cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin chmod +x ${INSTALL}/usr/bin/start_mednafen.sh + chmod +x ${INSTALL}/usr/bin/mednafen_gen_config.sh mkdir -p ${INSTALL}/usr/config/${PKG_NAME} - if [ -d ${PKG_DIR}/config/${DEVICE} ]; then - cp ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/${PKG_NAME} - else - cp ${PKG_DIR}/config/common/* ${INSTALL}/usr/config/${PKG_NAME} - fi + cp ${PKG_DIR}/config/common/* ${INSTALL}/usr/config/${PKG_NAME} } post_install() { diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh index 99c8443dc..af492c456 100644 --- a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -51,9 +51,10 @@ DEVICE_BTN_AR_RIGHT="abs_2+" for CONTROL in DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_DPAD_UP \ DEVICE_BTN_DPAD_DOWN DEVICE_BTN_DPAD_LEFT \ DEVICE_BTN_DPAD_RIGHT DEVICE_BTN_TL2 \ - MINUS DEVICE_BTN_TR2_MINUS DEVICE_BTN_AL_DOWN \ - DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT \ - DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP DEVICE_BTN_AR_LEFT + DEVICE_BTN_TR2_MINUS DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP \ + DEVICE_BTN_AL_LEFT DEVICE_BTN_AL_RIGHT \ + DEVICE_BTN_AR_DOWN DEVICE_BTN_AR_UP DEVICE_BTN_AR_LEFT \ + DEVICE_BTN_TL2_MINUS DEVICE_BTN_TR2_MINUS do sed -i -e "s/@${CONTROL}@/${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg done diff --git a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh index 2fccbb806..3a1d4fb19 100644 --- a/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh +++ b/packages/emulators/standalone/mednafen/scripts/start_mednafen.sh @@ -5,7 +5,7 @@ . /etc/profile export MEDNAFEN_HOME=/storage/.config/mednafen -export MEDNAFEN_CONFIG=/usr/config/mednafen.cfg +export MEDNAFEN_CONFIG=/usr/config/mednafen/mednafen.cfg if [ ! -d "$MEDNAFEN_HOME" ] then diff --git a/packages/ui/emulationstation/config/common/es_features.cfg b/packages/ui/emulationstation/config/common/es_features.cfg index 35858d580..9654ff98d 100644 --- a/packages/ui/emulationstation/config/common/es_features.cfg +++ b/packages/ui/emulationstation/config/common/es_features.cfg @@ -164,6 +164,7 @@
+ diff --git a/packages/virtual/emulators/package.mk b/packages/virtual/emulators/package.mk index ade80fbd9..0231c01c5 100644 --- a/packages/virtual/emulators/package.mk +++ b/packages/virtual/emulators/package.mk @@ -33,7 +33,7 @@ case "${DEVICE}" in AMD64) [ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="lutris-wine" PKG_EMUS+=" amiberry cemu-sa citra-sa dolphin-sa duckstation-sa melonds-sa minivmacsa mupen64plus-sa kronos-sa \ - nanoboyadvance-sa pcsx2-sa primehack rpcs3-sa ryujinx-sa scummvmsa vita3k-sa xemu-sa yuzu-sa" + nanoboyadvance-sa pcsx2-sa primehack rpcs3-sa ryujinx-sa scummvmsa vita3k-sa xemu-sa yuzu-sa mednafen" LIBRETRO_CORES+=" beetle-psx-lr bsnes-hd-lr citra-lr desmume-lr dolphin-lr flycast-lr lrps2-lr mame-lr \ play-lr" ;; @@ -68,7 +68,7 @@ case "${DEVICE}" in RK3326*) [ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="flycast-lr desmume-lr gpsp-lr pcsx_rearmed-lr" PKG_DEPENDS_TARGET+=" common-shaders glsl-shaders" - PKG_EMUS+=" amiberry drastic-sa mupen64plus-sa nanoboyadvance-sa scummvmsa yabasanshiro-sa portmaster" + PKG_EMUS+=" amiberry drastic-sa mupen64plus-sa nanoboyadvance-sa scummvmsa yabasanshiro-sa portmaster mednafen" LIBRETRO_CORES+=" uae4arm flycast-lr" PKG_RETROARCH+=" retropie-shaders" ;; @@ -358,7 +358,7 @@ makeinstall_target() { add_emu_core famicom retroarch quicknes false add_emu_core famicom retroarch mesen false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core famicom mednafen nes false ;; esac @@ -369,7 +369,7 @@ makeinstall_target() { add_emu_core fds retroarch fceumm false add_emu_core fds retroarch quicknes false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core fds mednafen nes false ;; esac @@ -405,7 +405,7 @@ makeinstall_target() { add_emu_core gb retroarch mgba false add_emu_core gb retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gb mednafen gb false ;; esac @@ -419,7 +419,7 @@ makeinstall_target() { add_emu_core gbh retroarch mgba false add_emu_core gbh retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbh mednafen gb false ;; esac @@ -444,7 +444,7 @@ makeinstall_target() { ;; esac case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gba mednafen gba false ;; esac @@ -457,7 +457,7 @@ makeinstall_target() { add_emu_core gbah retroarch vba_next false add_emu_core gbah retroarch beetle_gba false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbah mednafen gba false ;; esac @@ -471,7 +471,7 @@ makeinstall_target() { add_emu_core gbc retroarch mgba false add_emu_core gbc retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbc mednafen gb false ;; esac @@ -485,7 +485,7 @@ makeinstall_target() { add_emu_core gbch retroarch mgba false add_emu_core gbch retroarch vbam false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gbch mednafen gb false ;; esac @@ -546,7 +546,7 @@ makeinstall_target() { add_emu_core gamegear retroarch picodrive false add_emu_core gamegear retroarch smsplus false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core gamegear mednafen gg false ;; esac @@ -558,7 +558,7 @@ makeinstall_target() { add_emu_core ggh retroarch picodrive false add_emu_core ggh retroarch smsplus false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core ggh mednafen gg false ;; esac @@ -580,7 +580,7 @@ makeinstall_target() { add_emu_core atarilynx retroarch handy true add_emu_core atarilynx retroarch beetle_lynx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core atarilynx mednafen lynx false ;; esac @@ -605,7 +605,7 @@ makeinstall_target() { add_emu_core megadrive-japan retroarch genesis_plus_gx_wide false add_emu_core megadrive-japan retroarch picodrive case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core megadrive-japan mednafen md false ;; esac @@ -620,7 +620,7 @@ makeinstall_target() { add_emu_core snesmsu1 retroarch snes9x true add_emu_core snesmsu1 retroarch beetle_supafaust false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core snesmsu1 mednafen snes_faust false ;; esac @@ -680,7 +680,7 @@ makeinstall_target() { add_emu_core ngp retroarch beetle_ngp true add_emu_core ngp retroarch race false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core ngp mednafen ngp false ;; esac @@ -690,7 +690,7 @@ makeinstall_target() { add_emu_core ngpc retroarch beetle_ngp true add_emu_core ngpc retroarch race false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core ngpc mednafen ngp false ;; esac @@ -740,7 +740,7 @@ makeinstall_target() { add_emu_core nes retroarch quicknes false add_emu_core nes retroarch mesen false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core nes mednafen nes false ;; esac @@ -752,7 +752,7 @@ makeinstall_target() { add_emu_core nesh retroarch quicknes false add_emu_core nesh retroarch mesen false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core nesh mednafen nesh false ;; esac @@ -779,7 +779,7 @@ makeinstall_target() { add_emu_core pcengine retroarch beetle_pce false add_emu_core pcengine retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core pcengine mednafen pce false add_emu_core pcengine mednafen pce_fast false ;; @@ -791,7 +791,7 @@ makeinstall_target() { add_emu_core pcenginecd retroarch beetle_pce false add_emu_core pcenginecd retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core pcenginecd mednafen pce false add_emu_core pcenginecd mednafen pce_fast false ;; @@ -801,7 +801,7 @@ makeinstall_target() { ### NEC PC-FX add_emu_core pcfx retroarch beetle_pcfx true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core pcfx mednafen pcfx false ;; esac @@ -817,6 +817,7 @@ makeinstall_target() { AMD64) add_emu_core psx retroarch beetle_psx true add_emu_core psx duckstation duckstation-sa false + add_emu_core psx mednafen psx false ;; S922X*) add_emu_core psx retroarch pcsx_rearmed true @@ -844,6 +845,7 @@ makeinstall_target() { RK3326) add_emu_core psx retroarch pcsx_rearmed32 true add_emu_core psx retroarch pcsx_rearmed false + add_emu_core psx mednafen psx false ;; esac add_emu_core psx retroarch duckstation false @@ -933,7 +935,7 @@ makeinstall_target() { add_emu_core genesis retroarch genesis_plus_gx_wide false add_emu_core genesis retroarch picodrive false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core genesis mednafen md false ;; esac @@ -944,7 +946,7 @@ makeinstall_target() { add_emu_core genh retroarch genesis_plus_gx_wide false add_emu_core genh retroarch picodrive false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core genh mednafen md false ;; esac @@ -956,7 +958,7 @@ makeinstall_target() { add_emu_core mastersystem retroarch picodrive false add_emu_core mastersystem retroarch smsplus false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core mastersystem mednafen sms false ;; esac @@ -967,7 +969,7 @@ makeinstall_target() { add_emu_core megadrive retroarch genesis_plus_gx_wide false add_emu_core megadrive retroarch picodrive false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core megadrive mednafen md false ;; esac @@ -990,7 +992,7 @@ makeinstall_target() { esac add_emu_core saturn retroarch beetle_saturn false case ${DEVICE} in - RK3399) + AMD64) add_emu_core saturn mednafen ss false ;; esac @@ -1001,7 +1003,7 @@ makeinstall_target() { AMD64|S922X*|RK35*) add_emu_core st-v retroarch beetle_saturn true ;; - RK3399) + RK3399|AMD64) add_emu_core st-v retroarch beetle_saturn true add_emu_core st-v mednafen ss false ;; @@ -1039,7 +1041,7 @@ makeinstall_target() { add_emu_core supergrafx retroarch beetle_supergrafx add_emu_core supergrafx retroarch beetle_pce case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core supergrafx mednafen pce false add_emu_core supergrafx mednafen pce_fast false ;; @@ -1056,10 +1058,13 @@ makeinstall_target() { add_emu_core snes retroarch bsnes_mercury_performance false add_emu_core snes retroarch bsnes_hd_beta false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core snes mednafen snes_faust false add_emu_core snes mednafen snes false ;; + RK3326) + add_emu_core snes mednafen snes_faust false + ;; esac add_es_system snes @@ -1073,10 +1078,13 @@ makeinstall_target() { add_emu_core snesh retroarch bsnes_mercury_performance false add_emu_core snesh retroarch bsnes_hd_beta false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core snesh mednafen snes false add_emu_core snesh mednafen snes_faust false ;; + RK3326) + add_emu_core snes mednafen snes_faust false + ;; esac add_es_system snesh @@ -1090,10 +1098,13 @@ makeinstall_target() { add_emu_core sfc retroarch bsnes_mercury_performance false add_emu_core sfc retroarch bsnes_hd_beta false case ${DEVICE} in - RK3399) + RK3399|AMD64) add_emu_core sfc mednafen snes false add_emu_core sfc mednafen snes_faust false ;; + RK3326) + add_emu_core snes mednafen snes_faust false + ;; esac add_es_system sfc @@ -1121,7 +1132,7 @@ makeinstall_target() { add_emu_core tg16 retroarch beetle_pce false add_emu_core tg16 retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core tg16 mednafen pce false add_emu_core tg16 mednafen pce_fast false ;; @@ -1133,7 +1144,7 @@ makeinstall_target() { add_emu_core tg16cd retroarch beetle_pce false add_emu_core tg16cd retroarch beetle_supergrafx false case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core tg16cd mednafen pce false add_emu_core tg16cd mednafen pce_fast false ;; @@ -1155,7 +1166,7 @@ makeinstall_target() { ### Nintendo VirtualBoy add_emu_core virtualboy retroarch beetle_vb true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core virtualboy mednafen vb false ;; esac @@ -1164,7 +1175,7 @@ makeinstall_target() { ### Bandai Wonderswan add_emu_core wonderswan retroarch beetle_wswan true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core wonderswan mednafen wswan false ;; esac @@ -1173,7 +1184,7 @@ makeinstall_target() { ### Bandai Wonderswan Color add_emu_core wonderswancolor retroarch beetle_wswan true case ${DEVICE} in - RK3399) + RK3399|AMD64|RK3326) add_emu_core wonderswancolor mednafen wswan false ;; esac From 8c5f0c85312490d6f38d49cb637c96839e7674fc Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sun, 5 Nov 2023 16:02:36 +0100 Subject: [PATCH 079/112] Mednafen; remove autosave options until someone figures it out --- packages/ui/emulationstation/config/common/es_features.cfg | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/ui/emulationstation/config/common/es_features.cfg b/packages/ui/emulationstation/config/common/es_features.cfg index 9654ff98d..d420800b2 100644 --- a/packages/ui/emulationstation/config/common/es_features.cfg +++ b/packages/ui/emulationstation/config/common/es_features.cfg @@ -2,10 +2,6 @@ - - - - From a7d7d395bec5e14439bd4bd255ac76617bd2ae37 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Sun, 5 Nov 2023 20:45:12 +0100 Subject: [PATCH 080/112] Mednafen: Fix hotkey buttons shortcuts Will be accompanied by documentation --- .../AMD64/SUPPORTED_EMULATORS_AND_CORES.md | 70 +++++++++---------- .../RK3326/SUPPORTED_EMULATORS_AND_CORES.md | 62 ++++++++-------- .../RK3399/SUPPORTED_EMULATORS_AND_CORES.md | 2 +- .../mednafen/config/common/mednafen.cfg | 12 ++-- 4 files changed, 73 insertions(+), 73 deletions(-) diff --git a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md index 78a9a38d2..ed878e731 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md @@ -24,11 +24,11 @@ This document describes all available systems emulators and cores available for |Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| |Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
**mednafen:** lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| -|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| -|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| +|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| +|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| |Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| |Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| @@ -52,54 +52,54 @@ This document describes all available systems emulators and cores available for |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|Xbox (xbox)|2001|`xbox`|.iso|**xemu:** xemu-sa (default)
| -|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| -|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| +|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |NEC|PC-8800 (pc-8800)|1981|`pc88`|.d88 .m3u|**retroarch:** quasi88 (default)
| |NEC|PC-9800 (pc-9800)|1983|`pc98`|.d98 .zip .fdi .fdd .2hd .tfd .d88d .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn|**retroarch:** np2kai (default)
| -|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)
| -|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx
**retroarch:** beetle_pce
| -|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| -|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| +|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)
**mednafen:** pcfx
| +|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx
**retroarch:** beetle_pce
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)
| |Nintendo|3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**retroarch:** citra (default)
**citra:** citra-sa
| -|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| -|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
| +|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| +|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**mednafen:** nes
| |Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw
| -|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**nanoboyadvance:** nanoboyadvance-sa
| -|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
| -|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| +|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**nanoboyadvance:** nanoboyadvance-sa
**mednafen:** gba
| +|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**mednafen:** gba
| +|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
**primehack:** primehack
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| -|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| +|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**retroarch:** melonds (default)
**retroarch:** desmume
**melonds:** melonds-sa
| -|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| -|Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| -|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| -|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| +|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| +|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes
| |Nintendo|Switch (switch)|2017|`switch`|.xci .nsp .nca .nso .nro|**yuzu:** yuzu-sa (default)
**ryujinx:** ryujinx-sa
| -|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| +|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
| |Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad|**dolphin:** dolphin-sa-wii (default)
**retroarch:** dolphin
**primehack:** primehack
| |Nintendo|Wii U (wiiu)|2012|`wiiu`|.wud .wux .wua|**cemu:** cemu-sa (default)
| |Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)
| |Philips|VideoPac (videopac)|1978|`videopac`|.bin .zip .7z|**retroarch:** o2em (default)
| |Sammy|Atomiswave (atomiswave)|2003|`atomiswave`|.lst .bin .dat .zip .7z|**retroarch:** flycast (default)
**flycast:** flycast-sa
| |Sega|Dreamcast (dreamcast)|1998|`dreamcast`|.cdi .gdi .chd .m3u|**retroarch:** flycast2021
**retroarch:** flycast (default)
**flycast:** flycast-sa
| -|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| -|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| -|Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| +|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
| +|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
| +|Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| +|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| +|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** sms
| |Sega|Mega CD (megacd)|1991|`megacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
| -|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| +|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| +|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| |Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021
**retroarch:** flycast (default)
**flycast:** flycast-sa
| -|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**kronos:** kronos-sa (default)
**retroarch:** yabasanshiro (default)
**retroarch:** beetle_saturn
| +|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**kronos:** kronos-sa (default)
**retroarch:** yabasanshiro (default)
**retroarch:** beetle_saturn
**mednafen:** ss
| |Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)
| |Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
| |Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
| @@ -111,9 +111,9 @@ This document describes all available systems emulators and cores available for |Smith Engineering|Vectrex (vectrex)|1982|`vectrex`|.bin .gam .vec .zip .7z|**retroarch:** vecx (default)
| |SNK|Neo Geo (neogeo)|1990|`neogeo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
| |SNK|Neo Geo CD (neocd)|1994|`neocd`|.cue .iso .chd|**retroarch:** neocd (default)
**retroarch:** fbneo
| -|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
| -|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
| -|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** beetle_psx (default)
**duckstation:** duckstation-sa
**retroarch:** duckstation
**retroarch:** swanstation
| +|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
| +|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
| +|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** beetle_psx (default)
**duckstation:** duckstation-sa
**mednafen:** psx
**retroarch:** duckstation
**retroarch:** swanstation
| |Sony|PlayStation 2 (ps2)|2000|`ps2`|.iso .mdf .nrg .bin .img .dump .gz .cso .chd|**pcsx2:** pcsx2-sa (default)
**retroarch:** pcsx2
| |Sony|PlayStation 3 (ps3)|2006|`ps3`|.ps3 .psn|**rpcs3:** rpcs3-sa (default)
| |Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)
**retroarch:** ppsspp
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md index a37d2c0f7..dea770681 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md @@ -24,11 +24,11 @@ This document describes all available systems emulators and cores available for |Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| |Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| -|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
| +|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
**mednafen:** lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| -|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| -|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| +|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| +|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| |Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| @@ -51,47 +51,47 @@ This document describes all available systems emulators and cores available for |Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
| |Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| |Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
| -|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| -|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| +|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |NEC|PC-8800 (pc-8800)|1981|`pc88`|.d88 .m3u|**retroarch:** quasi88 (default)
| |NEC|PC-9800 (pc-9800)|1983|`pc98`|.d98 .zip .fdi .fdd .2hd .tfd .d88d .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn|**retroarch:** np2kai (default)
| -|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)
| -|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx
**retroarch:** beetle_pce
| -|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| -|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| +|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)
**mednafen:** pcfx
| +|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx
**retroarch:** beetle_pce
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| +|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)
| -|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| -|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
| +|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| +|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**mednafen:** nes
| |Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw
| -|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**retroarch:** gpsp
**nanoboyadvance:** nanoboyadvance-sa
| -|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
| -|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| -|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**retroarch:** gpsp
**nanoboyadvance:** nanoboyadvance-sa
**mednafen:** gba
| +|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**mednafen:** gba
| +|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| +|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| +|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**retroarch:** desmume
| -|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| -|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| -|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| +|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes_faust
**mednafen:** snes_faust
| +|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
| |Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)
| |Philips|VideoPac (videopac)|1978|`videopac`|.bin .zip .7z|**retroarch:** o2em (default)
| |Sammy|Atomiswave (atomiswave)|2003|`atomiswave`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021
**retroarch:** flycast32 (default)
**retroarch:** flycast
**flycast:** flycast-sa
| |Sega|Dreamcast (dreamcast)|1998|`dreamcast`|.cdi .gdi .chd .m3u|**retroarch:** flycast2021
**retroarch:** flycast32 (default)
**retroarch:** flycast
**flycast:** flycast-sa
| -|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| -|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| +|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
| +|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
| |Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
| +|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| +|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** sms
| |Sega|Mega CD (megacd)|1991|`megacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
| -|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| -|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
| +|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| +|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| |Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021
**retroarch:** flycast32 (default)
**retroarch:** flycast
**flycast:** flycast-sa
| |Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**yabasanshiro:** yabasanshiro-sa (default)
**retroarch:** yabasanshiro
**retroarch:** beetle_saturn
| |Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)
| @@ -105,9 +105,9 @@ This document describes all available systems emulators and cores available for |Smith Engineering|Vectrex (vectrex)|1982|`vectrex`|.bin .gam .vec .zip .7z|**retroarch:** vecx (default)
| |SNK|Neo Geo (neogeo)|1990|`neogeo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
| |SNK|Neo Geo CD (neocd)|1994|`neocd`|.cue .iso .chd|**retroarch:** neocd (default)
**retroarch:** fbneo
| -|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
| -|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
| -|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)
**retroarch:** pcsx_rearmed
**retroarch:** duckstation
**retroarch:** swanstation
| +|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
| +|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
| +|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)
**retroarch:** pcsx_rearmed
**mednafen:** psx
**retroarch:** duckstation
**retroarch:** swanstation
| |Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)
| |Sony|PSP Minis (pspminis)|2004|`pspminis`|.iso .cso .pbp|**ppsspp:** ppsspp-sa (default)
**retroarch:** ppsspp
| |Sun Microsystems|J2ME (j2me)|2002|`j2me`|.jar|**retroarch:** freej2me (default)
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md index c3d478a48..e4defa119 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md @@ -95,7 +95,7 @@ This document describes all available systems emulators and cores available for |Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| |Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
| |Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**flycast:** flycast-sa
**retroarch:** flycast (default)
| -|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**yabasanshiro:** yabasanshiro-sa (default)
**retroarch:** yabasanshiro
**retroarch:** beetle_saturn
**mednafen:** ss
| +|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**yabasanshiro:** yabasanshiro-sa (default)
**retroarch:** yabasanshiro
**retroarch:** beetle_saturn
| |Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)
| |Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
| |Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
| diff --git a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg index 228a62ab5..eac60471c 100644 --- a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg @@ -204,7 +204,7 @@ command.exit joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BT command.fast_forward joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BTN_TR2@ ;Configure buttons on virtual port 1 -command.input_config1 keyboard 0x0 30+alt+shift +command.input_config1 keyboard 0x0 30+alt+shift || joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_TL2@ ;Configure buttons on virtual port 10 command.input_config10 keyboard 0x0 39+alt+shift @@ -255,7 +255,7 @@ command.input_configc_am keyboard 0x0 59+shift command.insert_coin keyboard 0x0 65 ;Insert/Eject disk/disc -command.insert_eject_disk joystick @GUID1@ @DEVICE_BTN_TR@ +command.insert_eject_disk joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_TR@ ;Load movie command.load_movie keyboard 0x0 64+shift @@ -318,7 +318,7 @@ command.save_movie keyboard 0x0 62+shift command.save_state joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BTN_TR@ ;Select disk/disc -command.select_disk joystick @GUID1@ @DEVICE_BTN_TL@ +command.select_disk joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_TL@ ;Select drive command.select_drive keyboard 0x0 63+shift @@ -327,13 +327,13 @@ command.select_drive keyboard 0x0 63+shift command.slow_forward keyboard 0x0 49 ;Rewind -command.state_rewind joystick @GUID1@ @DEVICE_BTN_THUMBL@ && joystick @GUID1@ @DEVICE_BTN_TL2@ +command.state_rewind joystick @GUID1@ @DEVICE_BTN_SELECT@ && joystick @GUID1@ @DEVICE_BTN_TL2@ ;Decrease selected save state slot by 1 -command.state_slot_dec joystick @GUID1@ @DEVICE_BTN_THUMBL@ && joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ +command.state_slot_dec joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_DPAD_LEFT@ ;Increase selected save state slot by 1 -command.state_slot_inc joystick @GUID1@ @DEVICE_BTN_THUMBL@ && joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ +command.state_slot_inc joystick @GUID1@ @DEVICE_BTN_THUMBR@ && joystick @GUID1@ @DEVICE_BTN_DPAD_RIGHT@ ;Take scaled(and filtered) screen snapshot command.take_scaled_snapshot keyboard 0x0 66+shift From 5d4f3906f6d6bcccd877ed5910439863e339ef98 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Mon, 6 Nov 2023 11:24:29 +0000 Subject: [PATCH 081/112] Migrate boot.ini to device folder. --- projects/Rockchip/bootloader/install | 36 ++---------------------- projects/Rockchip/bootloader/mkimage | 41 ++++------------------------ 2 files changed, 8 insertions(+), 69 deletions(-) diff --git a/projects/Rockchip/bootloader/install b/projects/Rockchip/bootloader/install index b9e5e0d25..ec04a46ce 100755 --- a/projects/Rockchip/bootloader/install +++ b/projects/Rockchip/bootloader/install @@ -85,43 +85,11 @@ fi ;; esac - if [ "${BOOT_INI}" == true ] then echo "boot: create boot.ini..." - cat >${INSTALL}/usr/share/bootloader/boot.ini <"${LE_TMP}/boot.ini" < Date: Mon, 6 Nov 2023 11:41:01 +0000 Subject: [PATCH 082/112] Add boot.ini. --- .../Rockchip/devices/RK3326/boot/boot.ini | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 projects/Rockchip/devices/RK3326/boot/boot.ini diff --git a/projects/Rockchip/devices/RK3326/boot/boot.ini b/projects/Rockchip/devices/RK3326/boot/boot.ini new file mode 100644 index 000000000..678023110 --- /dev/null +++ b/projects/Rockchip/devices/RK3326/boot/boot.ini @@ -0,0 +1,31 @@ +odroidgoa-uboot-config + +setenv bootargs "boot=UUID=@UUID_SYSTEM@ disk=UUID=@UUID_STORAGE@ @EXTRA_CMDLINE@" + +setenv loadaddr "0x02000000" +setenv dtb_loadaddr "0x01f00000" + +load mmc 1:1 ${loadaddr} KERNEL + +if test ${hwrev} = 'v11'; then + if gpio input c22; then + if gpio input d9; then + load mmc 1:1 ${dtb_loadaddr} rk3326-powkiddy-rgb10.dtb + else + load mmc 1:1 ${dtb_loadaddr} rk3326-odroid-go2-v11.dtb + fi + else + load mmc 1:1 ${dtb_loadaddr} rk3326-anbernic-rg351m.dtb + fi +elif test ${hwrev} = 'v10-go3'; then + load mmc 1:1 ${dtb_loadaddr} rk3326-odroid-go3.dtb +elif test ${hwrev} = 'v10'; then + load mmc 1:1 ${dtb_loadaddr} rk3326-odroid-go2.dtb +elif test ${hwrev} = 'rg351v'; then + load mmc 1:1 ${dtb_loadaddr} rk3326-anbernic-rg351v.dtb +elif test ${hwrev} = 'rg351mp'; then + load mmc 1:1 ${dtb_loadaddr} rk3326-anbernic-rg351mp.dtb +fi + +booti ${loadaddr} - ${dtb_loadaddr} + From 575f6e4b18e1edc2856239bc087036794653f50d Mon Sep 17 00:00:00 2001 From: fewtarius Date: Mon, 6 Nov 2023 12:27:57 +0000 Subject: [PATCH 083/112] Bug fix, correct rewrite of boot.ini after updating. --- projects/Rockchip/bootloader/install | 2 +- projects/Rockchip/bootloader/mkimage | 6 +++--- projects/Rockchip/bootloader/update.sh | 20 ++++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/projects/Rockchip/bootloader/install b/projects/Rockchip/bootloader/install index ec04a46ce..439835862 100755 --- a/projects/Rockchip/bootloader/install +++ b/projects/Rockchip/bootloader/install @@ -108,6 +108,6 @@ cat << EOF > "${INSTALL}/usr/share/bootloader/extlinux/extlinux.conf" LABEL ${DISTRO} LINUX /${KERNEL_NAME} ${FDTMODE} - APPEND boot=UUID=@BOOT_UUID@ disk=UUID=@DISK_UUID@ ${EXTRA_CMDLINE} + APPEND boot=UUID=@UUID_SYSTEM@ disk=UUID=@UUID_STORAGE@ ${EXTRA_CMDLINE} EOF fi diff --git a/projects/Rockchip/bootloader/mkimage b/projects/Rockchip/bootloader/mkimage index 7f8a653e8..873d59d83 100755 --- a/projects/Rockchip/bootloader/mkimage +++ b/projects/Rockchip/bootloader/mkimage @@ -51,9 +51,9 @@ if [ "${BOOT_INI}" == true ] then echo "boot: create boot.ini..." cp -f ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/boot/boot.ini ${LE_TMP}/boot.ini - sed -i "s~@UUID_SYSTEM@~${UUID_SYSTEM}~g" ${INSTALL}/usr/share/bootloader/boot.ini - sed -i "s~@UUID_STORAGE@~${UUID_STORAGE}~g" ${INSTALL}/usr/share/bootloader/boot.ini - sed -i "s~@EXTRA_CMDLINE@~${EXTRA_CMDLINE}~g" ${INSTALL}/usr/share/bootloader/boot.ini + sed -i "s~@UUID_SYSTEM@~${UUID_SYSTEM}~g" ${LE_TMP}/boot.ini + sed -i "s~@UUID_STORAGE@~${UUID_STORAGE}~g" ${LE_TMP}/boot.ini + sed -i "s~@EXTRA_CMDLINE@~${EXTRA_CMDLINE}~g" ${LE_TMP}/boot.ini mcopy -so "${LE_TMP}/boot.ini" :: fi diff --git a/projects/Rockchip/bootloader/update.sh b/projects/Rockchip/bootloader/update.sh index a6210aab8..97a37ea67 100755 --- a/projects/Rockchip/bootloader/update.sh +++ b/projects/Rockchip/bootloader/update.sh @@ -27,13 +27,13 @@ for arg in $(cat /proc/cmdline); do boot="${arg#*=}" case $boot in /dev/mmc*) - BOOT_UUID="$(blkid $boot | sed 's/.* UUID="//;s/".*//g')" + UUID_SYSTEM="$(blkid $boot | sed 's/.* UUID="//;s/".*//g')" ;; UUID=*|LABEL=*) - BOOT_UUID="$(blkid | sed 's/"//g' | grep -m 1 -i " $boot " | sed 's/.* UUID=//;s/ .*//g')" + UUID_SYSTEM="$(blkid | sed 's/"//g' | grep -m 1 -i " $boot " | sed 's/.* UUID=//;s/ .*//g')" ;; FOLDER=*) - BOOT_UUID="$(blkid ${boot#*=} | sed 's/.* UUID="//;s/".*//g')" + UUID_SYSTEM="$(blkid ${boot#*=} | sed 's/.* UUID="//;s/".*//g')" ;; esac ;; @@ -41,13 +41,13 @@ for arg in $(cat /proc/cmdline); do disk="${arg#*=}" case $disk in /dev/mmc*) - DISK_UUID="$(blkid $disk | sed 's/.* UUID="//;s/".*//g')" + UUID_STORAGE="$(blkid $disk | sed 's/.* UUID="//;s/".*//g')" ;; UUID=*|LABEL=*) - DISK_UUID="$(blkid | sed 's/"//g' | grep -m 1 -i " $disk " | sed 's/.* UUID=//;s/ .*//g')" + UUID_STORAGE="$(blkid | sed 's/"//g' | grep -m 1 -i " $disk " | sed 's/.* UUID=//;s/ .*//g')" ;; FOLDER=*) - DISK_UUID="$(blkid ${disk#*=} | sed 's/.* UUID="//;s/".*//g')" + UUID_STORAGE="$(blkid ${disk#*=} | sed 's/.* UUID="//;s/".*//g')" ;; esac ;; @@ -60,16 +60,16 @@ for all_conf in $CONFS; do conf="$(basename ${all_conf})" echo "Updating ${conf}..." cp -p $SYSTEM_ROOT/usr/share/bootloader/extlinux/${conf} $BOOT_ROOT/extlinux/${conf} &>/dev/null - sed -e "s/@BOOT_UUID@/$BOOT_UUID/" \ - -e "s/@DISK_UUID@/$DISK_UUID/" \ + sed -e "s/@UUID_SYSTEM@/${UUID_SYSTEM}/" \ + -e "s/@UUID_STORAGE@/${UUID_STORAGE}/" \ -i $BOOT_ROOT/extlinux/${conf} done if [ -f $SYSTEM_ROOT/usr/share/bootloader/boot.ini ]; then echo "Updating boot.ini..." cp -p $SYSTEM_ROOT/usr/share/bootloader/boot.ini $BOOT_ROOT/boot.ini &>/dev/null - sed -e "s/@BOOT_UUID@/$BOOT_UUID/" \ - -e "s/@DISK_UUID@/$DISK_UUID/" \ + sed -e "s/@UUID_SYSTEM@/${UUID_SYSTEM}/" \ + -e "s/@UUID_STORAGE@/${UUID_STORAGE}/" \ -i $BOOT_ROOT/boot.ini fi From 9ac7ac1455660df939482a524e46c663e5747808 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Mon, 6 Nov 2023 15:36:53 +0000 Subject: [PATCH 084/112] Disable sleep changes, enable usb debugging. --- .../Rockchip/devices/RK3566/linux/linux.aarch64.conf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf index 4124d4bcb..c0b67038f 100644 --- a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf @@ -456,13 +456,13 @@ CONFIG_HIBERNATION=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set -CONFIG_PM_WAKELOCKS=y +# CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_PM_TEST_SUSPEND=y +# CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_SLEEP_DEBUG=y -CONFIG_DPM_WATCHDOG=y +# CONFIG_DPM_WATCHDOG is not set CONFIG_PM_CLK=y CONFIG_PM_GENERIC_DOMAINS=y CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y @@ -4268,13 +4268,13 @@ CONFIG_USB_DWC2_DUAL_ROLE=y # USB port drivers # CONFIG_USB_SERIAL=y -# CONFIG_USB_SERIAL_CONSOLE is not set +CONFIG_USB_SERIAL_CONSOLE=y CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_SIMPLE is not set # CONFIG_USB_SERIAL_AIRCABLE is not set # CONFIG_USB_SERIAL_ARK3116 is not set # CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_CH341 is not set +CONFIG_USB_SERIAL_CH341=y # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set CONFIG_USB_SERIAL_CP210X=y From 78d506e423efacef4e55804a268d93d85b0684bc Mon Sep 17 00:00:00 2001 From: fewtarius Date: Mon, 6 Nov 2023 18:55:42 +0000 Subject: [PATCH 085/112] Fix RK3566 startup issues. --- packages/lang/Python3/package.mk | 2 +- packages/sysutils/e2fsprogs/package.mk | 11 +++++++++++ .../devices/RK3566-X55/linux/linux.aarch64.conf | 2 +- .../Rockchip/devices/RK3566/linux/linux.aarch64.conf | 2 +- projects/Rockchip/packages/linux/package.mk | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/lang/Python3/package.mk b/packages/lang/Python3/package.mk index 3f8330c4d..7c0ad59fc 100644 --- a/packages/lang/Python3/package.mk +++ b/packages/lang/Python3/package.mk @@ -4,7 +4,7 @@ PKG_NAME="Python3" # When changing PKG_VERSION remember to sync PKG_PYTHON_VERSION! -PKG_VERSION="3.11.4" +PKG_VERSION="3.11.6" PKG_LICENSE="OSS" PKG_SITE="https://www.python.org/" PKG_URL="https://www.python.org/ftp/python/${PKG_VERSION}/${PKG_NAME::-1}-${PKG_VERSION}.tar.xz" diff --git a/packages/sysutils/e2fsprogs/package.mk b/packages/sysutils/e2fsprogs/package.mk index 046ff847a..b2b1517f2 100644 --- a/packages/sysutils/e2fsprogs/package.mk +++ b/packages/sysutils/e2fsprogs/package.mk @@ -74,6 +74,17 @@ pre_configure() { post_makeinstall_target() { make -C lib/et LIBMODE=644 DESTDIR=${SYSROOT_PREFIX} install + + rm -rf ${INSTALL}/usr/sbin/badblocks + rm -rf ${INSTALL}/usr/sbin/blkid + rm -rf ${INSTALL}/usr/sbin/dumpe2fs + rm -rf ${INSTALL}/usr/sbin/e2freefrag + rm -rf ${INSTALL}/usr/sbin/e2undo + rm -rf ${INSTALL}/usr/sbin/e4defrag + rm -rf ${INSTALL}/usr/sbin/filefrag + rm -rf ${INSTALL}/usr/sbin/fsck + rm -rf ${INSTALL}/usr/sbin/logsave + rm -rf ${INSTALL}/usr/sbin/mklost+found } makeinstall_init() { diff --git a/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf index ce5235d7e..1e3a090b3 100644 --- a/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3566-X55/linux/linux.aarch64.conf @@ -452,7 +452,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HAS_WAKELOCK=y CONFIG_WAKELOCK=y -CONFIG_HIBERNATION=y +# CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set diff --git a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf index c0b67038f..c6c14213c 100644 --- a/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3566/linux/linux.aarch64.conf @@ -452,7 +452,7 @@ CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HAS_WAKELOCK=y CONFIG_WAKELOCK=y -CONFIG_HIBERNATION=y +# CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 07988b851..3d5efdca6 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -25,7 +25,7 @@ case ${DEVICE} in ;; RK3566) PKG_URL="${PKG_SITE}/rk356x-kernel.git" - PKG_VERSION="7aac6327c" + PKG_VERSION="9e8a8b1" GET_HANDLER_SUPPORT="git" PKG_GIT_CLONE_BRANCH="main" ;; From 71447437ff6548fdbb336a10be2d4c65e5238d5d Mon Sep 17 00:00:00 2001 From: mason Date: Mon, 6 Nov 2023 21:22:52 +0000 Subject: [PATCH 086/112] RK3399 kernel config updates --- .../devices/RK3399/linux/linux.aarch64.conf | 384 +++++++----------- 1 file changed, 146 insertions(+), 238 deletions(-) diff --git a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf index 85d88a794..2957660a5 100644 --- a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf @@ -38,9 +38,9 @@ CONFIG_SYSVIPC_SYSCTL=y CONFIG_SYSVIPC_COMPAT=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_WATCH_QUEUE=y -# CONFIG_CROSS_MEMORY_ATTACH is not set -CONFIG_USELIB=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set # CONFIG_AUDIT is not set CONFIG_HAVE_ARCH_AUDITSYSCALL=y @@ -99,12 +99,10 @@ CONFIG_BPF_SYSCALL=y # CONFIG_BPF_PRELOAD is not set # end of BPF subsystem -CONFIG_PREEMPT_BUILD=y +CONFIG_PREEMPT_VOLUNTARY_BUILD=y # CONFIG_PREEMPT_NONE is not set -# CONFIG_PREEMPT_VOLUNTARY is not set -CONFIG_PREEMPT=y -CONFIG_PREEMPT_COUNT=y -CONFIG_PREEMPTION=y +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set # CONFIG_PREEMPT_DYNAMIC is not set # @@ -126,12 +124,10 @@ CONFIG_CPU_ISOLATION=y # RCU Subsystem # CONFIG_TREE_RCU=y -CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y -CONFIG_TASKS_RCU=y CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y @@ -168,9 +164,9 @@ CONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y -CONFIG_RT_GROUP_SCHED=y +# CONFIG_RT_GROUP_SCHED is not set CONFIG_CGROUP_PIDS=y -CONFIG_CGROUP_RDMA=y +# CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y @@ -338,33 +334,33 @@ CONFIG_ARCH_ROCKCHIP=y # ARM errata workarounds via the alternatives framework # CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y -# CONFIG_ARM64_ERRATUM_826319 is not set -# CONFIG_ARM64_ERRATUM_827319 is not set -# CONFIG_ARM64_ERRATUM_824069 is not set -# CONFIG_ARM64_ERRATUM_819472 is not set +CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y +CONFIG_ARM64_ERRATUM_826319=y +CONFIG_ARM64_ERRATUM_827319=y +CONFIG_ARM64_ERRATUM_824069=y +CONFIG_ARM64_ERRATUM_819472=y # CONFIG_ARM64_ERRATUM_832075 is not set CONFIG_ARM64_ERRATUM_1742098=y -# CONFIG_ARM64_ERRATUM_845719 is not set -# CONFIG_ARM64_ERRATUM_843419 is not set +CONFIG_ARM64_ERRATUM_845719=y +CONFIG_ARM64_ERRATUM_843419=y CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y # CONFIG_ARM64_ERRATUM_1024718 is not set # CONFIG_ARM64_ERRATUM_1418040 is not set +CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y # CONFIG_ARM64_ERRATUM_1165522 is not set -# CONFIG_ARM64_ERRATUM_1319367 is not set +CONFIG_ARM64_ERRATUM_1319367=y # CONFIG_ARM64_ERRATUM_1530923 is not set -CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y -CONFIG_ARM64_ERRATUM_2441007=y +# CONFIG_ARM64_ERRATUM_2441007 is not set # CONFIG_ARM64_ERRATUM_1286807 is not set # CONFIG_ARM64_ERRATUM_1463225 is not set # CONFIG_ARM64_ERRATUM_1542419 is not set # CONFIG_ARM64_ERRATUM_1508412 is not set # CONFIG_ARM64_ERRATUM_2051678 is not set -CONFIG_ARM64_ERRATUM_2077057=y -CONFIG_ARM64_ERRATUM_2658417=y +# CONFIG_ARM64_ERRATUM_2077057 is not set +# CONFIG_ARM64_ERRATUM_2658417 is not set # CONFIG_ARM64_ERRATUM_2054223 is not set # CONFIG_ARM64_ERRATUM_2067961 is not set -CONFIG_ARM64_ERRATUM_2441009=y -CONFIG_ARM64_ERRATUM_2457168=y +# CONFIG_ARM64_ERRATUM_2441009 is not set CONFIG_ARM64_ERRATUM_2966298=y # CONFIG_CAVIUM_ERRATUM_22375 is not set # CONFIG_CAVIUM_ERRATUM_23154 is not set @@ -427,8 +423,8 @@ CONFIG_KUSER_HELPERS=y # # ARMv8.1 architectural features # -CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_PAN=y +# CONFIG_ARM64_HW_AFDBM is not set +# CONFIG_ARM64_PAN is not set CONFIG_AS_HAS_LDAPR=y CONFIG_AS_HAS_LSE_ATOMICS=y # end of ARMv8.1 architectural features @@ -439,15 +435,14 @@ CONFIG_AS_HAS_LSE_ATOMICS=y CONFIG_AS_HAS_ARMV8_2=y CONFIG_AS_HAS_SHA3=y # CONFIG_ARM64_PMEM is not set -CONFIG_ARM64_RAS_EXTN=y -CONFIG_ARM64_CNP=y +# CONFIG_ARM64_RAS_EXTN is not set +# CONFIG_ARM64_CNP is not set # end of ARMv8.2 architectural features # # ARMv8.3 architectural features # -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y +# CONFIG_ARM64_PTR_AUTH is not set CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y CONFIG_AS_HAS_PAC=y @@ -457,9 +452,9 @@ CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y # # ARMv8.4 architectural features # -CONFIG_ARM64_AMU_EXTN=y +# CONFIG_ARM64_AMU_EXTN is not set CONFIG_AS_HAS_ARMV8_4=y -CONFIG_ARM64_TLB_RANGE=y +# CONFIG_ARM64_TLB_RANGE is not set # end of ARMv8.4 architectural features # @@ -470,13 +465,11 @@ CONFIG_AS_HAS_ARMV8_5=y CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y # CONFIG_ARM64_E0PD is not set CONFIG_ARM64_AS_HAS_MTE=y -CONFIG_ARM64_MTE=y # end of ARMv8.5 architectural features # # ARMv8.7 architectural features # -CONFIG_ARM64_EPAN=y # end of ARMv8.7 architectural features CONFIG_ARM64_SVE=y @@ -484,8 +477,7 @@ CONFIG_ARM64_SME=y CONFIG_ARM64_MODULE_PLTS=y # CONFIG_ARM64_PSEUDO_NMI is not set CONFIG_RELOCATABLE=y -CONFIG_RANDOMIZE_BASE=y -CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +# CONFIG_RANDOMIZE_BASE is not set CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y CONFIG_STACKPROTECTOR_PER_TASK=y CONFIG_ARCH_NR_GPIO=0 @@ -536,7 +528,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y -CONFIG_CPU_IDLE_GOV_LADDER=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_CPU_IDLE_GOV_TEO is not set CONFIG_DT_IDLE_STATES=y @@ -585,7 +577,6 @@ CONFIG_HAVE_KVM=y # # General architecture-dependent options # -CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y # CONFIG_KPROBES is not set # CONFIG_JUMP_LABEL is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -714,7 +705,7 @@ CONFIG_MODPROBE_PATH="/sbin/modprobe" # CONFIG_TRIM_UNUSED_KSYMS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y -CONFIG_BLOCK_LEGACY_AUTOLOAD=y +# CONFIG_BLOCK_LEGACY_AUTOLOAD is not set CONFIG_BLK_DEV_BSG_COMMON=y CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set @@ -765,7 +756,57 @@ CONFIG_MQ_IOSCHED_DEADLINE=y # end of IO Schedulers CONFIG_ASN1=y -CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_LOCK=y +CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_READ_LOCK=y +CONFIG_ARCH_INLINE_READ_LOCK_BH=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_READ_UNLOCK=y +CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_WRITE_LOCK=y +CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_SPIN_TRYLOCK=y +CONFIG_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_INLINE_SPIN_LOCK=y +CONFIG_INLINE_SPIN_LOCK_BH=y +CONFIG_INLINE_SPIN_LOCK_IRQ=y +CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_INLINE_SPIN_UNLOCK_BH=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_READ_LOCK=y +CONFIG_INLINE_READ_LOCK_BH=y +CONFIG_INLINE_READ_LOCK_IRQ=y +CONFIG_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_BH=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_WRITE_LOCK=y +CONFIG_INLINE_WRITE_LOCK_BH=y +CONFIG_INLINE_WRITE_LOCK_IRQ=y +CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_BH=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y @@ -788,9 +829,9 @@ CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y CONFIG_ARCH_HAVE_ELF_PROT=y CONFIG_ARCH_USE_GNU_PROPERTY=y CONFIG_ELFCORE=y -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_BINFMT_SCRIPT=y -CONFIG_BINFMT_MISC=y +# CONFIG_BINFMT_MISC is not set CONFIG_COREDUMP=y # end of Executable file formats @@ -823,6 +864,7 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_FAST_GUP=y CONFIG_ARCH_KEEP_MEMBLOCK=y +CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y # CONFIG_MEMORY_HOTPLUG is not set @@ -848,7 +890,6 @@ CONFIG_ARCH_HAS_PTE_DEVMAP=y CONFIG_ARCH_HAS_ZONE_DMA_SET=y CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA32=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y # CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_TEST is not set @@ -1380,11 +1421,10 @@ CONFIG_HAVE_PCI=y # # Generic Driver Options # -CONFIG_UEVENT_HELPER=y -CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y -CONFIG_DEVTMPFS_SAFE=y +# CONFIG_DEVTMPFS_SAFE is not set CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y @@ -1392,20 +1432,18 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # Firmware loader # CONFIG_FW_LOADER=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_FW_LOADER_SYSFS=y CONFIG_EXTRA_FIRMWARE="" -CONFIG_FW_LOADER_USER_HELPER=y -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +# CONFIG_FW_LOADER_USER_HELPER is not set # CONFIG_FW_LOADER_COMPRESS is not set CONFIG_FW_CACHE=y # CONFIG_FW_UPLOAD is not set # end of Firmware loader CONFIG_WANT_DEV_COREDUMP=y -# CONFIG_ALLOW_DEV_COREDUMP is not set +CONFIG_ALLOW_DEV_COREDUMP=y +CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set -CONFIG_DEBUG_DEVRES=y +# CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_GENERIC_CPU_AUTOPROBE=y @@ -1430,8 +1468,7 @@ CONFIG_GENERIC_ARCH_TOPOLOGY=y # CONFIG_MHI_BUS_EP is not set # end of Bus devices -CONFIG_CONNECTOR=y -CONFIG_PROC_EVENTS=y +# CONFIG_CONNECTOR is not set # # Firmware Drivers @@ -1494,12 +1531,9 @@ CONFIG_ZRAM_DEF_COMP="lzo-rle" # CONFIG_ZRAM_MEMORY_TRACKING is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -CONFIG_BLK_DEV_DRBD=m -# CONFIG_DRBD_FAULT_INJECTION is not set +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=1 -CONFIG_BLK_DEV_RAM_SIZE=4096 +# CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set CONFIG_ATA_OVER_ETH=m CONFIG_BLK_DEV_RBD=m @@ -1568,11 +1602,11 @@ CONFIG_EEPROM_93CX6=y # SCSI device support # CONFIG_SCSI_MOD=y -CONFIG_RAID_ATTRS=m +# CONFIG_RAID_ATTRS is not set CONFIG_SCSI_COMMON=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y -CONFIG_SCSI_PROC_FS=y +# CONFIG_SCSI_PROC_FS is not set # # SCSI support type (disk, tape, CD-ROM) @@ -1585,15 +1619,15 @@ CONFIG_BLK_DEV_BSG=y # CONFIG_CHR_DEV_SCH is not set # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set -CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_SCAN_ASYNC is not set # # SCSI Transports # -CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set -CONFIG_SCSI_SAS_ATTRS=m +# CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set # end of SCSI Transports @@ -1761,18 +1795,8 @@ CONFIG_MDIO_DEVRES=y # # end of PCS device drivers -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -# CONFIG_PPP_FILTER is not set -# CONFIG_PPP_MPPE is not set -# CONFIG_PPP_MULTILINK is not set -CONFIG_PPPOE=m -# CONFIG_PPTP is not set -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m +# CONFIG_PPP is not set # CONFIG_SLIP is not set -CONFIG_SLHC=m CONFIG_USB_NET_DRIVERS=y # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set @@ -2056,7 +2080,7 @@ CONFIG_JOYSTICK_ADC=y # CONFIG_JOYSTICK_JOYDUMP is not set CONFIG_JOYSTICK_XPAD=m CONFIG_JOYSTICK_XPAD_FF=y -# CONFIG_JOYSTICK_XPAD_LEDS is not set +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_JOYSTICK_PSXPAD_SPI is not set # CONFIG_JOYSTICK_PXRC is not set # CONFIG_JOYSTICK_QWIIC is not set @@ -2172,20 +2196,7 @@ CONFIG_INPUT_RK805_PWRKEY=y # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set -CONFIG_RMI4_CORE=y -# CONFIG_RMI4_I2C is not set -# CONFIG_RMI4_SPI is not set -# CONFIG_RMI4_SMB is not set -CONFIG_RMI4_F03=y -CONFIG_RMI4_F03_SERIO=y -CONFIG_RMI4_2D_SENSOR=y -CONFIG_RMI4_F11=y -CONFIG_RMI4_F12=y -CONFIG_RMI4_F30=y -# CONFIG_RMI4_F34 is not set -# CONFIG_RMI4_F3A is not set -# CONFIG_RMI4_F54 is not set -# CONFIG_RMI4_F55 is not set +# CONFIG_RMI4_CORE is not set # # Hardware I/O ports @@ -2227,7 +2238,7 @@ CONFIG_LDISC_AUTOLOAD=y CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_16550A_VARIANTS=y +# CONFIG_SERIAL_8250_16550A_VARIANTS is not set # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y @@ -2286,18 +2297,7 @@ CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_DEVMEM=y -CONFIG_TCG_TPM=y -CONFIG_HW_RANDOM_TPM=y -# CONFIG_TCG_TIS is not set -# CONFIG_TCG_TIS_SPI is not set -# CONFIG_TCG_TIS_I2C is not set -# CONFIG_TCG_TIS_I2C_CR50 is not set -# CONFIG_TCG_TIS_I2C_ATMEL is not set -CONFIG_TCG_TIS_I2C_INFINEON=y -# CONFIG_TCG_TIS_I2C_NUVOTON is not set -# CONFIG_TCG_VTPM_PROXY is not set -# CONFIG_TCG_TIS_ST33ZP24_I2C is not set -# CONFIG_TCG_TIS_ST33ZP24_SPI is not set +# CONFIG_TCG_TPM is not set # CONFIG_XILLYBUS is not set # CONFIG_XILLYUSB is not set CONFIG_RANDOM_TRUST_CPU=y @@ -2444,7 +2444,7 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # -CONFIG_PTP_1588_CLOCK_KVM=y +# CONFIG_PTP_1588_CLOCK_KVM is not set # CONFIG_PTP_1588_CLOCK_IDT82P33 is not set # CONFIG_PTP_1588_CLOCK_IDTCM is not set # end of PTP clock support @@ -3034,10 +3034,9 @@ CONFIG_CEC_NOTIFIER=y # # CEC support # -CONFIG_MEDIA_CEC_RC=y +# CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CEC_SUPPORT=y # CONFIG_CEC_CH7322 is not set -# CONFIG_CEC_GPIO is not set CONFIG_USB_PULSE8_CEC=m CONFIG_USB_RAINSHADOW_CEC=m # end of CEC support @@ -3053,9 +3052,9 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_ANALOG_TV_SUPPORT=y CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_MEDIA_SDR_SUPPORT=y +# CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_TEST_SUPPORT=y +# CONFIG_MEDIA_TEST_SUPPORT is not set # end of Media device types CONFIG_VIDEO_DEV=y @@ -3119,8 +3118,7 @@ CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_SI470X is not set CONFIG_MEDIA_PLATFORM_DRIVERS=y CONFIG_V4L_PLATFORM_DRIVERS=y -# CONFIG_SDR_PLATFORM_DRIVERS is not set -CONFIG_DVB_PLATFORM_DRIVERS=y +# CONFIG_DVB_PLATFORM_DRIVERS is not set CONFIG_V4L_MEM2MEM_DRIVERS=y # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set # CONFIG_VIDEO_MUX is not set @@ -3224,8 +3222,6 @@ CONFIG_VIDEO_ROCKCHIP_ISP1=y # MMC/SDIO DVB adapters # # CONFIG_SMS_SDIO_DRV is not set -# CONFIG_V4L_TEST_DRIVERS is not set -# CONFIG_DVB_TEST_DRIVERS is not set CONFIG_VIDEOBUF2_CORE=y CONFIG_VIDEOBUF2_V4L2=y CONFIG_VIDEOBUF2_MEMOPS=y @@ -3355,7 +3351,6 @@ CONFIG_VIDEO_MSP3400=m # # SDR tuner chips # -# CONFIG_SDR_MAX2175 is not set # end of SDR tuner chips # @@ -3494,7 +3489,6 @@ CONFIG_MEDIA_TUNER_XC5000=y # CONFIG_DVB_NXT6000 is not set # CONFIG_DVB_RTL2830 is not set # CONFIG_DVB_RTL2832 is not set -# CONFIG_DVB_RTL2832_SDR is not set # CONFIG_DVB_S5H1432 is not set # CONFIG_DVB_SI2168 is not set # CONFIG_DVB_SP887X is not set @@ -3579,11 +3573,6 @@ CONFIG_MEDIA_TUNER_XC5000=y CONFIG_DVB_CXD2099=m CONFIG_DVB_SP2=m # end of Customise DVB Frontends - -# -# Tools to develop new frontends -# -# CONFIG_DVB_DUMMY_FE is not set # end of Media ancillary drivers # @@ -3600,7 +3589,6 @@ CONFIG_DRM_FBDEV_OVERALLOC=200 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set CONFIG_DRM_DISPLAY_HELPER=y -CONFIG_DRM_DISPLAY_DP_HELPER=y CONFIG_DRM_DISPLAY_HDMI_HELPER=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DP_CEC is not set @@ -3631,12 +3619,12 @@ CONFIG_DRM_ROCKCHIP=y CONFIG_ROCKCHIP_VOP=y # CONFIG_ROCKCHIP_VOP2 is not set # CONFIG_ROCKCHIP_ANALOGIX_DP is not set -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y # CONFIG_ROCKCHIP_INNO_HDMI is not set # CONFIG_ROCKCHIP_LVDS is not set -CONFIG_ROCKCHIP_RGB=y +# CONFIG_ROCKCHIP_RGB is not set # CONFIG_ROCKCHIP_RK3066_HDMI is not set # CONFIG_DRM_UDL is not set # CONFIG_DRM_RCAR_DW_HDMI is not set @@ -3747,7 +3735,7 @@ CONFIG_DRM_DISPLAY_CONNECTOR=m # CONFIG_DRM_SIL_SII8620 is not set # CONFIG_DRM_SII902X is not set # CONFIG_DRM_SII9234 is not set -CONFIG_DRM_SIMPLE_BRIDGE=y +# CONFIG_DRM_SIMPLE_BRIDGE is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set # CONFIG_DRM_TOSHIBA_TC358762 is not set # CONFIG_DRM_TOSHIBA_TC358764 is not set @@ -3821,7 +3809,6 @@ CONFIG_FB_MODE_HELPERS=y # Frame buffer hardware drivers # # CONFIG_FB_ARMCLCD is not set -# CONFIG_FB_UVESA is not set # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_SMSCUFX is not set @@ -3884,19 +3871,17 @@ CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y # CONFIG_SND_OSSEMUL is not set CONFIG_SND_PCM_TIMER=y -CONFIG_SND_HRTIMER=y -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_MAX_CARDS=32 +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_PROC_FS=y # CONFIG_SND_VERBOSE_PROCFS is not set -CONFIG_SND_VERBOSE_PRINTK=y +# CONFIG_SND_VERBOSE_PRINTK is not set CONFIG_SND_CTL_FAST_LOOKUP=y # CONFIG_SND_DEBUG is not set # CONFIG_SND_CTL_INPUT_VALIDATION is not set CONFIG_SND_SEQUENCER=y -CONFIG_SND_SEQ_DUMMY=y -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +# CONFIG_SND_SEQ_DUMMY is not set # CONFIG_SND_DRIVERS is not set # @@ -3924,15 +3909,13 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # Common SoC Audio options for Freescale CPUs: # # CONFIG_SND_SOC_FSL_ASRC is not set -CONFIG_SND_SOC_FSL_SAI=y -# CONFIG_SND_SOC_FSL_MQS is not set +# CONFIG_SND_SOC_FSL_SAI is not set # CONFIG_SND_SOC_FSL_AUDMIX is not set # CONFIG_SND_SOC_FSL_SSI is not set # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_ESAI is not set # CONFIG_SND_SOC_FSL_MICFIL is not set # CONFIG_SND_SOC_FSL_XCVR is not set -CONFIG_SND_SOC_FSL_UTILS=y # CONFIG_SND_SOC_IMX_AUDMUX is not set # end of SoC Audio for Freescale CPUs @@ -4014,7 +3997,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CX2072X is not set # CONFIG_SND_SOC_DA7213 is not set # CONFIG_SND_SOC_DMIC is not set -CONFIG_SND_SOC_HDMI_CODEC=y +CONFIG_SND_SOC_HDMI_CODEC=m # CONFIG_SND_SOC_ES7134 is not set # CONFIG_SND_SOC_ES7241 is not set CONFIG_SND_SOC_ES8316=y @@ -4141,15 +4124,14 @@ CONFIG_SND_SOC_SPDIF=y CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD=y CONFIG_SND_AUDIO_GRAPH_CARD=y -CONFIG_SND_AUDIO_GRAPH_CARD2=y -CONFIG_SND_AUDIO_GRAPH_CARD2_CUSTOM_SAMPLE=y -CONFIG_SND_TEST_COMPONENT=y +# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set +# CONFIG_SND_TEST_COMPONENT is not set # # HID support # CONFIG_HID=y -CONFIG_HID_BATTERY_STRENGTH=y +# CONFIG_HID_BATTERY_STRENGTH is not set CONFIG_HIDRAW=y CONFIG_UHID=y CONFIG_HID_GENERIC=y @@ -4370,61 +4352,7 @@ CONFIG_USB_DWC2_DUAL_ROLE=y # # USB port drivers # -CONFIG_USB_SERIAL=y -# CONFIG_USB_SERIAL_CONSOLE is not set -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_SIMPLE is not set -# CONFIG_USB_SERIAL_AIRCABLE is not set -# CONFIG_USB_SERIAL_ARK3116 is not set -# CONFIG_USB_SERIAL_BELKIN is not set -CONFIG_USB_SERIAL_CH341=y -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_CP210X is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set -# CONFIG_USB_SERIAL_FTDI_SIO is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_F81232 is not set -# CONFIG_USB_SERIAL_F8153X is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_IUU is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_METRO is not set -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -# CONFIG_USB_SERIAL_MXUPORT is not set -# CONFIG_USB_SERIAL_NAVMAN is not set -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_OTI6858 is not set -# CONFIG_USB_SERIAL_QCAUX is not set -# CONFIG_USB_SERIAL_QUALCOMM is not set -# CONFIG_USB_SERIAL_SPCP8X5 is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set -# CONFIG_USB_SERIAL_SYMBOL is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -CONFIG_USB_SERIAL_WWAN=y -CONFIG_USB_SERIAL_OPTION=y -# CONFIG_USB_SERIAL_OMNINET is not set -# CONFIG_USB_SERIAL_OPTICON is not set -# CONFIG_USB_SERIAL_XSENS_MT is not set -# CONFIG_USB_SERIAL_WISHBONE is not set -# CONFIG_USB_SERIAL_SSU100 is not set -# CONFIG_USB_SERIAL_QT2 is not set -# CONFIG_USB_SERIAL_UPD78F0730 is not set -# CONFIG_USB_SERIAL_XR is not set -# CONFIG_USB_SERIAL_DEBUG is not set +# CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers @@ -4449,7 +4377,7 @@ CONFIG_USB_SERIAL_OPTION=y # CONFIG_USB_EHSET_TEST_FIXTURE is not set # CONFIG_USB_ISIGHTFW is not set # CONFIG_USB_YUREX is not set -CONFIG_USB_EZUSB_FX2=y +# CONFIG_USB_EZUSB_FX2 is not set # CONFIG_USB_HUB_USB251XB is not set # CONFIG_USB_HSIC_USB3503 is not set # CONFIG_USB_HSIC_USB4604 is not set @@ -4576,7 +4504,7 @@ CONFIG_PWRSEQ_SIMPLE=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=32 # CONFIG_SDIO_UART is not set -CONFIG_MMC_TEST=y +# CONFIG_MMC_TEST is not set # # MMC/SD/SDIO Host Controller Drivers @@ -4933,8 +4861,7 @@ CONFIG_R8188EU=m # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_FIELDBUS_DEV is not set # CONFIG_GOLDFISH is not set -CONFIG_CHROME_PLATFORMS=y -# CONFIG_CROS_EC is not set +# CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set # CONFIG_SURFACE_PLATFORMS is not set CONFIG_HAVE_CLK=y @@ -5129,8 +5056,7 @@ CONFIG_EXTCON=y # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set # CONFIG_EXTCON_USBC_TUSB320 is not set -CONFIG_MEMORY=y -# CONFIG_ARM_PL172_MPMC is not set +# CONFIG_MEMORY is not set CONFIG_IIO=y CONFIG_IIO_BUFFER=y CONFIG_IIO_BUFFER_CB=y @@ -5139,12 +5065,12 @@ CONFIG_IIO_BUFFER_CB=y # CONFIG_IIO_BUFFER_HW_CONSUMER is not set CONFIG_IIO_KFIFO_BUF=y CONFIG_IIO_TRIGGERED_BUFFER=y -CONFIG_IIO_CONFIGFS=y +# CONFIG_IIO_CONFIGFS is not set CONFIG_IIO_TRIGGER=y CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_IIO_SW_DEVICE is not set -CONFIG_IIO_SW_TRIGGER=y -CONFIG_IIO_TRIGGERED_EVENT=y +# CONFIG_IIO_SW_TRIGGER is not set +# CONFIG_IIO_TRIGGERED_EVENT is not set # # Accelerometers @@ -5535,7 +5461,7 @@ CONFIG_ROCKCHIP_SARADC=y # # Multiplexers # -CONFIG_IIO_MUX=y +# CONFIG_IIO_MUX is not set # end of Multiplexers # @@ -5546,10 +5472,8 @@ CONFIG_IIO_MUX=y # # Triggers - standalone # -CONFIG_IIO_HRTIMER_TRIGGER=y # CONFIG_IIO_INTERRUPT_TRIGGER is not set -# CONFIG_IIO_TIGHTLOOP_TRIGGER is not set -CONFIG_IIO_SYSFS_TRIGGER=y +# CONFIG_IIO_SYSFS_TRIGGER is not set # end of Triggers - standalone # @@ -5703,12 +5627,12 @@ CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_OCELOT_SERDES is not set CONFIG_PHY_ROCKCHIP_DP=y -CONFIG_PHY_ROCKCHIP_DPHY_RX0=y +# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set CONFIG_PHY_ROCKCHIP_EMMC=y -CONFIG_PHY_ROCKCHIP_INNO_HDMI=y +# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set CONFIG_PHY_ROCKCHIP_INNO_USB2=y -CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY=y -CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=y +# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set +# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set # CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY is not set CONFIG_PHY_ROCKCHIP_PCIE=y # CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set @@ -5743,9 +5667,9 @@ CONFIG_RAS=y # CONFIG_DAX is not set CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y -# CONFIG_NVMEM_RMEM is not set -# CONFIG_NVMEM_ROCKCHIP_EFUSE is not set -# CONFIG_NVMEM_ROCKCHIP_OTP is not set +CONFIG_NVMEM_RMEM=m +CONFIG_NVMEM_ROCKCHIP_EFUSE=y +CONFIG_NVMEM_ROCKCHIP_OTP=m # # HW tracing support @@ -5757,17 +5681,6 @@ CONFIG_NVMEM_SYSFS=y # CONFIG_FPGA is not set # CONFIG_FSI is not set # CONFIG_TEE is not set -CONFIG_MULTIPLEXER=y - -# -# Multiplexer drivers -# -# CONFIG_MUX_ADG792A is not set -# CONFIG_MUX_ADGS1408 is not set -CONFIG_MUX_GPIO=y -CONFIG_MUX_MMIO=y -# end of Multiplexer drivers - CONFIG_PM_OPP=y # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set @@ -6014,7 +5927,6 @@ CONFIG_KEYS=y CONFIG_ENCRYPTED_KEYS=y # CONFIG_USER_DECRYPTED_DATA is not set # CONFIG_KEY_DH_OPERATIONS is not set -# CONFIG_KEY_NOTIFICATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set CONFIG_SECURITYFS=y @@ -6386,7 +6298,6 @@ CONFIG_SGL_ALLOC=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y -CONFIG_LRU_CACHE=m CONFIG_CLZ_TAB=y CONFIG_IRQ_POLL=y CONFIG_MPILIB=y @@ -6486,6 +6397,7 @@ CONFIG_HAVE_KCSAN_COMPILER=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_SLUB_DEBUG is not set # CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_TABLE_CHECK is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_ARCH_HAS_DEBUG_WX=y @@ -6503,11 +6415,10 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y # CONFIG_DEBUG_VM_PGTABLE is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_MEMORY_INIT is not set +CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y -CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_KASAN_SW_TAGS=y @@ -6526,9 +6437,7 @@ CONFIG_HAVE_ARCH_KFENCE=y CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=1 # CONFIG_SOFTLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y +# CONFIG_DETECT_HUNG_TASK is not set # CONFIG_WQ_WATCHDOG is not set # CONFIG_TEST_LOCKUP is not set # end of Debug Oops, Lockups and Hangs @@ -6537,12 +6446,10 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y # Scheduler Debugging # # CONFIG_SCHED_DEBUG is not set -CONFIG_SCHED_INFO=y -CONFIG_SCHEDSTATS=y +# CONFIG_SCHEDSTATS is not set # end of Scheduler Debugging # CONFIG_DEBUG_TIMEKEEPING is not set -# CONFIG_DEBUG_PREEMPT is not set # # Lock Debugging (spinlocks, mutexes, etc...) @@ -6551,7 +6458,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_PROVE_LOCKING is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_RT_MUTEXES is not set -CONFIG_DEBUG_SPINLOCK=y +# CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set # CONFIG_DEBUG_RWSEMS is not set @@ -6580,7 +6487,7 @@ CONFIG_STACKTRACE=y # CONFIG_DEBUG_MAPLE_TREE is not set # end of Debug kernel data structures -CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set # # RCU Debugging @@ -6607,7 +6514,8 @@ CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_SAMPLES is not set -# CONFIG_STRICT_DEVMEM is not set +CONFIG_STRICT_DEVMEM=y +CONFIG_IO_STRICT_DEVMEM=y # # arm64 Debugging From feb2c379cce3987b0bba66fc09757712729d52fe Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Mon, 6 Nov 2023 19:20:25 -0500 Subject: [PATCH 087/112] hardware sorting updates --- config/emulators/3ds.conf | 2 +- config/emulators/atari800.conf | 2 +- config/emulators/pico-8.conf | 2 +- config/emulators/tic-80.conf | 2 +- config/emulators/virtualboy.conf | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/emulators/3ds.conf b/config/emulators/3ds.conf index 1fbdb8141..779b95ae8 100644 --- a/config/emulators/3ds.conf +++ b/config/emulators/3ds.conf @@ -2,7 +2,7 @@ SYSTEM_NAME="3ds" SYSTEM_FULLNAME="3DS" SYSTEM_MANUFACTURER="Nintendo" SYSTEM_RELEASE="2010" -SYSTEM_HARDWARE="console" +SYSTEM_HARDWARE="portable" SYSTEM_PATH="/storage/roms/3ds" SYSTEM_EXTENSION=".3ds .3dsx .elf .axf .cci .cxi .app" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" diff --git a/config/emulators/atari800.conf b/config/emulators/atari800.conf index 97af76f24..e7c0394e9 100644 --- a/config/emulators/atari800.conf +++ b/config/emulators/atari800.conf @@ -2,7 +2,7 @@ SYSTEM_NAME="atari800" SYSTEM_FULLNAME="Atari 800" SYSTEM_MANUFACTURER="Atari" SYSTEM_RELEASE="1979" -SYSTEM_HARDWARE="console" +SYSTEM_HARDWARE="computer" SYSTEM_PATH="/storage/roms/atari800" SYSTEM_EXTENSION=".rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" diff --git a/config/emulators/pico-8.conf b/config/emulators/pico-8.conf index aaf67a0fa..bfc744f84 100644 --- a/config/emulators/pico-8.conf +++ b/config/emulators/pico-8.conf @@ -2,7 +2,7 @@ SYSTEM_NAME="pico-8" SYSTEM_FULLNAME="PICO-8" SYSTEM_MANUFACTURER="Lexaloffle" SYSTEM_RELEASE="2015" -SYSTEM_HARDWARE="console" +SYSTEM_HARDWARE="game engine" SYSTEM_PATH="/storage/roms/pico-8" SYSTEM_EXTENSION=".p8 .png" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" diff --git a/config/emulators/tic-80.conf b/config/emulators/tic-80.conf index 405cdc868..0bd92ff03 100644 --- a/config/emulators/tic-80.conf +++ b/config/emulators/tic-80.conf @@ -2,7 +2,7 @@ SYSTEM_NAME="tic-80" SYSTEM_FULLNAME="TIC-80" SYSTEM_MANUFACTURER="Nesbox" SYSTEM_RELEASE="2017" -SYSTEM_HARDWARE="computer" +SYSTEM_HARDWARE="game engine" SYSTEM_PATH="/storage/roms/tic-80" SYSTEM_EXTENSION=".tic" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" diff --git a/config/emulators/virtualboy.conf b/config/emulators/virtualboy.conf index 2076f5428..21d9e3c37 100644 --- a/config/emulators/virtualboy.conf +++ b/config/emulators/virtualboy.conf @@ -2,7 +2,7 @@ SYSTEM_NAME="virtualboy" SYSTEM_FULLNAME="Virtual Boy" SYSTEM_MANUFACTURER="Nintendo" SYSTEM_RELEASE="1995" -SYSTEM_HARDWARE="console" +SYSTEM_HARDWARE="portable" SYSTEM_PATH="/storage/roms/virtualboy" SYSTEM_EXTENSION=".vb .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" From 3edd76b4ce7bc605ed820248b6e48c11230f1764 Mon Sep 17 00:00:00 2001 From: mason Date: Tue, 7 Nov 2023 16:18:44 +0000 Subject: [PATCH 088/112] Switch Citra repo to main branch --- packages/emulators/standalone/citra-sa/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/emulators/standalone/citra-sa/package.mk b/packages/emulators/standalone/citra-sa/package.mk index 5ac4f11a7..43dc88e47 100644 --- a/packages/emulators/standalone/citra-sa/package.mk +++ b/packages/emulators/standalone/citra-sa/package.mk @@ -2,9 +2,9 @@ # Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) PKG_NAME="citra-sa" -PKG_VERSION="2f4039858a082818b8fff60a7a89794c6259f146" +PKG_VERSION="9b2a592" PKG_LICENSE="MPLv2" -PKG_SITE="https://github.com/JustEnoughLinuxOS/citra-canary" +PKG_SITE="https://github.com/citra-emu/citra" PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain ffmpeg mesa SDL2 boost zlib libusb boost zstd control-gen" PKG_LONGDESC="Citra 3DS emulator" From 1e2b41a2584f07dbe6c2eae41a9e289e5ca0868e Mon Sep 17 00:00:00 2001 From: ab0tj Date: Tue, 7 Nov 2023 17:32:39 +0000 Subject: [PATCH 089/112] esp8089: Improve stability by driving RST high instead of letting it float --- .../esp8089/patches/002-fix_gpio_direction.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch diff --git a/packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch b/packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch new file mode 100644 index 000000000..387e5c2d4 --- /dev/null +++ b/packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch @@ -0,0 +1,14 @@ +diff -rupN esp8089-1.9.20230804.orig/sdio_stub.c esp8089-1.9.20230804/sdio_stub.c +--- esp8089-1.9.20230804.orig/sdio_stub.c 2023-08-04 21:04:02.000000000 +0000 ++++ esp8089-1.9.20230804/sdio_stub.c 2023-11-07 16:38:55.889274803 +0000 +@@ -38,8 +38,9 @@ void sif_platform_reset_target(void) + printk("ESP8089 reset via GPIO %d\n", esp_reset_gpio); + gpio_request(esp_reset_gpio,"esp_reset"); + gpio_direction_output(esp_reset_gpio,0); ++ gpio_set_value(esp_reset_gpio,0); + msleep(200); +- gpio_direction_input(esp_reset_gpio); ++ gpio_set_value(esp_reset_gpio,1); + gpio_free(esp_reset_gpio); + } + From 80e8471ab69bac8b7c743a7a7d4b45b30e839b16 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Tue, 7 Nov 2023 23:46:44 +0000 Subject: [PATCH 090/112] * Historically JELOS configured CPU/GPU/DMC performance modes via a single scheduling function. Prior to implementing powerstate we extended that functionality to also manage AMD GPU performance. This functionality conflicts with powerstate and has been deprecated in favor of new behavior that allows ARM devices to utilize the GPU performance feature previously available for AMD devices only. --- packages/jelos/profile.d/099-freqfunctions | 15 ------- packages/jelos/sources/post-update | 7 ---- .../powerstate/profile.d/030-powerfunctions | 40 +++++++++++++++---- packages/ui/emulationstation/package.mk | 2 +- projects/Rockchip/devices/RK3566/options | 2 +- 5 files changed, 34 insertions(+), 32 deletions(-) diff --git a/packages/jelos/profile.d/099-freqfunctions b/packages/jelos/profile.d/099-freqfunctions index 2954b68f4..a9c4029bd 100644 --- a/packages/jelos/profile.d/099-freqfunctions +++ b/packages/jelos/profile.d/099-freqfunctions @@ -85,41 +85,26 @@ set_gpu_gov() { fi } -set_amdgpu_perf() { - for AMDGPU_PERF_DEVICE in $(find /sys/devices -name power_dpm_force_performance_level 2>/dev/null) - do - echo $1 >${AMDGPU_PERF_DEVICE} 2>/dev/null - done -} - onlinethreads() { set_online_threads ${1} ${2} } performance() { set_cpu_gov performance - set_amdgpu_perf profile_peak - set_gpu_gov performance set_dmc_gov performance } ondemand() { set_cpu_gov ondemand - set_amdgpu_perf auto - set_gpu_gov ondemand set_dmc_gov ondemand } schedutil() { set_cpu_gov schedutil - set_amdgpu_perf auto - set_gpu_gov ondemand set_dmc_gov ondemand } powersave() { set_cpu_gov powersave - set_amdgpu_perf low - set_gpu_gov powersave set_dmc_gov powersave } diff --git a/packages/jelos/sources/post-update b/packages/jelos/sources/post-update index 5ac2e24e4..443ae0697 100644 --- a/packages/jelos/sources/post-update +++ b/packages/jelos/sources/post-update @@ -64,13 +64,6 @@ ln -sf /usr/share/locale /storage/.config/emulationstation/locale >>/var/log/con ### Add items below this line that are safe to remove after a period of time. ################################################################################ -### Added 20230409 as a helper for the quirks refactor. -if [ ! -d "/storage/.config/profile_backup" ] -then - mkdir /storage/.config/profile_backup - mv /storage/.config/profile.d/* /storage/.config/profile_backup -fi - ### 20230913 (reverted) Set the default output to Master for pipewire ES_SETTINGS="/storage/.config/emulationstation/es_settings.cfg" diff --git a/packages/sysutils/powerstate/profile.d/030-powerfunctions b/packages/sysutils/powerstate/profile.d/030-powerfunctions index 0ba2928ea..2446a4a23 100644 --- a/packages/sysutils/powerstate/profile.d/030-powerfunctions +++ b/packages/sysutils/powerstate/profile.d/030-powerfunctions @@ -17,17 +17,41 @@ gpu_power_profile() { } get_gpu_performance_level() { - cat /sys/class/drm/card0/device/power_dpm_force_performance_level 2>/dev/null + case ${HW_ARCH} in + x86_64) + cat /sys/class/drm/card0/device/power_dpm_force_performance_level 2>/dev/null + ;; + aarch64) + get_setting system.gpuperf + ;; + esac } gpu_performance_level() { - for card in /sys/class/drm/card*/device/power_dpm_force_performance_level - do - if [ -e "${card}" ] - then - echo ${1} >${card} 2>/dev/null - fi - done + case ${HW_ARCH} in + x86_64) + for card in /sys/class/drm/card*/device/power_dpm_force_performance_level + do + if [ -e "${card}" ] + then + echo ${1} >${card} 2>/dev/null + fi + done + ;; + aarch64) + case ${1} in + profile_peak) + set_gpu_gov performance + ;; + auto|profile_standard) + set_gpu_gov ondemand + ;; + low) + set_gpu_gov powersave + ;; + esac + ;; + esac } pcie_aspm_policy() { diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index b79070928..337362b79 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="emulationstation" -PKG_VERSION="5155542" +PKG_VERSION="94f95dc" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" diff --git a/projects/Rockchip/devices/RK3566/options b/projects/Rockchip/devices/RK3566/options index ea596ee73..ff8acbc0c 100644 --- a/projects/Rockchip/devices/RK3566/options +++ b/projects/Rockchip/devices/RK3566/options @@ -89,7 +89,7 @@ DRIVER_ADDONS="" #dvb-latest # debug tty path - DEBUG_TTY="/dev/ttyFIQ0" + DEBUG_TTY="/dev/ttyUSB0" # build and install bluetooth support (yes / no) BLUETOOTH_SUPPORT="yes" From aef475a92d1e159516a15c383b345a41e933eee9 Mon Sep 17 00:00:00 2001 From: adamg Date: Wed, 8 Nov 2023 03:08:56 +0000 Subject: [PATCH 091/112] Rockchip/linux: bump package to a7c264a for RK3588 --- projects/Rockchip/packages/linux/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 3d5efdca6..0bded5190 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -18,7 +18,7 @@ PKG_PATCH_DIRS+="${DEVICE}" case ${DEVICE} in RK358*) - PKG_VERSION="9469ea8bd5ed" + PKG_VERSION="a7c264a8249f2058cf8ca624ee5034403412a2c1" PKG_URL="${PKG_SITE}/rk358x-kernel.git" GET_HANDLER_SUPPORT="git" PKG_GIT_CLONE_BRANCH="main" From 06c2d47167e3d8d12d135db2bb7b152950558d8e Mon Sep 17 00:00:00 2001 From: adamg Date: Wed, 8 Nov 2023 08:37:29 +0000 Subject: [PATCH 092/112] packages: introduce new package for RTL8852xx based wifi cards --- .../kernel/linux-drivers/RTL8852xx/package.mk | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/kernel/linux-drivers/RTL8852xx/package.mk diff --git a/packages/kernel/linux-drivers/RTL8852xx/package.mk b/packages/kernel/linux-drivers/RTL8852xx/package.mk new file mode 100644 index 000000000..ffb13a39b --- /dev/null +++ b/packages/kernel/linux-drivers/RTL8852xx/package.mk @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +PKG_NAME="RTL8852xx" +PKG_VERSION="fce040c12fbf93bfd904ded48df60dea2c8d4423" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/lwfinger/rtw89" +PKG_URL="https://github.com/lwfinger/rtw89/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain linux linux-firmware" +PKG_NEED_UNPACK="${LINUX_DEPENDS}" +PKG_LONGDESC="Realtek RTL8852xx Linux driver" +PKG_IS_KERNEL_PKG="yes" +PKG_TOOLCHAIN="make" + +pre_make_target() { + unset LDFLAGS +} + +make_target() { + kernel_make KSRC=$(kernel_path) KVER=$(kernel_version) +} + +makeinstall_target() { + mkdir -p ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} + cp *.ko ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} +} From bcab27b41afb4ad62a193608dc9826e4a61c15ea Mon Sep 17 00:00:00 2001 From: adamg Date: Wed, 8 Nov 2023 08:38:15 +0000 Subject: [PATCH 093/112] RK3588: build RTL8852xx driver --- projects/Rockchip/devices/RK3588/options | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/Rockchip/devices/RK3588/options b/projects/Rockchip/devices/RK3588/options index ea24ecd70..58130a351 100755 --- a/projects/Rockchip/devices/RK3588/options +++ b/projects/Rockchip/devices/RK3588/options @@ -88,6 +88,7 @@ # for a list of additional drivers see packages/linux-drivers # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" + ADDITIONAL_DRIVERS+=" RTL8852xx" # build and install driver addons (yes / no) DRIVER_ADDONS_SUPPORT="no" From b704b4b64ff8d76c84cada35057cc73936c3a6ce Mon Sep 17 00:00:00 2001 From: adamg Date: Wed, 8 Nov 2023 13:40:44 +0000 Subject: [PATCH 094/112] kernel-firmware: install rtw89 firmware for rtl8852xx --- packages/kernel/linux-firmware/kernel-firmware/firmwares/any.dat | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/kernel/linux-firmware/kernel-firmware/firmwares/any.dat b/packages/kernel/linux-firmware/kernel-firmware/firmwares/any.dat index f11d145b4..22ab7452e 100644 --- a/packages/kernel/linux-firmware/kernel-firmware/firmwares/any.dat +++ b/packages/kernel/linux-firmware/kernel-firmware/firmwares/any.dat @@ -20,3 +20,4 @@ ath9k_htc/* brcm/* rtl_bt/* rtlwifi/* +rtw89/* From 0b3a75c4561644163d5c72245812568453df8982 Mon Sep 17 00:00:00 2001 From: ab0tj Date: Wed, 8 Nov 2023 14:28:18 +0000 Subject: [PATCH 095/112] esp8089: Switch to Armbian driver because the previous one has issues with 6.x kernel --- .../esp8089/modprobe.d/esp8089.conf | 1 - .../kernel/linux-drivers/esp8089/package.mk | 34 - .../esp8089/patches/001-fix-sdio-detect.patch | 47 - .../patches/002-fix_gpio_direction.patch | 14 - .../esp8089-firmware/package.mk | 14 + .../devices/RK3326/linux/linux.aarch64.conf | 3 +- projects/Rockchip/devices/RK3326/options | 4 +- .../patches/RK3326/000-rk3326-devices.patch | 11 +- .../RK3326/002-esp8089-kernel-driver.patch | 10930 ++++++++++++++++ 9 files changed, 10955 insertions(+), 103 deletions(-) delete mode 100644 packages/kernel/linux-drivers/esp8089/modprobe.d/esp8089.conf delete mode 100644 packages/kernel/linux-drivers/esp8089/package.mk delete mode 100644 packages/kernel/linux-drivers/esp8089/patches/001-fix-sdio-detect.patch delete mode 100644 packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch create mode 100644 packages/kernel/linux-firmware/esp8089-firmware/package.mk create mode 100644 projects/Rockchip/packages/linux/patches/RK3326/002-esp8089-kernel-driver.patch diff --git a/packages/kernel/linux-drivers/esp8089/modprobe.d/esp8089.conf b/packages/kernel/linux-drivers/esp8089/modprobe.d/esp8089.conf deleted file mode 100644 index 1675e5e6c..000000000 --- a/packages/kernel/linux-drivers/esp8089/modprobe.d/esp8089.conf +++ /dev/null @@ -1 +0,0 @@ -options esp8089 esp_reset_gpio=105 diff --git a/packages/kernel/linux-drivers/esp8089/package.mk b/packages/kernel/linux-drivers/esp8089/package.mk deleted file mode 100644 index 5e0bf327c..000000000 --- a/packages/kernel/linux-drivers/esp8089/package.mk +++ /dev/null @@ -1,34 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) -# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) - -PKG_NAME="esp8089" -PKG_VERSION="1.9.20230804" -PKG_LICENSE="GPL" -PKG_SITE="https://github.com/al177/esp8089" -PKG_URL="https://github.com/al177/esp8089/archive/refs/tags/1.9.20230804.tar.gz" -PKG_DEPENDS_TARGET="toolchain linux" -PKG_NEED_UNPACK="${LINUX_DEPENDS}" -PKG_LONGDESC="ESP8089 Wifi Driver" -PKG_IS_KERNEL_PKG="yes" -PKG_TOOLCHAIN="make" - -pre_make_target() { - unset LDFLAGS -} - -make_target() { - make V=1 \ - ARCH=${TARGET_KERNEL_ARCH} \ - KSRC=$(kernel_path) \ - CROSS_COMPILE=${TARGET_KERNEL_PREFIX} \ - TARGET=$(kernel_version) \ - KERNEL_MODULES=$(get_build_dir linux)/.install_pkg/$(get_full_module_dir) \ - KBUILD=$(get_build_dir linux) -} - -makeinstall_target() { - mkdir -p ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} - cp *.ko ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} -} \ No newline at end of file diff --git a/packages/kernel/linux-drivers/esp8089/patches/001-fix-sdio-detect.patch b/packages/kernel/linux-drivers/esp8089/patches/001-fix-sdio-detect.patch deleted file mode 100644 index 73791e6dd..000000000 --- a/packages/kernel/linux-drivers/esp8089/patches/001-fix-sdio-detect.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- a/sdio_sif_esp.c 2023-08-04 15:04:02.000000000 -0600 -+++ b/sdio_sif_esp.c 2023-10-27 12:08:08.302695270 -0600 -@@ -50,6 +50,24 @@ - //unsigned int esp_msg_level = 0; - unsigned int esp_msg_level = ESP_DBG_ERROR | ESP_SHOW; - -+/* HdG: Note: -+ * 1) MMC_HAS_FORCE_DETECT_CHANGE is a hack which is set by my sunxi-wip -+ * tree. FIXME replace with a version check once mmc_force_detect_change() -+ * is added to the mainline kernel. -+ * 2) This version does NOT implement keep_power, the dts must mark the -+ * regulators as regulator-always-on and not use mmc-pwrseq for this stub -+ * to work. -+ */ -+#ifndef MMC_HAS_FORCE_DETECT_CHANGE -+void mmc_force_detect_change(struct mmc_host *host, unsigned long delay, -+ bool keep_power) -+{ -+ host->caps &= ~MMC_CAP_NONREMOVABLE; -+ host->caps |= MMC_CAP_NEEDS_POLL; -+ mmc_detect_change(host, delay); -+} -+#endif -+ - static struct semaphore esp_powerup_sem; - - static enum esp_sdio_state sif_sdio_state; -@@ -500,6 +518,7 @@ - int err = 0; - struct esp_pub *epub; - struct esp_sdio_ctrl *sctrl; -+ struct mmc_host *host = func->card->host; - - esp_dbg(ESP_DBG_TRACE, - "sdio_func_num: 0x%X, vendor id: 0x%X, dev id: 0x%X, block size: 0x%X/0x%X\n", -@@ -609,6 +628,10 @@ - if(sif_sdio_state == ESP_SDIO_STATE_FIRST_INIT){ - esp_dbg(ESP_DBG_ERROR, "first normal exit\n"); - sif_sdio_state = ESP_SDIO_STATE_FIRST_NORMAL_EXIT; -+ -+ /* Rescan the esp8089 after loading the initial firmware */ -+ mmc_force_detect_change(host, msecs_to_jiffies(100), true); -+ - up(&esp_powerup_sem); - } - - \ No newline at end of file diff --git a/packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch b/packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch deleted file mode 100644 index 387e5c2d4..000000000 --- a/packages/kernel/linux-drivers/esp8089/patches/002-fix_gpio_direction.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -rupN esp8089-1.9.20230804.orig/sdio_stub.c esp8089-1.9.20230804/sdio_stub.c ---- esp8089-1.9.20230804.orig/sdio_stub.c 2023-08-04 21:04:02.000000000 +0000 -+++ esp8089-1.9.20230804/sdio_stub.c 2023-11-07 16:38:55.889274803 +0000 -@@ -38,8 +38,9 @@ void sif_platform_reset_target(void) - printk("ESP8089 reset via GPIO %d\n", esp_reset_gpio); - gpio_request(esp_reset_gpio,"esp_reset"); - gpio_direction_output(esp_reset_gpio,0); -+ gpio_set_value(esp_reset_gpio,0); - msleep(200); -- gpio_direction_input(esp_reset_gpio); -+ gpio_set_value(esp_reset_gpio,1); - gpio_free(esp_reset_gpio); - } - diff --git a/packages/kernel/linux-firmware/esp8089-firmware/package.mk b/packages/kernel/linux-firmware/esp8089-firmware/package.mk new file mode 100644 index 000000000..123ce8a5c --- /dev/null +++ b/packages/kernel/linux-firmware/esp8089-firmware/package.mk @@ -0,0 +1,14 @@ +PKG_NAME="esp8089-firmware" +PKG_VERSION="7221f52b930072f29f5e7f49b7e663224e70cc9e" +PKG_LICENSE="Apache" +PKG_SITE="https://github.com/armbian/firmware" +PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_NEED_UNPACK="${LINUX_DEPENDS}" +PKG_LONGDESC="esp8089 Linux firmware" +PKG_TOOLCHAIN="manual" + +makeinstall_target() { + mkdir -p ${INSTALL}/$(get_kernel_overlay_dir)/lib/firmware + cp -av eagle_fw*.bin ${INSTALL}/$(get_kernel_overlay_dir)/lib/firmware +} diff --git a/projects/Rockchip/devices/RK3326/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3326/linux/linux.aarch64.conf index e7a895a4f..0492efde5 100644 --- a/projects/Rockchip/devices/RK3326/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3326/linux/linux.aarch64.conf @@ -2003,7 +2003,8 @@ CONFIG_WLAN_VENDOR_QUANTENNA=y CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_VIRT_WIFI is not set # CONFIG_WAN is not set - +CONFIG_ESP8089=m +CONFIG_ESP8089_DEBUG_FS=y # # Wireless WAN # diff --git a/projects/Rockchip/devices/RK3326/options b/projects/Rockchip/devices/RK3326/options index a1615330f..bdc800a54 100644 --- a/projects/Rockchip/devices/RK3326/options +++ b/projects/Rockchip/devices/RK3326/options @@ -78,13 +78,13 @@ # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, # e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware" - FIRMWARE="misc-firmware wlan-firmware" + FIRMWARE="misc-firmware wlan-firmware esp8089-firmware" # additional drivers to install: # for a list of additional drivers see packages/linux-drivers # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" - ADDITIONAL_DRIVERS="RTL8812AU RTL8814AU RTL8821AU RTL8821CU RTL88x2BU esp8089" + ADDITIONAL_DRIVERS="RTL8812AU RTL8814AU RTL8821AU RTL8821CU RTL88x2BU" # build and install driver addons (yes / no) DRIVER_ADDONS_SUPPORT="no" diff --git a/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch b/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch index 28e5f9566..15e52e160 100644 --- a/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch +++ b/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-devices.patch @@ -995,7 +995,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi linux/a diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts --- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts 1970-01-01 00:00:00.000000000 +0000 +++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts 2023-10-28 04:02:49.341614140 +0000 -@@ -0,0 +1,300 @@ +@@ -0,0 +1,303 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2019 Hardkernel Co., Ltd @@ -1218,7 +1218,9 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts lin + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_pwrseq_pins>; -+ /*reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;*/ ++ reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>; ++ post-power-on-delay-ms = <300>; ++ power-off-delay-us = <200000>; + }; +}; + @@ -1258,12 +1260,13 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts lin + keep-power-in-suspend; + non-removable; + vmmc-supply = <&vcc_wifi>; ++ mmc-pwrseq = <&wifi_pwrseq>; + status = "okay"; + + esp8089: wifi@1 { + compatible = "esp,esp8089"; + reg = <1>; -+ esp,crystal-26M-en = <2>; ++ esp,crystal-26M-en = <1>; + }; +}; + @@ -1291,7 +1294,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts lin + + wifi { + wifi_pwrseq_pins: wifi-pwrseq-pins { -+ rockchip,pins = /*<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,*/ ++ rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>, + <3 RK_PB6 RK_FUNC_GPIO &pcfg_output_high>; + }; + }; diff --git a/projects/Rockchip/packages/linux/patches/RK3326/002-esp8089-kernel-driver.patch b/projects/Rockchip/packages/linux/patches/RK3326/002-esp8089-kernel-driver.patch new file mode 100644 index 000000000..017ee8f04 --- /dev/null +++ b/projects/Rockchip/packages/linux/patches/RK3326/002-esp8089-kernel-driver.patch @@ -0,0 +1,10930 @@ +From 2d6165af6e9d5ed5026cdf250536c0a00d84fd75 Mon Sep 17 00:00:00 2001 +From: Paolo Sabatino +Date: Sat, 1 Oct 2022 12:43:53 +0000 +Subject: [PATCH] add esp8089 kernel driver + +--- + drivers/net/wireless/Kconfig | 1 + + drivers/net/wireless/Makefile | 1 + + drivers/net/wireless/esp8089/.gitignore | 7 + + drivers/net/wireless/esp8089/Kconfig | 13 + + drivers/net/wireless/esp8089/LICENSE | 340 +++ + drivers/net/wireless/esp8089/Makefile | 7 + + drivers/net/wireless/esp8089/Makefile.old | 99 + + drivers/net/wireless/esp8089/README.md | 31 + + drivers/net/wireless/esp8089/esp_ctrl.c | 801 ++++++ + drivers/net/wireless/esp8089/esp_ctrl.h | 58 + + drivers/net/wireless/esp8089/esp_debug.c | 297 ++ + drivers/net/wireless/esp8089/esp_debug.h | 101 + + drivers/net/wireless/esp8089/esp_ext.c | 542 ++++ + drivers/net/wireless/esp8089/esp_ext.h | 100 + + drivers/net/wireless/esp8089/esp_file.c | 258 ++ + drivers/net/wireless/esp8089/esp_file.h | 43 + + drivers/net/wireless/esp8089/esp_init_data.h | 7 + + drivers/net/wireless/esp8089/esp_io.c | 639 +++++ + drivers/net/wireless/esp8089/esp_mac80211.c | 1727 ++++++++++++ + drivers/net/wireless/esp8089/esp_mac80211.h | 38 + + drivers/net/wireless/esp8089/esp_main.c | 263 ++ + drivers/net/wireless/esp8089/esp_path.h | 6 + + drivers/net/wireless/esp8089/esp_pub.h | 222 ++ + drivers/net/wireless/esp8089/esp_sif.h | 207 ++ + drivers/net/wireless/esp8089/esp_sip.c | 2418 +++++++++++++++++ + drivers/net/wireless/esp8089/esp_sip.h | 171 ++ + drivers/net/wireless/esp8089/esp_utils.c | 262 ++ + drivers/net/wireless/esp8089/esp_utils.h | 41 + + drivers/net/wireless/esp8089/esp_version.h | 1 + + drivers/net/wireless/esp8089/esp_wl.h | 63 + + drivers/net/wireless/esp8089/esp_wmac.h | 92 + + .../wireless/esp8089/firmware/LICENSE-2.0.txt | 203 ++ + drivers/net/wireless/esp8089/sdio_sif_esp.c | 811 ++++++ + drivers/net/wireless/esp8089/sip2_common.h | 475 ++++ + .../net/wireless/esp8089/slc_host_register.h | 271 ++ + 35 files changed, 10616 insertions(+) + create mode 100644 drivers/net/wireless/esp8089/.gitignore + create mode 100644 drivers/net/wireless/esp8089/Kconfig + create mode 100644 drivers/net/wireless/esp8089/LICENSE + create mode 100644 drivers/net/wireless/esp8089/Makefile + create mode 100644 drivers/net/wireless/esp8089/Makefile.old + create mode 100644 drivers/net/wireless/esp8089/README.md + create mode 100644 drivers/net/wireless/esp8089/esp_ctrl.c + create mode 100644 drivers/net/wireless/esp8089/esp_ctrl.h + create mode 100644 drivers/net/wireless/esp8089/esp_debug.c + create mode 100644 drivers/net/wireless/esp8089/esp_debug.h + create mode 100644 drivers/net/wireless/esp8089/esp_ext.c + create mode 100644 drivers/net/wireless/esp8089/esp_ext.h + create mode 100644 drivers/net/wireless/esp8089/esp_file.c + create mode 100644 drivers/net/wireless/esp8089/esp_file.h + create mode 100644 drivers/net/wireless/esp8089/esp_init_data.h + create mode 100644 drivers/net/wireless/esp8089/esp_io.c + create mode 100644 drivers/net/wireless/esp8089/esp_mac80211.c + create mode 100644 drivers/net/wireless/esp8089/esp_mac80211.h + create mode 100644 drivers/net/wireless/esp8089/esp_main.c + create mode 100644 drivers/net/wireless/esp8089/esp_path.h + create mode 100644 drivers/net/wireless/esp8089/esp_pub.h + create mode 100644 drivers/net/wireless/esp8089/esp_sif.h + create mode 100644 drivers/net/wireless/esp8089/esp_sip.c + create mode 100644 drivers/net/wireless/esp8089/esp_sip.h + create mode 100644 drivers/net/wireless/esp8089/esp_utils.c + create mode 100644 drivers/net/wireless/esp8089/esp_utils.h + create mode 100644 drivers/net/wireless/esp8089/esp_version.h + create mode 100644 drivers/net/wireless/esp8089/esp_wl.h + create mode 100644 drivers/net/wireless/esp8089/esp_wmac.h + create mode 100644 drivers/net/wireless/esp8089/firmware/LICENSE-2.0.txt + create mode 100644 drivers/net/wireless/esp8089/sdio_sif_esp.c + create mode 100644 drivers/net/wireless/esp8089/sip2_common.h + create mode 100644 drivers/net/wireless/esp8089/slc_host_register.h + +diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig +index cb1c15012dd0..de5e37846397 100644 +--- a/drivers/net/wireless/Kconfig ++++ b/drivers/net/wireless/Kconfig +@@ -37,6 +37,7 @@ source "drivers/net/wireless/st/Kconfig" + source "drivers/net/wireless/ti/Kconfig" + source "drivers/net/wireless/zydas/Kconfig" + source "drivers/net/wireless/quantenna/Kconfig" ++source "drivers/net/wireless/esp8089/Kconfig" + + config PCMCIA_RAYCS + tristate "Aviator/Raytheon 2.4GHz wireless support" +diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile +index a61cf6c90343..92ffd2cef51c 100644 +--- a/drivers/net/wireless/Makefile ++++ b/drivers/net/wireless/Makefile +@@ -22,6 +22,7 @@ obj-$(CONFIG_WLAN_VENDOR_SILABS) += silabs/ + obj-$(CONFIG_WLAN_VENDOR_ST) += st/ + obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ + obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ ++obj-$(CONFIG_ESP8089) += esp8089/ + + # 16-bit wireless PCMCIA client drivers + obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o +diff --git a/drivers/net/wireless/esp8089/.gitignore b/drivers/net/wireless/esp8089/.gitignore +new file mode 100644 +index 000000000000..eae6529085d0 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/.gitignore +@@ -0,0 +1,7 @@ ++*.cmd ++*.o ++Module.symvers ++modules.order ++.tmp_versions ++*.ko ++*.mod.c +diff --git a/drivers/net/wireless/esp8089/Kconfig b/drivers/net/wireless/esp8089/Kconfig +new file mode 100644 +index 000000000000..8db1fc54712d +--- /dev/null ++++ b/drivers/net/wireless/esp8089/Kconfig +@@ -0,0 +1,13 @@ ++config ESP8089 ++ tristate "Espressif ESP8089 SDIO WiFi" ++ depends on MAC80211 ++ help ++ ESP8089 is a low-budget 2.4GHz WiFi chip by Espressif, used in many ++ cheap tablets with Allwinner or Rockchip SoC ++ ++config ESP8089_DEBUG_FS ++ bool "Enable DebugFS support for ESP8089" ++ depends on ESP8089 ++ default y ++ help ++ DebugFS support for ESP8089 +diff --git a/drivers/net/wireless/esp8089/LICENSE b/drivers/net/wireless/esp8089/LICENSE +new file mode 100644 +index 000000000000..d6a93266f748 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/LICENSE +@@ -0,0 +1,340 @@ ++GNU GENERAL PUBLIC LICENSE ++ Version 2, June 1991 ++ ++ Copyright (C) 1989, 1991 Free Software Foundation, Inc., ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++License is intended to guarantee your freedom to share and change free ++software--to make sure the software is free for all its users. This ++General Public License applies to most of the Free Software ++Foundation's software and to any other program whose authors commit to ++using it. (Some other Free Software Foundation software is covered by ++the GNU Lesser General Public License instead.) You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++this service if you wish), that you receive source code or can get it ++if you want it, that you can change the software or use pieces of it ++in new free programs; and that you know you can do these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++anyone to deny you these rights or to ask you to surrender the rights. ++These restrictions translate to certain responsibilities for you if you ++distribute copies of the software, or if you modify it. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must give the recipients all the rights that ++you have. You must make sure that they, too, receive or can get the ++source code. And you must show them these terms so they know their ++rights. ++ ++ We protect your rights with two steps: (1) copyright the software, and ++(2) offer you this license which gives you legal permission to copy, ++distribute and/or modify the software. ++ ++ Also, for each author's protection and ours, we want to make certain ++that everyone understands that there is no warranty for this free ++software. If the software is modified by someone else and passed on, we ++want its recipients to know that what they have is not the original, so ++that any problems introduced by others will not reflect on the original ++authors' reputations. ++ ++ Finally, any free program is threatened constantly by software ++patents. We wish to avoid the danger that redistributors of a free ++program will individually obtain patent licenses, in effect making the ++program proprietary. To prevent this, we have made it clear that any ++patent must be licensed for everyone's free use or not licensed at all. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ GNU GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License applies to any program or other work which contains ++a notice placed by the copyright holder saying it may be distributed ++under the terms of this General Public License. The "Program", below, ++refers to any such program or work, and a "work based on the Program" ++means either the Program or any derivative work under copyright law: ++that is to say, a work containing the Program or a portion of it, ++either verbatim or with modifications and/or translated into another ++language. (Hereinafter, translation is included without limitation in ++the term "modification".) Each licensee is addressed as "you". ++ ++Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running the Program is not restricted, and the output from the Program ++is covered only if its contents constitute a work based on the ++Program (independent of having been made by running the Program). ++Whether that is true depends on what the Program does. ++ ++ 1. You may copy and distribute verbatim copies of the Program's ++source code as you receive it, in any medium, provided that you ++conspicuously and appropriately publish on each copy an appropriate ++copyright notice and disclaimer of warranty; keep intact all the ++notices that refer to this License and to the absence of any warranty; ++and give any other recipients of the Program a copy of this License ++along with the Program. ++ ++You may charge a fee for the physical act of transferring a copy, and ++you may at your option offer warranty protection in exchange for a fee. ++ ++ 2. You may modify your copy or copies of the Program or any portion ++of it, thus forming a work based on the Program, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) You must cause the modified files to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ b) You must cause any work that you distribute or publish, that in ++ whole or in part contains or is derived from the Program or any ++ part thereof, to be licensed as a whole at no charge to all third ++ parties under the terms of this License. ++ ++ c) If the modified program normally reads commands interactively ++ when run, you must cause it, when started running for such ++ interactive use in the most ordinary way, to print or display an ++ announcement including an appropriate copyright notice and a ++ notice that there is no warranty (or else, saying that you provide ++ a warranty) and that users may redistribute the program under ++ these conditions, and telling the user how to view a copy of this ++ License. (Exception: if the Program itself is interactive but ++ does not normally print such an announcement, your work based on ++ the Program is not required to print an announcement.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Program, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Program, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Program. ++ ++In addition, mere aggregation of another work not based on the Program ++with the Program (or with a work based on the Program) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may copy and distribute the Program (or a work based on it, ++under Section 2) in object code or executable form under the terms of ++Sections 1 and 2 above provided that you also do one of the following: ++ ++ a) Accompany it with the complete corresponding machine-readable ++ source code, which must be distributed under the terms of Sections ++ 1 and 2 above on a medium customarily used for software interchange; or, ++ ++ b) Accompany it with a written offer, valid for at least three ++ years, to give any third party, for a charge no more than your ++ cost of physically performing source distribution, a complete ++ machine-readable copy of the corresponding source code, to be ++ distributed under the terms of Sections 1 and 2 above on a medium ++ customarily used for software interchange; or, ++ ++ c) Accompany it with the information you received as to the offer ++ to distribute corresponding source code. (This alternative is ++ allowed only for noncommercial distribution and only if you ++ received the program in object code or executable form with such ++ an offer, in accord with Subsection b above.) ++ ++The source code for a work means the preferred form of the work for ++making modifications to it. For an executable work, complete source ++code means all the source code for all modules it contains, plus any ++associated interface definition files, plus the scripts used to ++control compilation and installation of the executable. However, as a ++special exception, the source code distributed need not include ++anything that is normally distributed (in either source or binary ++form) with the major components (compiler, kernel, and so on) of the ++operating system on which the executable runs, unless that component ++itself accompanies the executable. ++ ++If distribution of executable or object code is made by offering ++access to copy from a designated place, then offering equivalent ++access to copy the source code from the same place counts as ++distribution of the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 4. You may not copy, modify, sublicense, or distribute the Program ++except as expressly provided under this License. Any attempt ++otherwise to copy, modify, sublicense or distribute the Program is ++void, and will automatically terminate your rights under this License. ++However, parties who have received copies, or rights, from you under ++this License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++ 5. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Program or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Program (or any work based on the ++Program), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Program or works based on it. ++ ++ 6. Each time you redistribute the Program (or any work based on the ++Program), the recipient automatically receives a license from the ++original licensor to copy, distribute or modify the Program subject to ++these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties to ++this License. ++ ++ 7. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Program at all. For example, if a patent ++license would not permit royalty-free redistribution of the Program by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Program. ++ ++If any portion of this section is held invalid or unenforceable under ++any particular circumstance, the balance of the section is intended to ++apply and the section as a whole is intended to apply in other ++circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system, which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 8. If the distribution and/or use of the Program is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Program under this License ++may add an explicit geographical distribution limitation excluding ++those countries, so that distribution is permitted only in or among ++countries not thus excluded. In such case, this License incorporates ++the limitation as if written in the body of this License. ++ ++ 9. The Free Software Foundation may publish revised and/or new versions ++of the General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Program ++specifies a version number of this License which applies to it and "any ++later version", you have the option of following the terms and conditions ++either of that version or of any later version published by the Free ++Software Foundation. If the Program does not specify a version number of ++this License, you may choose any version ever published by the Free Software ++Foundation. ++ ++ 10. If you wish to incorporate parts of the Program into other free ++programs whose distribution conditions are different, write to the author ++to ask for permission. For software which is copyrighted by the Free ++Software Foundation, write to the Free Software Foundation; we sometimes ++make exceptions for this. Our decision will be guided by the two goals ++of preserving the free status of all derivatives of our free software and ++of promoting the sharing and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY ++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN ++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES ++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED ++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS ++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, ++REPAIR OR CORRECTION. ++ ++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR ++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, ++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING ++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED ++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY ++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER ++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ++POSSIBILITY OF SUCH DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ {description} ++ Copyright (C) {year} {fullname} ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License along ++ with this program; if not, write to the Free Software Foundation, Inc., ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++If the program is interactive, make it output a short notice like this ++when it starts in an interactive mode: ++ ++ Gnomovision version 69, Copyright (C) year name of author ++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, the commands you use may ++be called something other than `show w' and `show c'; they could even be ++mouse-clicks or menu items--whatever suits your program. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the program, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program ++ `Gnomovision' (which makes passes at compilers) written by James Hacker. ++ ++ {signature of Ty Coon}, 1 April 1989 ++ Ty Coon, President of Vice ++ ++This General Public License does not permit incorporating your program into ++proprietary programs. If your program is a subroutine library, you may ++consider it more useful to permit linking proprietary applications with the ++library. If this is what you want to do, use the GNU Lesser General ++Public License instead of this License. ++ +diff --git a/drivers/net/wireless/esp8089/Makefile b/drivers/net/wireless/esp8089/Makefile +new file mode 100644 +index 000000000000..36decfd20ecd +--- /dev/null ++++ b/drivers/net/wireless/esp8089/Makefile +@@ -0,0 +1,7 @@ ++MODULE_NAME = esp8089 ++ ++$(MODULE_NAME)-y := esp_debug.o sdio_sif_esp.o esp_io.o \ ++ esp_file.o esp_main.o esp_sip.o esp_ext.o esp_ctrl.o \ ++ esp_mac80211.o esp_debug.o esp_utils.o ++ ++obj-$(CONFIG_ESP8089) := esp8089.o +diff --git a/drivers/net/wireless/esp8089/Makefile.old b/drivers/net/wireless/esp8089/Makefile.old +new file mode 100644 +index 000000000000..b7b1a47b159c +--- /dev/null ++++ b/drivers/net/wireless/esp8089/Makefile.old +@@ -0,0 +1,99 @@ ++MODNAME = esp8089 ++ ++# By default, we try to compile the modules for the currently running ++# kernel. But it's the first approximation, as we will re-read the ++# version from the kernel sources. ++KVERS_UNAME ?= $(shell uname -r) ++ ++# KBUILD is the path to the Linux kernel build tree. It is usually the ++# same as the kernel source tree, except when the kernel was compiled in ++# a separate directory. ++KBUILD ?= $(shell readlink -f /lib/modules/$(KVERS_UNAME)/build) ++ ++ifeq (,$(KBUILD)) ++$(error Kernel build tree not found - please set KBUILD to configured kernel) ++endif ++ ++KCONFIG := $(KBUILD)/.config ++ifeq (,$(wildcard $(KCONFIG))) ++$(error No .config found in $(KBUILD), please set KBUILD to configured kernel) ++endif ++ ++ifneq (,$(wildcard $(KBUILD)/include/linux/version.h)) ++ifneq (,$(wildcard $(KBUILD)/include/generated/uapi/linux/version.h)) ++$(error Multiple copies of version.h found, please clean your build tree) ++endif ++endif ++ ++# Kernel Makefile doesn't always know the exact kernel version, so we ++# get it from the kernel headers instead and pass it to make. ++VERSION_H := $(KBUILD)/include/generated/utsrelease.h ++ifeq (,$(wildcard $(VERSION_H))) ++VERSION_H := $(KBUILD)/include/linux/utsrelease.h ++endif ++ifeq (,$(wildcard $(VERSION_H))) ++VERSION_H := $(KBUILD)/include/linux/version.h ++endif ++ifeq (,$(wildcard $(VERSION_H))) ++$(error Please run 'make modules_prepare' in $(KBUILD)) ++endif ++ ++KVERS := $(shell sed -ne 's/"//g;s/^\#define UTS_RELEASE //p' $(VERSION_H)) ++ ++ifeq (,$(KVERS)) ++$(error Cannot find UTS_RELEASE in $(VERSION_H), please report) ++endif ++ ++INST_DIR = /lib/modules/$(KVERS)/misc ++ ++SRC_DIR=$(shell pwd) ++ ++include $(KCONFIG) ++ ++EXTRA_CFLAGS += -DCONFIG_ESP8089_DEBUG_FS ++ ++OBJS = esp_debug.o sdio_sif_esp.o esp_io.o \ ++ esp_file.o esp_main.o esp_sip.o esp_ext.o esp_ctrl.o \ ++ esp_mac80211.o esp_debug.o esp_utils.o esp_pm.o ++ ++all: config_check modules ++ ++MODULE := $(MODNAME).ko ++obj-m := $(MODNAME).o ++ ++$(MODNAME)-objs := $(OBJS) ++ ++config_check: ++ @if [ -z "$(CONFIG_WIRELESS_EXT)$(CONFIG_NET_RADIO)" ]; then \ ++ echo; echo; \ ++ echo "*** WARNING: This kernel lacks wireless extensions."; \ ++ echo "Wireless drivers will not work properly."; \ ++ echo; echo; \ ++ fi ++ ++modules: ++ $(MAKE) -C $(KBUILD) M=$(SRC_DIR) ++ ++$(MODULE): ++ $(MAKE) modules ++ ++clean: ++ rm -f *.o *.ko .*.cmd *.mod.c *.symvers modules.order ++ rm -rf .tmp_versions ++ ++install: config_check $(MODULE) ++ @/sbin/modinfo $(MODULE) | grep -q "^vermagic: *$(KVERS) " || \ ++ { echo "$(MODULE)" is not for Linux $(KVERS); exit 1; } ++ mkdir -p -m 755 $(DESTDIR)$(INST_DIR) ++ install -m 0644 $(MODULE) $(DESTDIR)$(INST_DIR) ++ifndef DESTDIR ++ -/sbin/depmod -a $(KVERS) ++endif ++ ++uninstall: ++ rm -f $(DESTDIR)$(INST_DIR)/$(MODULE) ++ifndef DESTDIR ++ -/sbin/depmod -a $(KVERS) ++endif ++ ++.PHONY: all modules clean install config_check +diff --git a/drivers/net/wireless/esp8089/README.md b/drivers/net/wireless/esp8089/README.md +new file mode 100644 +index 000000000000..56b40db272f3 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/README.md +@@ -0,0 +1,31 @@ ++esp8089 ++====== ++ ++ESP8089 Linux driver ++ ++v1.9 imported from the Rockchip Linux kernel github repo ++ ++Modified to build as a standalone module for SDIO devices. ++ ++ ++ ++ ++Building: ++ ++ make ++ ++Using: ++ ++Must load mac80211.ko first if not baked in. ++ ++ sudo modprobe esp8089.ko ++ ++If you get a wlan interface, but scanning shows no networks try using: ++ ++ sudo modprobe esp8089.ko config=crystal_26M_en=1 ++ ++or: ++ ++ sudo modprobe esp8089.ko config=crystal_26M_en=2 ++ ++To load the module. +diff --git a/drivers/net/wireless/esp8089/esp_ctrl.c b/drivers/net/wireless/esp8089/esp_ctrl.c +new file mode 100644 +index 000000000000..a19d2437dd82 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_ctrl.c +@@ -0,0 +1,801 @@ ++/* ++ * Copyright (c) 2009 - 2014 Espressif System. ++ * ++ * SIP ctrl packet parse and pack ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "esp_pub.h" ++#include "esp_sip.h" ++#include "esp_ctrl.h" ++#include "esp_sif.h" ++#include "esp_debug.h" ++#include "esp_wmac.h" ++#include "esp_utils.h" ++#include "esp_wl.h" ++#include "esp_file.h" ++#include "esp_path.h" ++#ifdef TEST_MODE ++#include "testmode.h" ++#endif /* TEST_MODE */ ++#include "esp_version.h" ++ ++extern struct completion *gl_bootup_cplx; ++ ++static void esp_tx_ba_session_op(struct esp_sip *sip, ++ struct esp_node *node, ++ trc_ampdu_state_t state, u8 tid) ++{ ++ struct esp_tx_tid *txtid; ++ ++ txtid = &node->tid[tid]; ++ if (state == TRC_TX_AMPDU_STOPPED) { ++ if (txtid->state == ESP_TID_STATE_OPERATIONAL) { ++ esp_dbg(ESP_DBG_TXAMPDU, ++ "%s tid %d TXAMPDU GOT STOP EVT\n", ++ __func__, tid); ++ ++ spin_lock_bh(&sip->epub->tx_ampdu_lock); ++ txtid->state = ESP_TID_STATE_WAIT_STOP; ++ spin_unlock_bh(&sip->epub->tx_ampdu_lock); ++ ieee80211_stop_tx_ba_session(node->sta, (u16) tid); ++ } else { ++ esp_dbg(ESP_DBG_TXAMPDU, ++ "%s tid %d TXAMPDU GOT STOP EVT IN WRONG STATE %d\n", ++ __func__, tid, txtid->state); ++ } ++ } else if (state == TRC_TX_AMPDU_OPERATIONAL) { ++ if (txtid->state == ESP_TID_STATE_STOP) { ++ esp_dbg(ESP_DBG_TXAMPDU, ++ "%s tid %d TXAMPDU GOT OPERATIONAL\n", ++ __func__, tid); ++ ++ spin_lock_bh(&sip->epub->tx_ampdu_lock); ++ txtid->state = ESP_TID_STATE_TRIGGER; ++ spin_unlock_bh(&sip->epub->tx_ampdu_lock); ++ ieee80211_start_tx_ba_session(node->sta, (u16) tid, ++ 0); ++ ++ } else if (txtid->state == ESP_TID_STATE_OPERATIONAL) { ++ sip_send_ampdu_action(sip->epub, ++ SIP_AMPDU_TX_OPERATIONAL, ++ node->sta->addr, tid, ++ node->ifidx, 0); ++ } else { ++ esp_dbg(ESP_DBG_TXAMPDU, ++ "%s tid %d TXAMPDU GOT OPERATIONAL EVT IN WRONG STATE %d\n", ++ __func__, tid, txtid->state); ++ } ++ } ++} ++ ++int sip_parse_events(struct esp_sip *sip, u8 * buf) ++{ ++ struct sip_hdr *hdr = (struct sip_hdr *) buf; ++ ++ switch (hdr->c_evtid) { ++ case SIP_EVT_TARGET_ON:{ ++ /* use rx work queue to send... */ ++ if (atomic_read(&sip->state) == SIP_PREPARE_BOOT ++ || atomic_read(&sip->state) == SIP_BOOT) { ++ atomic_set(&sip->state, SIP_SEND_INIT); ++ queue_work(sip->epub->esp_wkq, ++ &sip->rx_process_work); ++ } else { ++ esp_dbg(ESP_DBG_ERROR, ++ "%s boot during wrong state %d\n", ++ __func__, ++ atomic_read(&sip->state)); ++ } ++ break; ++ } ++ ++ case SIP_EVT_BOOTUP:{ ++ struct sip_evt_bootup2 *bootup_evt = ++ (struct sip_evt_bootup2 *) (buf + ++ SIP_CTRL_HDR_LEN); ++ if (sip->rawbuf) ++ kfree(sip->rawbuf); ++ ++ sip_post_init(sip, bootup_evt); ++ ++ if (gl_bootup_cplx) ++ complete(gl_bootup_cplx); ++ ++ break; ++ } ++ case SIP_EVT_RESETTING:{ ++ sip->epub->wait_reset = 1; ++ if (gl_bootup_cplx) ++ complete(gl_bootup_cplx); ++ break; ++ } ++ case SIP_EVT_SLEEP:{ ++ //atomic_set(&sip->epub->ps.state, ESP_PM_ON); ++ break; ++ } ++ case SIP_EVT_TXIDLE:{ ++ //struct sip_evt_txidle *txidle = (struct sip_evt_txidle *)(buf + SIP_CTRL_HDR_LEN); ++ //sip_txdone_clear(sip, txidle->last_seq); ++ break; ++ } ++ ++ case SIP_EVT_SCAN_RESULT:{ ++ struct sip_evt_scan_report *report = ++ (struct sip_evt_scan_report *) (buf + ++ SIP_CTRL_HDR_LEN); ++ if (atomic_read(&sip->epub->wl.off)) { ++ esp_dbg(ESP_DBG_ERROR, ++ "%s scan result while wlan off\n", ++ __func__); ++ return 0; ++ } ++ sip_scandone_process(sip, report); ++ ++ break; ++ } ++ ++ case SIP_EVT_ROC:{ ++ struct sip_evt_roc *report = ++ (struct sip_evt_roc *) (buf + ++ SIP_CTRL_HDR_LEN); ++ esp_rocdone_process(sip->epub->hw, report); ++ break; ++ } ++ ++ ++#ifdef ESP_RX_COPYBACK_TEST ++ ++ case SIP_EVT_COPYBACK:{ ++ u32 len = hdr->len - SIP_CTRL_HDR_LEN; ++ ++ esp_dbg(ESP_DBG_TRACE, ++ "%s copyback len %d seq %u\n", __func__, ++ len, hdr->seq); ++ ++ memcpy(copyback_buf + copyback_offset, ++ pkt->buf + SIP_CTRL_HDR_LEN, len); ++ copyback_offset += len; ++ ++ //show_buf(pkt->buf, 256); ++ ++ //how about totlen % 256 == 0?? ++ if (hdr->hdr.len < 256) { ++ kfree(copyback_buf); ++ } ++ } ++ break; ++#endif /* ESP_RX_COPYBACK_TEST */ ++ case SIP_EVT_CREDIT_RPT: ++ break; ++ ++#ifdef TEST_MODE ++ case SIP_EVT_WAKEUP:{ ++ u8 check_str[12]; ++ struct sip_evt_wakeup *wakeup_evt = ++ (struct sip_evt_wakeup *) (buf + ++ SIP_CTRL_HDR_LEN); ++ sprintf((char *) &check_str, "%d", ++ wakeup_evt->check_data); ++ esp_test_cmd_event(TEST_CMD_WAKEUP, ++ (char *) &check_str); ++ break; ++ } ++ ++ case SIP_EVT_DEBUG:{ ++ u8 check_str[640]; ++ sip_parse_event_debug(sip->epub, buf, check_str); ++ esp_dbg(ESP_DBG_TRACE, "%s", check_str); ++ esp_test_cmd_event(TEST_CMD_DEBUG, ++ (char *) &check_str); ++ break; ++ } ++ ++ case SIP_EVT_LOOPBACK:{ ++ u8 check_str[12]; ++ struct sip_evt_loopback *loopback_evt = ++ (struct sip_evt_loopback *) (buf + ++ SIP_CTRL_HDR_LEN); ++ esp_dbg(ESP_DBG_LOG, "%s loopback len %d seq %u\n", ++ __func__, hdr->len, hdr->seq); ++ ++ if (loopback_evt->pack_id != get_loopback_id()) { ++ sprintf((char *) &check_str, ++ "seq id error %d, expect %d", ++ loopback_evt->pack_id, ++ get_loopback_id()); ++ esp_test_cmd_event(TEST_CMD_LOOPBACK, ++ (char *) &check_str); ++ } ++ ++ if ((loopback_evt->pack_id + 1) < ++ get_loopback_num()) { ++ inc_loopback_id(); ++ sip_send_loopback_mblk(sip, ++ loopback_evt->txlen, ++ loopback_evt->rxlen, ++ get_loopback_id()); ++ } else { ++ sprintf((char *) &check_str, "test over!"); ++ esp_test_cmd_event(TEST_CMD_LOOPBACK, ++ (char *) &check_str); ++ } ++ break; ++ } ++#endif /*TEST_MODE */ ++ ++ case SIP_EVT_SNPRINTF_TO_HOST:{ ++ u8 *p = ++ (buf + sizeof(struct sip_hdr) + sizeof(u16)); ++ u16 *len = (u16 *) (buf + sizeof(struct sip_hdr)); ++ char test_res_str[560]; ++ sprintf(test_res_str, ++ "esp_host:%llx\nesp_target: %.*s", ++ DRIVER_VER, *len, p); ++ ++ esp_dbg(ESP_DBG_TRACE, "%s\n", test_res_str); ++ if (*len ++ && sip->epub->sdio_state == ++ ESP_SDIO_STATE_FIRST_INIT) { ++ char filename[256]; ++ if (mod_eagle_path_get() == NULL) ++ sprintf(filename, "%s/%s", FWPATH, ++ "test_results"); ++ else ++ sprintf(filename, "%s/%s", ++ mod_eagle_path_get(), ++ "test_results"); ++ esp_dbg(ESP_DBG_TRACE, ++ "SNPRINTF TO HOST: %s\n", ++ test_res_str); ++ } ++ break; ++ } ++ case SIP_EVT_TRC_AMPDU:{ ++ struct sip_evt_trc_ampdu *ep = ++ (struct sip_evt_trc_ampdu *) (buf + ++ SIP_CTRL_HDR_LEN); ++ struct esp_node *node = NULL; ++ int i = 0; ++ ++ if (atomic_read(&sip->epub->wl.off)) { ++ esp_dbg(ESP_DBG_ERROR, ++ "%s scan result while wlan off\n", ++ __func__); ++ return 0; ++ } ++ ++ node = esp_get_node_by_addr(sip->epub, ep->addr); ++ if (node == NULL) ++ break; ++ for (i = 0; i < 8; i++) { ++ if (ep->tid & (1 << i)) { ++ esp_tx_ba_session_op(sip, node, ++ ep->state, i); ++ } ++ } ++ break; ++ } ++ ++#ifdef TEST_MODE ++ case SIP_EVT_EP:{ ++ char *ep = (char *) (buf + SIP_CTRL_HDR_LEN); ++ static int counter = 0; ++ ++ esp_dbg(ESP_ATE, "%s EVT_EP \n\n", __func__); ++ if (counter++ < 2) { ++ esp_dbg(ESP_ATE, "ATE: %s \n", ep); ++ } ++ ++ esp_test_ate_done_cb(ep); ++ ++ break; ++ } ++#endif /*TEST_MODE */ ++ ++ case SIP_EVT_INIT_EP:{ ++ char *ep = (char *) (buf + SIP_CTRL_HDR_LEN); ++ esp_dbg(ESP_ATE, "Phy Init: %s \n", ep); ++ break; ++ } ++ ++ case SIP_EVT_NOISEFLOOR:{ ++ struct sip_evt_noisefloor *ep = ++ (struct sip_evt_noisefloor *) (buf + ++ SIP_CTRL_HDR_LEN); ++ atomic_set(&sip->noise_floor, ep->noise_floor); ++ break; ++ } ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ ++#include "esp_init_data.h" ++ ++void sip_send_chip_init(struct esp_sip *sip) ++{ ++ size_t size = 0; ++ size = sizeof(esp_init_data); ++ ++ esp_conf_upload_second(esp_init_data, size); ++ ++ atomic_sub(1, &sip->tx_credits); ++ ++ sip_send_cmd(sip, SIP_CMD_INIT, size, (void *) esp_init_data); ++ ++} ++ ++int sip_send_config(struct esp_pub *epub, struct ieee80211_conf *conf) ++{ ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_config *configcmd; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_config) + ++ sizeof(struct sip_hdr), SIP_CMD_CONFIG); ++ if (!skb) ++ return -EINVAL; ++ esp_dbg(ESP_DBG_TRACE, "%s config center freq %d\n", __func__, ++ conf->chandef.chan->center_freq); ++ configcmd = ++ (struct sip_cmd_config *) (skb->data + sizeof(struct sip_hdr)); ++ configcmd->center_freq = conf->chandef.chan->center_freq; ++ configcmd->duration = 0; ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++int sip_send_bss_info_update(struct esp_pub *epub, struct esp_vif *evif, ++ u8 * bssid, int assoc) ++{ ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_bss_info_update *bsscmd; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_bss_info_update) + ++ sizeof(struct sip_hdr), ++ SIP_CMD_BSS_INFO_UPDATE); ++ if (!skb) ++ return -EINVAL; ++ ++ bsscmd = ++ (struct sip_cmd_bss_info_update *) (skb->data + ++ sizeof(struct sip_hdr)); ++ if (assoc == 2) { //hack for softAP mode ++ bsscmd->beacon_int = evif->beacon_interval; ++ } else if (assoc == 1) { ++ set_bit(ESP_WL_FLAG_CONNECT, &epub->wl.flags); ++ } else { ++ clear_bit(ESP_WL_FLAG_CONNECT, &epub->wl.flags); ++ } ++ bsscmd->bssid_no = evif->index; ++ bsscmd->isassoc = assoc; ++ bsscmd->beacon_int = evif->beacon_interval; ++ memcpy(bsscmd->bssid, bssid, ETH_ALEN); ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++int sip_send_wmm_params(struct esp_pub *epub, u8 aci, ++ const struct ieee80211_tx_queue_params *params) ++{ ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_set_wmm_params *bsscmd; ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_set_wmm_params) + ++ sizeof(struct sip_hdr), ++ SIP_CMD_SET_WMM_PARAM); ++ if (!skb) ++ return -EINVAL; ++ ++ bsscmd = ++ (struct sip_cmd_set_wmm_params *) (skb->data + ++ sizeof(struct sip_hdr)); ++ bsscmd->aci = aci; ++ bsscmd->aifs = params->aifs; ++ bsscmd->txop_us = params->txop * 32; ++ ++ bsscmd->ecw_min = 32 - __builtin_clz(params->cw_min); ++ bsscmd->ecw_max = 32 - __builtin_clz(params->cw_max); ++ ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++int sip_send_ampdu_action(struct esp_pub *epub, u8 action_num, ++ const u8 * addr, u16 tid, u16 ssn, u8 buf_size) ++{ ++ int index = 0; ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_ampdu_action *action; ++ if (action_num == SIP_AMPDU_RX_START) { ++ index = esp_get_empty_rxampdu(epub, addr, tid); ++ } else if (action_num == SIP_AMPDU_RX_STOP) { ++ index = esp_get_exist_rxampdu(epub, addr, tid); ++ } ++ if (index < 0) ++ return -EACCES; ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_ampdu_action) + ++ sizeof(struct sip_hdr), ++ SIP_CMD_AMPDU_ACTION); ++ if (!skb) ++ return -EINVAL; ++ ++ action = ++ (struct sip_cmd_ampdu_action *) (skb->data + ++ sizeof(struct sip_hdr)); ++ action->action = action_num; ++ //for TX, it means interface index ++ action->index = ssn; ++ ++ switch (action_num) { ++ case SIP_AMPDU_RX_START: ++ action->ssn = ssn; ++ // fall through ++ case SIP_AMPDU_RX_STOP: ++ action->index = index; ++ // fall through ++ case SIP_AMPDU_TX_OPERATIONAL: ++ case SIP_AMPDU_TX_STOP: ++ action->win_size = buf_size; ++ action->tid = tid; ++ memcpy(action->addr, addr, ETH_ALEN); ++ break; ++ } ++ ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++#ifdef HW_SCAN ++/*send cmd to target, if aborted is true, inform target stop scan, report scan complete imediately ++ return 1: complete over, 0: success, still have next scan, -1: hardware failure ++ */ ++int sip_send_scan(struct esp_pub *epub) ++{ ++ struct cfg80211_scan_request *scan_req = epub->wl.scan_req; ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_scan *scancmd; ++ u8 *ptr = NULL; ++ int i; ++ u8 append_len, ssid_len; ++ ++ ESSERT(scan_req != NULL); ++ ssid_len = scan_req->n_ssids == 0 ? 0 : ++ (scan_req->n_ssids == ++ 1 ? scan_req->ssids->ssid_len : scan_req->ssids->ssid_len + ++ (scan_req->ssids + 1)->ssid_len); ++ append_len = ssid_len + scan_req->n_channels + scan_req->ie_len; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_scan) + ++ sizeof(struct sip_hdr) + append_len, ++ SIP_CMD_SCAN); ++ ++ if (!skb) ++ return -EINVAL; ++ ++ ptr = skb->data; ++ scancmd = (struct sip_cmd_scan *) (ptr + sizeof(struct sip_hdr)); ++ ptr += sizeof(struct sip_hdr); ++ ++ scancmd->aborted = false; ++ ++ if (scancmd->aborted == false) { ++ ptr += sizeof(struct sip_cmd_scan); ++ if (scan_req->n_ssids <= 0 ++ || (scan_req->n_ssids == 1 && ssid_len == 0)) { ++ scancmd->ssid_len = 0; ++ } else { ++ scancmd->ssid_len = ssid_len; ++ if (scan_req->ssids->ssid_len == ssid_len) ++ memcpy(ptr, scan_req->ssids->ssid, ++ scancmd->ssid_len); ++ else ++ memcpy(ptr, (scan_req->ssids + 1)->ssid, ++ scancmd->ssid_len); ++ } ++ ++ ptr += scancmd->ssid_len; ++ scancmd->n_channels = scan_req->n_channels; ++ for (i = 0; i < scan_req->n_channels; i++) ++ ptr[i] = scan_req->channels[i]->hw_value; ++ ++ ptr += scancmd->n_channels; ++ if (scan_req->ie_len && scan_req->ie != NULL) { ++ scancmd->ie_len = scan_req->ie_len; ++ memcpy(ptr, scan_req->ie, scan_req->ie_len); ++ } else { ++ scancmd->ie_len = 0; ++ } ++ //add a flag that support two ssids, ++ if (scan_req->n_ssids > 1) ++ scancmd->ssid_len |= 0x80; ++ ++ } ++ ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++#endif ++ ++int sip_send_suspend_config(struct esp_pub *epub, u8 suspend) ++{ ++ struct sip_cmd_suspend *cmd = NULL; ++ struct sk_buff *skb = NULL; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_suspend) + ++ sizeof(struct sip_hdr), SIP_CMD_SUSPEND); ++ ++ if (!skb) ++ return -EINVAL; ++ ++ cmd = ++ (struct sip_cmd_suspend *) (skb->data + ++ sizeof(struct sip_hdr)); ++ cmd->suspend = suspend; ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++int sip_send_ps_config(struct esp_pub *epub, struct esp_ps *ps) ++{ ++ struct sip_cmd_ps *pscmd = NULL; ++ struct sk_buff *skb = NULL; ++ struct sip_hdr *shdr = NULL; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_ps) + ++ sizeof(struct sip_hdr), SIP_CMD_PS); ++ ++ if (!skb) ++ return -EINVAL; ++ ++ ++ shdr = (struct sip_hdr *) skb->data; ++ pscmd = (struct sip_cmd_ps *) (skb->data + sizeof(struct sip_hdr)); ++ ++ pscmd->dtim_period = ps->dtim_period; ++ pscmd->max_sleep_period = ps->max_sleep_period; ++ ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++void sip_scandone_process(struct esp_sip *sip, ++ struct sip_evt_scan_report *scan_report) ++{ ++ struct esp_pub *epub = sip->epub; ++ ++ esp_dbg(ESP_DBG_TRACE, "eagle hw scan report\n"); ++ ++ if (epub->wl.scan_req) { ++ hw_scan_done(epub, scan_report->aborted); ++ epub->wl.scan_req = NULL; ++ } ++} ++ ++int sip_send_setkey(struct esp_pub *epub, u8 bssid_no, u8 * peer_addr, ++ struct ieee80211_key_conf *key, u8 isvalid) ++{ ++ struct sip_cmd_setkey *setkeycmd; ++ struct sk_buff *skb = NULL; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_setkey) + ++ sizeof(struct sip_hdr), SIP_CMD_SETKEY); ++ ++ if (!skb) ++ return -EINVAL; ++ ++ setkeycmd = ++ (struct sip_cmd_setkey *) (skb->data + sizeof(struct sip_hdr)); ++ ++ if (peer_addr) { ++ memcpy(setkeycmd->addr, peer_addr, ETH_ALEN); ++ } else { ++ memset(setkeycmd->addr, 0, ETH_ALEN); ++ } ++ ++ setkeycmd->bssid_no = bssid_no; ++ setkeycmd->hw_key_idx = key->hw_key_idx; ++ ++ if (isvalid) { ++ setkeycmd->alg = esp_cipher2alg(key->cipher); ++ setkeycmd->keyidx = key->keyidx; ++ setkeycmd->keylen = key->keylen; ++ if (key->cipher == WLAN_CIPHER_SUITE_TKIP) { ++ memcpy(setkeycmd->key, key->key, 16); ++ memcpy(setkeycmd->key + 16, key->key + 24, 8); ++ memcpy(setkeycmd->key + 24, key->key + 16, 8); ++ } else { ++ memcpy(setkeycmd->key, key->key, key->keylen); ++ } ++ ++ setkeycmd->flags = 1; ++ } else { ++ setkeycmd->flags = 0; ++ } ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++#ifdef FPGA_LOOPBACK ++#define LOOPBACK_PKT_LEN 200 ++int sip_send_loopback_cmd_mblk(struct esp_sip *sip) ++{ ++ int cnt, ret; ++ ++ for (cnt = 0; cnt < 4; cnt++) { ++ if (0 != ++ (ret = ++ sip_send_loopback_mblk(sip, LOOPBACK_PKT_LEN, ++ LOOPBACK_PKT_LEN, 0))) ++ return ret; ++ } ++ return 0; ++} ++#endif /* FPGA_LOOPBACK */ ++ ++int sip_send_loopback_mblk(struct esp_sip *sip, int txpacket_len, ++ int rxpacket_len, int packet_id) ++{ ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_loopback *cmd; ++ u8 *ptr = NULL; ++ int i, ret; ++ ++ //send 100 loopback pkt ++ if (txpacket_len) ++ skb = ++ sip_alloc_ctrl_skbuf(sip, ++ sizeof(struct sip_cmd_loopback) + ++ sizeof(struct sip_hdr) + ++ txpacket_len, SIP_CMD_LOOPBACK); ++ else ++ skb = ++ sip_alloc_ctrl_skbuf(sip, ++ sizeof(struct sip_cmd_loopback) + ++ sizeof(struct sip_hdr), ++ SIP_CMD_LOOPBACK); ++ ++ if (!skb) ++ return -ENOMEM; ++ ++ ptr = skb->data; ++ cmd = (struct sip_cmd_loopback *) (ptr + sizeof(struct sip_hdr)); ++ ptr += sizeof(struct sip_hdr); ++ cmd->txlen = txpacket_len; ++ cmd->rxlen = rxpacket_len; ++ cmd->pack_id = packet_id; ++ ++ if (txpacket_len) { ++ ptr += sizeof(struct sip_cmd_loopback); ++ /* fill up pkt payload */ ++ for (i = 0; i < txpacket_len; i++) { ++ ptr[i] = i; ++ } ++ } ++ ++ ret = sip_cmd_enqueue(sip, skb, ENQUEUE_PRIOR_TAIL); ++ if (ret < 0) ++ return ret; ++ ++ return 0; ++} ++ ++//remain_on_channel ++int sip_send_roc(struct esp_pub *epub, u16 center_freq, u16 duration) ++{ ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_config *configcmd; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_config) + ++ sizeof(struct sip_hdr), SIP_CMD_CONFIG); ++ if (!skb) ++ return -EINVAL; ++ ++ configcmd = ++ (struct sip_cmd_config *) (skb->data + sizeof(struct sip_hdr)); ++ configcmd->center_freq = center_freq; ++ configcmd->duration = duration; ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++int sip_send_set_sta(struct esp_pub *epub, u8 ifidx, u8 set, ++ struct ieee80211_sta *sta, struct ieee80211_vif *vif, ++ u8 index) ++{ ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_setsta *setstacmd; ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_setsta) + ++ sizeof(struct sip_hdr), SIP_CMD_SETSTA); ++ if (!skb) ++ return -EINVAL; ++ ++ setstacmd = ++ (struct sip_cmd_setsta *) (skb->data + sizeof(struct sip_hdr)); ++ setstacmd->ifidx = ifidx; ++ setstacmd->index = index; ++ setstacmd->set = set; ++ if (sta->aid == 0) ++ setstacmd->aid = vif->cfg.aid; ++ else ++ setstacmd->aid = sta->aid; ++ memcpy(setstacmd->mac, sta->addr, ETH_ALEN); ++ if (set) { ++ if (sta->deflink.ht_cap.ht_supported) { ++ if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SGI_20) ++ setstacmd->phymode = ++ ESP_IEEE80211_T_HT20_S; ++ else ++ setstacmd->phymode = ++ ESP_IEEE80211_T_HT20_L; ++ setstacmd->ampdu_factor = sta->deflink.ht_cap.ampdu_factor; ++ setstacmd->ampdu_density = ++ sta->deflink.ht_cap.ampdu_density; ++ } else { ++ if (sta->deflink.supp_rates[NL80211_BAND_2GHZ] & (~(u32) ++ CONF_HW_BIT_RATE_11B_MASK)) ++ { ++ setstacmd->phymode = ESP_IEEE80211_T_OFDM; ++ } else { ++ setstacmd->phymode = ESP_IEEE80211_T_CCK; ++ } ++ } ++ } ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++ ++int sip_send_recalc_credit(struct esp_pub *epub) ++{ ++ struct sk_buff *skb = NULL; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, 0 + sizeof(struct sip_hdr), ++ SIP_CMD_RECALC_CREDIT); ++ if (!skb) ++ return -ENOMEM; ++ ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_HEAD); ++} ++ ++int sip_cmd(struct esp_pub *epub, enum sip_cmd_id cmd_id, u8 * cmd_buf, ++ u8 cmd_len) ++{ ++ struct sk_buff *skb = NULL; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ cmd_len + sizeof(struct sip_hdr), cmd_id); ++ if (!skb) ++ return -ENOMEM; ++ ++ memcpy(skb->data + sizeof(struct sip_hdr), cmd_buf, cmd_len); ++ ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} +diff --git a/drivers/net/wireless/esp8089/esp_ctrl.h b/drivers/net/wireless/esp8089/esp_ctrl.h +new file mode 100644 +index 000000000000..29c18caa9ede +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_ctrl.h +@@ -0,0 +1,58 @@ ++/* ++ * Copyright (c) 2009- 2014 Espressif System. ++ * ++ * SIP ctrl packet parse and pack ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++#ifndef _ESP_CTRL_H_ ++#define _ESP_CTRL_H_ ++ ++int sip_send_loopback_mblk(struct esp_sip *sip, int txpacket_len, ++ int rxpacket_len, int packet_id); ++ ++int sip_send_config(struct esp_pub *epub, struct ieee80211_conf *conf); ++ ++int sip_send_setkey(struct esp_pub *epub, u8 bssid_no, u8 * peer_addr, ++ struct ieee80211_key_conf *key, u8 isvalid); ++ ++int sip_send_scan(struct esp_pub *epub); ++ ++void sip_scandone_process(struct esp_sip *sip, ++ struct sip_evt_scan_report *scan_report); ++ ++int sip_send_bss_info_update(struct esp_pub *epub, struct esp_vif *evif, ++ u8 * bssid, int assoc); ++ ++int sip_send_wmm_params(struct esp_pub *epub, u8 aci, ++ const struct ieee80211_tx_queue_params *params); ++ ++int sip_send_ampdu_action(struct esp_pub *epub, u8 action_num, ++ const u8 * addr, u16 tid, u16 ssn, u8 buf_size); ++ ++int sip_send_roc(struct esp_pub *epub, u16 center_freq, u16 duration); ++ ++int sip_send_set_sta(struct esp_pub *epub, u8 ifidx, u8 set, ++ struct ieee80211_sta *sta, struct ieee80211_vif *vif, ++ u8 index); ++ ++int sip_send_suspend_config(struct esp_pub *epub, u8 suspend); ++ ++int sip_send_ps_config(struct esp_pub *epub, struct esp_ps *ps); ++ ++int sip_parse_events(struct esp_sip *sip, u8 * buf); ++ ++int sip_send_recalc_credit(struct esp_pub *epub); ++ ++int sip_cmd(struct esp_pub *epub, enum sip_cmd_id cmd_id, u8 * cmd_buf, ++ u8 cmd_len); ++ ++#endif /* _ESP_CTRL_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_debug.c b/drivers/net/wireless/esp8089/esp_debug.c +new file mode 100644 +index 000000000000..5ce8fd2ebd6b +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_debug.c +@@ -0,0 +1,297 @@ ++/* ++ * Copyright (c) 2011-2014 Espressif System. ++ * ++ * esp debug interface ++ * - debugfs ++ * - debug level control ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++ ++#include ++#include "sip2_common.h" ++ ++#include "esp_debug.h" ++ ++#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_ESP8089_DEBUG_FS) ++ ++static struct dentry *esp_debugfs_root = NULL; ++ ++static int esp_debugfs_open(struct inode *inode, struct file *filp) ++{ ++ filp->private_data = inode->i_private; ++ return 0; ++} ++ ++static ssize_t esp_debugfs_read(struct file *filp, char __user * buffer, ++ size_t count, loff_t * ppos) ++{ ++ if (*ppos >= 32) ++ return 0; ++ if (*ppos + count > 32) ++ count = 32 - *ppos; ++ ++ if (copy_to_user(buffer, filp->private_data + *ppos, count)) ++ return -EFAULT; ++ ++ *ppos += count; ++ ++ return count; ++} ++ ++static ssize_t esp_debugfs_write(struct file *filp, ++ const char __user * buffer, size_t count, ++ loff_t * ppos) ++{ ++ if (*ppos >= 32) ++ return 0; ++ if (*ppos + count > 32) ++ count = 32 - *ppos; ++ ++ if (copy_from_user(filp->private_data + *ppos, buffer, count)) ++ return -EFAULT; ++ ++ *ppos += count; ++ ++ return count; ++} ++ ++struct file_operations esp_debugfs_fops = { ++ .owner = THIS_MODULE, ++ .open = esp_debugfs_open, ++ .read = esp_debugfs_read, ++ .write = esp_debugfs_write, ++}; ++ ++ ++void esp_dump_var(const char *name, struct dentry *parent, ++ void *value, esp_type type) ++{ ++ umode_t mode = 0644; ++ ++ if (!esp_debugfs_root) ++ return; ++ ++ if (!parent) ++ parent = esp_debugfs_root; ++ ++ switch (type) { ++ case ESP_U8: ++ debugfs_create_u8(name, mode, parent, (u8 *) value); ++ break; ++ case ESP_U16: ++ debugfs_create_u16(name, mode, parent, (u16 *) value); ++ break; ++ case ESP_U32: ++ debugfs_create_u32(name, mode, parent, (u32 *) value); ++ break; ++ case ESP_U64: ++ debugfs_create_u64(name, mode, parent, (u64 *) value); ++ break; ++ case ESP_BOOL: ++ debugfs_create_bool(name, mode, parent, ++ (bool *) value); ++ break; ++ default: //32 ++ debugfs_create_u32(name, mode, parent, (u32 *) value); ++ } ++ ++ return; ++ ++} ++ ++void esp_dump_array(const char *name, struct dentry *parent, ++ struct debugfs_blob_wrapper *blob) ++{ ++ umode_t mode = 0644; ++ ++ if (!esp_debugfs_root) ++ return; ++ ++ if (!parent) ++ parent = esp_debugfs_root; ++ ++ debugfs_create_blob(name, mode, parent, blob); ++ ++} ++ ++void esp_dump(const char *name, struct dentry *parent, ++ void *data, int size) ++{ ++ umode_t mode = 0644; ++ ++ if (!esp_debugfs_root) ++ return; ++ ++ if (!parent) ++ parent = esp_debugfs_root; ++ ++ debugfs_create_file(name, mode, parent, data, ++ &esp_debugfs_fops); ++ ++} ++ ++struct dentry *esp_debugfs_add_sub_dir(const char *name) ++{ ++ struct dentry *sub_dir = NULL; ++ ++ sub_dir = debugfs_create_dir(name, esp_debugfs_root); ++ ++ if (!sub_dir) ++ goto Fail; ++ ++ return sub_dir; ++ ++ Fail: ++ debugfs_remove_recursive(esp_debugfs_root); ++ esp_debugfs_root = NULL; ++ esp_dbg(ESP_DBG_ERROR, ++ "%s failed, debugfs root removed; dir name: %s\n", ++ __FUNCTION__, name); ++ return NULL; ++ ++} ++ ++int esp_debugfs_init(void) ++{ ++ esp_dbg(ESP_DBG, "esp debugfs init\n"); ++ esp_debugfs_root = debugfs_create_dir("esp_debug", NULL); ++ ++ if (!esp_debugfs_root || IS_ERR_OR_NULL(esp_debugfs_root)) { ++ return -ENOENT; ++ } ++ ++ return 0; ++} ++ ++void esp_debugfs_exit(void) ++{ ++ esp_dbg(ESP_DBG, "esp debugfs exit"); ++ ++ debugfs_remove_recursive(esp_debugfs_root); ++ ++ return; ++} ++ ++#else ++ ++inline struct dentry *esp_dump_var(const char *name, struct dentry *parent, ++ void *value, esp_type type) ++{ ++ return NULL; ++} ++ ++inline struct dentry *esp_dump_array(const char *name, ++ struct dentry *parent, ++ struct debugfs_blob_wrapper *blob) ++{ ++ return NULL; ++} ++ ++inline struct dentry *esp_dump(const char *name, struct dentry *parent, ++ void *data, int size) ++{ ++ return NULL; ++} ++ ++struct dentry *esp_debugfs_add_sub_dir(const char *name) ++{ ++ return NULL; ++} ++ ++inline int esp_debugfs_init(void) ++{ ++ return -EPERM; ++} ++ ++inline void esp_debugfs_exit(void) ++{ ++ ++} ++ ++#endif ++ ++ ++void show_buf(u8 * buf, u32 len) ++{ ++// print_hex_dump(KERN_DEBUG, "", DUMP_PREFIX_OFFSET, 16, 1, buf, len, true); ++#if 1 ++ int i = 0, j; ++ ++ printk(KERN_INFO "\n++++++++++++++++show rbuf+++++++++++++++\n"); ++ for (i = 0; i < (len / 16); i++) { ++ j = i * 16; ++ printk(KERN_INFO ++ "0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x \n", ++ buf[j], buf[j + 1], buf[j + 2], buf[j + 3], ++ buf[j + 4], buf[j + 5], buf[j + 6], buf[j + 7], ++ buf[j + 8], buf[j + 9], buf[j + 10], buf[j + 11], ++ buf[j + 12], buf[j + 13], buf[j + 14], buf[j + 15]); ++ } ++ printk(KERN_INFO "\n++++++++++++++++++++++++++++++++++++++++\n"); ++#endif //0000 ++} ++ ++#ifdef HOST_RC ++static u8 get_cnt(u32 cnt_store, int idx) ++{ ++ int shift = idx << 2; ++ ++ return (u8) ((cnt_store >> shift) & 0xf); ++} ++ ++void esp_show_rcstatus(struct sip_rc_status *rcstatus) ++{ ++ int i; ++ char msg[82]; ++ char rcstr[16]; ++ u32 cnt_store = rcstatus->rc_cnt_store; ++ ++ memset(msg, 0, sizeof(msg)); ++ memset(rcstr, 0, sizeof(rcstr)); ++ ++ printk(KERN_INFO "rcstatus map 0x%08x cntStore 0x%08x\n", ++ rcstatus->rc_map, rcstatus->rc_cnt_store); ++ ++ for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { ++ if (rcstatus->rc_map & BIT(i)) { ++ sprintf(rcstr, "rcIdx %d, cnt %d ", i, ++ get_cnt(cnt_store, i)); ++ strcat(msg, rcstr); ++ } ++ } ++ printk(KERN_INFO "%s \n", msg); ++} ++ ++void esp_show_tx_rates(struct ieee80211_tx_rate *rates) ++{ ++ int i; ++ char msg[128]; ++ char rcstr[32]; ++ ++ memset(msg, 0, sizeof(msg)); ++ memset(rcstr, 0, sizeof(rcstr)); ++ ++ for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { ++ if (rates->idx != -1) { ++ sprintf(rcstr, "Idx %d, cnt %d, flag %02x ", ++ rates->idx, rates->count, rates->flags); ++ strcat(msg, rcstr); ++ } ++ rates++; ++ } ++ strcat(msg, "\n"); ++ printk(KERN_INFO "%s \n", msg); ++} ++#endif /* HOST_RC */ +diff --git a/drivers/net/wireless/esp8089/esp_debug.h b/drivers/net/wireless/esp8089/esp_debug.h +new file mode 100644 +index 000000000000..bab695d34bfb +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_debug.h +@@ -0,0 +1,101 @@ ++/* ++ * Copyright (c) 2011-2014 Espressif System. ++ * ++ * esp debug ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _DEBUG_H_ ++ ++#ifdef ASSERT_PANIC ++#define ESSERT(v) BUG_ON(!(v)) ++#else ++#define ESSERT(v) if(!(v)) printk("ESSERT:%s %d\n", __FILE__, __LINE__) ++#endif ++ ++ ++#include ++#include ++#include ++ ++typedef enum esp_type { ++ ESP_BOOL, ++ ESP_U8, ++ ESP_U16, ++ ESP_U32, ++ ESP_U64 ++} esp_type; ++ ++void esp_dump_var(const char *name, struct dentry *parent, ++ void *value, esp_type type); ++ ++void esp_dump_array(const char *name, struct dentry *parent, ++ struct debugfs_blob_wrapper *blob); ++ ++void esp_dump(const char *name, struct dentry *parent, ++ void *data, int size); ++ ++struct dentry *esp_debugfs_add_sub_dir(const char *name); ++ ++int esp_debugfs_init(void); ++ ++void esp_debugfs_exit(void); ++ ++enum { ++ ESP_DBG_ERROR = BIT(0), ++ ESP_DBG_TRACE = BIT(1), ++ ESP_DBG_LOG = BIT(2), ++ ESP_DBG = BIT(3), ++ ESP_SHOW = BIT(4), ++ ESP_DBG_TXAMPDU = BIT(5), ++ ESP_DBG_OP = BIT(6), ++ ESP_DBG_PS = BIT(7), ++ ESP_ATE = BIT(8), ++ ESP_DBG_ALL = 0xffffffff ++}; ++ ++extern unsigned int esp_msg_level; ++ ++#ifdef ESP_ANDROID_LOGGER ++extern bool log_off; ++#endif /* ESP_ANDROID_LOGGER */ ++ ++#ifdef ESP_ANDROID_LOGGER ++#include "esp_file.h" ++#define esp_dbg(mask, fmt, args...) do { \ ++ if (esp_msg_level & mask) \ ++ { \ ++ if (log_off) \ ++ printk(fmt, ##args); \ ++ else \ ++ logger_write(4, "esp_wifi", fmt, ##args); \ ++ } \ ++ } while (0) ++#else ++#define esp_dbg(mask, fmt, args...) do { \ ++ if (esp_msg_level & mask) \ ++ printk("esp8089: " fmt, ##args); \ ++ } while (0) ++#endif /* ESP_ANDROID_LOGGER */ ++ ++void show_buf(u8 * buf, u32 len); ++ ++#ifdef HOST_RC ++struct sip_rc_status; ++struct ieee80211_tx_rate; ++ ++void esp_show_rcstatus(struct sip_rc_status *rcstatus); ++ ++void esp_show_tx_rates(struct ieee80211_tx_rate *rates); ++#endif /* HOST_RC */ ++ ++#endif /* _DEBUG_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_ext.c b/drivers/net/wireless/esp8089/esp_ext.c +new file mode 100644 +index 000000000000..541f27a6853f +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_ext.c +@@ -0,0 +1,542 @@ ++/* ++ * Copyright (c) 2010 -2013 Espressif System. ++ * ++ * extended gpio ++ * - interface for other driver or kernel ++ * - gpio control ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifdef USE_EXT_GPIO ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "esp_ext.h" ++#include "esp_debug.h" ++#include "esp_sip.h" ++#include "esp_sif.h" ++ ++#ifdef EXT_GPIO_OPS ++extern void register_ext_gpio_ops(struct esp_ext_gpio_ops *ops); ++extern void unregister_ext_gpio_ops(void); ++ ++static struct esp_ext_gpio_ops ext_gpio_ops = { ++ .gpio_request = ext_gpio_request, /* gpio_request gpio_no from 0x0 to 0xf */ ++ .gpio_release = ext_gpio_release, /* gpio_release */ ++ .gpio_set_mode = ext_gpio_set_mode, /* gpio_set_mode, data is irq_func of irq_mode , default level of output_mode */ ++ .gpio_get_mode = ext_gpio_get_mode, /* gpio_get_mode, current mode */ ++ .gpio_set_state = ext_gpio_set_output_state, /* only output state, high level or low level */ ++ .gpio_get_state = ext_gpio_get_state, /* current state */ ++ .irq_ack = ext_irq_ack, /* ack interrupt */ ++}; ++ ++ ++#endif ++ ++static struct esp_pub *ext_epub = NULL; ++ ++static u16 intr_mask_reg = 0x0000; ++struct workqueue_struct *ext_irq_wkq = NULL; ++struct work_struct ext_irq_work; ++static struct mutex ext_mutex_lock; ++ ++static struct ext_gpio_info gpio_list[EXT_GPIO_MAX_NUM] = { ++ {0, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {1, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {2, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {3, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {4, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {5, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {6, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {7, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {8, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {9, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {10, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {11, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {12, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {13, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {14, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++ {15, EXT_GPIO_MODE_DISABLE, EXT_GPIO_STATE_IDLE, NULL}, ++}; ++ ++static struct pending_intr_list_info esp_pending_intr_list = { ++ .start_pos = 0, ++ .end_pos = 0, ++ .curr_num = 0, ++}; ++ ++u16 ext_gpio_get_int_mask_reg(void) ++{ ++ return intr_mask_reg; ++} ++ ++int ext_gpio_request(int gpio_no) ++{ ++ if (ext_epub == NULL || ext_epub->sip == NULL || ++ atomic_read(&ext_epub->sip->state) != SIP_RUN) { ++ esp_dbg(ESP_DBG_ERROR, "%s esp state is not ok\n", ++ __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ mutex_lock(&ext_mutex_lock); ++ ++ if (gpio_no >= EXT_GPIO_MAX_NUM || gpio_no < 0) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, "%s unkown gpio num\n", __func__); ++ return -ERANGE; ++ } ++ ++ if (gpio_list[gpio_no].gpio_mode != EXT_GPIO_MODE_DISABLE) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, ++ "%s gpio is already in used by other\n", __func__); ++ return -EPERM; ++ } else { ++ gpio_list[gpio_no].gpio_mode = EXT_GPIO_MODE_MAX; ++ mutex_unlock(&ext_mutex_lock); ++ return 0; ++ } ++} ++ ++EXPORT_SYMBOL(ext_gpio_request); ++ ++int ext_gpio_release(int gpio_no) ++{ ++ int ret; ++ ++ if (ext_epub == NULL || ext_epub->sip == NULL || ++ atomic_read(&ext_epub->sip->state) != SIP_RUN) { ++ esp_dbg(ESP_DBG_ERROR, "%s esp state is not ok\n", ++ __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ mutex_lock(&ext_mutex_lock); ++ ++ if (gpio_no >= EXT_GPIO_MAX_NUM || gpio_no < 0) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, "%s unkown gpio num\n", __func__); ++ return -ERANGE; ++ } ++ sif_lock_bus(ext_epub); ++ ret = ++ sif_config_gpio_mode(ext_epub, (u8) gpio_no, ++ EXT_GPIO_MODE_DISABLE); ++ sif_unlock_bus(ext_epub); ++ if (ret) { ++ esp_dbg(ESP_DBG_ERROR, "%s gpio release error\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return ret; ++ } ++ ++ gpio_list[gpio_no].gpio_mode = EXT_GPIO_MODE_DISABLE; ++ gpio_list[gpio_no].gpio_state = EXT_GPIO_STATE_IDLE; ++ gpio_list[gpio_no].irq_handler = NULL; ++ intr_mask_reg &= ~(1 << gpio_no); ++ ++ mutex_unlock(&ext_mutex_lock); ++ ++ return 0; ++} ++ ++EXPORT_SYMBOL(ext_gpio_release); ++ ++int ext_gpio_set_mode(int gpio_no, int mode, void *data) ++{ ++ u8 gpio_mode; ++ int ret; ++ struct ext_gpio_info backup_info; ++ ++ if (ext_epub == NULL || ext_epub->sip == NULL || ++ atomic_read(&ext_epub->sip->state) != SIP_RUN) { ++ esp_dbg(ESP_DBG_LOG, "%s esp state is not ok\n", __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ mutex_lock(&ext_mutex_lock); ++ ++ if (gpio_no >= EXT_GPIO_MAX_NUM || gpio_no < 0) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, "%s unkown gpio num\n", __func__); ++ return -ERANGE; ++ } ++ ++ if (gpio_list[gpio_no].gpio_mode == EXT_GPIO_MODE_DISABLE) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, ++ "%s gpio is not in occupy, please request gpio\n", ++ __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ if (mode <= EXT_GPIO_MODE_OOB || mode >= EXT_GPIO_MODE_MAX) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, "%s gpio mode unknown\n", __func__); ++ return -EOPNOTSUPP; ++ } ++ ++ memcpy(&backup_info, &gpio_list[gpio_no], ++ sizeof(struct ext_gpio_info)); ++ ++ gpio_list[gpio_no].gpio_mode = mode; ++ gpio_mode = (u8) mode; ++ ++ switch (mode) { ++ case EXT_GPIO_MODE_INTR_POSEDGE: ++ case EXT_GPIO_MODE_INTR_NEGEDGE: ++ case EXT_GPIO_MODE_INTR_LOLEVEL: ++ case EXT_GPIO_MODE_INTR_HILEVEL: ++ if (!data) { ++ memcpy(&gpio_list[gpio_no], &backup_info, ++ sizeof(struct ext_gpio_info)); ++ esp_dbg(ESP_DBG_ERROR, "%s irq_handler is NULL\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return -EINVAL; ++ } ++ gpio_list[gpio_no].irq_handler = (ext_irq_handler_t) data; ++ intr_mask_reg |= (1 << gpio_no); ++ break; ++ case EXT_GPIO_MODE_OUTPUT: ++ if (!data) { ++ memcpy(&gpio_list[gpio_no], &backup_info, ++ sizeof(struct ext_gpio_info)); ++ esp_dbg(ESP_DBG_ERROR, ++ "%s output default value is NULL\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return -EINVAL; ++ } ++ *(int *) data = (*(int *) data == 0 ? 0 : 1); ++ gpio_mode = (u8) (((*(int *) data) << 4) | gpio_mode); ++ default: ++ gpio_list[gpio_no].irq_handler = NULL; ++ intr_mask_reg &= ~(1 << gpio_no); ++ break; ++ } ++ ++ sif_lock_bus(ext_epub); ++ ret = sif_config_gpio_mode(ext_epub, (u8) gpio_no, gpio_mode); ++ sif_unlock_bus(ext_epub); ++ if (ret) { ++ memcpy(&gpio_list[gpio_no], &backup_info, ++ sizeof(struct ext_gpio_info)); ++ esp_dbg(ESP_DBG_ERROR, "%s gpio set error\n", __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return ret; ++ } ++ ++ mutex_unlock(&ext_mutex_lock); ++ return 0; ++} ++ ++EXPORT_SYMBOL(ext_gpio_set_mode); ++ ++int ext_gpio_get_mode(int gpio_no) ++{ ++ int gpio_mode; ++ ++ if (ext_epub == NULL || ext_epub->sip == NULL || ++ atomic_read(&ext_epub->sip->state) != SIP_RUN) { ++ esp_dbg(ESP_DBG_LOG, "%s esp state is not ok\n", __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ mutex_lock(&ext_mutex_lock); ++ ++ if (gpio_no >= EXT_GPIO_MAX_NUM || gpio_no < 0) { ++ esp_dbg(ESP_DBG_ERROR, "%s unkown gpio num\n", __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return -ERANGE; ++ } ++ ++ gpio_mode = gpio_list[gpio_no].gpio_mode; ++ ++ mutex_unlock(&ext_mutex_lock); ++ ++ return gpio_mode; ++} ++ ++EXPORT_SYMBOL(ext_gpio_get_mode); ++ ++ ++int ext_gpio_set_output_state(int gpio_no, int state) ++{ ++ int ret; ++ ++ if (ext_epub == NULL || ext_epub->sip == NULL || ++ atomic_read(&ext_epub->sip->state) != SIP_RUN) { ++ esp_dbg(ESP_DBG_LOG, "%s esp state is not ok\n", __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ mutex_lock(&ext_mutex_lock); ++ ++ if (gpio_no >= EXT_GPIO_MAX_NUM || gpio_no < 0) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, "%s unkown gpio num\n", __func__); ++ return -ERANGE; ++ } ++ ++ if (gpio_list[gpio_no].gpio_mode != EXT_GPIO_MODE_OUTPUT) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, ++ "%s gpio is not in output state, please request gpio or set output state\n", ++ __func__); ++ return -EOPNOTSUPP; ++ } ++ ++ if (state != EXT_GPIO_STATE_LOW && state != EXT_GPIO_STATE_HIGH) { ++ mutex_unlock(&ext_mutex_lock); ++ esp_dbg(ESP_DBG_ERROR, "%s gpio state unknown\n", ++ __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ sif_lock_bus(ext_epub); ++ ret = ++ sif_set_gpio_output(ext_epub, 1 << gpio_no, state << gpio_no); ++ sif_unlock_bus(ext_epub); ++ if (ret) { ++ esp_dbg(ESP_DBG_ERROR, "%s gpio state set error\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return ret; ++ } ++ gpio_list[gpio_no].gpio_state = state; ++ ++ mutex_unlock(&ext_mutex_lock); ++ ++ return 0; ++} ++ ++EXPORT_SYMBOL(ext_gpio_set_output_state); ++ ++int ext_gpio_get_state(int gpio_no) ++{ ++ int ret; ++ u16 state; ++ u16 mask; ++ ++ if (ext_epub == NULL || ext_epub->sip == NULL || ++ atomic_read(&ext_epub->sip->state) != SIP_RUN) { ++ esp_dbg(ESP_DBG_LOG, "%s esp state is not ok\n", __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ mutex_lock(&ext_mutex_lock); ++ ++ if (gpio_no >= EXT_GPIO_MAX_NUM || gpio_no < 0) { ++ esp_dbg(ESP_DBG_ERROR, "%s unkown gpio num\n", __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return -ERANGE; ++ } ++ ++ if (gpio_list[gpio_no].gpio_mode == EXT_GPIO_MODE_OUTPUT) { ++ state = gpio_list[gpio_no].gpio_state; ++ } else if (gpio_list[gpio_no].gpio_mode == EXT_GPIO_MODE_INPUT) { ++ sif_lock_bus(ext_epub); ++ ret = sif_get_gpio_input(ext_epub, &mask, &state); ++ sif_unlock_bus(ext_epub); ++ if (ret) { ++ esp_dbg(ESP_DBG_ERROR, ++ "%s get gpio_input state error\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return ret; ++ } ++ } else { ++ esp_dbg(ESP_DBG_ERROR, ++ "%s gpio_state is not input or output\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return -EOPNOTSUPP; ++ } ++ mutex_unlock(&ext_mutex_lock); ++ ++ return (state & (1 << gpio_no)) ? 1 : 0; ++} ++ ++EXPORT_SYMBOL(ext_gpio_get_state); ++ ++int ext_irq_ack(int gpio_no) ++{ ++ int ret; ++ ++ if (ext_epub == NULL || ext_epub->sip == NULL || ++ atomic_read(&ext_epub->sip->state) != SIP_RUN) { ++ esp_dbg(ESP_DBG_LOG, "%s esp state is not ok\n", __func__); ++ return -ENOTRECOVERABLE; ++ } ++ ++ mutex_lock(&ext_mutex_lock); ++ if (gpio_no >= EXT_GPIO_MAX_NUM || gpio_no < 0) { ++ esp_dbg(ESP_DBG_ERROR, "%s unkown gpio num\n", __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return -ERANGE; ++ } ++ ++ if (gpio_list[gpio_no].gpio_mode != EXT_GPIO_MODE_INTR_POSEDGE ++ && gpio_list[gpio_no].gpio_mode != EXT_GPIO_MODE_INTR_NEGEDGE ++ && gpio_list[gpio_no].gpio_mode != EXT_GPIO_MODE_INTR_LOLEVEL ++ && gpio_list[gpio_no].gpio_mode != ++ EXT_GPIO_MODE_INTR_HILEVEL) { ++ esp_dbg(ESP_DBG_ERROR, "%s gpio mode is not intr mode\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return -ENOTRECOVERABLE; ++ } ++ ++ sif_lock_bus(ext_epub); ++ ret = sif_set_gpio_output(ext_epub, 0x00, 1 << gpio_no); ++ sif_unlock_bus(ext_epub); ++ if (ret) { ++ esp_dbg(ESP_DBG_ERROR, "%s gpio intr ack error\n", ++ __func__); ++ mutex_unlock(&ext_mutex_lock); ++ return ret; ++ } ++ ++ mutex_unlock(&ext_mutex_lock); ++ return 0; ++} ++ ++EXPORT_SYMBOL(ext_irq_ack); ++ ++void show_status(void) ++{ ++ int i = 0; ++ for (i = 0; i < MAX_PENDING_INTR_LIST; i++) ++ esp_dbg(ESP_DBG_ERROR, "status[%d] = [0x%04x]\n", i, ++ esp_pending_intr_list.pending_intr_list[i]); ++ ++ esp_dbg(ESP_DBG_ERROR, "start_pos[%d]\n", ++ esp_pending_intr_list.start_pos); ++ esp_dbg(ESP_DBG_ERROR, "end_pos[%d]\n", ++ esp_pending_intr_list.end_pos); ++ esp_dbg(ESP_DBG_ERROR, "curr_num[%d]\n", ++ esp_pending_intr_list.curr_num); ++ ++} ++void esp_tx_work(struct work_struct *work) ++{ ++ int i; ++ u16 tmp_intr_status_reg; ++ ++ esp_dbg(ESP_DBG_TRACE, "%s enter\n", __func__); ++ ++ spin_lock(&esp_pending_intr_list.spin_lock); ++ ++ tmp_intr_status_reg = ++ esp_pending_intr_list.pending_intr_list[esp_pending_intr_list. ++ start_pos]; ++ ++ esp_pending_intr_list.pending_intr_list[esp_pending_intr_list. ++ start_pos] = 0x0000; ++ esp_pending_intr_list.start_pos = ++ (esp_pending_intr_list.start_pos + 1) % MAX_PENDING_INTR_LIST; ++ esp_pending_intr_list.curr_num--; ++ ++ spin_unlock(&esp_pending_intr_list.spin_lock); ++ ++ for (i = 0; i < EXT_GPIO_MAX_NUM; i++) { ++ if (tmp_intr_status_reg & (1 << i) ++ && (gpio_list[i].irq_handler)) ++ gpio_list[i].irq_handler(); ++ } ++ ++ spin_lock(&esp_pending_intr_list.spin_lock); ++ if (esp_pending_intr_list.curr_num > 0) ++ queue_work(ext_irq_wkq, &ext_irq_work); ++ spin_unlock(&esp_pending_intr_list.spin_lock); ++} ++ ++void ext_gpio_int_process(u16 value) ++{ ++ if (value == 0x00) ++ return; ++ ++ esp_dbg(ESP_DBG_TRACE, "%s enter\n", __func__); ++ ++ /* intr cycle queue is full, wait */ ++ while (esp_pending_intr_list.curr_num >= MAX_PENDING_INTR_LIST) { ++ udelay(1); ++ } ++ ++ spin_lock(&esp_pending_intr_list.spin_lock); ++ ++ esp_pending_intr_list.pending_intr_list[esp_pending_intr_list. ++ end_pos] = value; ++ esp_pending_intr_list.end_pos = ++ (esp_pending_intr_list.end_pos + 1) % MAX_PENDING_INTR_LIST; ++ esp_pending_intr_list.curr_num++; ++ ++ queue_work(ext_irq_wkq, &ext_irq_work); ++ ++ spin_unlock(&esp_pending_intr_list.spin_lock); ++} ++ ++int ext_gpio_init(struct esp_pub *epub) ++{ ++ esp_dbg(ESP_DBG_ERROR, "%s enter\n", __func__); ++ ++ ext_irq_wkq = create_singlethread_workqueue("esp_ext_irq_wkq"); ++ if (ext_irq_wkq == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "%s create workqueue error\n", ++ __func__); ++ return -EACCES; ++ } ++ ++ INIT_WORK(&ext_irq_work, esp_tx_work); ++ mutex_init(&ext_mutex_lock); ++ ++ ext_epub = epub; ++ ++ if (ext_epub == NULL) ++ return -EINVAL; ++ ++#ifdef EXT_GPIO_OPS ++ register_ext_gpio_ops(&ext_gpio_ops); ++#endif ++ ++ return 0; ++} ++ ++void ext_gpio_deinit(void) ++{ ++ esp_dbg(ESP_DBG_ERROR, "%s enter\n", __func__); ++ ++#ifdef EXT_GPIO_OPS ++ unregister_ext_gpio_ops(); ++#endif ++ ext_epub = NULL; ++ cancel_work_sync(&ext_irq_work); ++ ++ if (ext_irq_wkq) ++ destroy_workqueue(ext_irq_wkq); ++ ++} ++ ++#endif /* USE_EXT_GPIO */ +diff --git a/drivers/net/wireless/esp8089/esp_ext.h b/drivers/net/wireless/esp8089/esp_ext.h +new file mode 100644 +index 000000000000..0eeba4d22111 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_ext.h +@@ -0,0 +1,100 @@ ++#ifdef USE_EXT_GPIO ++ ++#ifndef _ESP_EXT_H_ ++#define _ESP_EXT_H_ ++ ++#include ++#include ++#include "esp_sip.h" ++ ++#define MAX_PENDING_INTR_LIST 16 ++ ++#ifdef EXT_GPIO_OPS ++typedef struct esp_ext_gpio_ops { ++ int (*gpio_request) (int gpio_no); /* gpio_request gpio_no from 0x0 to 0xf */ ++ int (*gpio_release) (int gpio_no); /* gpio_release */ ++ int (*gpio_set_mode) (int gpio_no, int mode, void *data); /* gpio_set_mode, data is irq_func of irq_mode , default level of output_mode */ ++ int (*gpio_get_mode) (int gpio_no); /* gpio_get_mode, current mode */ ++ int (*gpio_set_state) (int gpio_no, int state); /* only output state, high level or low level */ ++ int (*gpio_get_state) (int gpio_no); /* current state */ ++ int (*irq_ack) (int gpio_no); /* ack interrupt */ ++} esp_ext_gpio_ops_t; ++#endif ++ ++typedef enum EXT_GPIO_NO { ++ EXT_GPIO_GPIO0 = 0, ++ EXT_GPIO_U0TXD, ++ EXT_GPIO_GPIO2, ++ EXT_GPIO_U0RXD, ++ EXT_GPIO_GPIO4, ++ EXT_GPIO_GPIO5, ++ EXT_GPIO_SD_CLK, ++ EXT_GPIO_SD_DATA0, ++ EXT_GPIO_SD_DATA1, ++ EXT_GPIO_SD_DATA2, ++ EXT_GPIO_SD_DATA3, ++ EXT_GPIO_SD_CMD, ++ EXT_GPIO_MTDI, ++ EXT_GPIO_MTCK, ++ EXT_GPIO_MTMS, ++ EXT_GPIO_MTDO, ++ EXT_GPIO_MAX_NUM ++} EXT_GPIO_NO_T; ++ ++typedef enum EXT_GPIO_MODE { //dir def pullup mode wake ++ EXT_GPIO_MODE_OOB = 0, //output 1 0 n/a n/a ++ EXT_GPIO_MODE_OUTPUT, //output / 0 n/a n/a ++ EXT_GPIO_MODE_DISABLE, //input n/a 0 DIS n/a ++ EXT_GPIO_MODE_INTR_POSEDGE, //input n/a 0 POS 1 ++ EXT_GPIO_MODE_INTR_NEGEDGE, //input n/a 1 NEG 1 ++ EXT_GPIO_MODE_INPUT, //input n/a 0 ANY 1 ++ EXT_GPIO_MODE_INTR_LOLEVEL, //input n/a 1 LOW 1 ++ EXT_GPIO_MODE_INTR_HILEVEL, //input n/a 0 HIGH 1 ++ EXT_GPIO_MODE_MAX, ++} EXT_GPIO_MODE_T; ++ ++typedef enum EXT_GPIO_STATE { ++ EXT_GPIO_STATE_LOW, ++ EXT_GPIO_STATE_HIGH, ++ EXT_GPIO_STATE_IDLE ++} EXT_GPIO_STATE_T; ++ ++typedef irqreturn_t(*ext_irq_handler_t) (void); ++ ++struct ext_gpio_info { ++ int gpio_no; ++ int gpio_mode; ++ int gpio_state; ++ ext_irq_handler_t irq_handler; ++}; ++ ++struct pending_intr_list_info { ++ u16 pending_intr_list[MAX_PENDING_INTR_LIST]; ++ int start_pos; ++ int end_pos; ++ int curr_num; ++ spinlock_t spin_lock; ++}; ++ ++u16 ext_gpio_get_int_mask_reg(void); ++ ++/* for extern user start */ ++int ext_gpio_request(int gpio_no); ++int ext_gpio_release(int gpio_no); ++ ++int ext_gpio_set_mode(int gpio_no, int mode, void *data); ++int ext_gpio_get_mode(int gpio_no); ++ ++int ext_gpio_set_output_state(int gpio_no, int state); ++int ext_gpio_get_state(int gpio_no); ++ ++int ext_irq_ack(int gpio_no); ++/* for extern user end */ ++ ++void ext_gpio_int_process(u16 value); ++ ++int ext_gpio_init(struct esp_pub *epub); ++void ext_gpio_deinit(void); ++#endif /* _ESP_EXT_H_ */ ++ ++#endif /* USE_EXT_GPIO */ +diff --git a/drivers/net/wireless/esp8089/esp_file.c b/drivers/net/wireless/esp8089/esp_file.c +new file mode 100644 +index 000000000000..ea702f010eec +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_file.c +@@ -0,0 +1,258 @@ ++/* ++ * Copyright (c) 2010 -2014 Espressif System. ++ * ++ * file operation in kernel space ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "esp_file.h" ++#include "esp_debug.h" ++#include "esp_sif.h" ++ ++static int mod_parm_crystal = -1; ++module_param_named(crystal, mod_parm_crystal, int, 0444); ++MODULE_PARM_DESC(crystal, "crystal frequency: 0=40MHz, 1=26MHz, 2=24MHz"); ++ ++struct esp_init_table_elem esp_init_table[MAX_ATTR_NUM] = { ++ /* ++ * Crystal type: ++ * 0: 40MHz (default) ++ * 1: 26MHz (ESP8266 ESP-12F) ++ * 2: 24MHz ++ */ ++ {"crystal_26M_en", 48, 0}, ++ /* ++ * Output crystal clock to pin: ++ * 0: None ++ * 1: GPIO1 ++ * 2: URXD0 ++ */ ++ {"test_xtal", 49, 0}, ++ /* ++ * Host SDIO mode: ++ * 0: Auto by pin strapping ++ * 1: SDIO data output on negative edges (SDIO v1.1) ++ * 2: SDIO data output on positive edges (SDIO v2.0) ++ */ ++ {"sdio_configure", 50, 2}, ++ /* ++ * WiFi/Bluetooth co-existence with BK3515A BT chip ++ * 0: None ++ * 1: GPIO0->WLAN_ACTIVE, MTMS->BT_ACTIVE, MTDI->BT_PRIORITY, ++ * U0TXD->ANT_SEL_BT, U0RXD->ANT_SEL_WIFI ++ */ ++ {"bt_configure", 51, 0}, ++ /* ++ * Antenna selection: ++ * 0: Antenna is for WiFi ++ * 1: Antenna is for Bluetooth ++ */ ++ {"bt_protocol", 52, 0}, ++ /* ++ * Dual antenna configuration mode: ++ * 0: None ++ * 1: U0RXD + XPD_DCDC ++ * 2: U0RXD + GPIO0 ++ * 3: U0RXD + U0TXD ++ */ ++ {"dual_ant_configure", 53, 0}, ++ /* ++ * Firmware debugging output pin: ++ * 0: None ++ * 1: UART TX on GPIO2 ++ * 2: UART TX on U0TXD ++ */ ++ {"test_uart_configure", 54, 2}, ++ /* ++ * Whether to share crystal clock with BT (in sleep mode): ++ * 0: no ++ * 1: always on ++ * 2: automatically on according to XPD_DCDC ++ */ ++ {"share_xtal", 55, 0}, ++ /* ++ * Allow chip to be woken up during sleep on pin: ++ * 0: None ++ * 1: XPD_DCDC ++ * 2: GPIO0 ++ * 3: Both XPD_DCDC and GPIO0 ++ */ ++ {"gpio_wake", 56, 0}, ++ {"no_auto_sleep", 57, 0}, ++ {"speed_suspend", 58, 0}, ++ {"attr11", -1, -1}, ++ {"attr12", -1, -1}, ++ {"attr13", -1, -1}, ++ {"attr14", -1, -1}, ++ {"attr15", -1, -1}, ++ //attr that is not send to target ++ /* ++ * Allow chip to be reset by GPIO pin: ++ * 0: no ++ * 1: yes ++ */ ++ {"ext_rst", -1, 0}, ++ {"wakeup_gpio", -1, 12}, ++ {"ate_test", -1, 0}, ++ {"attr19", -1, -1}, ++ {"attr20", -1, -1}, ++ {"attr21", -1, -1}, ++ {"attr22", -1, -1}, ++ {"attr23", -1, -1}, ++}; ++ ++/* ++ * Export part of the configuration related to first initiliazition to the esp8089 ++ */ ++void esp_conf_upload_first(void) ++{ ++ int i; ++ ++ for (i = 0; i < MAX_ATTR_NUM; i++) { ++ if (esp_init_table[i].value < 0) ++ continue; ++ ++ if (!strcmp(esp_init_table[i].attr, "share_xtal")) ++ sif_record_bt_config(esp_init_table[i].value); ++ else if (!strcmp(esp_init_table[i].attr, "ext_rst")) ++ sif_record_rst_config(esp_init_table[i].value); ++ else if (!strcmp(esp_init_table[i].attr, "wakeup_gpio")) ++ sif_record_wakeup_gpio_config(esp_init_table[i].value); ++ else if (!strcmp(esp_init_table[i].attr, "ate_test")) ++ sif_record_ate_config(esp_init_table[i].value); ++ } ++} ++ ++/* ++ * Export part of the configuration related to second initiliazition ++ */ ++void esp_conf_upload_second(u8 * init_data_buf, int buf_size) ++{ ++ int i; ++ ++ for (i = 0; i < MAX_FIX_ATTR_NUM; i++) { ++ if (esp_init_table[i].offset > -1 ++ && esp_init_table[i].offset < buf_size ++ && esp_init_table[i].value > -1) { ++ *(u8 *) (init_data_buf + ++ esp_init_table[i].offset) = ++ esp_init_table[i].value; ++ } else if (esp_init_table[i].offset > buf_size) { ++ esp_dbg(ESP_DBG_ERROR, ++ "%s: offset[%d] longer than init_data_buf len[%d] Ignore\n", ++ __FUNCTION__, esp_init_table[i].offset, ++ buf_size); ++ } ++ } ++ ++} ++ ++ ++void esp_conf_init(struct device *dev) ++{ ++ ++ struct device_node *np = dev->of_node; ++ ++ if (np) { ++ ++ u32 value; ++ ++ if (!of_property_read_u32(np, "esp,crystal-26M-en", &value)) ++ esp_conf_set_attr("crystal_26M_en", value); ++ ++ if (!of_property_read_u32(np, "esp,sdio-configure", &value)) ++ esp_conf_set_attr("sdio_configure", value); ++ ++ if (of_property_read_bool(np, "esp,shared-xtal")) ++ esp_conf_set_attr("share_xtal", 1); ++ ++ if (!of_property_read_u32(np, "esp,gpio-wake", &value)) ++ esp_conf_set_attr("gpio_wake", value); ++ ++ if (!of_property_read_u32(np, "esp,wakeup-gpio", &value)) ++ esp_conf_set_attr("wakeup_gpio", value); ++ ++ if (of_property_read_bool(np, "esp,configure-dual-antenna")) ++ esp_conf_set_attr("dual_ant_configure", 1); ++ ++ if (of_property_read_bool(np, "esp,no-auto-sleep")) ++ esp_conf_set_attr("no_auto_sleep", 1); ++ ++ if (of_property_read_bool(np, "esp,test-xtal")) ++ esp_conf_set_attr("test_xtal", 1); ++ ++ if (of_property_read_bool(np, "esp,bt-configure")) ++ esp_conf_set_attr("bt_configure", 1); ++ ++ if (!of_property_read_u32(np, "esp,bt-protocol", &value)) ++ esp_conf_set_attr("bt_protocol", value); ++ ++ if (of_property_read_bool(np, "esp,test-uart-configure")) ++ esp_conf_set_attr("test_uart_configure", 1); ++ ++ if (of_property_read_bool(np, "esp,speed-suspend")) ++ esp_conf_set_attr("speed_suspend", 1); ++ ++ if (of_property_read_bool(np, "esp,ate-test")) ++ esp_conf_set_attr("ate_test", 1); ++ ++ if (!of_property_read_u32(np, "esp,ext-rst", &value)) ++ esp_conf_set_attr("ext_rst", value); ++ ++ } ++ ++ if (mod_parm_crystal >= 0 && mod_parm_crystal <= 2) ++ esp_conf_set_attr("crystal_26M_en", mod_parm_crystal); ++ ++ ++ esp_conf_show_attrs(); ++ ++} ++ ++int esp_conf_set_attr(char *name, u8 value) { ++ ++ int i; ++ ++ for (i = 0; i < MAX_ATTR_NUM; i++) { ++ ++ if (strcmp(esp_init_table[i].attr, name) == 0) { ++ esp_dbg(ESP_DBG, "set config: %s value: %d", name, value); ++ esp_init_table[i].value = value; ++ return 0; ++ } ++ ++ } ++ ++ return -1; ++ ++} ++ ++void esp_conf_show_attrs(void) ++{ ++ int i; ++ for (i = 0; i < MAX_ATTR_NUM; i++) ++ if (esp_init_table[i].offset > -1) ++ esp_dbg(ESP_SHOW, "config parm:%s (id:%d), value: %d\n", ++ esp_init_table[i].attr, ++ esp_init_table[i].offset, ++ esp_init_table[i].value); ++} +diff --git a/drivers/net/wireless/esp8089/esp_file.h b/drivers/net/wireless/esp8089/esp_file.h +new file mode 100644 +index 000000000000..5ba39c626baa +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_file.h +@@ -0,0 +1,43 @@ ++/* ++ * Copyright (c) 2010 -2014 Espressif System. ++ * ++ * file operation in kernel space ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _ESP_FILE_H_ ++#define _ESP_FILE_H_ ++ ++#include ++#include ++ ++#define E_ROUND_UP(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) ++ ++#define CONF_ATTR_LEN 24 ++#define CONF_VAL_LEN 3 ++#define MAX_ATTR_NUM 24 ++#define MAX_FIX_ATTR_NUM 16 ++#define MAX_BUF_LEN ((CONF_ATTR_LEN + CONF_VAL_LEN + 2) * MAX_ATTR_NUM + 2) ++ ++struct esp_init_table_elem { ++ char attr[CONF_ATTR_LEN]; ++ int offset; ++ short value; ++}; ++ ++void esp_conf_init(struct device *dev); ++void esp_conf_upload_first(void); ++void esp_conf_upload_second(u8 * init_data_buf, int buf_size); ++int esp_conf_set_attr(char *name, u8 value); ++void esp_conf_show_attrs(void); ++ ++#endif /* _ESP_FILE_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_init_data.h b/drivers/net/wireless/esp8089/esp_init_data.h +new file mode 100644 +index 000000000000..16f451affd1e +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_init_data.h +@@ -0,0 +1,7 @@ ++static char esp_init_data[] = ++ { 0x5, 0x0, 4, 2, 5, 5, 5, 2, 5, 0, 4, 5, 5, 4, 5, 5, 4, -2, -3, -1, ++-16, -16, -16, -32, -32, -32, 204, 1, 0xff, 0xff, 0, 0, 0, 0, 82, 78, 74, 68, 64, 56, 0, ++0, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 10, 0x0, 0x0, ++0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++0 }; +diff --git a/drivers/net/wireless/esp8089/esp_io.c b/drivers/net/wireless/esp8089/esp_io.c +new file mode 100644 +index 000000000000..6c5c01aad4e5 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_io.c +@@ -0,0 +1,639 @@ ++/* ++ * Copyright (c) 2009 - 2014 Espressif System. ++ * IO interface ++ * - sdio/spi common i/f driver ++ * - target sdio hal ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include "esp_sif.h" ++#include "slc_host_register.h" ++#include "esp_debug.h" ++ ++#ifdef SIF_DEBUG_DSR_DUMP_REG ++static void dump_slc_regs(struct slc_host_regs *regs); ++#endif /* SIF_DEBUG_DSR_DUMP_REG */ ++ ++int esp_common_read(struct esp_pub *epub, u8 * buf, u32 len, int sync, ++ bool noround) ++{ ++ if (sync) { ++ return sif_lldesc_read_sync(epub, buf, len); ++ } else { ++ return sif_lldesc_read_raw(epub, buf, len, noround); ++ } ++} ++ ++ ++int esp_common_write(struct esp_pub *epub, u8 * buf, u32 len, int sync) ++{ ++ if (sync) { ++ return sif_lldesc_write_sync(epub, buf, len); ++ } else { ++ return sif_lldesc_write_raw(epub, buf, len); ++ } ++} ++ ++ ++int esp_common_read_with_addr(struct esp_pub *epub, u32 addr, u8 * buf, ++ u32 len, int sync) ++{ ++ if (sync) { ++ return sif_io_sync(epub, addr, buf, len, ++ SIF_FROM_DEVICE | SIF_SYNC | ++ SIF_BYTE_BASIS | SIF_INC_ADDR); ++ } else { ++ return sif_io_raw(epub, addr, buf, len, ++ SIF_FROM_DEVICE | SIF_BYTE_BASIS | ++ SIF_INC_ADDR); ++ } ++ ++} ++ ++ ++int esp_common_write_with_addr(struct esp_pub *epub, u32 addr, u8 * buf, ++ u32 len, int sync) ++{ ++ if (sync) { ++ return sif_io_sync(epub, addr, buf, len, ++ SIF_TO_DEVICE | SIF_SYNC | ++ SIF_BYTE_BASIS | SIF_INC_ADDR); ++ } else { ++ return sif_io_raw(epub, addr, buf, len, ++ SIF_TO_DEVICE | SIF_BYTE_BASIS | ++ SIF_INC_ADDR); ++ } ++} ++ ++int esp_common_readbyte_with_addr(struct esp_pub *epub, u32 addr, u8 * buf, ++ int sync) ++{ ++ if (sync) { ++ int res; ++ sif_lock_bus(epub); ++ *buf = sdio_io_readb(epub, addr, &res); ++ sif_unlock_bus(epub); ++ return res; ++ } else { ++ int res; ++ *buf = sdio_io_readb(epub, addr, &res); ++ return res; ++ } ++ ++} ++ ++ ++ ++int esp_common_writebyte_with_addr(struct esp_pub *epub, u32 addr, u8 buf, ++ int sync) ++{ ++ if (sync) { ++ int res; ++ sif_lock_bus(epub); ++ sdio_io_writeb(epub, buf, addr, &res); ++ sif_unlock_bus(epub); ++ return res; ++ } else { ++ int res; ++ sdio_io_writeb(epub, buf, addr, &res); ++ return res; ++ } ++} ++ ++int sif_read_reg_window(struct esp_pub *epub, unsigned int reg_addr, ++ u8 * value) ++{ ++ u8 *p_tbuf = NULL; ++ int ret = 0; ++ int retry = 20; ++ ++ reg_addr >>= 2; ++ if (reg_addr > 0x1f) ++ return -1; ++ ++ p_tbuf = kzalloc(4, GFP_KERNEL); ++ if (p_tbuf == NULL) ++ return -ENOMEM; ++ ++ p_tbuf[0] = 0x80 | (reg_addr & 0x1f); ++ ++ ret = ++ esp_common_write_with_addr(epub, SLC_HOST_WIN_CMD, p_tbuf, 1, ++ ESP_SIF_NOSYNC); ++ ++ if (ret == 0) { ++ do { ++ if (retry < 20) ++ mdelay(10); ++ retry--; ++ ret = ++ esp_common_read_with_addr(epub, ++ SLC_HOST_STATE_W0, ++ p_tbuf, 4, ++ ESP_SIF_NOSYNC); ++ } while (retry > 0 && ret != 0); ++ } ++ ++ if (ret == 0) ++ memcpy(value, p_tbuf, 4); ++ ++ kfree(p_tbuf); ++ return ret; ++} ++ ++int sif_write_reg_window(struct esp_pub *epub, unsigned int reg_addr, ++ u8 * value) ++{ ++ u8 *p_tbuf = NULL; ++ int ret = 0; ++ ++ reg_addr >>= 2; ++ if (reg_addr > 0x1f) ++ return -1; ++ ++ p_tbuf = kzalloc(8, GFP_KERNEL); ++ if (p_tbuf == NULL) ++ return -ENOMEM; ++ memcpy(p_tbuf, value, 4); ++ p_tbuf[4] = 0xc0 | (reg_addr & 0x1f); ++ ++ ret = ++ esp_common_write_with_addr(epub, SLC_HOST_CONF_W5, p_tbuf, 5, ++ ESP_SIF_NOSYNC); ++ ++ kfree(p_tbuf); ++ return ret; ++} ++ ++int sif_ack_target_read_err(struct esp_pub *epub) ++{ ++ u32 value[1]; ++ int ret; ++ ++ ret = sif_read_reg_window(epub, SLC_RX_LINK, (u8 *) value); ++ if (ret) ++ return ret; ++ value[0] |= SLC_RXLINK_START; ++ ret = sif_write_reg_window(epub, SLC_RX_LINK, (u8 *) value); ++ return ret; ++} ++ ++int sif_had_io_enable(struct esp_pub *epub) ++{ ++ u32 *p_tbuf = NULL; ++ int ret; ++ ++ p_tbuf = kzalloc(sizeof(u32), GFP_KERNEL); ++ if (p_tbuf == NULL) ++ return -ENOMEM; ++ ++ *p_tbuf = ++ SLC_TXEOF_ENA | (0x4 << SLC_FIFO_MAP_ENA_S) | SLC_TX_DUMMY_MODE ++ | SLC_HDA_MAP_128K | (0xFE << SLC_TX_PUSH_IDLE_NUM_S); ++ ret = sif_write_reg_window(epub, SLC_BRIDGE_CONF, (u8 *) p_tbuf); ++ ++ if (ret) ++ goto _err; ++ ++ *p_tbuf = 0x30; ++ ret = ++ esp_common_write_with_addr((epub), SLC_HOST_CONF_W4 + 1, ++ (u8 *) p_tbuf, 1, ESP_SIF_NOSYNC); ++ ++ if (ret) ++ goto _err; ++ //set w3 0 ++ *p_tbuf = 0x1; ++ ret = ++ esp_common_write_with_addr((epub), SLC_HOST_CONF_W3, ++ (u8 *) p_tbuf, 1, ESP_SIF_NOSYNC); ++ ++ _err: ++ kfree(p_tbuf); ++ return ret; ++} ++ ++typedef enum _SDIO_INTR_MODE { ++ SDIO_INTR_IB = 0, ++ SDIO_INTR_OOB_TOGGLE, ++ SDIO_INTR_OOB_HIGH_LEVEL, ++ SDIO_INTR_OOB_LOW_LEVEL, ++} SDIO_INTR_MODE; ++ ++#define GEN_GPIO_SEL(_gpio_num, _sel_func, _intr_mode, _offset) (((_offset)<< 9 ) |((_intr_mode) << 7)|((_sel_func) << 4)|(_gpio_num)) ++//bit[3:0] = gpio num, 2 ++//bit[6:4] = gpio sel func, 0 ++//bit[8:7] = gpio intr mode, SDIO_INTR_OOB_TOGGLE ++//bit[15:9] = register offset, 0x38 ++ ++u16 gpio_sel_sets[17] = { ++ GEN_GPIO_SEL(0, 0, SDIO_INTR_OOB_TOGGLE, 0x34), //GPIO0 ++ GEN_GPIO_SEL(1, 3, SDIO_INTR_OOB_TOGGLE, 0x18), //U0TXD ++ GEN_GPIO_SEL(2, 0, SDIO_INTR_OOB_TOGGLE, 0x38), //GPIO2 ++ GEN_GPIO_SEL(3, 3, SDIO_INTR_OOB_TOGGLE, 0x14), //U0RXD ++ GEN_GPIO_SEL(4, 0, SDIO_INTR_OOB_TOGGLE, 0x3C), //GPIO4 ++ GEN_GPIO_SEL(5, 0, SDIO_INTR_OOB_TOGGLE, 0x40), //GPIO5 ++ GEN_GPIO_SEL(6, 3, SDIO_INTR_OOB_TOGGLE, 0x1C), //SD_CLK ++ GEN_GPIO_SEL(7, 3, SDIO_INTR_OOB_TOGGLE, 0x20), //SD_DATA0 ++ GEN_GPIO_SEL(8, 3, SDIO_INTR_OOB_TOGGLE, 0x24), //SD_DATA1 ++ GEN_GPIO_SEL(9, 3, SDIO_INTR_OOB_TOGGLE, 0x28), //SD_DATA2 ++ GEN_GPIO_SEL(10, 3, SDIO_INTR_OOB_TOGGLE, 0x2C), //SD_DATA3 ++ GEN_GPIO_SEL(11, 3, SDIO_INTR_OOB_TOGGLE, 0x30), //SD_CMD ++ GEN_GPIO_SEL(12, 3, SDIO_INTR_OOB_TOGGLE, 0x04), //MTDI ++ GEN_GPIO_SEL(13, 3, SDIO_INTR_OOB_TOGGLE, 0x08), //MTCK ++ GEN_GPIO_SEL(14, 3, SDIO_INTR_OOB_TOGGLE, 0x0C), //MTMS ++ GEN_GPIO_SEL(15, 3, SDIO_INTR_OOB_TOGGLE, 0x10), //MTDO ++ //pls do not change sel before, if you want to change intr mode,change the one blow ++ //GEN_GPIO_SEL(2, 0, SDIO_INTR_OOB_TOGGLE, 0x38) ++ GEN_GPIO_SEL(2, 0, SDIO_INTR_OOB_LOW_LEVEL, 0x38) ++}; ++ ++#if defined(USE_EXT_GPIO) ++u16 gpio_forbidden = 0; ++#endif ++ ++int sif_interrupt_target(struct esp_pub *epub, u8 index) ++{ ++ u8 low_byte = BIT(index); ++ return esp_common_writebyte_with_addr(epub, SLC_HOST_CONF_W4 + 2, ++ low_byte, ESP_SIF_NOSYNC); ++ ++} ++ ++#ifdef USE_EXT_GPIO ++int sif_config_gpio_mode(struct esp_pub *epub, u8 gpio_num, u8 gpio_mode) ++{ ++ u32 *p_tbuf = NULL; ++ int err; ++ ++ if ((BIT(gpio_num) & gpio_forbidden) || gpio_num > 15) ++ return -EINVAL; ++ ++ p_tbuf = kzalloc(sizeof(u32), GFP_KERNEL); ++ if (p_tbuf == NULL) ++ return -ENOMEM; ++ *p_tbuf = (gpio_mode << 16) | gpio_sel_sets[gpio_num]; ++ err = ++ esp_common_write_with_addr(epub, SLC_HOST_CONF_W1, ++ (u8 *) p_tbuf, sizeof(u32), ++ ESP_SIF_NOSYNC); ++ kfree(p_tbuf); ++ if (err) ++ return err; ++ ++ return sif_interrupt_target(epub, 4); ++} ++ ++int sif_set_gpio_output(struct esp_pub *epub, u16 mask, u16 value) ++{ ++ u32 *p_tbuf = NULL; ++ int err; ++ ++ mask &= ~gpio_forbidden; ++ p_tbuf = kzalloc(sizeof(u32), GFP_KERNEL); ++ if (p_tbuf == NULL) ++ return -ENOMEM; ++ *p_tbuf = (mask << 16) | value; ++ err = ++ esp_common_write_with_addr(epub, SLC_HOST_CONF_W2, ++ (u8 *) p_tbuf, sizeof(u32), ++ ESP_SIF_NOSYNC); ++ kfree(p_tbuf); ++ if (err) ++ return err; ++ ++ return sif_interrupt_target(epub, 5); ++} ++ ++int sif_get_gpio_intr(struct esp_pub *epub, u16 intr_mask, u16 * value) ++{ ++ u32 *p_tbuf = NULL; ++ int err; ++ ++ p_tbuf = kzalloc(sizeof(u32), GFP_KERNEL); ++ if (p_tbuf == NULL) ++ return -ENOMEM; ++ *p_tbuf = 0; ++ err = ++ esp_common_read_with_addr(epub, SLC_HOST_CONF_W3, ++ (u8 *) p_tbuf, sizeof(u32), ++ ESP_SIF_NOSYNC); ++ if (err) { ++ kfree(p_tbuf); ++ return err; ++ } ++ ++ *value = *p_tbuf & intr_mask; ++ kfree(p_tbuf); ++ if (*value == 0) ++ return 0; ++ return sif_interrupt_target(epub, 6); ++} ++ ++int sif_get_gpio_input(struct esp_pub *epub, u16 * mask, u16 * value) ++{ ++ u32 *p_tbuf = NULL; ++ int err; ++ ++ err = sif_interrupt_target(epub, 3); ++ if (err) ++ return err; ++ ++ udelay(20); ++ p_tbuf = kzalloc(sizeof(u32), GFP_KERNEL); ++ if (p_tbuf == NULL) ++ return -ENOMEM; ++ *p_tbuf = 0; ++ err = ++ esp_common_read_with_addr(epub, SLC_HOST_CONF_W3, ++ (u8 *) p_tbuf, sizeof(u32), ++ ESP_SIF_NOSYNC); ++ if (err) { ++ kfree(p_tbuf); ++ return err; ++ } ++ ++ *mask = *p_tbuf >> 16; ++ *value = *p_tbuf & *mask; ++ kfree(p_tbuf); ++ ++ return 0; ++} ++#endif ++ ++void check_target_id(struct esp_pub *epub) ++{ ++ u32 date; ++ int err = 0; ++ int i; ++ ++ EPUB_CTRL_CHECK(epub, _err); ++ ++ sif_lock_bus(epub); ++ ++ for (i = 0; i < 4; i++) { ++ err = ++ esp_common_readbyte_with_addr(epub, SLC_HOST_DATE + i, ++ (u8 *) & date + i, ++ ESP_SIF_NOSYNC); ++ err = ++ esp_common_readbyte_with_addr(epub, SLC_HOST_ID + i, ++ (u8 *) & ++ EPUB_TO_CTRL(epub)-> ++ target_id + i, ++ ESP_SIF_NOSYNC); ++ } ++ ++ sif_unlock_bus(epub); ++ ++ esp_dbg(ESP_DBG_LOG, "\n\n \t\t SLC data 0x%08x, ID 0x%08x\n\n", ++ date, EPUB_TO_CTRL(epub)->target_id); ++ ++ switch (EPUB_TO_CTRL(epub)->target_id) { ++ case 0x100: ++ EPUB_TO_CTRL(epub)->slc_window_end_addr = 0x20000; ++ break; ++ case 0x600: ++ EPUB_TO_CTRL(epub)->slc_window_end_addr = 0x20000 - 0x800; ++ ++ do { ++ u16 gpio_sel; ++ u8 low_byte = 0; ++ u8 high_byte = 0; ++ u8 byte2 = 0; ++ u8 byte3 = 0; ++#ifdef USE_OOB_INTR ++ gpio_sel = gpio_sel_sets[16]; ++ low_byte = gpio_sel; ++ high_byte = gpio_sel >> 8; ++#ifdef USE_EXT_GPIO ++ gpio_forbidden |= BIT(gpio_sel & 0xf); ++#endif /* USE_EXT_GPIO */ ++#endif /* USE_OOB_INTR */ ++ ++ if (sif_get_bt_config() == 1 ++ && sif_get_rst_config() != 1) { ++ u8 gpio_num = sif_get_wakeup_gpio_config(); ++ gpio_sel = gpio_sel_sets[gpio_num]; ++ byte2 = gpio_sel; ++ byte3 = gpio_sel >> 8; ++#ifdef USE_EXT_GPIO ++ gpio_forbidden |= BIT(gpio_num); ++#endif ++ } ++ sif_lock_bus(epub); ++ err = ++ esp_common_writebyte_with_addr(epub, ++ SLC_HOST_CONF_W1, ++ low_byte, ++ ESP_SIF_NOSYNC); ++ err = ++ esp_common_writebyte_with_addr(epub, ++ SLC_HOST_CONF_W1 ++ + 1, high_byte, ++ ESP_SIF_NOSYNC); ++ err = ++ esp_common_writebyte_with_addr(epub, ++ SLC_HOST_CONF_W1 ++ + 2, byte2, ++ ESP_SIF_NOSYNC); ++ err = ++ esp_common_writebyte_with_addr(epub, ++ SLC_HOST_CONF_W1 ++ + 3, byte3, ++ ESP_SIF_NOSYNC); ++ sif_unlock_bus(epub); ++ } while (0); ++ break; ++ default: ++ EPUB_TO_CTRL(epub)->slc_window_end_addr = 0x20000; ++ break; ++ } ++ _err: ++ return; ++} ++ ++u32 sif_get_blksz(struct esp_pub * epub) ++{ ++ EPUB_CTRL_CHECK(epub, _err); ++ ++ return EPUB_TO_CTRL(epub)->slc_blk_sz; ++ _err: ++ return 512; ++} ++ ++u32 sif_get_target_id(struct esp_pub * epub) ++{ ++ EPUB_CTRL_CHECK(epub, _err); ++ ++ return EPUB_TO_CTRL(epub)->target_id; ++ _err: ++ return 0x600; ++} ++ ++void sif_dsr(struct sdio_func *func) ++{ ++ struct esp_sdio_ctrl *sctrl = sdio_get_drvdata(func); ++ static int dsr_cnt = 0, real_intr_cnt = 0, bogus_intr_cnt = 0; ++ struct slc_host_regs *regs = &(sctrl->slc_regs); ++ esp_dbg(ESP_DBG_TRACE, " %s enter %d \n", __func__, dsr_cnt++); ++ ++ sdio_release_host(sctrl->func); ++ ++ ++ sif_lock_bus(sctrl->epub); ++ ++ ++ do { ++ int ret = 0; ++ ++ memset(regs, 0x0, sizeof(struct slc_host_regs)); ++ ++ ret = ++ esp_common_read_with_addr(sctrl->epub, ++ REG_SLC_HOST_BASE + 8, ++ (u8 *) regs, ++ sizeof(struct slc_host_regs), ++ ESP_SIF_NOSYNC); ++ ++ if ((regs->intr_raw & SLC_HOST_RX_ST) && (ret == 0)) { ++ esp_dbg(ESP_DBG_TRACE, "%s eal intr cnt: %d", ++ __func__, ++real_intr_cnt); ++ ++ esp_dsr(sctrl->epub); ++ ++ } else { ++ sif_unlock_bus(sctrl->epub); ++ ++ esp_dbg(ESP_DBG_TRACE, "%s bogus_intr_cnt %d\n", ++ __func__, ++bogus_intr_cnt); ++ } ++ ++#ifdef SIF_DEBUG_DSR_DUMP_REG ++ dump_slc_regs(regs); ++#endif /* SIF_DEBUG_DUMP_DSR */ ++ ++ } while (0); ++ ++ sdio_claim_host(func); ++ ++ atomic_set(&sctrl->irq_handling, 0); ++} ++ ++ ++struct slc_host_regs *sif_get_regs(struct esp_pub *epub) ++{ ++ EPUB_CTRL_CHECK(epub, _err); ++ ++ return &EPUB_TO_CTRL(epub)->slc_regs; ++ _err: ++ return NULL; ++} ++ ++void sif_disable_target_interrupt(struct esp_pub *epub) ++{ ++ EPUB_FUNC_CHECK(epub, _exit); ++ sif_lock_bus(epub); ++#ifdef HOST_RESET_BUG ++ mdelay(10); ++#endif ++ memset(EPUB_TO_CTRL(epub)->dma_buffer, 0x00, sizeof(u32)); ++ esp_common_write_with_addr(epub, SLC_HOST_INT_ENA, ++ EPUB_TO_CTRL(epub)->dma_buffer, ++ sizeof(u32), ESP_SIF_NOSYNC); ++#ifdef HOST_RESET_BUG ++ mdelay(10); ++#endif ++ ++ sif_unlock_bus(epub); ++ ++ mdelay(1); ++ ++ sif_lock_bus(epub); ++ sif_interrupt_target(epub, 7); ++ sif_unlock_bus(epub); ++ _exit: ++ return; ++} ++ ++#ifdef SIF_DEBUG_DSR_DUMP_REG ++static void dump_slc_regs(struct slc_host_regs *regs) ++{ ++ esp_dbg(ESP_DBG_TRACE, "\n\n ------- %s --------------\n", ++ __func__); ++ ++ esp_dbg(ESP_DBG_TRACE, " \ ++ intr_raw 0x%08X \t \n \ ++ state_w0 0x%08X \t state_w1 0x%08X \n \ ++ config_w0 0x%08X \t config_w1 0x%08X \n \ ++ intr_status 0x%08X \t config_w2 0x%08X \n \ ++ config_w3 0x%08X \t config_w4 0x%08X \n \ ++ token_wdata 0x%08X \t intr_clear 0x%08X \n \ ++ intr_enable 0x%08X \n\n", regs->intr_raw, regs->state_w0, regs->state_w1, regs->config_w0, regs->config_w1, regs->intr_status, regs->config_w2, regs->config_w3, regs->config_w4, regs->token_wdata, regs->intr_clear, regs->intr_enable); ++} ++#endif /* SIF_DEBUG_DSR_DUMP_REG */ ++ ++static int bt_config = 0; ++void sif_record_bt_config(int value) ++{ ++ bt_config = value; ++} ++ ++int sif_get_bt_config(void) ++{ ++ return bt_config; ++} ++ ++static int rst_config = 0; ++void sif_record_rst_config(int value) ++{ ++ rst_config = value; ++} ++ ++int sif_get_rst_config(void) ++{ ++ return rst_config; ++} ++ ++static int ate_test = 0; ++void sif_record_ate_config(int value) ++{ ++ ate_test = value; ++} ++ ++int sif_get_ate_config(void) ++{ ++ return ate_test; ++} ++ ++static int retry_reset = 0; ++void sif_record_retry_config(void) ++{ ++ retry_reset = 1; ++} ++ ++int sif_get_retry_config(void) ++{ ++ return retry_reset; ++} ++ ++static int wakeup_gpio = 12; ++void sif_record_wakeup_gpio_config(int value) ++{ ++ wakeup_gpio = value; ++} ++ ++int sif_get_wakeup_gpio_config(void) ++{ ++ return wakeup_gpio; ++} +diff --git a/drivers/net/wireless/esp8089/esp_mac80211.c b/drivers/net/wireless/esp8089/esp_mac80211.c +new file mode 100644 +index 000000000000..14186365fdd4 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_mac80211.c +@@ -0,0 +1,1727 @@ ++/* ++ * Copyright (c) 2011-2014 Espressif System. ++ * ++ * MAC80211 support module ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "esp_pub.h" ++#include "esp_sip.h" ++#include "esp_ctrl.h" ++#include "esp_sif.h" ++#include "esp_debug.h" ++#include "esp_wl.h" ++#include "esp_utils.h" ++ ++#define ESP_IEEE80211_DBG esp_dbg ++ ++#define GET_NEXT_SEQ(seq) (((seq) +1) & 0x0fff) ++ ++static u8 esp_mac_addr[ETH_ALEN * 2]; ++static u8 getaddr_index(u8 * addr, struct esp_pub *epub); ++ ++static ++void ++esp_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control, ++ struct sk_buff *skb) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_LOG, "%s enter\n", __func__); ++ if (!mod_support_no_txampdu() && ++ cfg80211_get_chandef_type(&epub->hw->conf.chandef) != ++ NL80211_CHAN_NO_HT) { ++ struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); ++ struct ieee80211_hdr *wh = ++ (struct ieee80211_hdr *) skb->data; ++ if (ieee80211_is_data_qos(wh->frame_control)) { ++ if (!(tx_info->flags & IEEE80211_TX_CTL_AMPDU)) { ++ u8 tidno = ++ ieee80211_get_qos_ctl(wh)[0] & ++ IEEE80211_QOS_CTL_TID_MASK; ++ struct esp_node *node = ++ esp_get_node_by_addr(epub, wh->addr1); ++ { ++ struct esp_tx_tid *tid = ++ &node->tid[tidno]; ++ //record ssn ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ tid->ssn = ++ GET_NEXT_SEQ(le16_to_cpu ++ (wh-> ++ seq_ctrl) >> 4); ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "tidno:%u,ssn:%u\n", ++ tidno, tid->ssn); ++ spin_unlock_bh(&epub-> ++ tx_ampdu_lock); ++ } ++ } else { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "tx ampdu pkt, sn:%u, %u\n", ++ le16_to_cpu(wh-> ++ seq_ctrl) >> ++ 4, skb->len); ++ } ++ } ++ } ++#ifdef GEN_ERR_CHECKSUM ++ esp_gen_err_checksum(skb); ++#endif ++ ++ sip_tx_data_pkt_enqueue(epub, skb); ++ if (epub) ++ ieee80211_queue_work(hw, &epub->tx_work); ++} ++ ++static int esp_op_start(struct ieee80211_hw *hw) ++{ ++ struct esp_pub *epub; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s\n", __func__); ++ ++ if (!hw) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, "%s no hw!\n", __func__); ++ return -EINVAL; ++ } ++ ++ epub = (struct esp_pub *) hw->priv; ++ ++ if (!epub) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, "%s no epub!\n", ++ __func__); ++ return EINVAL; ++ } ++ /*add rfkill poll function */ ++ ++ atomic_set(&epub->wl.off, 0); ++ wiphy_rfkill_start_polling(hw->wiphy); ++ return 0; ++} ++ ++static void esp_op_stop(struct ieee80211_hw *hw) ++{ ++ struct esp_pub *epub; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s\n", __func__); ++ ++ if (!hw) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, "%s no hw!\n", __func__); ++ return; ++ } ++ ++ epub = (struct esp_pub *) hw->priv; ++ ++ if (!epub) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, "%s no epub!\n", ++ __func__); ++ return; ++ } ++ ++ atomic_set(&epub->wl.off, 1); ++ ++#ifdef HOST_RESET_BUG ++ mdelay(200); ++#endif ++ ++ if (epub->wl.scan_req) { ++ hw_scan_done(epub, true); ++ epub->wl.scan_req = NULL; ++ //msleep(2); ++ } ++} ++ ++#ifdef CONFIG_PM ++static int esp_op_suspend(struct ieee80211_hw *hw, ++ struct cfg80211_wowlan *wowlan) ++{ ++ esp_dbg(ESP_DBG_OP, "%s\n", __func__); ++ ++ return 0; ++} ++ ++static int esp_op_resume(struct ieee80211_hw *hw) ++{ ++ esp_dbg(ESP_DBG_OP, "%s\n", __func__); ++ ++ return 0; ++} ++#endif //CONFIG_PM ++ ++static int esp_op_add_interface(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ struct sip_cmd_setvif svif; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s enter: type %d, addr %pM\n", ++ __func__, vif->type, vif->addr); ++ ++ memset(&svif, 0, sizeof(struct sip_cmd_setvif)); ++ memcpy(svif.mac, vif->addr, ETH_ALEN); ++ evif->index = svif.index = getaddr_index(vif->addr, epub); ++ evif->epub = epub; ++ epub->vif = vif; ++ svif.set = 1; ++ if ((1 << svif.index) & epub->vif_slot) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "%s interface %d already used\n", ++ __func__, svif.index); ++ return -EOPNOTSUPP; ++ } ++ epub->vif_slot |= 1 << svif.index; ++ ++ if (svif.index == ESP_PUB_MAX_VIF) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "%s only support MAX %d interface\n", ++ __func__, ESP_PUB_MAX_VIF); ++ return -EOPNOTSUPP; ++ } ++ ++ switch (vif->type) { ++ case NL80211_IFTYPE_STATION: ++ //if (svif.index == 1) ++ // vif->type = NL80211_IFTYPE_UNSPECIFIED; ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s STA \n", __func__); ++ svif.op_mode = 0; ++ svif.is_p2p = 0; ++ break; ++ case NL80211_IFTYPE_AP: ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s AP \n", __func__); ++ svif.op_mode = 1; ++ svif.is_p2p = 0; ++ break; ++ case NL80211_IFTYPE_P2P_CLIENT: ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s P2P_CLIENT \n", __func__); ++ svif.op_mode = 0; ++ svif.is_p2p = 1; ++ break; ++ case NL80211_IFTYPE_P2P_GO: ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s P2P_GO \n", __func__); ++ svif.op_mode = 1; ++ svif.is_p2p = 1; ++ break; ++ case NL80211_IFTYPE_UNSPECIFIED: ++ case NL80211_IFTYPE_ADHOC: ++ case NL80211_IFTYPE_AP_VLAN: ++ case NL80211_IFTYPE_WDS: ++ case NL80211_IFTYPE_MONITOR: ++ default: ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "%s does NOT support type %d\n", ++ __func__, vif->type); ++ return -EOPNOTSUPP; ++ } ++ ++ sip_cmd(epub, SIP_CMD_SETVIF, (u8 *) & svif, ++ sizeof(struct sip_cmd_setvif)); ++ return 0; ++} ++ ++static int esp_op_change_interface(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ enum nl80211_iftype new_type, bool p2p) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ struct sip_cmd_setvif svif; ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s enter,change to if:%d \n", ++ __func__, new_type); ++ ++ if (new_type == NL80211_IFTYPE_AP) { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter,change to AP \n", ++ __func__); ++ } ++ ++ if (vif->type != new_type) { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s type from %d to %d\n", ++ __func__, vif->type, new_type); ++ } ++ ++ memset(&svif, 0, sizeof(struct sip_cmd_setvif)); ++ memcpy(svif.mac, vif->addr, ETH_ALEN); ++ svif.index = evif->index; ++ svif.set = 2; ++ ++ switch (new_type) { ++ case NL80211_IFTYPE_STATION: ++ svif.op_mode = 0; ++ svif.is_p2p = p2p; ++ break; ++ case NL80211_IFTYPE_AP: ++ svif.op_mode = 1; ++ svif.is_p2p = p2p; ++ break; ++ case NL80211_IFTYPE_P2P_CLIENT: ++ svif.op_mode = 0; ++ svif.is_p2p = 1; ++ break; ++ case NL80211_IFTYPE_P2P_GO: ++ svif.op_mode = 1; ++ svif.is_p2p = 1; ++ break; ++ case NL80211_IFTYPE_UNSPECIFIED: ++ case NL80211_IFTYPE_ADHOC: ++ case NL80211_IFTYPE_AP_VLAN: ++ case NL80211_IFTYPE_WDS: ++ case NL80211_IFTYPE_MONITOR: ++ default: ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "%s does NOT support type %d\n", ++ __func__, vif->type); ++ return -EOPNOTSUPP; ++ } ++ sip_cmd(epub, SIP_CMD_SETVIF, (u8 *) & svif, ++ sizeof(struct sip_cmd_setvif)); ++ return 0; ++} ++ ++static void esp_op_remove_interface(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ struct sip_cmd_setvif svif; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, ++ "%s enter, vif addr %pM, beacon enable %x\n", ++ __func__, vif->addr, ++ vif->bss_conf.enable_beacon); ++ ++ memset(&svif, 0, sizeof(struct sip_cmd_setvif)); ++ svif.index = evif->index; ++ epub->vif_slot &= ~(1 << svif.index); ++ ++ if (evif->ap_up) { ++ evif->beacon_interval = 0; ++ del_timer_sync(&evif->beacon_timer); ++ evif->ap_up = false; ++ } ++ epub->vif = NULL; ++ evif->epub = NULL; ++ ++ sip_cmd(epub, SIP_CMD_SETVIF, (u8 *) & svif, ++ sizeof(struct sip_cmd_setvif)); ++ ++ /* clean up tx/rx queue */ ++ ++} ++ ++#define BEACON_TIM_SAVE_MAX 20 ++u8 beacon_tim_saved[BEACON_TIM_SAVE_MAX]; ++int beacon_tim_count; ++static void beacon_tim_init(void) ++{ ++ memset(beacon_tim_saved, 0, BEACON_TIM_SAVE_MAX); ++ beacon_tim_count = 0; ++} ++ ++static u8 beacon_tim_save(u8 this_tim) ++{ ++ u8 all_tim = 0; ++ int i; ++ beacon_tim_saved[beacon_tim_count] = this_tim; ++ if (++beacon_tim_count >= BEACON_TIM_SAVE_MAX) ++ beacon_tim_count = 0; ++ for (i = 0; i < BEACON_TIM_SAVE_MAX; i++) ++ all_tim |= beacon_tim_saved[i]; ++ return all_tim; ++} ++ ++static bool beacon_tim_alter(struct sk_buff *beacon) ++{ ++ u8 *p, *tim_end; ++ u8 tim_count; ++ int len; ++ int remain_len; ++ struct ieee80211_mgmt *mgmt; ++ ++ if (beacon == NULL) ++ return false; ++ ++ mgmt = (struct ieee80211_mgmt *) ((u8 *) beacon->data); ++ ++ remain_len = ++ beacon->len - ((u8 *) mgmt->u.beacon.variable - (u8 *) mgmt + ++ 12); ++ p = mgmt->u.beacon.variable; ++ ++ while (remain_len > 0) { ++ len = *(++p); ++ if (*p == WLAN_EID_TIM) { // tim field ++ tim_end = p + len; ++ tim_count = *(++p); ++ p += 2; ++ //multicast ++ if (tim_count == 0) ++ *p |= 0x1; ++ if ((*p & 0xfe) == 0 && tim_end >= p + 1) { // we only support 8 sta in this case ++ p++; ++ *p = beacon_tim_save(*p); ++ } ++ return tim_count == 0; ++ } ++ p += (len + 1); ++ remain_len -= (2 + len); ++ } ++ ++ return false; ++} ++ ++unsigned long init_jiffies; ++unsigned long cycle_beacon_count; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) ++static void drv_handle_beacon(struct timer_list *t) ++#else ++static void drv_handle_beacon(unsigned long data) ++#endif ++{ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) ++ struct esp_vif *evif = from_timer(evif, t, beacon_timer); ++ struct ieee80211_vif *vif = evif->epub->vif; ++#else ++ struct ieee80211_vif *vif = (struct ieee80211_vif *) data; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++#endif ++ struct sk_buff *beacon; ++ struct sk_buff *skb; ++ static int dbgcnt = 0; ++ bool tim_reach = false; ++ ++ if (evif->epub == NULL) ++ return; ++ ++ mdelay(2400 * (cycle_beacon_count % 25) % 10000 / 1000); ++ ++ beacon = ieee80211_beacon_get(evif->epub->hw, vif, 0); ++ ++ tim_reach = beacon_tim_alter(beacon); ++ ++ if (beacon && !(dbgcnt++ % 600)) { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, " beacon length:%d,fc:0x%x\n", ++ beacon->len, ++ ((struct ieee80211_mgmt *) (beacon-> ++ data))-> ++ frame_control); ++ ++ } ++ ++ if (beacon) ++ sip_tx_data_pkt_enqueue(evif->epub, beacon); ++ ++ if (cycle_beacon_count++ == 100) { ++ init_jiffies = jiffies; ++ cycle_beacon_count -= 100; ++ } ++ mod_timer(&evif->beacon_timer, ++ init_jiffies + ++ msecs_to_jiffies(cycle_beacon_count * ++ vif->bss_conf.beacon_int * 1024 / ++ 1000)); ++ //FIXME:the packets must be sent at home channel ++ //send buffer mcast frames ++ if (tim_reach) { ++ skb = ieee80211_get_buffered_bc(evif->epub->hw, vif); ++ while (skb) { ++ sip_tx_data_pkt_enqueue(evif->epub, skb); ++ skb = ++ ieee80211_get_buffered_bc(evif->epub->hw, vif); ++ } ++ } ++} ++ ++static void init_beacon_timer(struct ieee80211_vif *vif) ++{ ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, " %s enter: beacon interval %x\n", ++ __func__, evif->beacon_interval); ++ ++ beacon_tim_init(); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) ++ timer_setup(&evif->beacon_timer, drv_handle_beacon, 0); ++#else ++ init_timer(&evif->beacon_timer); //TBD, not init here... ++ evif->beacon_timer.data = (unsigned long) vif; ++ evif->beacon_timer.function = drv_handle_beacon; ++#endif ++ cycle_beacon_count = 1; ++ init_jiffies = jiffies; ++ evif->beacon_timer.expires = ++ init_jiffies + ++ msecs_to_jiffies(cycle_beacon_count * ++ vif->bss_conf.beacon_int * 1024 / 1000); ++ add_timer(&evif->beacon_timer); ++} ++ ++static int esp_op_config(struct ieee80211_hw *hw, u32 changed) ++{ ++ //struct ieee80211_conf *conf = &hw->conf; ++ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter 0x%08x\n", __func__, ++ changed); ++ ++ if (changed & ++ (IEEE80211_CONF_CHANGE_CHANNEL | IEEE80211_CONF_CHANGE_IDLE)) { ++ sip_send_config(epub, &hw->conf); ++ } ++ ++ return 0; ++} ++ ++static void esp_op_bss_info_changed(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ struct ieee80211_bss_conf *info, ++ u64 changed) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ ++ // ieee80211_bss_conf(include/net/mac80211.h) is included in ieee80211_sub_if_data(net/mac80211/ieee80211_i.h) , does bssid=ieee80211_if_ap's ssid ? ++ // in 2.6.27, ieee80211_sub_if_data has ieee80211_bss_conf while in 2.6.32 ieee80211_sub_if_data don't have ieee80211_bss_conf ++ // in 2.6.27, ieee80211_bss_conf->enable_beacon don't exist, does it mean it support beacon always? ++ // ESP_IEEE80211_DBG(ESP_DBG_OP, " %s enter: vif addr %pM, changed %x, assoc %x, bssid %pM\n", __func__, vif->addr, changed, vif->cfg.assoc, info->bssid); ++ // sdata->u.sta.bssid ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, ++ " %s enter: changed %x, assoc %x, bssid %pM\n", ++ __func__, changed, vif->cfg.assoc, info->bssid); ++ ++ if (vif->type == NL80211_IFTYPE_STATION) { ++ if ((changed & BSS_CHANGED_BSSID) || ++ ((changed & BSS_CHANGED_ASSOC) && (vif->cfg.assoc))) { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ " %s STA change bssid or assoc\n", ++ __func__); ++ evif->beacon_interval = vif->cfg.aid; ++ memcpy(epub->wl.bssid, (u8 *) info->bssid, ++ ETH_ALEN); ++ sip_send_bss_info_update(epub, evif, ++ (u8 *) info->bssid, ++ vif->cfg.assoc); ++ } else if ((changed & BSS_CHANGED_ASSOC) && (!vif->cfg.assoc)) { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ " %s STA change disassoc\n", ++ __func__); ++ evif->beacon_interval = 0; ++ memset(epub->wl.bssid, 0, ETH_ALEN); ++ sip_send_bss_info_update(epub, evif, ++ (u8 *) info->bssid, ++ vif->cfg.assoc); ++ } else { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "%s wrong mode of STA mode\n", ++ __func__); ++ } ++ } else if (vif->type == NL80211_IFTYPE_AP) { ++ if ((changed & BSS_CHANGED_BEACON_ENABLED) || ++ (changed & BSS_CHANGED_BEACON_INT)) { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ " %s AP change enable %d, interval is %d, bssid %pM\n", ++ __func__, info->enable_beacon, ++ info->beacon_int, info->bssid); ++ if (info->enable_beacon && evif->ap_up != true) { ++ evif->beacon_interval = info->beacon_int; ++ init_beacon_timer(vif); ++ sip_send_bss_info_update(epub, evif, ++ (u8 *) info-> ++ bssid, 2); ++ evif->ap_up = true; ++ } else if (!info->enable_beacon && evif->ap_up && ++ !(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL) ++ ) { ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ " %s AP disable beacon, interval is %d\n", ++ __func__, ++ info->beacon_int); ++ evif->beacon_interval = 0; ++ del_timer_sync(&evif->beacon_timer); ++ sip_send_bss_info_update(epub, evif, ++ (u8 *) info-> ++ bssid, 2); ++ evif->ap_up = false; ++ } ++ } ++ } else { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "%s op mode unspecified\n", __func__); ++ } ++} ++ ++ ++static u64 esp_op_prepare_multicast(struct ieee80211_hw *hw, ++ struct netdev_hw_addr_list *mc_list) ++{ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++ return 0; ++} ++ ++static void esp_op_configure_filter(struct ieee80211_hw *hw, ++ unsigned int changed_flags, ++ unsigned int *total_flags, ++ u64 multicast) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++ epub->rx_filter = 0; ++ ++ if (*total_flags & FIF_ALLMULTI) ++ epub->rx_filter |= FIF_ALLMULTI; ++ ++ *total_flags = epub->rx_filter; ++} ++ ++static int esp_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, ++ struct ieee80211_vif *vif, ++ struct ieee80211_sta *sta, ++ struct ieee80211_key_conf *key) ++{ ++ u8 i; ++ int ret; ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ u8 ifidx = evif->index; ++ u8 *peer_addr, isvalid; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, ++ "%s enter, flags = %x keyindx = %x cmd = %x mac = %pM cipher = %x\n", ++ __func__, key->flags, key->keyidx, cmd, ++ vif->addr, key->cipher); ++ ++ key->flags = key->flags | IEEE80211_KEY_FLAG_GENERATE_IV; ++ ++ if (sta) { ++ if (memcmp(sta->addr, epub->wl.bssid, ETH_ALEN)) ++ peer_addr = sta->addr; ++ else ++ peer_addr = epub->wl.bssid; ++ } else { ++ peer_addr = epub->wl.bssid; ++ } ++ isvalid = (cmd == SET_KEY) ? 1 : 0; ++ ++ if ((key->flags & IEEE80211_KEY_FLAG_PAIRWISE) ++ || (key->cipher == WLAN_CIPHER_SUITE_WEP40 ++ || key->cipher == WLAN_CIPHER_SUITE_WEP104)) { ++ if (isvalid) { ++ for (i = 0; i < 19; i++) { ++ if (epub->hi_map[i].flag == 0) { ++ epub->hi_map[i].flag = 1; ++ key->hw_key_idx = i + 6; ++ memcpy(epub->hi_map[i].mac, ++ peer_addr, ETH_ALEN); ++ break; ++ } ++ } ++ } else { ++ u8 index = key->hw_key_idx - 6; ++ epub->hi_map[index].flag = 0; ++ memset(epub->hi_map[index].mac, 0, ETH_ALEN); ++ } ++ } else { ++ if (isvalid) { ++ for (i = 0; i < 2; i++) ++ if (epub->low_map[ifidx][i].flag == 0) { ++ epub->low_map[ifidx][i].flag = 1; ++ key->hw_key_idx = ++ i + ifidx * 2 + 2; ++ memcpy(epub->low_map[ifidx][i].mac, ++ peer_addr, ETH_ALEN); ++ break; ++ } ++ } else { ++ u8 index = key->hw_key_idx - 2 - ifidx * 2; ++ epub->low_map[ifidx][index].flag = 0; ++ memset(epub->low_map[ifidx][index].mac, 0, ++ ETH_ALEN); ++ } ++ //key->hw_key_idx = key->keyidx + ifidx * 2 + 1; ++ } ++ ++ if (key->hw_key_idx >= 6) { ++ /*send sub_scan task to target */ ++ //epub->wl.ptk = (cmd==SET_KEY) ? key : NULL; ++ if (isvalid) ++ atomic_inc(&epub->wl.ptk_cnt); ++ else ++ atomic_dec(&epub->wl.ptk_cnt); ++ if (key->cipher == WLAN_CIPHER_SUITE_WEP40 ++ || key->cipher == WLAN_CIPHER_SUITE_WEP104) { ++ if (isvalid) ++ atomic_inc(&epub->wl.gtk_cnt); ++ else ++ atomic_dec(&epub->wl.gtk_cnt); ++ } ++ } else { ++ /*send sub_scan task to target */ ++ if (isvalid) ++ atomic_inc(&epub->wl.gtk_cnt); ++ else ++ atomic_dec(&epub->wl.gtk_cnt); ++ ++ if ((key->cipher == WLAN_CIPHER_SUITE_WEP40 ++ || key->cipher == WLAN_CIPHER_SUITE_WEP104)) { ++ if (isvalid) ++ atomic_inc(&epub->wl.ptk_cnt); ++ else ++ atomic_dec(&epub->wl.ptk_cnt); ++ //epub->wl.ptk = (cmd==SET_KEY) ? key : NULL; ++ } ++ } ++ ++ ret = sip_send_setkey(epub, ifidx, peer_addr, key, isvalid); ++ ++ if ((key->cipher == WLAN_CIPHER_SUITE_TKIP ++ || key->cipher == WLAN_CIPHER_SUITE_TKIP)) { ++ if (ret == 0) ++ atomic_set(&epub->wl.tkip_key_set, 1); ++ } ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s exit\n", __func__); ++ return ret; ++} ++ ++static void esp_op_update_tkip_key(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ struct ieee80211_key_conf *conf, ++ struct ieee80211_sta *sta, ++ u32 iv32, u16 * phase1key) ++{ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++} ++ ++void hw_scan_done(struct esp_pub *epub, bool aborted) ++{ ++ cancel_delayed_work_sync(&epub->scan_timeout_work); ++ ++ ESSERT(epub->wl.scan_req != NULL); ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)) ++ { ++ struct cfg80211_scan_info info = { ++ .aborted = aborted, ++ }; ++ ++ ieee80211_scan_completed(epub->hw, &info); ++ } ++#else ++ ieee80211_scan_completed(epub->hw, aborted); ++#endif ++ if (test_and_clear_bit(ESP_WL_FLAG_STOP_TXQ, &epub->wl.flags)) { ++ sip_trigger_txq_process(epub->sip); ++ } ++} ++ ++static void hw_scan_timeout_report(struct work_struct *work) ++{ ++ struct esp_pub *epub = ++ container_of(work, struct esp_pub, scan_timeout_work.work); ++ bool aborted; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "eagle hw scan done\n"); ++ ++ if (test_and_clear_bit(ESP_WL_FLAG_STOP_TXQ, &epub->wl.flags)) { ++ sip_trigger_txq_process(epub->sip); ++ } ++ /*check if normally complete or aborted like timeout/hw error */ ++ aborted = (epub->wl.scan_req) ? true : false; ++ ++ if (aborted == true) { ++ epub->wl.scan_req = NULL; ++ } ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)) ++ { ++ struct cfg80211_scan_info info = { ++ .aborted = aborted, ++ }; ++ ++ ieee80211_scan_completed(epub->hw, &info); ++ } ++#else ++ ieee80211_scan_completed(epub->hw, aborted); ++#endif ++} ++ ++static int esp_op_set_rts_threshold(struct ieee80211_hw *hw, u32 value) ++{ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++ return 0; ++} ++ ++static int esp_node_attach(struct ieee80211_hw *hw, u8 ifidx, ++ struct ieee80211_sta *sta) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_node *node; ++ u8 tidno; ++ struct esp_tx_tid *tid; ++ int i; ++ ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ ++ if (hweight32(epub->enodes_maps[ifidx]) < ESP_PUB_MAX_STA ++ && (i = ffz(epub->enodes_map)) < ESP_PUB_MAX_STA + 1) { ++ epub->enodes_map |= (1 << i); ++ epub->enodes_maps[ifidx] |= (1 << i); ++ node = (struct esp_node *) sta->drv_priv; ++ epub->enodes[i] = node; ++ node->sta = sta; ++ node->ifidx = ifidx; ++ node->index = i; ++ ++ for (tidno = 0, tid = &node->tid[tidno]; ++ tidno < WME_NUM_TID; tidno++) { ++ tid->ssn = 0; ++ tid->cnt = 0; ++ tid->state = ESP_TID_STATE_INIT; ++ } ++ ++ ++ } else { ++ i = -1; ++ } ++ ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return i; ++} ++ ++static int esp_node_detach(struct ieee80211_hw *hw, u8 ifidx, ++ struct ieee80211_sta *sta) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ u32 map; ++ int i; ++ struct esp_node *node = NULL; ++ ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ map = epub->enodes_maps[ifidx]; ++ while (map != 0) { ++ i = ffs(map) - 1; ++ if (epub->enodes[i]->sta == sta) { ++ epub->enodes[i]->sta = NULL; ++ node = epub->enodes[i]; ++ epub->enodes[i] = NULL; ++ epub->enodes_map &= ~(1 << i); ++ epub->enodes_maps[ifidx] &= ~(1 << i); ++ ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return i; ++ } ++ map &= ~(1 << i); ++ } ++ ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return -1; ++} ++ ++struct esp_node *esp_get_node_by_addr(struct esp_pub *epub, ++ const u8 * addr) ++{ ++ int i; ++ u32 map; ++ struct esp_node *node = NULL; ++ if (addr == NULL) ++ return NULL; ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ map = epub->enodes_map; ++ while (map != 0) { ++ i = ffs(map) - 1; ++ if (i < 0) { ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return NULL; ++ } ++ map &= ~(1 << i); ++ if (memcmp(epub->enodes[i]->sta->addr, addr, ETH_ALEN) == ++ 0) { ++ node = epub->enodes[i]; ++ break; ++ } ++ } ++ ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return node; ++} ++ ++struct esp_node *esp_get_node_by_index(struct esp_pub *epub, u8 index) ++{ ++ u32 map; ++ struct esp_node *node = NULL; ++ ++ if (epub == NULL) ++ return NULL; ++ ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ map = epub->enodes_map; ++ if (map & BIT(index)) { ++ node = epub->enodes[index]; ++ } else { ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return NULL; ++ } ++ ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return node; ++} ++ ++int esp_get_empty_rxampdu(struct esp_pub *epub, const u8 * addr, u8 tid) ++{ ++ int index = -1; ++ if (addr == NULL) ++ return index; ++ spin_lock_bh(&epub->rx_ampdu_lock); ++ if ((index = ffz(epub->rxampdu_map)) < ESP_PUB_MAX_RXAMPDU) { ++ epub->rxampdu_map |= BIT(index); ++ epub->rxampdu_node[index] = ++ esp_get_node_by_addr(epub, addr); ++ epub->rxampdu_tid[index] = tid; ++ } else { ++ index = -1; ++ } ++ spin_unlock_bh(&epub->rx_ampdu_lock); ++ return index; ++} ++ ++int esp_get_exist_rxampdu(struct esp_pub *epub, const u8 * addr, u8 tid) ++{ ++ u8 map; ++ int index = -1; ++ int i; ++ if (addr == NULL) ++ return index; ++ spin_lock_bh(&epub->rx_ampdu_lock); ++ map = epub->rxampdu_map; ++ while (map != 0) { ++ i = ffs(map) - 1; ++ if (i < 0) { ++ spin_unlock_bh(&epub->rx_ampdu_lock); ++ return index; ++ } ++ map &= ~BIT(i); ++ if (epub->rxampdu_tid[i] == tid && ++ memcmp(epub->rxampdu_node[i]->sta->addr, addr, ++ ETH_ALEN) == 0) { ++ index = i; ++ break; ++ } ++ } ++ ++ epub->rxampdu_map &= ~BIT(index); ++ spin_unlock_bh(&epub->rx_ampdu_lock); ++ return index; ++ ++} ++ ++static int esp_op_sta_add(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ struct ieee80211_sta *sta) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ int index; ++ ESP_IEEE80211_DBG(ESP_DBG_OP, ++ "%s enter, vif addr %pM, sta addr %pM\n", ++ __func__, vif->addr, sta->addr); ++ index = esp_node_attach(hw, evif->index, sta); ++ ++ if (index < 0) ++ return -1; ++ sip_send_set_sta(epub, evif->index, 1, sta, vif, (u8) index); ++ return 0; ++} ++ ++static int esp_op_sta_remove(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ struct ieee80211_sta *sta) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_vif *evif = (struct esp_vif *) vif->drv_priv; ++ int index; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, ++ "%s enter, vif addr %pM, sta addr %pM\n", ++ __func__, vif->addr, sta->addr); ++ ++ //remove a connect in target ++ index = esp_node_detach(hw, evif->index, sta); ++ sip_send_set_sta(epub, evif->index, 0, sta, vif, (u8) index); ++ ++ return 0; ++} ++ ++ ++static void esp_op_sta_notify(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ enum sta_notify_cmd cmd, ++ struct ieee80211_sta *sta) ++{ ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++ switch (cmd) { ++ case STA_NOTIFY_SLEEP: ++ break; ++ ++ case STA_NOTIFY_AWAKE: ++ break; ++ ++ default: ++ break; ++ } ++} ++ ++ ++static int esp_op_conf_tx(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ u32 link_id, u16 queue, ++ const struct ieee80211_tx_queue_params *params) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ return sip_send_wmm_params(epub, queue, params); ++} ++ ++static u64 esp_op_get_tsf(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif) ++{ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++ return 0; ++} ++ ++static void esp_op_set_tsf(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, u64 tsf) ++{ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++} ++ ++static void esp_op_reset_tsf(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif) ++{ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++} ++ ++static void esp_op_rfkill_poll(struct ieee80211_hw *hw) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter \n", __func__); ++ ++ wiphy_rfkill_set_hw_state(hw->wiphy, ++ test_bit(ESP_WL_FLAG_RFKILL, ++ &epub->wl. ++ flags) ? true : false); ++} ++ ++#ifdef HW_SCAN ++static int esp_op_hw_scan(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ struct cfg80211_scan_request *req) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ int i, ret; ++ bool scan_often = true; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s\n", __func__); ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "scan, %d\n", req->n_ssids); ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "scan, len 1:%d,ssid 1:%s\n", ++ req->ssids->ssid_len, ++ req->ssids->ssid_len == ++ 0 ? "" : (char *) req->ssids->ssid); ++ if (req->n_ssids > 1) ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "scan, len 2:%d,ssid 2:%s\n", ++ (req->ssids + 1)->ssid_len, ++ (req->ssids + 1)->ssid_len == ++ 0 ? "" : (char *) (req->ssids + ++ 1)->ssid); ++ ++ /*scan_request is keep allocate untill scan_done,record it ++ to split request into multi sdio_cmd */ ++ if (atomic_read(&epub->wl.off)) { ++ esp_dbg(ESP_DBG_ERROR, "%s scan but wl off \n", __func__); ++ return -EPERM; ++ } ++ ++ if (req->n_ssids > 1) { ++ struct cfg80211_ssid *ssid2 = req->ssids + 1; ++ if ((req->ssids->ssid_len > 0 && ssid2->ssid_len > 0) ++ || req->n_ssids > 2) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "scan ssid num: %d, ssid1:%s, ssid2:%s,not support\n", ++ req->n_ssids, ++ req->ssids->ssid_len == ++ 0 ? "" : (char *) req->ssids-> ++ ssid, ++ ssid2->ssid_len == ++ 0 ? "" : (char *) ssid2->ssid); ++ return -EINVAL; ++ } ++ } ++ ++ epub->wl.scan_req = req; ++ ++ for (i = 0; i < req->n_channels; i++) ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "eagle hw_scan freq %d\n", ++ req->channels[i]->center_freq); ++#if 0 ++ for (i = 0; i < req->n_ssids; i++) { ++ if (req->ssids->ssid_len > 0) { ++ req->ssids->ssid[req->ssids->ssid_len] = '\0'; ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "scan_ssid %d:%s\n", i, ++ req->ssids->ssid); ++ } ++ } ++#endif ++ ++ /*in connect state, suspend tx data */ ++ if (epub->sip->support_bgscan && ++ test_bit(ESP_WL_FLAG_CONNECT, &epub->wl.flags) && ++ req->n_channels > 0) { ++ ++ scan_often = epub->scan_permit_valid ++ && time_before(jiffies, epub->scan_permit); ++ epub->scan_permit_valid = true; ++ ++ if (!scan_often) { ++/* epub->scan_permit = jiffies + msecs_to_jiffies(900); ++ set_bit(ESP_WL_FLAG_STOP_TXQ, &epub->wl.flags); ++ if (atomic_read(&epub->txq_stopped) == false) { ++ atomic_set(&epub->txq_stopped, true); ++ ieee80211_stop_queues(hw); ++ } ++*/ ++ } else { ++ ESP_IEEE80211_DBG(ESP_DBG_LOG, "scan too often\n"); ++ return -EACCES; ++ } ++ } else { ++ scan_often = false; ++ } ++ ++ /*send sub_scan task to target */ ++ ret = sip_send_scan(epub); ++ ++ if (ret) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "fail to send scan_cmd\n"); ++ return ret; ++ } else { ++ if (!scan_often) { ++ epub->scan_permit = ++ jiffies + msecs_to_jiffies(900); ++ set_bit(ESP_WL_FLAG_STOP_TXQ, &epub->wl.flags); ++ if (atomic_read(&epub->txq_stopped) == false) { ++ atomic_set(&epub->txq_stopped, true); ++ ieee80211_stop_queues(hw); ++ } ++ /*force scan complete in case target fail to report in time */ ++ ieee80211_queue_delayed_work(hw, ++ &epub-> ++ scan_timeout_work, ++ req->n_channels * HZ / ++ 4); ++ } ++ } ++ ++ return 0; ++} ++ ++static int esp_op_remain_on_channel(struct ieee80211_hw *hw, ++ struct ieee80211_channel *chan, ++ enum nl80211_channel_type channel_type, ++ int duration) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, ++ "%s enter, center_freq = %d duration = %d\n", ++ __func__, chan->center_freq, duration); ++ sip_send_roc(epub, chan->center_freq, duration); ++ return 0; ++} ++ ++static int esp_op_cancel_remain_on_channel(struct ieee80211_hw *hw) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s enter \n", __func__); ++ epub->roc_flags = 0; // to disable roc state ++ sip_send_roc(epub, 0, 0); ++ return 0; ++} ++#endif ++ ++void esp_rocdone_process(struct ieee80211_hw *hw, ++ struct sip_evt_roc *report) ++{ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s enter, state = %d is_ok = %d\n", ++ __func__, report->state, report->is_ok); ++ ++ //roc process begin ++ if ((report->state == 1) && (report->is_ok == 1)) { ++ epub->roc_flags = 1; //flags in roc state, to fix channel, not change ++ ieee80211_ready_on_channel(hw); ++ } else if ((report->state == 0) && (report->is_ok == 1)) //roc process timeout ++ { ++ epub->roc_flags = 0; // to disable roc state ++ ieee80211_remain_on_channel_expired(hw); ++ } ++} ++ ++static int esp_op_set_bitrate_mask(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ const struct cfg80211_bitrate_mask ++ *mask) ++{ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s enter \n", __func__); ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s vif->macaddr[%pM], mask[%d]\n", ++ __func__, vif->addr, mask->control[0].legacy); ++ ++ return 0; ++} ++ ++void esp_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ++ u32 queues, bool drop) ++{ ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s enter \n", __func__); ++ do { ++ ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ unsigned long time = jiffies + msecs_to_jiffies(15); ++ while (atomic_read(&epub->sip->tx_data_pkt_queued)) { ++ if (!time_before(jiffies, time)) { ++ break; ++ } ++ if (sif_get_ate_config() == 0) { ++ ieee80211_queue_work(epub->hw, ++ &epub->tx_work); ++ } else { ++ queue_work(epub->esp_wkq, &epub->tx_work); ++ } ++ //sip_txq_process(epub); ++ } ++ mdelay(10); ++ ++ } while (0); ++} ++ ++static int esp_op_ampdu_action(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif, ++ struct ieee80211_ampdu_params *params) ++{ ++ int ret = -EOPNOTSUPP; ++ enum ieee80211_ampdu_mlme_action action = params->action; ++ struct ieee80211_sta *sta = params->sta; ++ u16 tid = params->tid; ++ u16 *ssn = ¶ms->ssn; ++ u8 buf_size = params->buf_size; ++ struct esp_pub *epub = (struct esp_pub *) hw->priv; ++ struct esp_node *node = (struct esp_node *) sta->drv_priv; ++ struct esp_tx_tid *tid_info = &node->tid[tid]; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_OP, "%s enter \n", __func__); ++ switch (action) { ++ case IEEE80211_AMPDU_TX_START: ++ if (mod_support_no_txampdu() || ++ cfg80211_get_chandef_type(&epub->hw->conf.chandef) == ++ NL80211_CHAN_NO_HT || !sta->deflink.ht_cap.ht_supported) ++ return ret; ++ ++ //if (vif->p2p || vif->type != NL80211_IFTYPE_STATION) ++ // return ret; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "%s TX START, addr:%pM,tid:%u,state:%d\n", ++ __func__, sta->addr, tid, ++ tid_info->state); ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ ESSERT(tid_info->state == ESP_TID_STATE_TRIGGER); ++ *ssn = tid_info->ssn; ++ tid_info->state = ESP_TID_STATE_PROGRESS; ++ ++ ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ ret = 0; ++ break; ++ case IEEE80211_AMPDU_TX_STOP_CONT: ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "%s TX STOP, addr:%pM,tid:%u,state:%d\n", ++ __func__, sta->addr, tid, ++ tid_info->state); ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ if (tid_info->state == ESP_TID_STATE_WAIT_STOP) ++ tid_info->state = ESP_TID_STATE_STOP; ++ else ++ tid_info->state = ESP_TID_STATE_INIT; ++ ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ ret = ++ sip_send_ampdu_action(epub, SIP_AMPDU_TX_STOP, ++ sta->addr, tid, node->ifidx, 0); ++ break; ++ case IEEE80211_AMPDU_TX_STOP_FLUSH: ++ case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT: ++ if (tid_info->state == ESP_TID_STATE_WAIT_STOP) ++ tid_info->state = ESP_TID_STATE_STOP; ++ else ++ tid_info->state = ESP_TID_STATE_INIT; ++ ret = ++ sip_send_ampdu_action(epub, SIP_AMPDU_TX_STOP, ++ sta->addr, tid, node->ifidx, 0); ++ break; ++ case IEEE80211_AMPDU_TX_OPERATIONAL: ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "%s TX OPERATION, addr:%pM,tid:%u,state:%d\n", ++ __func__, sta->addr, tid, ++ tid_info->state); ++ spin_lock_bh(&epub->tx_ampdu_lock); ++ ++ if (tid_info->state != ESP_TID_STATE_PROGRESS) { ++ if (tid_info->state == ESP_TID_STATE_INIT) { ++ printk(KERN_ERR "%s WIFI RESET, IGNORE\n", ++ __func__); ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ return -ENETRESET; ++ } else { ++ ESSERT(0); ++ } ++ } ++ ++ tid_info->state = ESP_TID_STATE_OPERATIONAL; ++ spin_unlock_bh(&epub->tx_ampdu_lock); ++ ret = ++ sip_send_ampdu_action(epub, SIP_AMPDU_TX_OPERATIONAL, ++ sta->addr, tid, node->ifidx, ++ buf_size); ++ break; ++ case IEEE80211_AMPDU_RX_START: ++ if (mod_support_no_rxampdu() || ++ cfg80211_get_chandef_type(&epub->hw->conf.chandef) == ++ NL80211_CHAN_NO_HT || !sta->deflink.ht_cap.ht_supported) ++ return ret; ++ ++ if ((vif->p2p && false) ++ || (vif->type != NL80211_IFTYPE_STATION && false) ++ ) ++ return ret; ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, ++ "%s RX START %pM tid %u %u\n", __func__, ++ sta->addr, tid, *ssn); ++ ret = ++ sip_send_ampdu_action(epub, SIP_AMPDU_RX_START, ++ sta->addr, tid, *ssn, 64); ++ break; ++ case IEEE80211_AMPDU_RX_STOP: ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s RX STOP %pM tid %u\n", ++ __func__, sta->addr, tid); ++ ret = ++ sip_send_ampdu_action(epub, SIP_AMPDU_RX_STOP, ++ sta->addr, tid, 0, 0); ++ break; ++ default: ++ break; ++ } ++ return ret; ++} ++ ++static void esp_tx_work(struct work_struct *work) ++{ ++ struct esp_pub *epub = container_of(work, struct esp_pub, tx_work); ++ ++ mutex_lock(&epub->tx_mtx); ++ sip_txq_process(epub); ++ mutex_unlock(&epub->tx_mtx); ++} ++ ++static const struct ieee80211_ops esp_mac80211_ops = { ++ .tx = esp_op_tx, ++ .start = esp_op_start, ++ .stop = esp_op_stop, ++#ifdef CONFIG_PM ++ .suspend = esp_op_suspend, ++ .resume = esp_op_resume, ++#endif ++ .add_interface = esp_op_add_interface, ++ .remove_interface = esp_op_remove_interface, ++ .config = esp_op_config, ++ ++ .bss_info_changed = esp_op_bss_info_changed, ++ .prepare_multicast = esp_op_prepare_multicast, ++ .configure_filter = esp_op_configure_filter, ++ .set_key = esp_op_set_key, ++ .update_tkip_key = esp_op_update_tkip_key, ++ //.sched_scan_start = esp_op_sched_scan_start, ++ //.sched_scan_stop = esp_op_sched_scan_stop, ++ .set_rts_threshold = esp_op_set_rts_threshold, ++ .sta_notify = esp_op_sta_notify, ++ .conf_tx = esp_op_conf_tx, ++ .change_interface = esp_op_change_interface, ++ .get_tsf = esp_op_get_tsf, ++ .set_tsf = esp_op_set_tsf, ++ .reset_tsf = esp_op_reset_tsf, ++ .rfkill_poll = esp_op_rfkill_poll, ++#ifdef HW_SCAN ++ .hw_scan = esp_op_hw_scan, ++ .remain_on_channel = esp_op_remain_on_channel, ++ .cancel_remain_on_channel = esp_op_cancel_remain_on_channel, ++#endif ++ .ampdu_action = esp_op_ampdu_action, ++ //.get_survey = esp_op_get_survey, ++ .sta_add = esp_op_sta_add, ++ .sta_remove = esp_op_sta_remove, ++#ifdef CONFIG_NL80211_TESTMODE ++ //CFG80211_TESTMODE_CMD(esp_op_tm_cmd) ++#endif ++ .set_bitrate_mask = esp_op_set_bitrate_mask, ++ .flush = esp_op_flush, ++}; ++ ++struct esp_pub *esp_pub_alloc_mac80211(struct device *dev) ++{ ++ struct ieee80211_hw *hw; ++ struct esp_pub *epub; ++ int ret = 0; ++ ++ hw = ieee80211_alloc_hw(sizeof(struct esp_pub), &esp_mac80211_ops); ++ ++ if (hw == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "ieee80211 can't alloc hw!\n"); ++ ret = -ENOMEM; ++ return ERR_PTR(ret); ++ } ++ hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; ++ ++ epub = hw->priv; ++ memset(epub, 0, sizeof(*epub)); ++ epub->hw = hw; ++ SET_IEEE80211_DEV(hw, dev); ++ epub->dev = dev; ++ ++ skb_queue_head_init(&epub->txq); ++ skb_queue_head_init(&epub->txdoneq); ++ skb_queue_head_init(&epub->rxq); ++ ++ spin_lock_init(&epub->tx_ampdu_lock); ++ spin_lock_init(&epub->rx_ampdu_lock); ++ spin_lock_init(&epub->tx_lock); ++ mutex_init(&epub->tx_mtx); ++ spin_lock_init(&epub->rx_lock); ++ ++ INIT_WORK(&epub->tx_work, esp_tx_work); ++ ++ //epub->esp_wkq = create_freezable_workqueue("esp_wkq"); ++ epub->esp_wkq = create_singlethread_workqueue("esp_wkq"); ++ ++ if (epub->esp_wkq == NULL) { ++ ret = -ENOMEM; ++ return ERR_PTR(ret); ++ } ++ epub->scan_permit_valid = false; ++ INIT_DELAYED_WORK(&epub->scan_timeout_work, ++ hw_scan_timeout_report); ++ ++ return epub; ++} ++ ++ ++int esp_pub_dealloc_mac80211(struct esp_pub *epub) ++{ ++ set_bit(ESP_WL_FLAG_RFKILL, &epub->wl.flags); ++ ++ destroy_workqueue(epub->esp_wkq); ++ mutex_destroy(&epub->tx_mtx); ++ ++#ifdef ESP_NO_MAC80211 ++ free_netdev(epub->net_dev); ++ wiphy_free(epub->wdev->wiphy); ++ kfree(epub->wdev); ++#else ++ if (epub->hw) { ++ ieee80211_free_hw(epub->hw); ++ } ++#endif ++ ++ return 0; ++} ++ ++#if 0 ++static int esp_reg_notifier(struct wiphy *wiphy, ++ struct regulatory_request *request) ++{ ++ struct ieee80211_supported_band *sband; ++ struct ieee80211_channel *ch; ++ int i; ++ ++ ESP_IEEE80211_DBG(ESP_DBG_TRACE, "%s enter %d\n", __func__, ++ request->initiator); ++ ++ //TBD ++} ++#endif ++ ++/* 2G band channels */ ++static struct ieee80211_channel esp_channels_2ghz[] = { ++ {.hw_value = 1,.center_freq = 2412,.max_power = 25}, ++ {.hw_value = 2,.center_freq = 2417,.max_power = 25}, ++ {.hw_value = 3,.center_freq = 2422,.max_power = 25}, ++ {.hw_value = 4,.center_freq = 2427,.max_power = 25}, ++ {.hw_value = 5,.center_freq = 2432,.max_power = 25}, ++ {.hw_value = 6,.center_freq = 2437,.max_power = 25}, ++ {.hw_value = 7,.center_freq = 2442,.max_power = 25}, ++ {.hw_value = 8,.center_freq = 2447,.max_power = 25}, ++ {.hw_value = 9,.center_freq = 2452,.max_power = 25}, ++ {.hw_value = 10,.center_freq = 2457,.max_power = 25}, ++ {.hw_value = 11,.center_freq = 2462,.max_power = 25}, ++ {.hw_value = 12,.center_freq = 2467,.max_power = 25}, ++ {.hw_value = 13,.center_freq = 2472,.max_power = 25}, ++ //{ .hw_value = 14, .center_freq = 2484, .max_power = 25 }, ++}; ++ ++/* 11G rate */ ++static struct ieee80211_rate esp_rates_2ghz[] = { ++ { ++ .bitrate = 10, ++ .hw_value = CONF_HW_BIT_RATE_1MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_1MBPS, ++ }, ++ { ++ .bitrate = 20, ++ .hw_value = CONF_HW_BIT_RATE_2MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_2MBPS, ++ .flags = IEEE80211_RATE_SHORT_PREAMBLE}, ++ { ++ .bitrate = 55, ++ .hw_value = CONF_HW_BIT_RATE_5_5MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_5_5MBPS, ++ .flags = IEEE80211_RATE_SHORT_PREAMBLE}, ++ { ++ .bitrate = 110, ++ .hw_value = CONF_HW_BIT_RATE_11MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_11MBPS, ++ .flags = IEEE80211_RATE_SHORT_PREAMBLE}, ++ { ++ .bitrate = 60, ++ .hw_value = CONF_HW_BIT_RATE_6MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_6MBPS, ++ }, ++ { ++ .bitrate = 90, ++ .hw_value = CONF_HW_BIT_RATE_9MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_9MBPS, ++ }, ++ { ++ .bitrate = 120, ++ .hw_value = CONF_HW_BIT_RATE_12MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_12MBPS, ++ }, ++ { ++ .bitrate = 180, ++ .hw_value = CONF_HW_BIT_RATE_18MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_18MBPS, ++ }, ++ { ++ .bitrate = 240, ++ .hw_value = CONF_HW_BIT_RATE_24MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_24MBPS, ++ }, ++ { ++ .bitrate = 360, ++ .hw_value = CONF_HW_BIT_RATE_36MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_36MBPS, ++ }, ++ { ++ .bitrate = 480, ++ .hw_value = CONF_HW_BIT_RATE_48MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_48MBPS, ++ }, ++ { ++ .bitrate = 540, ++ .hw_value = CONF_HW_BIT_RATE_54MBPS, ++ .hw_value_short = CONF_HW_BIT_RATE_54MBPS, ++ }, ++}; ++ ++static void esp_pub_init_mac80211(struct esp_pub *epub) ++{ ++ struct ieee80211_hw *hw = epub->hw; ++ ++ static const u32 cipher_suites[] = { ++ WLAN_CIPHER_SUITE_WEP40, ++ WLAN_CIPHER_SUITE_WEP104, ++ WLAN_CIPHER_SUITE_TKIP, ++ WLAN_CIPHER_SUITE_CCMP, ++ }; ++ ++ hw->max_listen_interval = 10; ++ ++ ieee80211_hw_set(hw, SIGNAL_DBM); ++ ieee80211_hw_set(hw, HAS_RATE_CONTROL); ++ ieee80211_hw_set(hw, SUPPORTS_PS); ++ ieee80211_hw_set(hw, AMPDU_AGGREGATION); ++ ieee80211_hw_set(hw, HOST_BROADCAST_PS_BUFFERING); ++ //IEEE80211_HW_PS_NULLFUNC_STACK | ++ //IEEE80211_HW_CONNECTION_MONITOR | ++ //IEEE80211_HW_BEACON_FILTER | ++ //IEEE80211_HW_AMPDU_AGGREGATION | ++ //IEEE80211_HW_REPORTS_TX_ACK_STATUS; ++ hw->max_rx_aggregation_subframes = 0x40; ++ hw->max_tx_aggregation_subframes = 0x40; ++ ++ hw->wiphy->cipher_suites = cipher_suites; ++ hw->wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites); ++ hw->wiphy->max_scan_ie_len = ++ epub->sip->tx_blksz - sizeof(struct sip_hdr) - ++ sizeof(struct sip_cmd_scan); ++ ++ /* ONLY station for now, support P2P soon... */ ++ hw->wiphy->interface_modes = ++ BIT(NL80211_IFTYPE_P2P_GO) | ++ BIT(NL80211_IFTYPE_P2P_CLIENT) | ++ BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_AP); ++ ++ hw->wiphy->max_scan_ssids = 2; ++ //hw->wiphy->max_sched_scan_ssids = 16; ++ //hw->wiphy->max_match_sets = 16; ++ ++ hw->wiphy->max_remain_on_channel_duration = 5000; ++ ++ atomic_set(&epub->wl.off, 1); ++ ++ epub->wl.sbands[NL80211_BAND_2GHZ].band = NL80211_BAND_2GHZ; ++ epub->wl.sbands[NL80211_BAND_2GHZ].channels = esp_channels_2ghz; ++ epub->wl.sbands[NL80211_BAND_2GHZ].bitrates = esp_rates_2ghz; ++ epub->wl.sbands[NL80211_BAND_2GHZ].n_channels = ++ ARRAY_SIZE(esp_channels_2ghz); ++ epub->wl.sbands[NL80211_BAND_2GHZ].n_bitrates = ++ ARRAY_SIZE(esp_rates_2ghz); ++ /*add to support 11n */ ++ epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.ht_supported = true; ++ epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.cap = 0x116C; //IEEE80211_HT_CAP_RX_STBC; //IEEE80211_HT_CAP_SGI_20; ++ epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.ampdu_factor = ++ IEEE80211_HT_MAX_AMPDU_16K; ++ epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.ampdu_density = ++ IEEE80211_HT_MPDU_DENSITY_NONE; ++ memset(&epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.mcs, 0, ++ sizeof(epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.mcs)); ++ epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.mcs.rx_mask[0] = 0xff; ++ //epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.mcs.rx_highest = 7; ++ //epub->wl.sbands[NL80211_BAND_2GHZ].ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; ++ ++ /* BAND_5GHZ TBD */ ++ ++ hw->wiphy->bands[NL80211_BAND_2GHZ] = ++ &epub->wl.sbands[NL80211_BAND_2GHZ]; ++ /* BAND_5GHZ TBD */ ++ ++ /*no fragment */ ++ hw->wiphy->frag_threshold = IEEE80211_MAX_FRAG_THRESHOLD; ++ ++ /* handle AC queue in f/w */ ++ hw->queues = 4; ++ hw->max_rates = 4; ++ //hw->wiphy->reg_notifier = esp_reg_notify; ++ ++ hw->vif_data_size = sizeof(struct esp_vif); ++ hw->sta_data_size = sizeof(struct esp_node); ++ ++ //hw->max_rx_aggregation_subframes = 8; ++} ++ ++int esp_register_mac80211(struct esp_pub *epub) ++{ ++ int ret = 0; ++ u8 *wlan_addr; ++ u8 *p2p_addr; ++ int idx; ++ ++ esp_pub_init_mac80211(epub); ++ ++ epub->hw->wiphy->addresses = (struct mac_address *) esp_mac_addr; ++ memcpy(&epub->hw->wiphy->addresses[0], epub->mac_addr, ETH_ALEN); ++ memcpy(&epub->hw->wiphy->addresses[1], epub->mac_addr, ETH_ALEN); ++ wlan_addr = (u8 *) & epub->hw->wiphy->addresses[0]; ++ p2p_addr = (u8 *) & epub->hw->wiphy->addresses[1]; ++ ++ for (idx = 0; idx < 64; idx++) { ++ p2p_addr[0] = wlan_addr[0] | 0x02; ++ p2p_addr[0] ^= idx << 2; ++ if (strncmp(p2p_addr, wlan_addr, 6) != 0) ++ break; ++ } ++ ++ epub->hw->wiphy->n_addresses = 2; ++ ++ ret = ieee80211_register_hw(epub->hw); ++ ++ if (ret < 0) { ++ ESP_IEEE80211_DBG(ESP_DBG_ERROR, ++ "unable to register mac80211 hw: %d\n", ++ ret); ++ return ret; ++ } else { ++#ifdef MAC80211_NO_CHANGE ++ rtnl_lock(); ++ if (epub->hw->wiphy->interface_modes & ++ (BIT(NL80211_IFTYPE_P2P_GO) | ++ BIT(NL80211_IFTYPE_P2P_CLIENT))) { ++ ret = ++ ieee80211_if_add(hw_to_local(epub->hw), ++ "p2p%d", NULL, ++ NL80211_IFTYPE_STATION, NULL); ++ if (ret) ++ wiphy_warn(epub->hw->wiphy, ++ "Failed to add default virtual iface\n"); ++ } ++ ++ rtnl_unlock(); ++#endif ++ } ++ ++ set_bit(ESP_WL_FLAG_HW_REGISTERED, &epub->wl.flags); ++ ++ return ret; ++} ++ ++static u8 getaddr_index(u8 * addr, struct esp_pub *epub) ++{ ++ int i; ++ for (i = 0; i < ESP_PUB_MAX_VIF; i++) ++ if (memcmp ++ (addr, (u8 *) & epub->hw->wiphy->addresses[i], ++ ETH_ALEN) == 0) ++ return i; ++ return ESP_PUB_MAX_VIF; ++} +diff --git a/drivers/net/wireless/esp8089/esp_mac80211.h b/drivers/net/wireless/esp8089/esp_mac80211.h +new file mode 100644 +index 000000000000..699b27dcadd1 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_mac80211.h +@@ -0,0 +1,38 @@ ++/* ++ * Copyright (c) 2011-2014 Espressif System. ++ * ++ * MAC80211 support module ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++#ifndef _ESP_MAC80211_H_ ++#define _ESP_MAC80211_H_ ++ ++struct esp_80211_wmm_ac_param { ++ u8 aci_aifsn; /* AIFSN, ACM, ACI */ ++ u8 cw; /* ECWmin, ECWmax (CW = 2^ECW - 1) */ ++ u16 txop_limit; ++}; ++ ++struct esp_80211_wmm_param_element { ++ /* Element ID: 221 (0xdd); length: 24 */ ++ /* required fields for WMM version 1 */ ++ u8 oui[3]; /* 00:50:f2 */ ++ u8 oui_type; /* 2 */ ++ u8 oui_subtype; /* 1 */ ++ u8 version; /* 1 for WMM version 1.0 */ ++ u8 qos_info; /* AP/STA specif QoS info */ ++ u8 reserved; /* 0 */ ++ struct esp_80211_wmm_ac_param ac[4]; /* AC_BE, AC_BK, AC_VI, AC_VO */ ++}; ++ ++ ++#endif /* _ESP_MAC80211_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_main.c b/drivers/net/wireless/esp8089/esp_main.c +new file mode 100644 +index 000000000000..404e0d7a6f54 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_main.c +@@ -0,0 +1,263 @@ ++/* ++ * Copyright (c) 2010 - 2014 Espressif System. ++ * ++ * main routine ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "esp_pub.h" ++#include "esp_sip.h" ++#include "esp_sif.h" ++#include "esp_debug.h" ++#include "esp_file.h" ++#include "esp_wl.h" ++ ++struct completion *gl_bootup_cplx = NULL; ++ ++#ifndef FPGA_DEBUG ++static int esp_download_fw(struct esp_pub *epub); ++#endif /* !FGPA_DEBUG */ ++ ++static int modparam_no_txampdu = 0; ++static int modparam_no_rxampdu = 0; ++module_param_named(no_txampdu, modparam_no_txampdu, int, 0444); ++MODULE_PARM_DESC(no_txampdu, "Disable tx ampdu."); ++module_param_named(no_rxampdu, modparam_no_rxampdu, int, 0444); ++MODULE_PARM_DESC(no_rxampdu, "Disable rx ampdu."); ++ ++static char *modparam_eagle_path = "/lib/firmware"; ++module_param_named(eagle_path, modparam_eagle_path, charp, 0444); ++MODULE_PARM_DESC(eagle_path, "eagle path"); ++ ++bool mod_support_no_txampdu() ++{ ++ return modparam_no_txampdu; ++} ++ ++bool mod_support_no_rxampdu() ++{ ++ return modparam_no_rxampdu; ++} ++ ++void mod_support_no_txampdu_set(bool value) ++{ ++ modparam_no_txampdu = value; ++} ++ ++char *mod_eagle_path_get(void) ++{ ++ if (modparam_eagle_path[0] == '\0') ++ return NULL; ++ ++ return modparam_eagle_path; ++} ++ ++int esp_pub_init_all(struct esp_pub *epub) ++{ ++ int ret = 0; ++ ++ /* completion for bootup event poll */ ++ DECLARE_COMPLETION_ONSTACK(complete); ++ atomic_set(&epub->ps.state, ESP_PM_OFF); ++ if (epub->sdio_state == ESP_SDIO_STATE_FIRST_INIT) { ++ epub->sip = sip_attach(epub); ++ if (epub->sip == NULL) { ++ printk(KERN_ERR "%s sip alloc failed\n", __func__); ++ return -ENOMEM; ++ } ++ ++ esp_dump_var("esp_msg_level", NULL, &esp_msg_level, ++ ESP_U32); ++ ++#ifdef ESP_ANDROID_LOGGER ++ esp_dump_var("log_off", NULL, &log_off, ESP_U32); ++#endif /* ESP_ANDROID_LOGGER */ ++ } else { ++ atomic_set(&epub->sip->state, SIP_PREPARE_BOOT); ++ atomic_set(&epub->sip->tx_credits, 0); ++ } ++ ++ epub->sip->to_host_seq = 0; ++ ++#ifdef TEST_MODE ++ if (sif_get_ate_config() != 0 && sif_get_ate_config() != 1 ++ && sif_get_ate_config() != 6) { ++ esp_test_init(epub); ++ return -1; ++ } ++#endif ++ ++#ifndef FPGA_DEBUG ++ ret = esp_download_fw(epub); ++#ifdef TEST_MODE ++ if (sif_get_ate_config() == 6) { ++ sif_enable_irq(epub); ++ mdelay(500); ++ sif_disable_irq(epub); ++ mdelay(1000); ++ esp_test_init(epub); ++ return -1; ++ } ++#endif ++ if (ret) { ++ esp_dbg(ESP_DBG_ERROR, "download firmware failed\n"); ++ return ret; ++ } ++ ++ esp_dbg(ESP_DBG_TRACE, "download firmware OK \n"); ++#else ++ sip_send_bootup(epub->sip); ++#endif /* FPGA_DEBUG */ ++ ++ gl_bootup_cplx = &complete; ++ epub->wait_reset = 0; ++ sif_enable_irq(epub); ++ ++ if (epub->sdio_state == ESP_SDIO_STATE_SECOND_INIT ++ || sif_get_ate_config() == 1) { ++ ret = sip_poll_bootup_event(epub->sip); ++ } else { ++ ret = sip_poll_resetting_event(epub->sip); ++ if (ret == 0) { ++ sif_lock_bus(epub); ++ sif_interrupt_target(epub, 7); ++ sif_unlock_bus(epub); ++ } ++ ++ } ++ ++ gl_bootup_cplx = NULL; ++ ++ if (sif_get_ate_config() == 1) ++ ret = -EOPNOTSUPP; ++ ++ return ret; ++} ++ ++void esp_dsr(struct esp_pub *epub) ++{ ++ sip_rx(epub); ++} ++ ++ ++struct esp_fw_hdr { ++ u8 magic; ++ u8 blocks; ++ u8 pad[2]; ++ u32 entry_addr; ++} __packed; ++ ++struct esp_fw_blk_hdr { ++ u32 load_addr; ++ u32 data_len; ++} __packed; ++ ++#define ESP_FW_NAME1 "eagle_fw_ate_config_v19.bin" ++#define ESP_FW_NAME2 "eagle_fw_first_init_v19.bin" ++#define ESP_FW_NAME3 "eagle_fw_second_init_v19.bin" ++ ++#ifndef FPGA_DEBUG ++static int esp_download_fw(struct esp_pub *epub) ++{ ++ const struct firmware *fw_entry; ++ u8 *fw_buf = NULL; ++ u32 offset = 0; ++ int ret = 0; ++ u8 blocks; ++ struct esp_fw_hdr *fhdr; ++ struct esp_fw_blk_hdr *bhdr = NULL; ++ struct sip_cmd_bootup bootcmd; ++ char *esp_fw_name; ++ ++ if (sif_get_ate_config() == 1) { ++ esp_fw_name = ESP_FW_NAME3; ++ } else { ++ esp_fw_name = ++ epub->sdio_state == ++ ESP_SDIO_STATE_FIRST_INIT ? ESP_FW_NAME1 : ++ ESP_FW_NAME2; ++ } ++ ret = request_firmware(&fw_entry, esp_fw_name, epub->dev); ++ ++ if (ret) ++ return ret; ++ ++ fw_buf = kmemdup(fw_entry->data, fw_entry->size, GFP_KERNEL); ++ ++ release_firmware(fw_entry); ++ ++ if (fw_buf == NULL) { ++ return -ENOMEM; ++ } ++ ++ fhdr = (struct esp_fw_hdr *) fw_buf; ++ ++ if (fhdr->magic != 0xE9) { ++ esp_dbg(ESP_DBG_ERROR, "%s wrong magic! \n", __func__); ++ goto _err; ++ } ++ ++ blocks = fhdr->blocks; ++ offset += sizeof(struct esp_fw_hdr); ++ ++ while (blocks) { ++ ++ bhdr = (struct esp_fw_blk_hdr *) (&fw_buf[offset]); ++ offset += sizeof(struct esp_fw_blk_hdr); ++ ++ ret = ++ sip_write_memory(epub->sip, bhdr->load_addr, ++ &fw_buf[offset], bhdr->data_len); ++ ++ if (ret) { ++ esp_dbg(ESP_DBG_ERROR, ++ "%s Failed to write fw, err: %d\n", ++ __func__, ret); ++ goto _err; ++ } ++ ++ blocks--; ++ offset += bhdr->data_len; ++ } ++ ++ /* TODO: last byte should be the checksum and skip checksum for now */ ++ ++ bootcmd.boot_addr = fhdr->entry_addr; ++ ret = ++ sip_send_cmd(epub->sip, SIP_CMD_BOOTUP, ++ sizeof(struct sip_cmd_bootup), &bootcmd); ++ ++ if (ret) ++ goto _err; ++ ++ _err: ++ kfree(fw_buf); ++ ++ return ret; ++ ++} ++ ++MODULE_FIRMWARE(ESP_FW_NAME1); ++MODULE_FIRMWARE(ESP_FW_NAME2); ++MODULE_FIRMWARE(ESP_FW_NAME3); ++#endif /* !FPGA_DEBUG */ +diff --git a/drivers/net/wireless/esp8089/esp_path.h b/drivers/net/wireless/esp8089/esp_path.h +new file mode 100644 +index 000000000000..1ceb14bc3b15 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_path.h +@@ -0,0 +1,6 @@ ++#ifndef _ESP_PATH_H_ ++#define _ESP_PATH_H_ ++#define FWPATH "/lib/firmware" ++//module_param_string(fwpath, fwpath, sizeof(fwpath), 0644); ++ ++#endif /* _ESP_PATH_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_pub.h b/drivers/net/wireless/esp8089/esp_pub.h +new file mode 100644 +index 000000000000..0d3ad3655cf4 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_pub.h +@@ -0,0 +1,222 @@ ++/* ++ * Copyright (c) 2011-2014 Espressif System. ++ * ++ * wlan device header file ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _ESP_PUB_H_ ++#define _ESP_PUB_H_ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "sip2_common.h" ++ ++enum esp_sdio_state { ++ ESP_SDIO_STATE_FIRST_INIT, ++ ESP_SDIO_STATE_FIRST_NORMAL_EXIT, ++ ESP_SDIO_STATE_FIRST_ERROR_EXIT, ++ ESP_SDIO_STATE_SECOND_INIT, ++ ESP_SDIO_STATE_SECOND_ERROR_EXIT, ++}; ++ ++enum esp_tid_state { ++ ESP_TID_STATE_INIT, ++ ESP_TID_STATE_TRIGGER, ++ ESP_TID_STATE_PROGRESS, ++ ESP_TID_STATE_OPERATIONAL, ++ ESP_TID_STATE_WAIT_STOP, ++ ESP_TID_STATE_STOP, ++}; ++ ++struct esp_tx_tid { ++ u8 state; ++ u8 cnt; ++ u16 ssn; ++}; ++ ++#define WME_NUM_TID 16 ++struct esp_node { ++ struct esp_tx_tid tid[WME_NUM_TID]; ++ struct ieee80211_sta *sta; ++ u8 ifidx; ++ u8 index; ++}; ++ ++#define WME_AC_BE 2 ++#define WME_AC_BK 3 ++#define WME_AC_VI 1 ++#define WME_AC_VO 0 ++ ++struct llc_snap_hdr { ++ u8 dsap; ++ u8 ssap; ++ u8 cntl; ++ u8 org_code[3]; ++ __be16 eth_type; ++} __packed; ++ ++struct esp_vif { ++ struct esp_pub *epub; ++ u8 index; ++ u32 beacon_interval; ++ bool ap_up; ++ struct timer_list beacon_timer; ++}; ++ ++/* WLAN related, mostly... */ ++/*struct hw_scan_timeout { ++ struct delayed_work w; ++ struct ieee80211_hw *hw; ++};*/ ++ ++typedef struct esp_wl { ++ u8 bssid[ETH_ALEN]; ++ u8 req_bssid[ETH_ALEN]; ++ ++ //struct hw_scan_timeout *hsd; ++ struct cfg80211_scan_request *scan_req; ++ atomic_t ptk_cnt; ++ atomic_t gtk_cnt; ++ atomic_t tkip_key_set; ++ ++ /* so far only 2G band */ ++ struct ieee80211_supported_band sbands[NUM_NL80211_BANDS]; ++ ++ unsigned long flags; ++ atomic_t off; ++} esp_wl_t; ++ ++typedef struct esp_hw_idx_map { ++ u8 mac[ETH_ALEN]; ++ u8 flag; ++} esp_hw_idx_map_t; ++ ++#define ESP_WL_FLAG_RFKILL BIT(0) ++#define ESP_WL_FLAG_HW_REGISTERED BIT(1) ++#define ESP_WL_FLAG_CONNECT BIT(2) ++#define ESP_WL_FLAG_STOP_TXQ BIT(3) ++ ++#define ESP_PUB_MAX_VIF 2 ++#define ESP_PUB_MAX_STA 16 //for one interface ++#define ESP_PUB_MAX_RXAMPDU 8 //for all interfaces ++ ++enum { ++ ESP_PM_OFF = 0, ++ ESP_PM_TURNING_ON, ++ ESP_PM_ON, ++ ESP_PM_TURNING_OFF, /* Do NOT change the order */ ++}; ++ ++struct esp_ps { ++ u32 dtim_period; ++ u32 max_sleep_period; ++ unsigned long last_config_time; ++ atomic_t state; ++ bool nulldata_pm_on; ++}; ++ ++struct esp_mac_prefix { ++ u8 mac_index; ++ u8 mac_addr_prefix[3]; ++}; ++ ++struct esp_pub { ++ struct device *dev; ++#ifdef ESP_NO_MAC80211 ++ struct net_device *net_dev; ++ struct wireless_dev *wdev; ++ struct net_device_stats *net_stats; ++#else ++ struct ieee80211_hw *hw; ++ struct ieee80211_vif *vif; ++ u8 vif_slot; ++#endif /* ESP_MAC80211 */ ++ ++ void *sif; /* serial interface control block, e.g. sdio */ ++ enum esp_sdio_state sdio_state; ++ struct esp_sip *sip; ++ struct esp_wl wl; ++ struct esp_hw_idx_map hi_map[19]; ++ struct esp_hw_idx_map low_map[ESP_PUB_MAX_VIF][2]; ++ //u32 flags; //flags to represent rfkill switch,start ++ u8 roc_flags; //0: not in remain on channel state, 1: in roc state ++ ++ struct work_struct tx_work; /* attach to ieee80211 workqueue */ ++ /* latest mac80211 has multiple tx queue, but we stick with single queue now */ ++ spinlock_t rx_lock; ++ spinlock_t tx_ampdu_lock; ++ spinlock_t rx_ampdu_lock; ++ spinlock_t tx_lock; ++ struct mutex tx_mtx; ++ struct sk_buff_head txq; ++ atomic_t txq_stopped; ++ ++ struct work_struct sendup_work; /* attach to ieee80211 workqueue */ ++ struct sk_buff_head txdoneq; ++ struct sk_buff_head rxq; ++ ++ struct workqueue_struct *esp_wkq; ++ ++ //u8 bssid[ETH_ALEN]; ++ u8 mac_addr[ETH_ALEN]; ++ ++ u32 rx_filter; ++ unsigned long scan_permit; ++ bool scan_permit_valid; ++ struct delayed_work scan_timeout_work; ++ u32 enodes_map; ++ u8 rxampdu_map; ++ u32 enodes_maps[ESP_PUB_MAX_VIF]; ++ struct esp_node *enodes[ESP_PUB_MAX_STA + 1]; ++ struct esp_node *rxampdu_node[ESP_PUB_MAX_RXAMPDU]; ++ u8 rxampdu_tid[ESP_PUB_MAX_RXAMPDU]; ++ struct esp_ps ps; ++ int enable_int; ++ int wait_reset; ++}; ++ ++typedef struct esp_pub esp_pub_t; ++ ++struct esp_pub *esp_pub_alloc_mac80211(struct device *dev); ++int esp_pub_dealloc_mac80211(struct esp_pub *epub); ++int esp_register_mac80211(struct esp_pub *epub); ++ ++int esp_pub_init_all(struct esp_pub *epub); ++ ++char *mod_eagle_path_get(void); ++ ++void esp_dsr(struct esp_pub *epub); ++void hw_scan_done(struct esp_pub *epub, bool aborted); ++void esp_rocdone_process(struct ieee80211_hw *hw, ++ struct sip_evt_roc *report); ++ ++void esp_ps_config(struct esp_pub *epub, struct esp_ps *ps, bool on); ++ ++struct esp_node *esp_get_node_by_addr(struct esp_pub *epub, ++ const u8 * addr); ++struct esp_node *esp_get_node_by_index(struct esp_pub *epub, u8 index); ++int esp_get_empty_rxampdu(struct esp_pub *epub, const u8 * addr, u8 tid); ++int esp_get_exist_rxampdu(struct esp_pub *epub, const u8 * addr, u8 tid); ++ ++#ifdef TEST_MODE ++int test_init_netlink(struct esp_sip *sip); ++void test_exit_netlink(void); ++void esp_test_cmd_event(u32 cmd_type, char *reply_info); ++void esp_test_init(struct esp_pub *epub); ++#endif ++#endif /* _ESP_PUB_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_sif.h b/drivers/net/wireless/esp8089/esp_sif.h +new file mode 100644 +index 000000000000..2d49f2bc8035 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_sif.h +@@ -0,0 +1,207 @@ ++/* ++ * Copyright (c) 2011 - 2014 Espressif System. ++ * ++ * Serial I/F wrapper layer for eagle WLAN device, ++ * abstraction of buses like SDIO/SIP, and provides ++ * flow control for tx/rx layer ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _ESP_SIF_H_ ++#define _ESP_SIF_H_ ++ ++#include "esp_pub.h" ++#include ++#include ++ ++/* ++ * H/W SLC module definitions ++ */ ++ ++#define SIF_SLC_BLOCK_SIZE 512 ++ ++ ++/* S/W struct mapping to slc registers */ ++typedef struct slc_host_regs { ++ /* do NOT read token_rdata ++ * ++ u32 pf_data; ++ u32 token_rdata; ++ */ ++ u32 intr_raw; ++ u32 state_w0; ++ u32 state_w1; ++ u32 config_w0; ++ u32 config_w1; ++ u32 intr_status; ++ u32 config_w2; ++ u32 config_w3; ++ u32 config_w4; ++ u32 token_wdata; ++ u32 intr_clear; ++ u32 intr_enable; ++} sif_slc_reg_t; ++ ++ ++enum io_sync_type { ++ ESP_SIF_NOSYNC = 0, ++ ESP_SIF_SYNC, ++}; ++ ++typedef struct esp_sdio_ctrl { ++ struct sdio_func *func; ++ struct esp_pub *epub; ++ ++ ++ struct list_head free_req; ++ ++ u8 *dma_buffer; ++ ++ spinlock_t scat_lock; ++ struct list_head scat_req; ++ ++ bool off; ++ atomic_t irq_handling; ++ const struct sdio_device_id *id; ++ u32 slc_blk_sz; ++ u32 target_id; ++ u32 slc_window_end_addr; ++ ++ struct slc_host_regs slc_regs; ++ atomic_t irq_installed; ++ ++} esp_sdio_ctrl_t; ++ ++#define SIF_TO_DEVICE 0x1 ++#define SIF_FROM_DEVICE 0x2 ++ ++#define SIF_SYNC 0x00000010 ++#define SIF_ASYNC 0x00000020 ++ ++#define SIF_BYTE_BASIS 0x00000040 ++#define SIF_BLOCK_BASIS 0x00000080 ++ ++#define SIF_FIXED_ADDR 0x00000100 ++#define SIF_INC_ADDR 0x00000200 ++ ++#define EPUB_CTRL_CHECK(_epub, _go_err) do{\ ++ if (_epub == NULL) {\ ++ ESSERT(0);\ ++ goto _go_err;\ ++ }\ ++ if ((_epub)->sif == NULL) {\ ++ ESSERT(0);\ ++ goto _go_err;\ ++ }\ ++}while(0) ++ ++#define EPUB_FUNC_CHECK(_epub, _go_err) do{\ ++ if (_epub == NULL) {\ ++ ESSERT(0);\ ++ goto _go_err;\ ++ }\ ++ if ((_epub)->sif == NULL) {\ ++ ESSERT(0);\ ++ goto _go_err;\ ++ }\ ++ if (((struct esp_sdio_ctrl *)(_epub)->sif)->func == NULL) {\ ++ ESSERT(0);\ ++ goto _go_err;\ ++ }\ ++}while(0) ++ ++#define EPUB_TO_CTRL(_epub) (((struct esp_sdio_ctrl *)(_epub)->sif)) ++ ++#define EPUB_TO_FUNC(_epub) (((struct esp_sdio_ctrl *)(_epub)->sif)->func) ++ ++void sdio_io_writeb(struct esp_pub *epub, u8 value, int addr, int *res); ++u8 sdio_io_readb(struct esp_pub *epub, int addr, int *res); ++ ++ ++void sif_enable_irq(struct esp_pub *epub); ++void sif_disable_irq(struct esp_pub *epub); ++void sif_disable_target_interrupt(struct esp_pub *epub); ++ ++u32 sif_get_blksz(struct esp_pub *epub); ++u32 sif_get_target_id(struct esp_pub *epub); ++ ++void sif_dsr(struct sdio_func *func); ++int sif_io_raw(struct esp_pub *epub, u32 addr, u8 * buf, u32 len, ++ u32 flag); ++int sif_io_sync(struct esp_pub *epub, u32 addr, u8 * buf, u32 len, ++ u32 flag); ++int sif_io_async(struct esp_pub *epub, u32 addr, u8 * buf, u32 len, ++ u32 flag, void *context); ++int sif_lldesc_read_sync(struct esp_pub *epub, u8 * buf, u32 len); ++int sif_lldesc_write_sync(struct esp_pub *epub, u8 * buf, u32 len); ++int sif_lldesc_read_raw(struct esp_pub *epub, u8 * buf, u32 len, ++ bool noround); ++int sif_lldesc_write_raw(struct esp_pub *epub, u8 * buf, u32 len); ++ ++int sif_platform_get_irq_no(void); ++int sif_platform_is_irq_occur(void); ++void sif_platform_irq_clear(void); ++void sif_platform_irq_mask(int enable_mask); ++int sif_platform_irq_init(void); ++void sif_platform_irq_deinit(void); ++ ++int esp_common_read(struct esp_pub *epub, u8 * buf, u32 len, int sync, ++ bool noround); ++int esp_common_write(struct esp_pub *epub, u8 * buf, u32 len, int sync); ++int esp_common_read_with_addr(struct esp_pub *epub, u32 addr, u8 * buf, ++ u32 len, int sync); ++int esp_common_write_with_addr(struct esp_pub *epub, u32 addr, u8 * buf, ++ u32 len, int sync); ++ ++int esp_common_readbyte_with_addr(struct esp_pub *epub, u32 addr, u8 * buf, ++ int sync); ++int esp_common_writebyte_with_addr(struct esp_pub *epub, u32 addr, u8 buf, ++ int sync); ++ ++int sif_read_reg_window(struct esp_pub *epub, unsigned int reg_addr, ++ unsigned char *value); ++int sif_write_reg_window(struct esp_pub *epub, unsigned int reg_addr, ++ unsigned char *value); ++int sif_ack_target_read_err(struct esp_pub *epub); ++int sif_had_io_enable(struct esp_pub *epub); ++ ++struct slc_host_regs *sif_get_regs(struct esp_pub *epub); ++ ++void sif_lock_bus(struct esp_pub *epub); ++void sif_unlock_bus(struct esp_pub *epub); ++ ++int sif_interrupt_target(struct esp_pub *epub, u8 index); ++#ifdef USE_EXT_GPIO ++int sif_config_gpio_mode(struct esp_pub *epub, u8 gpio_num, u8 gpio_mode); ++int sif_set_gpio_output(struct esp_pub *epub, u16 mask, u16 value); ++int sif_get_gpio_intr(struct esp_pub *epub, u16 intr_mask, u16 * value); ++int sif_get_gpio_input(struct esp_pub *epub, u16 * mask, u16 * value); ++#endif ++ ++void check_target_id(struct esp_pub *epub); ++ ++void sif_record_bt_config(int value); ++int sif_get_bt_config(void); ++void sif_record_rst_config(int value); ++int sif_get_rst_config(void); ++void sif_record_ate_config(int value); ++int sif_get_ate_config(void); ++void sif_record_retry_config(void); ++int sif_get_retry_config(void); ++void sif_record_wakeup_gpio_config(int value); ++int sif_get_wakeup_gpio_config(void); ++ ++#define sif_reg_read_sync(epub, addr, buf, len) sif_io_sync((epub), (addr), (buf), (len), SIF_FROM_DEVICE | SIF_BYTE_BASIS | SIF_INC_ADDR) ++ ++#define sif_reg_write_sync(epub, addr, buf, len) sif_io_sync((epub), (addr), (buf), (len), SIF_TO_DEVICE | SIF_BYTE_BASIS | SIF_INC_ADDR) ++ ++#endif /* _ESP_SIF_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_sip.c b/drivers/net/wireless/esp8089/esp_sip.c +new file mode 100644 +index 000000000000..6602a1e22ab1 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_sip.c +@@ -0,0 +1,2420 @@ ++/* ++ * Copyright (c) 2009 - 2014 Espressif System. ++ * ++ * Serial Interconnctor Protocol ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "esp_mac80211.h" ++#include "esp_pub.h" ++#include "esp_sip.h" ++#include "esp_ctrl.h" ++#include "esp_sif.h" ++#include "esp_debug.h" ++#include "slc_host_register.h" ++#include "esp_wmac.h" ++#include "esp_utils.h" ++ ++#ifdef USE_EXT_GPIO ++#include "esp_ext.h" ++#endif /* USE_EXT_GPIO */ ++ ++extern struct completion *gl_bootup_cplx; ++ ++static int old_signal = -35; ++static int avg_signal = 0; ++static int signal_loop = 0; ++ ++struct esp_mac_prefix esp_mac_prefix_table[] = { ++ {0, {0x18, 0xfe, 0x34}}, ++ {1, {0xac, 0xd0, 0x74}}, ++ {255, {0x18, 0xfe, 0x34}}, ++}; ++ ++#define SIGNAL_COUNT 300 ++ ++#define TID_TO_AC(_tid) ((_tid)== 0||((_tid)==3)?WME_AC_BE:((_tid)<3)?WME_AC_BK:((_tid)<6)?WME_AC_VI:WME_AC_VO) ++ ++#ifdef SIP_DEBUG ++#define esp_sip_dbg esp_dbg ++struct sip_trace { ++ u32 tx_data; ++ u32 tx_cmd; ++ u32 rx_data; ++ u32 rx_evt; ++ u32 rx_tx_status; ++ u32 tx_out_of_credit; ++ u32 tx_one_shot_overflow; ++}; ++static struct sip_trace str; ++#define STRACE_TX_DATA_INC() (str.tx_data++) ++#define STRACE_TX_CMD_INC() (str.tx_cmd++) ++#define STRACE_RX_DATA_INC() (str.rx_data++) ++#define STRACE_RX_EVENT_INC() (str.rx_evt++) ++#define STRACE_RX_TXSTATUS_INC() (str.rx_tx_status++) ++#define STRACE_TX_OUT_OF_CREDIT_INC() (str.tx_out_of_credit++) ++#define STRACE_TX_ONE_SHOT_INC() (str.tx_one_shot_overflow++) ++#define STRACE_SHOW(sip) ++#else ++#define esp_sip_dbg(...) ++#define STRACE_TX_DATA_INC() ++#define STRACE_TX_CMD_INC() ++#define STRACE_RX_DATA_INC() ++#define STRACE_RX_EVENT_INC() ++#define STRACE_RX_TXSTATUS_INC() ++#define STRACE_TX_OUT_OF_CREDIT_INC() ++#define STRACE_TX_ONE_SHOT_INC() ++#define STRACE_SHOW(sip) ++#endif /* SIP_DEBUG */ ++ ++#define SIP_STOP_QUEUE_THRESHOLD 48 ++#define SIP_RESUME_QUEUE_THRESHOLD 12 ++ ++#define SIP_MIN_DATA_PKT_LEN (sizeof(struct esp_mac_rx_ctrl) + 24) //24 is min 80211hdr ++ ++#ifdef ESP_PREALLOC ++extern struct sk_buff *esp_get_sip_skb(int size); ++extern void esp_put_sip_skb(struct sk_buff **skb); ++ ++extern u8 *esp_get_tx_aggr_buf(void); ++extern void esp_put_tx_aggr_buf(u8 ** p); ++ ++#endif ++ ++static void sip_recalc_credit_init(struct esp_sip *sip); ++ ++static int sip_recalc_credit_claim(struct esp_sip *sip, int force); ++ ++static void sip_recalc_credit_release(struct esp_sip *sip); ++ ++static struct sip_pkt *sip_get_ctrl_buf(struct esp_sip *sip, ++ SIP_BUF_TYPE bftype); ++ ++static void sip_reclaim_ctrl_buf(struct esp_sip *sip, struct sip_pkt *pkt, ++ SIP_BUF_TYPE bftype); ++ ++static void sip_free_init_ctrl_buf(struct esp_sip *sip); ++ ++static int sip_pack_pkt(struct esp_sip *sip, struct sk_buff *skb, ++ int *pm_state); ++ ++static struct esp_mac_rx_ctrl *sip_parse_normal_mac_ctrl(struct sk_buff ++ *skb, ++ int *pkt_len_enc, ++ int *buf_len, ++ int *pulled_len); ++ ++static struct sk_buff *sip_parse_data_rx_info(struct esp_sip *sip, ++ struct sk_buff *skb, ++ int pkt_len_enc, int buf_len, ++ struct esp_mac_rx_ctrl ++ *mac_ctrl, int *pulled_len); ++ ++static inline void sip_rx_pkt_enqueue(struct esp_sip *sip, ++ struct sk_buff *skb); ++ ++static void sip_after_write_pkts(struct esp_sip *sip); ++ ++static void sip_update_tx_credits(struct esp_sip *sip, ++ u16 recycled_credits); ++ ++//static void sip_trigger_txq_process(struct esp_sip *sip); ++ ++static bool sip_rx_pkt_process(struct esp_sip *sip, struct sk_buff *skb); ++ ++static void sip_tx_status_report(struct esp_sip *sip, struct sk_buff *skb, ++ struct ieee80211_tx_info *tx_info, ++ bool success); ++ ++#ifdef FPGA_TXDATA ++int sip_send_tx_data(struct esp_sip *sip); ++#endif /* FPGA_TXDATA */ ++ ++#ifdef FPGA_LOOPBACK ++int sip_send_loopback_cmd_mblk(struct esp_sip *sip); ++#endif /* FPGA_LOOPBACK */ ++ ++static bool check_ac_tid(u8 * pkt, u8 ac, u8 tid) ++{ ++ struct ieee80211_hdr *wh = (struct ieee80211_hdr *) pkt; ++#ifdef TID_DEBUG ++ u16 real_tid = 0; ++#endif //TID_DEBUG ++ ++ if (ieee80211_is_data_qos(wh->frame_control)) { ++#ifdef TID_DEBUG ++ real_tid = ++ *ieee80211_get_qos_ctl(wh) & ++ IEEE80211_QOS_CTL_TID_MASK; ++ ++ esp_sip_dbg(ESP_SHOW, "ac:%u, tid:%u, tid in pkt:%u\n", ac, ++ tid, real_tid); ++ if (tid != real_tid) { ++ esp_sip_dbg(ESP_DBG_ERROR, ++ "111 ac:%u, tid:%u, tid in pkt:%u\n", ++ ac, tid, real_tid); ++ } ++ if (TID_TO_AC(tid) != ac) { ++ esp_sip_dbg(ESP_DBG_ERROR, ++ "222 ac:%u, tid:%u, tid in pkt:%u\n", ++ ac, tid, real_tid); ++ } ++#endif /* TID_DEBUG */ ++ } else if (ieee80211_is_mgmt(wh->frame_control)) { ++#ifdef TID_DEBUG ++ esp_sip_dbg(ESP_SHOW, "ac:%u, tid:%u\n", ac, tid); ++ if (tid != 7 || ac != WME_AC_VO) { ++ esp_sip_dbg(ESP_DBG_ERROR, "333 ac:%u, tid:%u\n", ++ ac, tid); ++ } ++#endif /* TID_DEBUG */ ++ } else { ++ if (ieee80211_is_ctl(wh->frame_control)) { ++#ifdef TID_DEBUG ++ esp_sip_dbg(ESP_SHOW, ++ "%s is ctrl pkt fc 0x%04x ac:%u, tid:%u, tid in pkt:%u\n", ++ __func__, wh->frame_control, ac, tid, ++ real_tid); ++#endif /* TID_DEBUG */ ++ } else { ++ if (tid != 0 || ac != WME_AC_BE) { ++ //show_buf(pkt, 24); ++ esp_sip_dbg(ESP_DBG_LOG, ++ "444 ac:%u, tid:%u \n", ac, ++ tid); ++ if (tid == 7 && ac == WME_AC_VO) ++ return false; ++ } ++ return true; //hack to modify non-qos null data. ++ ++ } ++ } ++ ++ return false; ++} ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) ++static void sip_recalc_credit_timeout(struct timer_list *t) ++#else ++static void sip_recalc_credit_timeout(unsigned long data) ++#endif ++{ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) ++ struct esp_sip *sip = from_timer(sip, t, credit_timer); ++#else ++ struct esp_sip *sip = (struct esp_sip *) data; ++#endif ++ ++ esp_dbg(ESP_DBG_ERROR, "rct"); ++ ++ sip_recalc_credit_claim(sip, 1); /* recalc again */ ++} ++ ++static void sip_recalc_credit_init(struct esp_sip *sip) ++{ ++ atomic_set(&sip->credit_status, RECALC_CREDIT_DISABLE); //set it disable ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) ++ timer_setup(&sip->credit_timer, sip_recalc_credit_timeout, 0); ++#else ++ init_timer(&sip->credit_timer); ++ sip->credit_timer.data = (unsigned long) sip; ++ sip->credit_timer.function = sip_recalc_credit_timeout; ++#endif ++} ++ ++static int sip_recalc_credit_claim(struct esp_sip *sip, int force) ++{ ++ int ret; ++ ++ if (atomic_read(&sip->credit_status) == RECALC_CREDIT_ENABLE ++ && force == 0) ++ return 1; ++ ++ atomic_set(&sip->credit_status, RECALC_CREDIT_ENABLE); ++ ret = sip_send_recalc_credit(sip->epub); ++ if (ret) { ++ esp_dbg(ESP_DBG_ERROR, "%s error %d", __func__, ret); ++ return ret; ++ } ++ /*setup a timer for handle the abs_credit not receive */ ++ mod_timer(&sip->credit_timer, jiffies + msecs_to_jiffies(2000)); ++ ++ esp_dbg(ESP_SHOW, "rcc"); ++ ++ return ret; ++} ++ ++static void sip_recalc_credit_release(struct esp_sip *sip) ++{ ++ esp_dbg(ESP_SHOW, "rcr"); ++ ++ if (atomic_read(&sip->credit_status) == RECALC_CREDIT_ENABLE) { ++ atomic_set(&sip->credit_status, RECALC_CREDIT_DISABLE); ++ del_timer_sync(&sip->credit_timer); ++ } else ++ esp_dbg(ESP_SHOW, "maybe bogus credit"); ++} ++ ++static void sip_update_tx_credits(struct esp_sip *sip, ++ u16 recycled_credits) ++{ ++ esp_sip_dbg(ESP_DBG_TRACE, "%s:before add, credits is %d\n", ++ __func__, atomic_read(&sip->tx_credits)); ++ ++ if (recycled_credits & 0x800) { ++ atomic_set(&sip->tx_credits, (recycled_credits & 0x7ff)); ++ sip_recalc_credit_release(sip); ++ } else ++ atomic_add(recycled_credits, &sip->tx_credits); ++ ++ esp_sip_dbg(ESP_DBG_TRACE, "%s:after add %d, credits is %d\n", ++ __func__, recycled_credits, ++ atomic_read(&sip->tx_credits)); ++} ++ ++void sip_trigger_txq_process(struct esp_sip *sip) ++{ ++ if (atomic_read(&sip->tx_credits) <= sip->credit_to_reserve + SIP_CTRL_CREDIT_RESERVE //no credits, do nothing ++ || atomic_read(&sip->credit_status) == RECALC_CREDIT_ENABLE) ++ return; ++ ++ if (sip_queue_may_resume(sip)) { ++ /* wakeup upper queue only if we have sufficient credits */ ++ esp_sip_dbg(ESP_DBG_TRACE, "%s wakeup ieee80211 txq \n", ++ __func__); ++ atomic_set(&sip->epub->txq_stopped, false); ++ ieee80211_wake_queues(sip->epub->hw); ++ } else if (atomic_read(&sip->epub->txq_stopped)) { ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s can't wake txq, credits: %d \n", __func__, ++ atomic_read(&sip->tx_credits)); ++ } ++ ++ if (!skb_queue_empty(&sip->epub->txq)) { ++ /* try to send out pkt already in sip queue once we have credits */ ++ esp_sip_dbg(ESP_DBG_TRACE, "%s resume sip txq \n", ++ __func__); ++ ++#if !defined(FPGA_TXDATA) ++ if (sif_get_ate_config() == 0) { ++ ieee80211_queue_work(sip->epub->hw, ++ &sip->epub->tx_work); ++ } else { ++ queue_work(sip->epub->esp_wkq, ++ &sip->epub->tx_work); ++ } ++#else ++ queue_work(sip->epub->esp_wkq, &sip->epub->tx_work); ++#endif ++ } ++} ++ ++static bool sip_ampdu_occupy_buf(struct esp_sip *sip, ++ struct esp_rx_ampdu_len *ampdu_len) ++{ ++ return (ampdu_len->substate == 0 ++ || esp_wmac_rxsec_error(ampdu_len->substate) ++ || (sip->dump_rpbm_err ++ && ampdu_len->substate == RX_RPBM_ERR)); ++} ++ ++static bool sip_rx_pkt_process(struct esp_sip *sip, struct sk_buff *skb) ++{ ++#define DO_NOT_COPY false ++#define DO_COPY true ++ ++ struct sip_hdr *hdr = NULL; ++ struct sk_buff *rskb = NULL; ++ int remains_len = 0; ++ int first_pkt_len = 0; ++ u8 *bufptr = NULL; ++ int ret = 0; ++ bool trigger_rxq = false; ++ ++ if (skb == NULL) { ++ esp_sip_dbg(ESP_DBG_ERROR, "%s NULL SKB!!!!!!!! \n", ++ __func__); ++ return trigger_rxq; ++ } ++ ++ hdr = (struct sip_hdr *) skb->data; ++ bufptr = skb->data; ++ ++ ++ esp_sip_dbg(ESP_DBG_TRACE, "%s Hcredits 0x%08x, realCredits %d\n", ++ __func__, hdr->h_credits, ++ hdr->h_credits & SIP_CREDITS_MASK); ++ if (hdr->h_credits & SIP_CREDITS_MASK) { ++ sip_update_tx_credits(sip, ++ hdr->h_credits & SIP_CREDITS_MASK); ++ } ++ ++ hdr->h_credits &= ~SIP_CREDITS_MASK; /* clean credits in sip_hdr, prevent over-add */ ++ ++ esp_sip_dbg(ESP_DBG_TRACE, "%s credits %d\n", __func__, ++ hdr->h_credits); ++ ++ /* ++ * first pkt's length is stored in recycled_credits first 20 bits ++ * config w3 [31:12] ++ * repair hdr->len of first pkt ++ */ ++ remains_len = hdr->len; ++ first_pkt_len = hdr->h_credits >> 12; ++ hdr->len = first_pkt_len; ++ ++ esp_dbg(ESP_DBG_TRACE, "%s first_pkt_len %d, whole pkt len %d \n", ++ __func__, first_pkt_len, remains_len); ++ if (first_pkt_len > remains_len) { ++ sip_recalc_credit_claim(sip, 0); ++ esp_dbg(ESP_DBG_ERROR, ++ "first_pkt_len %d, whole pkt len %d\n", ++ first_pkt_len, remains_len); ++ show_buf((u8 *) hdr, first_pkt_len); ++ ESSERT(0); ++ goto _exit; ++ } ++ ++ /* ++ * pkts handling, including the first pkt, should alloc new skb for each data pkt. ++ * free the original whole skb after parsing is done. ++ */ ++ while (remains_len) { ++ if (remains_len < sizeof(struct sip_hdr)) { ++ sip_recalc_credit_claim(sip, 0); ++ ESSERT(0); ++ show_buf((u8 *) hdr, 512); ++ goto _exit; ++ } ++ ++ hdr = (struct sip_hdr *) bufptr; ++ if (hdr->len <= 0) { ++ sip_recalc_credit_claim(sip, 0); ++ show_buf((u8 *) hdr, 512); ++ ESSERT(0); ++ goto _exit; ++ } ++ ++ if ((hdr->len & 3) != 0) { ++ sip_recalc_credit_claim(sip, 0); ++ show_buf((u8 *) hdr, 512); ++ ESSERT(0); ++ goto _exit; ++ } ++ if (unlikely(hdr->seq != sip->rxseq++)) { ++ sip_recalc_credit_claim(sip, 0); ++ esp_dbg(ESP_DBG_ERROR, ++ "%s seq mismatch! got %u, expect %u\n", ++ __func__, hdr->seq, sip->rxseq - 1); ++ sip->rxseq = hdr->seq + 1; ++ show_buf(bufptr, 32); ++ ESSERT(0); ++ } ++ ++ if (SIP_HDR_IS_CTRL(hdr)) { ++ STRACE_RX_EVENT_INC(); ++ esp_sip_dbg(ESP_DBG_TRACE, "seq %u \n", hdr->seq); ++ ++ ret = sip_parse_events(sip, bufptr); ++ ++ skb_pull(skb, hdr->len); ++ ++ } else if (SIP_HDR_IS_DATA(hdr)) { ++ struct esp_mac_rx_ctrl *mac_ctrl = NULL; ++ int pkt_len_enc = 0, buf_len = 0, pulled_len = 0; ++ ++ STRACE_RX_DATA_INC(); ++ esp_sip_dbg(ESP_DBG_TRACE, "seq %u \n", hdr->seq); ++ mac_ctrl = ++ sip_parse_normal_mac_ctrl(skb, &pkt_len_enc, ++ &buf_len, ++ &pulled_len); ++ rskb = ++ sip_parse_data_rx_info(sip, skb, pkt_len_enc, ++ buf_len, mac_ctrl, ++ &pulled_len); ++ ++ if (rskb == NULL) ++ goto _move_on; ++ ++ if (likely(atomic_read(&sip->epub->wl.off) == 0)) { ++#ifdef RX_CHECKSUM_TEST ++ esp_rx_checksum_test(rskb); ++#endif ++ local_bh_disable(); ++ ieee80211_rx(sip->epub->hw, rskb); ++ local_bh_enable(); ++ } else { ++ /* still need go thro parsing as skb_pull should invoke */ ++ kfree_skb(rskb); ++ } ++ } else if (SIP_HDR_IS_AMPDU(hdr)) { ++ struct esp_mac_rx_ctrl *mac_ctrl = NULL; ++ struct esp_mac_rx_ctrl new_mac_ctrl; ++ struct esp_rx_ampdu_len *ampdu_len; ++ int pkt_num; ++ int pulled_len = 0; ++ static int pkt_dropped = 0; ++ static int pkt_total = 0; ++ bool have_rxabort = false; ++ bool have_goodpkt = false; ++ static u8 frame_head[16]; ++ static u8 frame_buf_ttl = 0; ++ ++ ampdu_len = ++ (struct esp_rx_ampdu_len *) (skb->data + ++ hdr->len / ++ sip->rx_blksz * ++ sip->rx_blksz); ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s rx ampdu total len %u\n", __func__, ++ hdr->len); ++ if (skb->data != (u8 *) hdr) { ++ printk("%p %p\n", skb->data, hdr); ++ show_buf(skb->data, 512); ++ show_buf((u8 *) hdr, 512); ++ ESSERT(0); ++ goto _exit; ++ } ++ mac_ctrl = ++ sip_parse_normal_mac_ctrl(skb, NULL, NULL, ++ &pulled_len); ++ memcpy(&new_mac_ctrl, mac_ctrl, ++ sizeof(struct esp_mac_rx_ctrl)); ++ mac_ctrl = &new_mac_ctrl; ++ pkt_num = mac_ctrl->ampdu_cnt; ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s %d rx ampdu %u pkts, %d pkts dumped, first len %u\n", ++ __func__, __LINE__, ++ (unsigned ++ int) ((hdr->len % sip->rx_blksz) / ++ sizeof(struct ++ esp_rx_ampdu_len)), ++ pkt_num, ++ (unsigned int) ampdu_len->sublen); ++ ++ pkt_total += mac_ctrl->ampdu_cnt; ++ //esp_sip_dbg(ESP_DBG_ERROR, "%s ampdu dropped %d/%d\n", __func__, pkt_dropped, pkt_total); ++ while (pkt_num > 0) { ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s %d ampdu sub state %02x,\n", ++ __func__, __LINE__, ++ ampdu_len->substate); ++ ++ if (sip_ampdu_occupy_buf(sip, ampdu_len)) { //pkt is dumped ++ ++ rskb = ++ sip_parse_data_rx_info(sip, ++ skb, ++ ampdu_len-> ++ sublen - ++ FCS_LEN, ++ 0, ++ mac_ctrl, ++ &pulled_len); ++ if (!rskb) { ++ ESSERT(0); ++ goto _exit; ++ } ++ ++ if (likely ++ (atomic_read ++ (&sip->epub->wl.off) == 0) ++ && (ampdu_len->substate == 0 ++ || ampdu_len->substate == ++ RX_TKIPMIC_ERR ++ || (sip->sendup_rpbm_pkt ++ && ampdu_len-> ++ substate == ++ RX_RPBM_ERR)) ++ && (sip->rxabort_fixed ++ || !have_rxabort)) { ++ if (!have_goodpkt) { ++ have_goodpkt = ++ true; ++ memcpy(frame_head, ++ rskb->data, ++ 16); ++ frame_head[1] &= ++ ~0x80; ++ frame_buf_ttl = 3; ++ } ++#ifdef RX_CHECKSUM_TEST ++ esp_rx_checksum_test(rskb); ++#endif ++ local_bh_disable(); ++ ieee80211_rx(sip->epub->hw, ++ rskb); ++ local_bh_enable(); ++ ++ } else { ++ kfree_skb(rskb); ++ } ++ } else { ++ if (ampdu_len->substate == ++ RX_ABORT) { ++ u8 *a; ++ have_rxabort = true; ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "rx abort %d %d\n", ++ frame_buf_ttl, ++ pkt_num); ++ if (frame_buf_ttl ++ && !sip-> ++ rxabort_fixed) { ++ struct ++ esp_rx_ampdu_len ++ *next_good_ampdu_len ++ = ++ ampdu_len + 1; ++ a = frame_head; ++ esp_sip_dbg ++ (ESP_DBG_TRACE, ++ "frame:%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", ++ a[0], a[1], ++ a[2], a[3], ++ a[4], a[5], ++ a[6], a[7], ++ a[8], a[9], ++ a[10], a[11], ++ a[12], a[13], ++ a[14], a[15]); ++ while ++ (!sip_ampdu_occupy_buf ++ (sip, ++ next_good_ampdu_len)) ++ { ++ if (next_good_ampdu_len > ampdu_len + pkt_num - 1) ++ break; ++ next_good_ampdu_len++; ++ ++ } ++ if (next_good_ampdu_len <= ampdu_len + pkt_num - 1) { ++ bool b0, ++ b10, ++ b11; ++ a = skb-> ++ data; ++ esp_sip_dbg ++ (ESP_DBG_TRACE, ++ "buf:%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", ++ a[0], ++ a[1], ++ a[2], ++ a[3], ++ a[4], ++ a[5], ++ a[6], ++ a[7], ++ a[8], ++ a[9], ++ a[10], ++ a[11], ++ a[12], ++ a[13], ++ a[14], ++ a ++ [15]); ++ b0 = memcmp ++ (frame_head ++ + 4, ++ skb-> ++ data + ++ 4, ++ 12) == ++ 0; ++ b10 = ++ memcmp ++ (frame_head ++ + 10, ++ skb-> ++ data, ++ 6) == ++ 0; ++ b11 = ++ memcpy ++ (frame_head ++ + 11, ++ skb-> ++ data, ++ 5) == ++ 0; ++ esp_sip_dbg ++ (ESP_DBG_TRACE, ++ "com %d %d %d\n", ++ b0, ++ b10, ++ b11); ++ if (b0 ++ && !b10 ++ && ++ !b11) { ++ have_rxabort ++ = ++ false; ++ esp_sip_dbg ++ (ESP_DBG_TRACE, ++ "repair 0\n"); ++ } else ++ if (!b0 ++ && ++ b10 ++ && ++ !b11) ++ { ++ skb_push ++ (skb, ++ 10); ++ memcpy ++ (skb-> ++ data, ++ frame_head, ++ 10); ++ have_rxabort ++ = ++ false; ++ pulled_len ++ -= ++ 10; ++ esp_sip_dbg ++ (ESP_DBG_TRACE, ++ "repair 10\n"); ++ } else ++ if (!b0 ++ && ++ !b10 ++ && ++ b11) ++ { ++ skb_push ++ (skb, ++ 11); ++ memcpy ++ (skb-> ++ data, ++ frame_head, ++ 11); ++ have_rxabort ++ = ++ false; ++ pulled_len ++ -= ++ 11; ++ esp_sip_dbg ++ (ESP_DBG_TRACE, ++ "repair 11\n"); ++ } ++ } ++ } ++ } ++ pkt_dropped++; ++ esp_sip_dbg(ESP_DBG_LOG, ++ "%s ampdu dropped %d/%d\n", ++ __func__, pkt_dropped, ++ pkt_total); ++ } ++ pkt_num--; ++ ampdu_len++; ++ } ++ if (frame_buf_ttl) ++ frame_buf_ttl--; ++ skb_pull(skb, hdr->len - pulled_len); ++ } else { ++ esp_sip_dbg(ESP_DBG_ERROR, "%s %d unknown type\n", ++ __func__, __LINE__); ++ } ++ ++ _move_on: ++ if (hdr->len < remains_len) { ++ remains_len -= hdr->len; ++ } else { ++ break; ++ } ++ bufptr += hdr->len; ++ } ++ ++ _exit: ++#ifdef ESP_PREALLOC ++ esp_put_sip_skb(&skb); ++#else ++ kfree_skb(skb); ++#endif ++ ++ return trigger_rxq; ++ ++#undef DO_NOT_COPY ++#undef DO_COPY ++} ++ ++static void _sip_rxq_process(struct esp_sip *sip) ++{ ++ struct sk_buff *skb = NULL; ++ bool sendup = false; ++ ++ while ((skb = skb_dequeue(&sip->rxq))) { ++ if (sip_rx_pkt_process(sip, skb)) ++ sendup = true; ++ } ++ if (sendup) { ++ queue_work(sip->epub->esp_wkq, &sip->epub->sendup_work); ++ } ++ ++ /* probably tx_credit is updated, try txq */ ++ sip_trigger_txq_process(sip); ++} ++ ++void sip_rxq_process(struct work_struct *work) ++{ ++ struct esp_sip *sip = ++ container_of(work, struct esp_sip, rx_process_work); ++ if (sip == NULL) { ++ ESSERT(0); ++ return; ++ } ++ ++ if (unlikely(atomic_read(&sip->state) == SIP_SEND_INIT)) { ++ sip_send_chip_init(sip); ++ atomic_set(&sip->state, SIP_WAIT_BOOTUP); ++ return; ++ } ++ ++ mutex_lock(&sip->rx_mtx); ++ _sip_rxq_process(sip); ++ mutex_unlock(&sip->rx_mtx); ++} ++ ++static inline void sip_rx_pkt_enqueue(struct esp_sip *sip, ++ struct sk_buff *skb) ++{ ++ skb_queue_tail(&sip->rxq, skb); ++} ++ ++static inline struct sk_buff *sip_rx_pkt_dequeue(struct esp_sip *sip) ++{ ++ return skb_dequeue(&sip->rxq); ++} ++ ++static u32 sip_rx_count = 0; ++void sip_debug_show(struct esp_sip *sip) ++{ ++ esp_sip_dbg(ESP_DBG_ERROR, "txq left %d %d\n", ++ skb_queue_len(&sip->epub->txq), ++ atomic_read(&sip->tx_data_pkt_queued)); ++ esp_sip_dbg(ESP_DBG_ERROR, "tx queues stop ? %d\n", ++ atomic_read(&sip->epub->txq_stopped)); ++ esp_sip_dbg(ESP_DBG_ERROR, "txq stop? %d\n", ++ test_bit(ESP_WL_FLAG_STOP_TXQ, &sip->epub->wl.flags)); ++ esp_sip_dbg(ESP_DBG_ERROR, "tx credit %d\n", ++ atomic_read(&sip->tx_credits)); ++ esp_sip_dbg(ESP_DBG_ERROR, "rx collect %d\n", sip_rx_count); ++ sip_rx_count = 0; ++} ++ ++int sip_rx(struct esp_pub *epub) ++{ ++ struct sip_hdr *shdr = NULL; ++ struct esp_sip *sip = epub->sip; ++ int err = 0; ++ struct sk_buff *first_skb = NULL; ++ u8 *rx_buf = NULL; ++ u32 rx_blksz; ++ struct sk_buff *rx_skb = NULL; ++ ++ u32 first_sz; ++ ++ first_sz = sif_get_regs(epub)->config_w0; ++ ++ if (likely(sif_get_ate_config() != 1)) { ++ do { ++ u8 raw_seq = sif_get_regs(epub)->intr_raw & 0xff; ++ ++ if (raw_seq != sip->to_host_seq) { ++ if (raw_seq == sip->to_host_seq + 1) { /* when last read pkt crc err, this situation may occur, but raw_seq mustn't < to_host_Seq */ ++ sip->to_host_seq = raw_seq; ++ esp_dbg(ESP_DBG_TRACE, ++ "warn: to_host_seq reg 0x%02x, seq 0x%02x", ++ raw_seq, sip->to_host_seq); ++ break; ++ } ++ esp_dbg(ESP_DBG_ERROR, ++ "err: to_host_seq reg 0x%02x, seq 0x%02x", ++ raw_seq, sip->to_host_seq); ++ goto _err; ++ } ++ } while (0); ++ } ++ esp_sip_dbg(ESP_DBG_LOG, "%s enter\n", __func__); ++ ++ ++ /* first read one block out, if we luck enough, that's it ++ * ++ * To make design as simple as possible, we allocate skb(s) ++ * separately for each sif read operation to avoid global ++ * read_buf_pointe access. It coule be optimized late. ++ */ ++ rx_blksz = sif_get_blksz(epub); ++#ifdef ESP_PREALLOC ++ first_skb = esp_get_sip_skb(roundup(first_sz, rx_blksz)); ++#else ++ first_skb = ++ __dev_alloc_skb(roundup(first_sz, rx_blksz), GFP_KERNEL); ++#endif /* ESP_PREALLOC */ ++ ++ if (first_skb == NULL) { ++ sif_unlock_bus(epub); ++ esp_sip_dbg(ESP_DBG_ERROR, "%s first no memory \n", ++ __func__); ++ goto _err; ++ } ++ ++ rx_buf = skb_put(first_skb, first_sz); ++ esp_sip_dbg(ESP_DBG_LOG, "%s rx_buf ptr %p, first_sz %d\n", ++ __func__, rx_buf, first_sz); ++ ++ ++#ifdef USE_EXT_GPIO ++ do { ++ int err2 = 0; ++ u16 value = 0; ++ u16 intr_mask = ext_gpio_get_int_mask_reg(); ++ if (!intr_mask) ++ break; ++ value = sif_get_regs(epub)->config_w3 & intr_mask; ++ if (value) { ++ err2 = sif_interrupt_target(epub, 6); ++ esp_sip_dbg(ESP_DBG, "write gpio\n"); ++ } ++ ++ if (!err2 && value) { ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s intr_mask[0x%04x] value[0x%04x]\n", ++ __func__, intr_mask, value); ++ ext_gpio_int_process(value); ++ } ++ } while (0); ++#endif ++ ++ err = ++ esp_common_read(epub, rx_buf, first_sz, ESP_SIF_NOSYNC, false); ++ sip_rx_count++; ++ if (unlikely(err)) { ++ esp_dbg(ESP_DBG_ERROR, " %s first read err %d %d\n", ++ __func__, err, sif_get_regs(epub)->config_w0); ++#ifdef ESP_PREALLOC ++ esp_put_sip_skb(&first_skb); ++#else ++ kfree_skb(first_skb); ++#endif /* ESP_PREALLOC */ ++ sif_unlock_bus(epub); ++ goto _err; ++ } ++ ++ shdr = (struct sip_hdr *) rx_buf; ++ if (SIP_HDR_IS_CTRL(shdr) && (shdr->c_evtid == SIP_EVT_SLEEP)) { ++ atomic_set(&sip->epub->ps.state, ESP_PM_ON); ++ esp_dbg(ESP_DBG_TRACE, "s\n"); ++ } ++ ++ if (likely(sif_get_ate_config() != 1)) { ++ sip->to_host_seq++; ++ } ++ ++ if ((shdr->len & 3) != 0) { ++ esp_sip_dbg(ESP_DBG_ERROR, "%s shdr->len[%d] error\n", ++ __func__, shdr->len); ++#ifdef ESP_PREALLOC ++ esp_put_sip_skb(&first_skb); ++#else ++ kfree_skb(first_skb); ++#endif /* ESP_PREALLOC */ ++ sif_unlock_bus(epub); ++ err = -EIO; ++ goto _err; ++ } ++ if (shdr->len != first_sz) { ++ esp_sip_dbg(ESP_DBG_ERROR, ++ "%s shdr->len[%d] first_size[%d] error\n", ++ __func__, shdr->len, first_sz); ++#ifdef ESP_PREALLOC ++ esp_put_sip_skb(&first_skb); ++#else ++ kfree_skb(first_skb); ++#endif /* ESP_PREALLOC */ ++ sif_unlock_bus(epub); ++ err = -EIO; ++ goto _err; ++ } else { ++ sif_unlock_bus(epub); ++ skb_trim(first_skb, shdr->len); ++ esp_dbg(ESP_DBG_TRACE, " %s first_skb only\n", __func__); ++ ++ rx_skb = first_skb; ++ } ++ ++ if (atomic_read(&sip->state) == SIP_STOP) { ++#ifdef ESP_PREALLOC ++ esp_put_sip_skb(&rx_skb); ++#else ++ kfree_skb(rx_skb); ++#endif /* ESP_PREALLOC */ ++ esp_sip_dbg(ESP_DBG_ERROR, "%s when sip stopped\n", ++ __func__); ++ return 0; ++ } ++ ++ sip_rx_pkt_enqueue(sip, rx_skb); ++ queue_work(sip->epub->esp_wkq, &sip->rx_process_work); ++ ++ _err: ++ return err; ++} ++ ++int sip_post_init(struct esp_sip *sip, struct sip_evt_bootup2 *bevt) ++{ ++ struct esp_pub *epub; ++ ++ u8 mac_id = bevt->mac_addr[0]; ++ int mac_index = 0; ++ int i = 0; ++ ++ if (sip == NULL) { ++ ESSERT(0); ++ return -EINVAL; ++ } ++ ++ epub = sip->epub; ++ ++ ++ sip->tx_aggr_write_ptr = sip->tx_aggr_buf; ++ ++ sip->tx_blksz = bevt->tx_blksz; ++ sip->rx_blksz = bevt->rx_blksz; ++ sip->credit_to_reserve = bevt->credit_to_reserve; ++ ++ sip->dump_rpbm_err = (bevt->options & SIP_DUMP_RPBM_ERR); ++ sip->rxabort_fixed = (bevt->options & SIP_RXABORT_FIXED); ++ sip->support_bgscan = (bevt->options & SIP_SUPPORT_BGSCAN); ++ ++ sip->sendup_rpbm_pkt = sip->dump_rpbm_err && false; ++ ++ /* print out MAC addr... */ ++ memcpy(epub->mac_addr, bevt->mac_addr, ETH_ALEN); ++ for (i = 0; ++ i < ++ sizeof(esp_mac_prefix_table) / sizeof(struct esp_mac_prefix); ++ i++) { ++ if (esp_mac_prefix_table[i].mac_index == mac_id) { ++ mac_index = i; ++ break; ++ } ++ } ++ ++ epub->mac_addr[0] = ++ esp_mac_prefix_table[mac_index].mac_addr_prefix[0]; ++ epub->mac_addr[1] = ++ esp_mac_prefix_table[mac_index].mac_addr_prefix[1]; ++ epub->mac_addr[2] = ++ esp_mac_prefix_table[mac_index].mac_addr_prefix[2]; ++ ++#ifdef SELF_MAC ++ epub->mac_addr[0] = 0xff; ++ epub->mac_addr[1] = 0xff; ++ epub->mac_addr[2] = 0xff; ++#endif ++ atomic_set(&sip->noise_floor, bevt->noise_floor); ++ ++ sip_recalc_credit_init(sip); ++ ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s tx_blksz %d rx_blksz %d mac addr %pM\n", __func__, ++ sip->tx_blksz, sip->rx_blksz, epub->mac_addr); ++ ++ return 0; ++} ++ ++/* write pkts in aggr buf to target memory */ ++static void sip_write_pkts(struct esp_sip *sip, int pm_state) ++{ ++ int tx_aggr_len = 0; ++ struct sip_hdr *first_shdr = NULL; ++ int err = 0; ++ ++ tx_aggr_len = sip->tx_aggr_write_ptr - sip->tx_aggr_buf; ++ if (tx_aggr_len < sizeof(struct sip_hdr)) { ++ printk("%s tx_aggr_len %d \n", __func__, tx_aggr_len); ++ ESSERT(0); ++ return; ++ } ++ if ((tx_aggr_len & 0x3) != 0) { ++ ESSERT(0); ++ return; ++ } ++ ++ first_shdr = (struct sip_hdr *) sip->tx_aggr_buf; ++ ++ if (atomic_read(&sip->tx_credits) <= SIP_CREDITS_LOW_THRESHOLD) { ++ first_shdr->fc[1] |= SIP_HDR_F_NEED_CRDT_RPT; ++ } ++ ++ /* still use lock bus instead of sif_lldesc_write_sync since we want to protect several global varibles assignments */ ++ sif_lock_bus(sip->epub); ++ ++ err = ++ esp_common_write(sip->epub, sip->tx_aggr_buf, tx_aggr_len, ++ ESP_SIF_NOSYNC); ++ ++ sip->tx_aggr_write_ptr = sip->tx_aggr_buf; ++ sip->tx_tot_len = 0; ++ ++ sif_unlock_bus(sip->epub); ++ ++ if (err) ++ esp_sip_dbg(ESP_DBG_ERROR, "func %s err!!!!!!!!!: %d\n", ++ __func__, err); ++ ++} ++ ++/* setup sip header and tx info, copy pkt into aggr buf */ ++static int sip_pack_pkt(struct esp_sip *sip, struct sk_buff *skb, ++ int *pm_state) ++{ ++ struct ieee80211_tx_info *itx_info; ++ struct sip_hdr *shdr; ++ u32 tx_len = 0, offset = 0; ++ bool is_data = true; ++ ++ itx_info = IEEE80211_SKB_CB(skb); ++ ++ if (itx_info->flags == 0xffffffff) { ++ shdr = (struct sip_hdr *) skb->data; ++ is_data = false; ++ tx_len = skb->len; ++ } else { ++ struct ieee80211_hdr *wh = ++ (struct ieee80211_hdr *) skb->data; ++ struct esp_vif *evif = ++ (struct esp_vif *) itx_info->control.vif->drv_priv; ++ u8 sta_index; ++ struct esp_node *node; ++ /* update sip header */ ++ shdr = (struct sip_hdr *) sip->tx_aggr_write_ptr; ++ ++ shdr->fc[0] = 0; ++ shdr->fc[1] = 0; ++ ++ if ((itx_info->flags & IEEE80211_TX_CTL_AMPDU) ++ && (true || esp_is_ip_pkt(skb))) ++ SIP_HDR_SET_TYPE(shdr->fc[0], SIP_DATA_AMPDU); ++ else ++ SIP_HDR_SET_TYPE(shdr->fc[0], SIP_DATA); ++ ++ if (evif->epub == NULL) { ++ sip_tx_status_report(sip, skb, itx_info, false); ++ atomic_dec(&sip->tx_data_pkt_queued); ++ return -EINVAL; ++ } ++ ++ /* make room for encrypted pkt */ ++ if (itx_info->control.hw_key) { ++ int alg = ++ esp_cipher2alg(itx_info->control.hw_key-> ++ cipher); ++ if (unlikely(alg == -1)) { ++ sip_tx_status_report(sip, skb, itx_info, ++ false); ++ atomic_dec(&sip->tx_data_pkt_queued); ++ return -1; ++ } else { ++ shdr->d_enc_flag = alg + 1; ++ } ++ ++ shdr->d_hw_kid = ++ itx_info->control.hw_key->hw_key_idx | (evif-> ++ index ++ << 7); ++ } else { ++ shdr->d_enc_flag = 0; ++ shdr->d_hw_kid = (evif->index << 7 | evif->index); ++ } ++ ++ /* update sip tx info */ ++ node = esp_get_node_by_addr(sip->epub, wh->addr1); ++ if (node != NULL) ++ sta_index = node->index; ++ else ++ sta_index = ESP_PUB_MAX_STA + 1; ++ SIP_HDR_SET_IFIDX(shdr->fc[0], ++ evif->index << 3 | sta_index); ++ shdr->d_p2p = itx_info->control.vif->p2p; ++ if (evif->index == 1) ++ shdr->d_p2p = 1; ++ shdr->d_ac = skb_get_queue_mapping(skb); ++ shdr->d_tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK; ++ wh = (struct ieee80211_hdr *) skb->data; ++ if (ieee80211_is_mgmt(wh->frame_control)) { ++ /* addba/delba/bar may use different tid/ac */ ++ if (shdr->d_ac == WME_AC_VO) { ++ shdr->d_tid = 7; ++ } ++ if (ieee80211_is_beacon(wh->frame_control)) { ++ shdr->d_tid = 8; ++ shdr->d_ac = 4; ++ } ++ } ++ if (check_ac_tid(skb->data, shdr->d_ac, shdr->d_tid)) { ++ shdr->d_ac = WME_AC_BE; ++ shdr->d_tid = 0; ++ } ++ ++ ++ /* make sure data is start at 4 bytes aligned addr. */ ++ offset = roundup(sizeof(struct sip_hdr), 4); ++ ++#ifdef HOST_RC ++ esp_sip_dbg(ESP_DBG_TRACE, "%s offset0 %d \n", __func__, ++ offset); ++ memcpy(sip->tx_aggr_write_ptr + offset, ++ (void *) &itx_info->control, ++ sizeof(struct sip_tx_rc)); ++ ++ offset += roundup(sizeof(struct sip_tx_rc), 4); ++ esp_show_tx_rates(&itx_info->control.rates[0]); ++ ++#endif /* HOST_RC */ ++ ++ if (SIP_HDR_IS_AMPDU(shdr)) { ++ memset(sip->tx_aggr_write_ptr + offset, 0, ++ sizeof(struct esp_tx_ampdu_entry)); ++ offset += ++ roundup(sizeof(struct esp_tx_ampdu_entry), 4); ++ } ++ ++ tx_len = offset + skb->len; ++ shdr->len = tx_len; /* actual len */ ++ ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s offset %d skblen %d txlen %d\n", __func__, ++ offset, skb->len, tx_len); ++ ++ } ++ ++ shdr->seq = sip->txseq++; ++ //esp_sip_dbg(ESP_DBG_ERROR, "%s seq %u, %u %u\n", __func__, shdr->seq, SIP_HDR_GET_TYPE(shdr->fc[0]),shdr->c_cmdid); ++ ++ /* copy skb to aggr buf */ ++ memcpy(sip->tx_aggr_write_ptr + offset, skb->data, skb->len); ++ ++ if (is_data) { ++ spin_lock_bh(&sip->epub->tx_lock); ++ sip->txdataseq = shdr->seq; ++ spin_unlock_bh(&sip->epub->tx_lock); ++ /* fake a tx_status and report to mac80211 stack to speed up tx, may affect ++ * 1) rate control (now it's all in target, so should be OK) ++ * 2) ps mode, mac80211 want to check ACK of ps/nulldata to see if AP is awake ++ * 3) BAR, mac80211 do BAR by checking ACK ++ */ ++ /* ++ * XXX: need to adjust for 11n, e.g. report tx_status according to BA received in target ++ * ++ */ ++ sip_tx_status_report(sip, skb, itx_info, true); ++ atomic_dec(&sip->tx_data_pkt_queued); ++ ++ STRACE_TX_DATA_INC(); ++ } else { ++ /* check pm state here */ ++ ++ /* no need to hold ctrl skb */ ++ sip_free_ctrl_skbuff(sip, skb); ++ STRACE_TX_CMD_INC(); ++ } ++ ++ /* TBD: roundup here or whole aggr-buf */ ++ tx_len = roundup(tx_len, sip->tx_blksz); ++ ++ sip->tx_aggr_write_ptr += tx_len; ++ sip->tx_tot_len += tx_len; ++ ++ return 0; ++} ++ ++#ifdef HOST_RC ++static void sip_set_tx_rate_status(struct sip_rc_status *rcstatus, ++ struct ieee80211_tx_rate *irates) ++{ ++ int i; ++ u8 shift = 0; ++ u32 cnt = 0; ++ ++ for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { ++ if (rcstatus->rc_map & BIT(i)) { ++ shift = i << 2; ++ cnt = ++ (rcstatus-> ++ rc_cnt_store >> shift) & RC_CNT_MASK; ++ irates[i].idx = i; ++ irates[i].count = (u8) cnt; ++ } else { ++ irates[i].idx = -1; ++ irates[i].count = 0; ++ } ++ } ++ ++ esp_show_rcstatus(rcstatus); ++ esp_show_tx_rates(irates); ++} ++#endif /* HOST_RC */ ++ ++static void sip_tx_status_report(struct esp_sip *sip, struct sk_buff *skb, ++ struct ieee80211_tx_info *tx_info, ++ bool success) ++{ ++ if (!(tx_info->flags & IEEE80211_TX_CTL_AMPDU)) { ++ if (likely(success)) ++ tx_info->flags |= IEEE80211_TX_STAT_ACK; ++ else ++ tx_info->flags &= ~IEEE80211_TX_STAT_ACK; ++ ++ /* manipulate rate status... */ ++ tx_info->status.rates[0].idx = 11; ++ tx_info->status.rates[0].count = 1; ++ tx_info->status.rates[0].flags = 0; ++ tx_info->status.rates[1].idx = -1; ++ ++ } else { ++ tx_info->flags |= ++ IEEE80211_TX_STAT_AMPDU | IEEE80211_TX_STAT_ACK; ++ tx_info->status.ampdu_len = 1; ++ tx_info->status.ampdu_ack_len = 1; ++ ++ /* manipulate rate status... */ ++ tx_info->status.rates[0].idx = 7; ++ tx_info->status.rates[0].count = 1; ++ tx_info->status.rates[0].flags = ++ IEEE80211_TX_RC_MCS | IEEE80211_TX_RC_SHORT_GI; ++ tx_info->status.rates[1].idx = -1; ++ ++ } ++ ++ if (tx_info->flags & IEEE80211_TX_STAT_AMPDU) ++ esp_sip_dbg(ESP_DBG_TRACE, "%s ampdu status! \n", ++ __func__); ++ ++ if (!mod_support_no_txampdu() && ++ cfg80211_get_chandef_type(&sip->epub->hw->conf.chandef) != ++ NL80211_CHAN_NO_HT) { ++ struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); ++ struct ieee80211_hdr *wh = ++ (struct ieee80211_hdr *) skb->data; ++ if (ieee80211_is_data_qos(wh->frame_control)) { ++ if (!(tx_info->flags & IEEE80211_TX_CTL_AMPDU)) { ++ u8 tidno = ++ ieee80211_get_qos_ctl(wh)[0] & ++ IEEE80211_QOS_CTL_TID_MASK; ++ struct esp_node *node; ++ struct esp_tx_tid *tid; ++ struct ieee80211_sta *sta; ++ ++ node = ++ esp_get_node_by_addr(sip->epub, ++ wh->addr1); ++ if (node == NULL) ++ goto _exit; ++ if (node->sta == NULL) ++ goto _exit; ++ sta = node->sta; ++ tid = &node->tid[tidno]; ++ spin_lock_bh(&sip->epub->tx_ampdu_lock); ++ //start session ++ if (tid == NULL) { ++ spin_unlock_bh(&sip->epub-> ++ tx_ampdu_lock); ++ ESSERT(0); ++ goto _exit; ++ } ++ if ((tid->state == ESP_TID_STATE_INIT) && ++ (TID_TO_AC(tidno) != WME_AC_VO) ++ && tid->cnt >= 10) { ++ tid->state = ESP_TID_STATE_TRIGGER; ++ esp_sip_dbg(ESP_DBG_ERROR, ++ "start tx ba session,addr:%pM,tid:%u\n", ++ wh->addr1, tidno); ++ spin_unlock_bh(&sip->epub-> ++ tx_ampdu_lock); ++ ieee80211_start_tx_ba_session(sta, ++ tidno, ++ 0); ++ } else { ++ if (tid->state == ++ ESP_TID_STATE_INIT) ++ tid->cnt++; ++ else ++ tid->cnt = 0; ++ spin_unlock_bh(&sip->epub-> ++ tx_ampdu_lock); ++ } ++ } ++ } ++ } ++ _exit: ++ ieee80211_tx_status(sip->epub->hw, skb); ++} ++ ++/* ++ * NB: this routine should be locked when calling ++ */ ++void sip_txq_process(struct esp_pub *epub) ++{ ++ struct sk_buff *skb; ++ struct esp_sip *sip = epub->sip; ++ u32 pkt_len = 0, tx_len = 0; ++ int blknum = 0; ++ bool queued_back = false; ++ bool out_of_credits = false; ++ struct ieee80211_tx_info *itx_info; ++ int pm_state = 0; ++ ++ while ((skb = skb_dequeue(&epub->txq))) { ++ ++ /* cmd skb->len does not include sip_hdr too */ ++ pkt_len = skb->len; ++ itx_info = IEEE80211_SKB_CB(skb); ++ if (itx_info->flags != 0xffffffff) { ++ pkt_len += roundup(sizeof(struct sip_hdr), 4); ++ if ((itx_info->flags & IEEE80211_TX_CTL_AMPDU) ++ && (true || esp_is_ip_pkt(skb))) ++ pkt_len += ++ roundup(sizeof ++ (struct esp_tx_ampdu_entry), ++ 4); ++ } ++ ++ /* current design simply requires every sip_hdr must be at the begin of mblk, that definitely ++ * need to be optimized, e.g. calulate remain length in the previous mblk, if it larger than ++ * certain threshold (e.g, whole pkt or > 50% of pkt or 2 x sizeof(struct sip_hdr), append pkt ++ * to the previous mblk. This might be done in sip_pack_pkt() ++ */ ++ pkt_len = roundup(pkt_len, sip->tx_blksz); ++ blknum = pkt_len / sip->tx_blksz; ++ esp_dbg(ESP_DBG_TRACE, ++ "%s skb_len %d pkt_len %d blknum %d\n", __func__, ++ skb->len, pkt_len, blknum); ++ ++ if (unlikely(atomic_read(&sip->credit_status) == RECALC_CREDIT_ENABLE)) { /* need recalc credit */ ++ struct sip_hdr *hdr = (struct sip_hdr *) skb->data; ++ itx_info = IEEE80211_SKB_CB(skb); ++ if (!(itx_info->flags == 0xffffffff && SIP_HDR_GET_TYPE(hdr->fc[0]) == SIP_CTRL && hdr->c_cmdid == SIP_CMD_RECALC_CREDIT && blknum <= atomic_read(&sip->tx_credits) - sip->credit_to_reserve)) { /* except cmd recalc credit */ ++ esp_dbg(ESP_DBG_ERROR, ++ "%s recalc credits!\n", __func__); ++ STRACE_TX_OUT_OF_CREDIT_INC(); ++ queued_back = true; ++ out_of_credits = true; ++ break; ++ } ++ } else { /* normal situation */ ++ if (unlikely ++ (blknum > ++ (atomic_read(&sip->tx_credits) - ++ sip->credit_to_reserve - ++ SIP_CTRL_CREDIT_RESERVE))) { ++ itx_info = IEEE80211_SKB_CB(skb); ++ if (itx_info->flags == 0xffffffff) { /* priv ctrl pkt */ ++ if (blknum > ++ atomic_read(&sip->tx_credits) - ++ sip->credit_to_reserve) { ++ esp_dbg(ESP_DBG_TRACE, ++ "%s cmd pkt out of credits!\n", ++ __func__); ++ STRACE_TX_OUT_OF_CREDIT_INC ++ (); ++ queued_back = true; ++ out_of_credits = true; ++ break; ++ } ++ } else { ++ esp_dbg(ESP_DBG_TRACE, ++ "%s out of credits!\n", ++ __func__); ++ STRACE_TX_OUT_OF_CREDIT_INC(); ++ queued_back = true; ++ out_of_credits = true; ++ break; ++ } ++ } ++ } ++ tx_len += pkt_len; ++ if (tx_len >= SIP_TX_AGGR_BUF_SIZE) { ++ /* do we need to have limitation likemax 8 pkts in a row? */ ++ esp_dbg(ESP_DBG_TRACE, ++ "%s too much pkts in one shot!\n", ++ __func__); ++ STRACE_TX_ONE_SHOT_INC(); ++ tx_len -= pkt_len; ++ queued_back = true; ++ break; ++ } ++ ++ if (sip_pack_pkt(sip, skb, &pm_state) != 0) { ++ /* wrong pkt, won't send to target */ ++ tx_len -= pkt_len; ++ continue; ++ } ++ ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s:before sub, credits is %d\n", __func__, ++ atomic_read(&sip->tx_credits)); ++ atomic_sub(blknum, &sip->tx_credits); ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s:after sub %d,credits remains %d\n", ++ __func__, blknum, ++ atomic_read(&sip->tx_credits)); ++ ++ } ++ ++ if (queued_back) { ++ skb_queue_head(&epub->txq, skb); ++ } ++ ++ if (atomic_read(&sip->state) == SIP_STOP ++#ifdef HOST_RESET_BUG ++ || atomic_read(&epub->wl.off) == 1 ++#endif ++ ) { ++ queued_back = 1; ++ tx_len = 0; ++ sip_after_write_pkts(sip); ++ } ++ ++ if (tx_len) { ++ ++ sip_write_pkts(sip, pm_state); ++ ++ sip_after_write_pkts(sip); ++ } ++ ++ if (queued_back && !out_of_credits) { ++ ++ /* skb pending, do async process again */ ++ sip_trigger_txq_process(sip); ++ } ++} ++ ++static void sip_after_write_pkts(struct esp_sip *sip) ++{ ++ ++} ++ ++#ifndef NO_WMM_DUMMY ++static struct esp_80211_wmm_param_element esp_wmm_param = { ++ .oui = {0x00, 0x50, 0xf2}, ++ .oui_type = 0x02, ++ .oui_subtype = 0x01, ++ .version = 0x01, ++ .qos_info = 0x00, ++ .reserved = 0x00, ++ .ac = { ++ { ++ .aci_aifsn = 0x03, ++ .cw = 0xa4, ++ .txop_limit = 0x0000, ++ }, ++ { ++ .aci_aifsn = 0x27, ++ .cw = 0xa4, ++ .txop_limit = 0x0000, ++ }, ++ { ++ .aci_aifsn = 0x42, ++ .cw = 0x43, ++ .txop_limit = 0x005e, ++ }, ++ { ++ .aci_aifsn = 0x62, ++ .cw = 0x32, ++ .txop_limit = 0x002f, ++ }, ++ }, ++}; ++ ++static int esp_add_wmm(struct sk_buff *skb) ++{ ++ u8 *p; ++ int flag = 0; ++ int remain_len; ++ int base_len; ++ int len; ++ struct ieee80211_mgmt *mgmt; ++ struct ieee80211_hdr *wh; ++ ++ if (!skb) ++ return -1; ++ ++ wh = (struct ieee80211_hdr *) skb->data; ++ mgmt = (struct ieee80211_mgmt *) ((u8 *) skb->data); ++ ++ if (ieee80211_is_assoc_resp(wh->frame_control)) { ++ p = mgmt->u.assoc_resp.variable; ++ base_len = ++ (u8 *) mgmt->u.assoc_resp.variable - (u8 *) mgmt; ++ } else if (ieee80211_is_reassoc_resp(wh->frame_control)) { ++ p = mgmt->u.reassoc_resp.variable; ++ base_len = ++ (u8 *) mgmt->u.reassoc_resp.variable - (u8 *) mgmt; ++ } else if (ieee80211_is_probe_resp(wh->frame_control)) { ++ p = mgmt->u.probe_resp.variable; ++ base_len = ++ (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt; ++ } else if (ieee80211_is_beacon(wh->frame_control)) { ++ p = mgmt->u.beacon.variable; ++ base_len = (u8 *) mgmt->u.beacon.variable - (u8 *) mgmt; ++ } else ++ return 1; ++ ++ ++ remain_len = skb->len - base_len; ++ ++ while (remain_len > 0) { ++ if (*p == 0xdd && *(p + 5) == 0x02) //wmm type ++ return 0; ++ else if (*p == 0x2d) //has ht cap ++ flag = 1; ++ ++ len = *(++p); ++ p += (len + 1); ++ remain_len -= (len + 2); ++ } ++ ++ if (remain_len < 0) { ++ esp_dbg(ESP_DBG_TRACE, ++ "%s remain_len %d, skb->len %d, base_len %d, flag %d", ++ __func__, remain_len, skb->len, base_len, flag); ++ return -2; ++ } ++ ++ if (flag == 1) { ++ skb_put(skb, 2 + sizeof(esp_wmm_param)); ++ ++ memset(p, 0xdd, sizeof(u8)); ++ memset(p + 1, sizeof(esp_wmm_param), sizeof(u8)); ++ memcpy(p + 2, &esp_wmm_param, sizeof(esp_wmm_param)); ++ ++ esp_dbg(ESP_DBG_TRACE, "esp_wmm_param"); ++ } ++ ++ return 0; ++} ++#endif /* NO_WMM_DUMMY */ ++ ++/* parse mac_rx_ctrl and return length */ ++static int sip_parse_mac_rx_info(struct esp_sip *sip, ++ struct esp_mac_rx_ctrl *mac_ctrl, ++ struct sk_buff *skb) ++{ ++ struct ieee80211_rx_status *rx_status = NULL; ++ struct ieee80211_hdr *hdr; ++ ++ rx_status = IEEE80211_SKB_RXCB(skb); ++ rx_status->freq = esp_ieee2mhz(mac_ctrl->channel); ++ ++ rx_status->signal = mac_ctrl->rssi + mac_ctrl->noise_floor; /* snr actually, need to offset noise floor e.g. -85 */ ++ ++ hdr = (struct ieee80211_hdr *) skb->data; ++ if (mac_ctrl->damatch0 == 1 && mac_ctrl->bssidmatch0 == 1 /*match bssid and da, but beacon package contain other bssid */ ++ && strncmp(hdr->addr2, sip->epub->wl.bssid, ETH_ALEN) == 0) { /* force match addr2 */ ++ if (++signal_loop >= SIGNAL_COUNT) { ++ avg_signal += rx_status->signal; ++ avg_signal /= SIGNAL_COUNT; ++ old_signal = rx_status->signal = (avg_signal + 5); ++ signal_loop = 0; ++ avg_signal = 0; ++ } else { ++ avg_signal += rx_status->signal; ++ rx_status->signal = old_signal; ++ } ++ } ++ ++ rx_status->antenna = 0; /* one antenna for now */ ++ rx_status->band = NL80211_BAND_2GHZ; ++ rx_status->flag = RX_FLAG_DECRYPTED | RX_FLAG_MMIC_STRIPPED; ++ if (mac_ctrl->sig_mode) { ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)) ++ rx_status->encoding = RX_ENC_HT; ++#else ++ rx_status->flag |= RX_FLAG_HT; ++#endif ++ rx_status->rate_idx = mac_ctrl->MCS; ++ if (mac_ctrl->SGI) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)) ++ rx_status->enc_flags |= RX_ENC_FLAG_SHORT_GI; ++#else ++ rx_status->flag |= RX_FLAG_SHORT_GI; ++#endif ++ } else { ++ rx_status->rate_idx = esp_wmac_rate2idx(mac_ctrl->rate); ++ } ++ if (mac_ctrl->rxend_state == RX_FCS_ERR) ++ rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; ++ ++ /* Mic error frame flag */ ++ if (mac_ctrl->rxend_state == RX_TKIPMIC_ERR ++ || mac_ctrl->rxend_state == RX_CCMPMIC_ERR) { ++ if (atomic_read(&sip->epub->wl.tkip_key_set) == 1) { ++ rx_status->flag |= RX_FLAG_MMIC_ERROR; ++ atomic_set(&sip->epub->wl.tkip_key_set, 0); ++ printk("mic err\n"); ++ } else { ++ printk("mic err discard\n"); ++ } ++ } ++ //esp_dbg(ESP_DBG_LOG, "%s freq: %u; signal: %d; rate_idx %d; flag: %d \n", __func__, rx_status->freq, rx_status->signal, rx_status->rate_idx, rx_status->flag); ++ ++ do { ++ struct ieee80211_hdr *wh = ++ (struct ieee80211_hdr *) ((u8 *) skb->data); ++ ++#ifndef NO_WMM_DUMMY ++ if (ieee80211_is_mgmt(wh->frame_control)) ++ esp_add_wmm(skb); ++#endif ++ ++ /* some kernel e.g. 3.0.8 wrongly handles non-encrypted pkt like eapol */ ++ if (ieee80211_is_data(wh->frame_control)) { ++ if (!ieee80211_has_protected(wh->frame_control)) { ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s kiv_war, add iv_stripped flag \n", ++ __func__); ++ rx_status->flag |= RX_FLAG_IV_STRIPPED; ++ } else { ++ if ((atomic_read(&sip->epub->wl.ptk_cnt) == ++ 0 && !(wh->addr1[0] & 0x1)) ++ || (atomic_read(&sip->epub->wl.gtk_cnt) ++ == 0 && (wh->addr1[0] & 0x1))) { ++ esp_dbg(ESP_DBG_TRACE, ++ "%s ==kiv_war, got bogus enc pkt==\n", ++ __func__); ++ rx_status->flag |= ++ RX_FLAG_IV_STRIPPED; ++ //show_buf(skb->data, 32); ++ } ++ ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "%s kiv_war, got enc pkt \n", ++ __func__); ++ } ++ } ++ } while (0); ++ ++ return 0; ++} ++ ++static struct esp_mac_rx_ctrl *sip_parse_normal_mac_ctrl(struct sk_buff ++ *skb, ++ int *pkt_len_enc, ++ int *buf_len, ++ int *pulled_len) ++{ ++ struct esp_mac_rx_ctrl *mac_ctrl = NULL; ++ struct sip_hdr *hdr = (struct sip_hdr *) skb->data; ++ int len_in_hdr = hdr->len; ++ ++ ESSERT(skb != NULL); ++ ESSERT(skb->len > SIP_MIN_DATA_PKT_LEN); ++ ++ skb_pull(skb, sizeof(struct sip_hdr)); ++ *pulled_len += sizeof(struct sip_hdr); ++ mac_ctrl = (struct esp_mac_rx_ctrl *) skb->data; ++ if (!mac_ctrl->Aggregation) { ++ ESSERT(pkt_len_enc != NULL); ++ ESSERT(buf_len != NULL); ++ *pkt_len_enc = ++ (mac_ctrl->sig_mode ? mac_ctrl->HT_length : mac_ctrl-> ++ legacy_length) - FCS_LEN; ++ *buf_len = ++ len_in_hdr - sizeof(struct sip_hdr) - ++ sizeof(struct esp_mac_rx_ctrl); ++ } ++ skb_pull(skb, sizeof(struct esp_mac_rx_ctrl)); ++ *pulled_len += sizeof(struct esp_mac_rx_ctrl); ++ ++ return mac_ctrl; ++} ++ ++/* ++ * for one MPDU (including subframe in AMPDU) ++ * ++ */ ++static struct sk_buff *sip_parse_data_rx_info(struct esp_sip *sip, ++ struct sk_buff *skb, ++ int pkt_len_enc, int buf_len, ++ struct esp_mac_rx_ctrl ++ *mac_ctrl, int *pulled_len) ++{ ++ /* ++ * | mac_rx_ctrl | real_data_payload | ampdu_entries | ++ */ ++ //without enc ++ int pkt_len = 0; ++ struct sk_buff *rskb = NULL; ++ int ret; ++ ++ if (mac_ctrl->Aggregation) { ++ struct ieee80211_hdr *wh = ++ (struct ieee80211_hdr *) skb->data; ++ pkt_len = pkt_len_enc; ++ if (ieee80211_has_protected(wh->frame_control)) //ampdu, it is CCMP enc ++ pkt_len -= 8; ++ buf_len = roundup(pkt_len, 4); ++ } else ++ pkt_len = buf_len - 3 + ((pkt_len_enc - 1) & 0x3); ++ esp_dbg(ESP_DBG_TRACE, ++ "%s pkt_len %u, pkt_len_enc %u!, delta %d \n", __func__, ++ pkt_len, pkt_len_enc, pkt_len_enc - pkt_len); ++ do { ++#ifndef NO_WMM_DUMMY ++ rskb = ++ __dev_alloc_skb(pkt_len_enc + sizeof(esp_wmm_param) + ++ 2, GFP_ATOMIC); ++#else ++ rskb = __dev_alloc_skb(pkt_len_enc, GFP_ATOMIC); ++#endif /* NO_WMM_DUMMY */ ++ if (unlikely(rskb == NULL)) { ++ esp_sip_dbg(ESP_DBG_ERROR, "%s no mem for rskb\n", ++ __func__); ++ return NULL; ++ } ++ skb_put(rskb, pkt_len_enc); ++ } while (0); ++ ++ do { ++ memcpy(rskb->data, skb->data, pkt_len); ++ if (pkt_len_enc > pkt_len) { ++ memset(rskb->data + pkt_len, 0, ++ pkt_len_enc - pkt_len); ++ } ++ /* strip out current pkt, move to the next one */ ++ skb_pull(skb, buf_len); ++ *pulled_len += buf_len; ++ } while (0); ++ ++ ret = sip_parse_mac_rx_info(sip, mac_ctrl, rskb); ++ if (ret == -1 && !mac_ctrl->Aggregation) { ++ kfree_skb(rskb); ++ return NULL; ++ } ++ ++ esp_dbg(ESP_DBG_LOG, ++ "%s after pull headers, skb->len %d rskb->len %d \n", ++ __func__, skb->len, rskb->len); ++ ++ return rskb; ++} ++ ++struct esp_sip *sip_attach(struct esp_pub *epub) ++{ ++ struct esp_sip *sip = NULL; ++ struct sip_pkt *pkt = NULL; ++ int i; ++#ifndef ESP_PREALLOC ++ int po = 0; ++#endif ++ ++ sip = kzalloc(sizeof(struct esp_sip), GFP_KERNEL); ++ if (sip == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "no mem for sip! \n"); ++ goto _err_sip; ++ } ++#ifdef ESP_PREALLOC ++ sip->tx_aggr_buf = (u8 *) esp_get_tx_aggr_buf(); ++#else ++ po = get_order(SIP_TX_AGGR_BUF_SIZE); ++ sip->tx_aggr_buf = (u8 *) __get_free_pages(GFP_ATOMIC, po); ++#endif ++ if (sip->tx_aggr_buf == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "no mem for tx_aggr_buf! \n"); ++ goto _err_aggr; ++ } ++ ++ spin_lock_init(&sip->lock); ++ ++ INIT_LIST_HEAD(&sip->free_ctrl_txbuf); ++ INIT_LIST_HEAD(&sip->free_ctrl_rxbuf); ++ ++ for (i = 0; i < SIP_CTRL_BUF_N; i++) { ++ pkt = kzalloc(sizeof(struct sip_pkt), GFP_KERNEL); ++ ++ if (!pkt) ++ goto _err_pkt; ++ ++ pkt->buf_begin = kzalloc(SIP_CTRL_BUF_SZ, GFP_KERNEL); ++ ++ if (pkt->buf_begin == NULL) { ++ kfree(pkt); ++ pkt = NULL; ++ goto _err_pkt; ++ } ++ ++ pkt->buf_len = SIP_CTRL_BUF_SZ; ++ pkt->buf = pkt->buf_begin; ++ ++ if (i < SIP_CTRL_TXBUF_N) { ++ list_add_tail(&pkt->list, &sip->free_ctrl_txbuf); ++ } else { ++ list_add_tail(&pkt->list, &sip->free_ctrl_rxbuf); ++ } ++ } ++ ++ mutex_init(&sip->rx_mtx); ++ skb_queue_head_init(&sip->rxq); ++ INIT_WORK(&sip->rx_process_work, sip_rxq_process); ++ ++ sip->epub = epub; ++ atomic_set(&sip->noise_floor, -96); ++ ++ atomic_set(&sip->state, SIP_INIT); ++ atomic_set(&sip->tx_credits, 0); ++ ++ if (sip->rawbuf == NULL) { ++ sip->rawbuf = kzalloc(SIP_BOOT_BUF_SIZE, GFP_KERNEL); ++ if (sip->rawbuf == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "no mem for rawbuf! \n"); ++ goto _err_pkt; ++ } ++ } ++ ++ atomic_set(&sip->state, SIP_PREPARE_BOOT); ++ ++ return sip; ++ ++ _err_pkt: ++ sip_free_init_ctrl_buf(sip); ++ ++ if (sip->tx_aggr_buf) { ++#ifdef ESP_PREALLOC ++ esp_put_tx_aggr_buf(&sip->tx_aggr_buf); ++#else ++ po = get_order(SIP_TX_AGGR_BUF_SIZE); ++ free_pages((unsigned long) sip->tx_aggr_buf, po); ++ sip->tx_aggr_buf = NULL; ++#endif ++ } ++ _err_aggr: ++ if (sip) { ++ kfree(sip); ++ sip = NULL; ++ } ++ _err_sip: ++ return NULL; ++ ++} ++ ++static void sip_free_init_ctrl_buf(struct esp_sip *sip) ++{ ++ struct sip_pkt *pkt, *tpkt; ++ ++ list_for_each_entry_safe(pkt, tpkt, &sip->free_ctrl_txbuf, list) { ++ list_del(&pkt->list); ++ kfree(pkt->buf_begin); ++ kfree(pkt); ++ } ++ ++ list_for_each_entry_safe(pkt, tpkt, &sip->free_ctrl_rxbuf, list) { ++ list_del(&pkt->list); ++ kfree(pkt->buf_begin); ++ kfree(pkt); ++ } ++} ++ ++void sip_detach(struct esp_sip *sip) ++{ ++#ifndef ESP_PREALLOC ++ int po; ++#endif ++ if (sip == NULL) ++ return; ++ ++ esp_dbg(ESP_DBG_TRACE, "sip_detach: sip_free_init_ctrl_buf()"); ++ sip_free_init_ctrl_buf(sip); ++ ++ if (atomic_read(&sip->state) == SIP_RUN) { ++ ++ sif_disable_target_interrupt(sip->epub); ++ ++ atomic_set(&sip->state, SIP_STOP); ++ ++ /* disable irq here */ ++ sif_disable_irq(sip->epub); ++ cancel_work_sync(&sip->rx_process_work); ++ ++ skb_queue_purge(&sip->rxq); ++ mutex_destroy(&sip->rx_mtx); ++ cancel_work(&sip->epub->sendup_work); // Must be non-sync ++ skb_queue_purge(&sip->epub->rxq); ++ ++#ifdef ESP_NO_MAC80211 ++ unregister_netdev(sip->epub->net_dev); ++ wiphy_unregister(sip->epub->wdev->wiphy); ++#else ++ if (test_and_clear_bit ++ (ESP_WL_FLAG_HW_REGISTERED, &sip->epub->wl.flags)) { ++ ieee80211_unregister_hw(sip->epub->hw); ++ } ++#endif ++ ++ /* cancel all worker/timer */ ++ cancel_work_sync(&sip->epub->tx_work); ++ skb_queue_purge(&sip->epub->txq); ++ skb_queue_purge(&sip->epub->txdoneq); ++ ++#ifdef ESP_PREALLOC ++ esp_put_tx_aggr_buf(&sip->tx_aggr_buf); ++#else ++ po = get_order(SIP_TX_AGGR_BUF_SIZE); ++ free_pages((unsigned long) sip->tx_aggr_buf, po); ++ sip->tx_aggr_buf = NULL; ++#endif ++ ++ atomic_set(&sip->state, SIP_INIT); ++ } else if (atomic_read(&sip->state) >= SIP_BOOT ++ && atomic_read(&sip->state) <= SIP_WAIT_BOOTUP) { ++ ++ sif_disable_target_interrupt(sip->epub); ++ atomic_set(&sip->state, SIP_STOP); ++ ++ sif_disable_irq(sip->epub); ++ ++ if (sip->rawbuf) ++ kfree(sip->rawbuf); ++ ++ if (atomic_read(&sip->state) == SIP_SEND_INIT) { ++ cancel_work_sync(&sip->rx_process_work); ++ skb_queue_purge(&sip->rxq); ++ mutex_destroy(&sip->rx_mtx); ++ cancel_work_sync(&sip->epub->sendup_work); ++ skb_queue_purge(&sip->epub->rxq); ++ } ++#ifdef ESP_NO_MAC80211 ++ unregister_netdev(sip->epub->net_dev); ++ wiphy_unregister(sip->epub->wdev->wiphy); ++#else ++ if (test_and_clear_bit ++ (ESP_WL_FLAG_HW_REGISTERED, &sip->epub->wl.flags)) { ++ ieee80211_unregister_hw(sip->epub->hw); ++ } ++#endif ++ atomic_set(&sip->state, SIP_INIT); ++ } else ++ esp_dbg(ESP_DBG_ERROR, "%s wrong state %d\n", __func__, ++ atomic_read(&sip->state)); ++ ++ kfree(sip); ++} ++ ++int sip_write_memory(struct esp_sip *sip, u32 addr, u8 * buf, u16 len) ++{ ++ struct sip_cmd_write_memory *cmd; ++ struct sip_hdr *chdr; ++ u16 remains, hdrs, bufsize; ++ u32 loadaddr; ++ u8 *src; ++ int err = 0; ++ u32 *t = NULL; ++ ++ if (sip == NULL || sip->rawbuf == NULL) { ++ ESSERT(sip != NULL); ++ ESSERT(sip->rawbuf != NULL); ++ return -EINVAL; ++ } ++ ++ memset(sip->rawbuf, 0, SIP_BOOT_BUF_SIZE); ++ ++ chdr = (struct sip_hdr *) sip->rawbuf; ++ SIP_HDR_SET_TYPE(chdr->fc[0], SIP_CTRL); ++ chdr->c_cmdid = SIP_CMD_WRITE_MEMORY; ++ ++ remains = len; ++ hdrs = ++ sizeof(struct sip_hdr) + sizeof(struct sip_cmd_write_memory); ++ ++ while (remains) { ++ src = &buf[len - remains]; ++ loadaddr = addr + (len - remains); ++ ++ if (remains < (SIP_BOOT_BUF_SIZE - hdrs)) { ++ /* aligned with 4 bytes */ ++ bufsize = roundup(remains, 4); ++ memset(sip->rawbuf + hdrs, 0, bufsize); ++ remains = 0; ++ } else { ++ bufsize = SIP_BOOT_BUF_SIZE - hdrs; ++ remains -= bufsize; ++ } ++ ++ chdr->len = bufsize + hdrs; ++ chdr->seq = sip->txseq++; ++ cmd = ++ (struct sip_cmd_write_memory *) (sip->rawbuf + ++ SIP_CTRL_HDR_LEN); ++ cmd->len = bufsize; ++ cmd->addr = loadaddr; ++ memcpy(sip->rawbuf + hdrs, src, bufsize); ++ ++ t = (u32 *) sip->rawbuf; ++ esp_dbg(ESP_DBG_TRACE, ++ "%s t0: 0x%08x t1: 0x%08x t2:0x%08x loadaddr 0x%08x \n", ++ __func__, t[0], t[1], t[2], loadaddr); ++ ++ err = ++ esp_common_write(sip->epub, sip->rawbuf, chdr->len, ++ ESP_SIF_SYNC); ++ ++ if (err) { ++ esp_dbg(ESP_DBG_ERROR, "%s send buffer failed\n", ++ __func__); ++ return err; ++ } ++ // 1ms is enough, in fact on dell-d430, need not delay at all. ++ mdelay(1); ++ ++ } ++ ++ return err; ++} ++ ++int sip_send_cmd(struct esp_sip *sip, int cid, u32 cmdlen, void *cmd) ++{ ++ struct sip_hdr *chdr; ++ struct sip_pkt *pkt = NULL; ++ int ret = 0; ++ ++ pkt = sip_get_ctrl_buf(sip, SIP_TX_CTRL_BUF); ++ ++ if (pkt == NULL) ++ return -ENOMEM; ++ ++ chdr = (struct sip_hdr *) pkt->buf_begin; ++ chdr->len = SIP_CTRL_HDR_LEN + cmdlen; ++ chdr->seq = sip->txseq++; ++ chdr->c_cmdid = cid; ++ ++ ++ if (cmd) { ++ memset(pkt->buf, 0, cmdlen); ++ memcpy(pkt->buf, (u8 *) cmd, cmdlen); ++ } ++ ++ esp_dbg(ESP_DBG_TRACE, "cid %d, len %u, seq %u \n", chdr->c_cmdid, ++ chdr->len, chdr->seq); ++ ++ esp_dbg(ESP_DBG_TRACE, "c1 0x%08x c2 0x%08x\n", ++ *(u32 *) & pkt->buf[0], *(u32 *) & pkt->buf[4]); ++ ++ ret = ++ esp_common_write(sip->epub, pkt->buf_begin, chdr->len, ++ ESP_SIF_SYNC); ++ ++ if (ret) ++ esp_dbg(ESP_DBG_ERROR, "%s send cmd %d failed \n", ++ __func__, cid); ++ ++ sip_reclaim_ctrl_buf(sip, pkt, SIP_TX_CTRL_BUF); ++ ++ /* ++ * Hack here: reset tx/rx seq before target ram code is up... ++ */ ++ if (cid == SIP_CMD_BOOTUP) { ++ sip->rxseq = 0; ++ sip->txseq = 0; ++ sip->txdataseq = 0; ++ } ++ ++ return ret; ++} ++ ++struct sk_buff *sip_alloc_ctrl_skbuf(struct esp_sip *sip, u16 len, u32 cid) ++{ ++ struct sip_hdr *si = NULL; ++ struct ieee80211_tx_info *ti = NULL; ++ struct sk_buff *skb = NULL; ++ ++ ESSERT(len <= sip->tx_blksz); ++ ++ /* no need to reserve space for net stack */ ++ skb = __dev_alloc_skb(len, GFP_KERNEL); ++ ++ if (skb == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "no skb for ctrl !\n"); ++ return NULL; ++ } ++ ++ skb->len = len; ++ ++ ti = IEEE80211_SKB_CB(skb); ++ /* set tx_info flags to 0xffffffff to indicate sip_ctrl pkt */ ++ ti->flags = 0xffffffff; ++ si = (struct sip_hdr *) skb->data; ++ memset(si, 0, sizeof(struct sip_hdr)); ++ SIP_HDR_SET_TYPE(si->fc[0], SIP_CTRL); ++ si->len = len; ++ si->c_cmdid = cid; ++ ++ return skb; ++} ++ ++void sip_free_ctrl_skbuff(struct esp_sip *sip, struct sk_buff *skb) ++{ ++ memset(IEEE80211_SKB_CB(skb), 0, sizeof(struct ieee80211_tx_info)); ++ kfree_skb(skb); ++} ++ ++static struct sip_pkt *sip_get_ctrl_buf(struct esp_sip *sip, ++ SIP_BUF_TYPE bftype) ++{ ++ struct sip_pkt *pkt = NULL; ++ struct list_head *bflist; ++ struct sip_hdr *chdr; ++ ++ bflist = ++ (bftype == ++ SIP_TX_CTRL_BUF) ? &sip->free_ctrl_txbuf : &sip-> ++ free_ctrl_rxbuf; ++ ++ spin_lock_bh(&sip->lock); ++ ++ if (list_empty(bflist)) { ++ spin_unlock_bh(&sip->lock); ++ return NULL; ++ } ++ ++ pkt = list_first_entry(bflist, struct sip_pkt, list); ++ list_del(&pkt->list); ++ spin_unlock_bh(&sip->lock); ++ ++ if (bftype == SIP_TX_CTRL_BUF) { ++ chdr = (struct sip_hdr *) pkt->buf_begin; ++ SIP_HDR_SET_TYPE(chdr->fc[0], SIP_CTRL); ++ pkt->buf = pkt->buf_begin + SIP_CTRL_HDR_LEN; ++ } else { ++ pkt->buf = pkt->buf_begin; ++ } ++ ++ return pkt; ++} ++ ++static void ++sip_reclaim_ctrl_buf(struct esp_sip *sip, struct sip_pkt *pkt, ++ SIP_BUF_TYPE bftype) ++{ ++ struct list_head *bflist = NULL; ++ ++ if (bftype == SIP_TX_CTRL_BUF) ++ bflist = &sip->free_ctrl_txbuf; ++ else if (bftype == SIP_RX_CTRL_BUF) ++ bflist = &sip->free_ctrl_rxbuf; ++ else ++ return; ++ ++ pkt->buf = pkt->buf_begin; ++ ++ spin_lock_bh(&sip->lock); ++ list_add_tail(&pkt->list, bflist); ++ spin_unlock_bh(&sip->lock); ++} ++ ++int sip_poll_bootup_event(struct esp_sip *sip) ++{ ++ int ret = 0; ++ ++ esp_dbg(ESP_DBG_TRACE, "polling bootup event... \n"); ++ ++ if (gl_bootup_cplx) ++ ret = wait_for_completion_timeout(gl_bootup_cplx, 2 * HZ); ++ ++ esp_dbg(ESP_DBG_TRACE, "******time remain****** = [%d]\n", ret); ++ if (ret <= 0) { ++ esp_dbg(ESP_DBG_ERROR, "bootup event timeout\n"); ++ return -ETIMEDOUT; ++ } ++ ++ if (sif_get_ate_config() == 0) { ++ ret = esp_register_mac80211(sip->epub); ++ } ++#ifdef TEST_MODE ++ ret = test_init_netlink(sip); ++ if (ret < 0) { ++ esp_sip_dbg(ESP_DBG_TRACE, ++ "esp_sdio: failed initializing netlink\n"); ++ return ret; ++ } ++#endif ++ ++ atomic_set(&sip->state, SIP_RUN); ++ esp_dbg(ESP_DBG_TRACE, "target booted up\n"); ++ ++ return ret; ++} ++ ++int sip_poll_resetting_event(struct esp_sip *sip) ++{ ++ int ret = 0; ++ ++ esp_dbg(ESP_DBG_TRACE, "polling resetting event... \n"); ++ ++ if (gl_bootup_cplx) ++ ret = wait_for_completion_timeout(gl_bootup_cplx, 10 * HZ); ++ ++ esp_dbg(ESP_DBG_TRACE, "******time remain****** = [%d]\n", ret); ++ if (ret <= 0) { ++ esp_dbg(ESP_DBG_ERROR, "resetting event timeout\n"); ++ return -ETIMEDOUT; ++ } ++ ++ esp_dbg(ESP_DBG_TRACE, "target resetting %d %p\n", ret, ++ gl_bootup_cplx); ++ ++ return 0; ++} ++ ++ ++#ifdef FPGA_DEBUG ++ ++/* bogus bootup cmd for FPGA debugging */ ++int sip_send_bootup(struct esp_sip *sip) ++{ ++ int ret; ++ struct sip_cmd_bootup bootcmd; ++ ++ esp_dbg(ESP_DBG_LOG, "sending bootup\n"); ++ ++ bootcmd.boot_addr = 0; ++ ret = ++ sip_send_cmd(sip, SIP_CMD_BOOTUP, ++ sizeof(struct sip_cmd_bootup), &bootcmd); ++ ++ return ret; ++} ++ ++#endif /* FPGA_DEBUG */ ++ ++bool sip_queue_need_stop(struct esp_sip * sip) ++{ ++ return atomic_read(&sip->tx_data_pkt_queued) >= ++ SIP_STOP_QUEUE_THRESHOLD || (atomic_read(&sip->tx_credits) < 8 ++ && atomic_read(&sip-> ++ tx_data_pkt_queued) ++ >= ++ SIP_STOP_QUEUE_THRESHOLD / 4 * 3); ++} ++ ++bool sip_queue_may_resume(struct esp_sip * sip) ++{ ++ return atomic_read(&sip->epub->txq_stopped) ++ && !test_bit(ESP_WL_FLAG_STOP_TXQ, &sip->epub->wl.flags) ++ && ((atomic_read(&sip->tx_credits) >= 16 ++ && atomic_read(&sip->tx_data_pkt_queued) < ++ SIP_RESUME_QUEUE_THRESHOLD * 2) ++ || atomic_read(&sip->tx_data_pkt_queued) < ++ SIP_RESUME_QUEUE_THRESHOLD); ++} ++ ++int sip_cmd_enqueue(struct esp_sip *sip, struct sk_buff *skb, int prior) ++{ ++ if (!sip || !sip->epub) { ++ esp_dbg(ESP_DBG_ERROR, "func %s, sip->epub->txq is NULL\n", ++ __func__); ++ return -EINVAL; ++ } ++ ++ if (!skb) { ++ esp_dbg(ESP_DBG_ERROR, "func %s, skb is NULL\n", __func__); ++ return -EINVAL; ++ } ++ ++ if (prior == ENQUEUE_PRIOR_HEAD) ++ skb_queue_head(&sip->epub->txq, skb); ++ else ++ skb_queue_tail(&sip->epub->txq, skb); ++ ++ if (sif_get_ate_config() == 0) { ++ ieee80211_queue_work(sip->epub->hw, &sip->epub->tx_work); ++ } else { ++ queue_work(sip->epub->esp_wkq, &sip->epub->tx_work); ++ } ++ return 0; ++} ++ ++void sip_tx_data_pkt_enqueue(struct esp_pub *epub, struct sk_buff *skb) ++{ ++ if (!epub || !epub->sip) { ++ if (!epub) ++ esp_dbg(ESP_DBG_ERROR, "func %s, epub is NULL\n", ++ __func__); ++ else ++ esp_dbg(ESP_DBG_ERROR, ++ "func %s, epub->sip is NULL\n", __func__); ++ ++ return; ++ } ++ if (!skb) { ++ esp_dbg(ESP_DBG_ERROR, "func %s, skb is NULL\n", __func__); ++ return; ++ } ++ skb_queue_tail(&epub->txq, skb); ++ atomic_inc(&epub->sip->tx_data_pkt_queued); ++ if (sip_queue_need_stop(epub->sip)) { ++ if (epub->hw) { ++ ieee80211_stop_queues(epub->hw); ++ atomic_set(&epub->txq_stopped, true); ++ } ++ ++ } ++} ++ ++#ifdef FPGA_TXDATA ++int sip_send_tx_data(struct esp_sip *sip) ++{ ++ struct sk_buff *skb = NULL; ++ struct sip_cmd_bss_info_update *bsscmd; ++ ++ skb = ++ sip_alloc_ctrl_skbuf(epub->sip, ++ sizeof(struct sip_cmd_bss_info_update), ++ SIP_CMD_BSS_INFO_UPDATE); ++ if (!skb) ++ return -EINVAL; ++ ++ bsscmd = ++ (struct sip_cmd_bss_info_update *) (skb->data + ++ sizeof(struct ++ sip_tx_info)); ++ bsscmd->isassoc = (assoc == true) ? 1 : 0; ++ memcpy(bsscmd->bssid, bssid, ETH_ALEN); ++ STRACE_SHOW(epub->sip); ++ return sip_cmd_enqueue(epub->sip, skb, ENQUEUE_PRIOR_TAIL); ++} ++#endif /* FPGA_TXDATA */ +diff --git a/drivers/net/wireless/esp8089/esp_sip.h b/drivers/net/wireless/esp8089/esp_sip.h +new file mode 100644 +index 000000000000..95cc42989b2c +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_sip.h +@@ -0,0 +1,171 @@ ++/* ++ * Copyright (c) 2009- 2014 Espressif System. ++ * ++ * Serial Interconnctor Protocol ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _ESP_SIP_H ++#define _ESP_SIP_H ++ ++#include "sip2_common.h" ++ ++#define SIP_CTRL_CREDIT_RESERVE 2 ++ ++#define SIP_PKT_MAX_LEN (1024*16) ++ ++/* 16KB on normal X86 system, should check before porting to orhters */ ++ ++#define SIP_TX_AGGR_BUF_SIZE (4 * PAGE_SIZE) ++#define SIP_RX_AGGR_BUF_SIZE (4 * PAGE_SIZE) ++ ++struct sk_buff; ++ ++struct sip_pkt { ++ struct list_head list; ++ ++ u8 *buf_begin; ++ u32 buf_len; ++ u8 *buf; ++}; ++ ++typedef enum RECALC_CREDIT_STATE { ++ RECALC_CREDIT_DISABLE = 0, ++ RECALC_CREDIT_ENABLE = 1, ++} RECALC_CREDIT_STATE; ++ ++typedef enum ENQUEUE_PRIOR { ++ ENQUEUE_PRIOR_TAIL = 0, ++ ENQUEUE_PRIOR_HEAD, ++} ENQUEUE_PRIOR; ++ ++typedef enum SIP_STATE { ++ SIP_INIT = 0, ++ SIP_PREPARE_BOOT, ++ SIP_BOOT, ++ SIP_SEND_INIT, ++ SIP_WAIT_BOOTUP, ++ SIP_RUN, ++ SIP_SUSPEND, ++ SIP_STOP ++} SIP_STATE; ++ ++enum sip_notifier { ++ SIP_TX_DONE = 1, ++ SIP_RX_DONE = 2, ++}; ++ ++#define SIP_CREDITS_LOW_THRESHOLD 64 //i.e. 4k ++ ++struct esp_sip { ++ struct list_head free_ctrl_txbuf; ++ struct list_head free_ctrl_rxbuf; ++ ++ u32 rxseq; /* sip pkt seq, should match target side */ ++ u32 txseq; ++ u32 txdataseq; ++ ++ u8 to_host_seq; ++ ++ atomic_t state; ++ spinlock_t lock; ++ atomic_t tx_credits; ++ ++ atomic_t tx_ask_credit_update; ++ ++ u8 *rawbuf; /* used in boot stage, free once chip is fully up */ ++ u8 *tx_aggr_buf; ++ u8 *tx_aggr_write_ptr; /* update after insertion of each pkt */ ++ u8 *tx_aggr_lastpkt_ptr; ++ ++ struct mutex rx_mtx; ++ struct sk_buff_head rxq; ++ struct work_struct rx_process_work; ++ ++ u16 tx_blksz; ++ u16 rx_blksz; ++ ++ bool dump_rpbm_err; ++ bool sendup_rpbm_pkt; ++ bool rxabort_fixed; ++ bool support_bgscan; ++ u8 credit_to_reserve; ++ ++ atomic_t credit_status; ++ struct timer_list credit_timer; ++ ++ atomic_t noise_floor; ++ ++ u32 tx_tot_len; /* total len for one transaction */ ++ u32 rx_tot_len; ++ ++ atomic_t rx_handling; ++ atomic_t tx_data_pkt_queued; ++ ++ atomic_t data_tx_stopped; ++ atomic_t tx_stopped; ++ ++ struct esp_pub *epub; ++}; ++ ++int sip_rx(struct esp_pub *epub); ++//int sip_download_fw(struct esp_sip *sip, u32 load_addr, u32 boot_addr); ++ ++ ++int sip_write_memory(struct esp_sip *, u32 addr, u8 * buf, u16 len); ++ ++void sip_credit_process(struct esp_pub *, u8 credits); ++ ++int sip_send_cmd(struct esp_sip *sip, int cid, u32 cmdlen, void *cmd); ++ ++struct esp_sip *sip_attach(struct esp_pub *); ++ ++int sip_post_init(struct esp_sip *sip, struct sip_evt_bootup2 *bevt); ++ ++void sip_detach(struct esp_sip *sip); ++ ++void sip_txq_process(struct esp_pub *epub); ++ ++struct sk_buff *sip_alloc_ctrl_skbuf(struct esp_sip *sip, u16 len, ++ u32 cid); ++ ++void sip_free_ctrl_skbuff(struct esp_sip *sip, struct sk_buff *skb); ++ ++bool sip_queue_need_stop(struct esp_sip *sip); ++bool sip_queue_may_resume(struct esp_sip *sip); ++bool sip_tx_data_need_stop(struct esp_sip *sip); ++bool sip_tx_data_may_resume(struct esp_sip *sip); ++ ++void sip_tx_data_pkt_enqueue(struct esp_pub *epub, struct sk_buff *skb); ++void sip_rx_data_pkt_enqueue(struct esp_pub *epub, struct sk_buff *skb); ++ ++int sip_cmd_enqueue(struct esp_sip *sip, struct sk_buff *skb, int prior); ++ ++int sip_poll_bootup_event(struct esp_sip *sip); ++ ++int sip_poll_resetting_event(struct esp_sip *sip); ++ ++void sip_trigger_txq_process(struct esp_sip *sip); ++ ++void sip_send_chip_init(struct esp_sip *sip); ++ ++bool mod_support_no_txampdu(void); ++ ++bool mod_support_no_rxampdu(void); ++ ++void mod_support_no_txampdu_set(bool value); ++ ++#ifdef FPGA_DEBUG ++int sip_send_bootup(struct esp_sip *sip); ++#endif /* FPGA_DEBUG */ ++void sip_debug_show(struct esp_sip *sip); ++#endif +diff --git a/drivers/net/wireless/esp8089/esp_utils.c b/drivers/net/wireless/esp8089/esp_utils.c +new file mode 100644 +index 000000000000..8b188de79b2c +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_utils.c +@@ -0,0 +1,262 @@ ++/* ++ * Copyright (c) 2009 - 2014 Espressif System. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include "linux/types.h" ++#include "linux/kernel.h" ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "esp_pub.h" ++#include "esp_utils.h" ++#include "esp_wmac.h" ++#include "esp_debug.h" ++ ++/* ++ * Convert IEEE channel number to MHz frequency. ++ */ ++u32 esp_ieee2mhz(u8 chan) ++{ ++ if (chan == 14) ++ return 2484; ++ ++ if (chan < 14) ++ return 2407 + chan * 5; ++ else ++ return 2512 + ((chan - 15) * 20); ++ //TODO, add 5GHz ++} ++ ++enum { ++ ESP_RATE_1_LONG = 0x0, ++ ESP_RATE_2_LONG = 0x1, ++ ESP_RATE_2_SHORT = 0x5, ++ ESP_RATE_5_SHORT = 0x6, ++ ESP_RATE_5_LONG = 0x2, ++ ESP_RATE_11_SHORT = 0x7, ++ ESP_RATE_11_LONG = 0x3, ++ ESP_RATE_6 = 0xb, ++ ESP_RATE_9 = 0xf, ++ ESP_RATE_12 = 0xa, ++ ESP_RATE_18 = 0xe, ++ ESP_RATE_24 = 0x9, ++ ESP_RATE_36 = 0xd, ++ ESP_RATE_48 = 0x8, ++ ESP_RATE_54 = 0xc, ++ /* ESP_RATE_MCS0 =0x10, ++ ESP_RATE_MCS1 =0x11, ++ ESP_RATE_MCS2 =0x12, ++ ESP_RATE_MCS3 =0x13, ++ ESP_RATE_MCS4 =0x14, ++ ESP_RATE_MCS5 =0x15, ++ ESP_RATE_MCS6 =0x16, ++ ESP_RATE_MCS7 =0x17, ++ */ ++}; ++ ++static u8 esp_rate_table[20] = { ++ ESP_RATE_1_LONG, ++ ESP_RATE_2_SHORT, ++ ESP_RATE_5_SHORT, ++ ESP_RATE_11_SHORT, ++ ESP_RATE_6, ++ ESP_RATE_9, ++ ESP_RATE_12, ++ ESP_RATE_18, ++ ESP_RATE_24, ++ ESP_RATE_36, ++ ESP_RATE_48, ++ ESP_RATE_54, ++ /* ESP_RATE_MCS0, ++ ESP_RATE_MCS1, ++ ESP_RATE_MCS2, ++ ESP_RATE_MCS3, ++ ESP_RATE_MCS4, ++ ESP_RATE_MCS5, ++ ESP_RATE_MCS6, ++ ESP_RATE_MCS7, ++ */ ++}; ++ ++s8 esp_wmac_rate2idx(u8 rate) ++{ ++ int i; ++ ++ if (rate == ESP_RATE_2_LONG) ++ return 1; ++ if (rate == ESP_RATE_5_LONG) ++ return 2; ++ if (rate == ESP_RATE_11_LONG) ++ return 3; ++ ++ for (i = 0; i < 20; i++) { ++ if (rate == esp_rate_table[i]) ++ return i; ++ } ++ ++ esp_dbg(ESP_DBG_ERROR, "%s unknown rate 0x%02x \n", __func__, ++ rate); ++ ++ return 0; ++} ++ ++bool esp_wmac_rxsec_error(u8 error) ++{ ++ return (error >= RX_SECOV_ERR && error <= RX_SECFIFO_TIMEOUT) ++ || (error >= RX_WEPICV_ERR && error <= RX_WAPIMIC_ERR); ++} ++ ++int esp_cipher2alg(int cipher) ++{ ++ if (cipher == WLAN_CIPHER_SUITE_TKIP) ++ return ALG_TKIP; ++ ++ if (cipher == WLAN_CIPHER_SUITE_CCMP) ++ return ALG_CCMP; ++ ++ if (cipher == WLAN_CIPHER_SUITE_WEP40 ++ || cipher == WLAN_CIPHER_SUITE_WEP104) ++ return ALG_WEP; ++ ++ if (cipher == WLAN_CIPHER_SUITE_AES_CMAC) ++ return ALG_AES_CMAC; ++ ++ //printk("%s wrong cipher 0x%x!\n",__func__,cipher); ++ ++ return -1; ++} ++ ++#ifdef RX_CHECKSUM_TEST ++atomic_t g_iv_len; ++void esp_rx_checksum_test(struct sk_buff *skb) ++{ ++ static u32 ip_err = 0; ++ static u32 tcp_err = 0; ++ struct ieee80211_hdr *pwh = (struct ieee80211_hdr *) skb->data; ++ int hdrlen = ieee80211_hdrlen(pwh->frame_control); ++ ++ if (ieee80211_has_protected(pwh->frame_control)) ++ hdrlen += atomic_read(&g_iv_len); ++ ++ if (ieee80211_is_data(pwh->frame_control)) { ++ struct llc_snap_hdr *llc = ++ (struct llc_snap_hdr *) (skb->data + hdrlen); ++ if (ntohs(llc->eth_type) == ETH_P_IP) { ++ int llclen = sizeof(struct llc_snap_hdr); ++ struct iphdr *iph = ++ (struct iphdr *) (skb->data + hdrlen + llclen); ++ __sum16 csum_bak = iph->check; ++ ++ iph->check = 0; ++ iph->check = ip_fast_csum(iph, iph->ihl); ++ if (iph->check != csum_bak) { ++ esp_dbg(ESP_DBG_ERROR, ++ "total ip checksum error %d\n", ++ ++ip_err); ++ } ++ iph->check = csum_bak; ++ ++ if (iph->protocol == 0x06) { ++ struct tcphdr *tcph = ++ (struct tcphdr *) (skb->data + hdrlen + ++ llclen + ++ iph->ihl * 4); ++ int datalen = ++ skb->len - (hdrlen + llclen + ++ iph->ihl * 4); ++ csum_bak = tcph->check; ++ ++ tcph->check = 0; ++ tcph->check = ++ tcp_v4_check(datalen, iph->saddr, ++ iph->daddr, ++ csum_partial((char *) ++ tcph, ++ datalen, 0)); ++ if (tcph->check != csum_bak) { ++ esp_dbg(ESP_DBG_ERROR, ++ "total tcp checksum error %d\n", ++ ++tcp_err); ++ } ++ tcph->check = csum_bak; ++ } ++ } ++ } ++} ++ ++#endif ++ ++#ifdef GEN_ERR_CHECKSUM ++ ++void esp_gen_err_checksum(struct sk_buff *skb) ++{ ++ static u32 tx_seq = 0; ++ if ((tx_seq++ % 16) == 0) { ++ struct ieee80211_hdr *hdr = ++ (struct ieee80211_hdr *) skb->data; ++ int hdrlen = ieee80211_hdrlen(hdr->frame_control); ++ ++ if (ieee80211_has_protected(pwh->frame_control)) ++ hdrlen += ++ IEEE80211_SKB_CB(skb)->control.hw_key->iv_len; ++ ++ struct llc_snap_hdr *llc = ++ (struct llc_snap_hdr *) (skb->data + hdrlen); ++ if (ntohs(llc->eth_type) == ETH_P_IP) { ++ int llclen = sizeof(struct llc_snap_hdr); ++ struct iphdr *iph = ++ (struct iphdr *) (skb->data + hdrlen + llclen); ++ ++ iph->check = ~iph->check; ++ ++ if (iph->protocol == 0x06) { ++ struct tcphdr *tcph = ++ (struct tcphdr *) (skb->data + hdrlen + ++ llclen + ++ iph->ihl * 4); ++ tcph->check = ~tcph->check; ++ } ++ } ++ } ++} ++#endif ++ ++bool esp_is_ip_pkt(struct sk_buff *skb) ++{ ++ struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; ++ int hdrlen; ++ struct llc_snap_hdr *llc; ++ ++ if (!ieee80211_is_data(hdr->frame_control)) ++ return false; ++ ++ hdrlen = ieee80211_hdrlen(hdr->frame_control); ++ if (ieee80211_has_protected(hdr->frame_control)) ++ hdrlen += IEEE80211_SKB_CB(skb)->control.hw_key->iv_len; ++#ifdef RX_CHECKSUM_TEST ++ atomic_set(&g_iv_len, ++ IEEE80211_SKB_CB(skb)->control.hw_key->iv_len); ++#endif ++ if (skb->len < hdrlen + sizeof(struct llc_snap_hdr)) ++ return false; ++ llc = (struct llc_snap_hdr *) (skb->data + hdrlen); ++ if (ntohs(llc->eth_type) != ETH_P_IP) ++ return false; ++ else ++ return true; ++} +diff --git a/drivers/net/wireless/esp8089/esp_utils.h b/drivers/net/wireless/esp8089/esp_utils.h +new file mode 100644 +index 000000000000..ed16d9ca0a65 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_utils.h +@@ -0,0 +1,41 @@ ++/* ++ * Copyright (c) 2011-2012 Espressif System. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _ESP_UTILS_H_ ++#define _ESP_UTILS_H_ ++ ++#include "linux/types.h" ++#include ++ ++#ifndef BIT ++#define BIT(x) (0x1 << (x)) ++#endif ++ ++u32 esp_ieee2mhz(u8 chan); ++ ++enum ieee80211_key_alg { ++ ALG_WEP, ++ ALG_TKIP, ++ ALG_CCMP, ++ ALG_AES_CMAC ++}; ++ ++int esp_cipher2alg(int cipher); ++ ++void esp_rx_checksum_test(struct sk_buff *skb); ++void esp_gen_err_checksum(struct sk_buff *skb); ++ ++bool esp_is_ip_pkt(struct sk_buff *skb); ++ ++#endif +diff --git a/drivers/net/wireless/esp8089/esp_version.h b/drivers/net/wireless/esp8089/esp_version.h +new file mode 100644 +index 000000000000..481d98841fc2 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_version.h +@@ -0,0 +1 @@ ++#define DRIVER_VER 0xbdf5087c3debll +diff --git a/drivers/net/wireless/esp8089/esp_wl.h b/drivers/net/wireless/esp8089/esp_wl.h +new file mode 100644 +index 000000000000..e3e62a83d505 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_wl.h +@@ -0,0 +1,63 @@ ++#ifndef _ESP_WL_H_ ++#define _ESP_WL_H_ ++ ++//#define MAX_PROBED_SSID_INDEX 9 ++ ++ ++enum { ++ CONF_HW_BIT_RATE_1MBPS = BIT(0), ++ CONF_HW_BIT_RATE_2MBPS = BIT(1), ++ CONF_HW_BIT_RATE_5_5MBPS = BIT(2), ++ CONF_HW_BIT_RATE_11MBPS = BIT(3), ++ CONF_HW_BIT_RATE_6MBPS = BIT(4), ++ CONF_HW_BIT_RATE_9MBPS = BIT(5), ++ CONF_HW_BIT_RATE_12MBPS = BIT(6), ++ CONF_HW_BIT_RATE_18MBPS = BIT(7), ++ CONF_HW_BIT_RATE_22MBPS = BIT(8), ++ CONF_HW_BIT_RATE_24MBPS = BIT(9), ++ CONF_HW_BIT_RATE_36MBPS = BIT(10), ++ CONF_HW_BIT_RATE_48MBPS = BIT(11), ++ CONF_HW_BIT_RATE_54MBPS = BIT(12), ++ CONF_HW_BIT_RATE_11B_MASK = ++ (CONF_HW_BIT_RATE_1MBPS | CONF_HW_BIT_RATE_2MBPS | ++ CONF_HW_BIT_RATE_5_5MBPS | CONF_HW_BIT_RATE_11MBPS), ++}; ++ ++#if 0 ++enum { ++ CONF_HW_RATE_INDEX_1MBPS = 0, ++ CONF_HW_RATE_INDEX_2MBPS = 1, ++ CONF_HW_RATE_INDEX_5_5MBPS = 2, ++ CONF_HW_RATE_INDEX_6MBPS = 3, ++ CONF_HW_RATE_INDEX_9MBPS = 4, ++ CONF_HW_RATE_INDEX_11MBPS = 5, ++ CONF_HW_RATE_INDEX_12MBPS = 6, ++ CONF_HW_RATE_INDEX_18MBPS = 7, ++ CONF_HW_RATE_INDEX_22MBPS = 8, ++ CONF_HW_RATE_INDEX_24MBPS = 9, ++ CONF_HW_RATE_INDEX_36MBPS = 10, ++ CONF_HW_RATE_INDEX_48MBPS = 11, ++ CONF_HW_RATE_INDEX_54MBPS = 12, ++ CONF_HW_RATE_INDEX_MAX, ++}; ++ ++enum { ++ CONF_HW_RXTX_RATE_54 = 0, ++ CONF_HW_RXTX_RATE_48, ++ CONF_HW_RXTX_RATE_36, ++ CONF_HW_RXTX_RATE_24, ++ CONF_HW_RXTX_RATE_22, ++ CONF_HW_RXTX_RATE_18, ++ CONF_HW_RXTX_RATE_12, ++ CONF_HW_RXTX_RATE_11, ++ CONF_HW_RXTX_RATE_9, ++ CONF_HW_RXTX_RATE_6, ++ CONF_HW_RXTX_RATE_5_5, ++ CONF_HW_RXTX_RATE_2, ++ CONF_HW_RXTX_RATE_1, ++ CONF_HW_RXTX_RATE_MAX, ++ CONF_HW_RXTX_RATE_UNSUPPORTED = 0xff ++}; ++#endif ++ ++#endif /* _ESP_WL_H_ */ +diff --git a/drivers/net/wireless/esp8089/esp_wmac.h b/drivers/net/wireless/esp8089/esp_wmac.h +new file mode 100644 +index 000000000000..72d13cbfc0e5 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/esp_wmac.h +@@ -0,0 +1,92 @@ ++/* ++ * Copyright (c) 2011-2012 Espressif System. ++ * ++ * MAC header ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _ESP_WMAC_H_ ++#define _ESP_WMAC_H_ ++ ++struct esp_mac_rx_ctrl { ++ signed rssi:8; ++ unsigned rate:4; ++ unsigned is_group:1; ++ unsigned:1; ++ unsigned sig_mode:2; ++ unsigned legacy_length:12; ++ unsigned damatch0:1; ++ unsigned damatch1:1; ++ unsigned bssidmatch0:1; ++ unsigned bssidmatch1:1; ++ unsigned MCS:7; ++ unsigned CWB:1; ++ unsigned HT_length:16; ++ unsigned Smoothing:1; ++ unsigned Not_Sounding:1; ++ unsigned:1; ++ unsigned Aggregation:1; ++ unsigned STBC:2; ++ unsigned FEC_CODING:1; ++ unsigned SGI:1; ++ unsigned rxend_state:8; ++ unsigned ampdu_cnt:8; ++ unsigned channel:4; ++ unsigned:4; ++ signed noise_floor:8; ++}; ++ ++struct esp_rx_ampdu_len { ++ unsigned substate:8; ++ unsigned sublen:12; ++ unsigned:12; ++}; ++ ++struct esp_tx_ampdu_entry { ++ u32 sub_len:12, dili_num:7,:1, null_byte:2, data:1, enc:1, seq:8; ++}; ++ ++//rxend_state flags ++#define RX_PYH_ERR_MIN 0x42 ++#define RX_AGC_ERR_MIN 0x42 ++#define RX_AGC_ERR_MAX 0x47 ++#define RX_OFDM_ERR_MIN 0x50 ++#define RX_OFDM_ERR_MAX 0x58 ++#define RX_CCK_ERR_MIN 0x59 ++#define RX_CCK_ERR_MAX 0x5F ++#define RX_ABORT 0x80 ++#define RX_SF_ERR 0x40 ++#define RX_FCS_ERR 0x41 ++#define RX_AHBOV_ERR 0xC0 ++#define RX_BUFOV_ERR 0xC1 ++#define RX_BUFINV_ERR 0xC2 ++#define RX_AMPDUSF_ERR 0xC3 ++#define RX_AMPDUBUFOV_ERR 0xC4 ++#define RX_MACBBFIFOOV_ERR 0xC5 ++#define RX_RPBM_ERR 0xC6 ++#define RX_BTFORCE_ERR 0xC7 ++#define RX_SECOV_ERR 0xE1 ++#define RX_SECPROT_ERR0 0xE2 ++#define RX_SECPROT_ERR1 0xE3 ++#define RX_SECKEY_ERR 0xE4 ++#define RX_SECCRLEN_ERR 0xE5 ++#define RX_SECFIFO_TIMEOUT 0xE6 ++#define RX_WEPICV_ERR 0xF0 ++#define RX_TKIPICV_ERR 0xF4 ++#define RX_TKIPMIC_ERR 0xF5 ++#define RX_CCMPMIC_ERR 0xF8 ++#define RX_WAPIMIC_ERR 0xFC ++ ++s8 esp_wmac_rate2idx(u8 rate); ++bool esp_wmac_rxsec_error(u8 error); ++ ++#endif /* _ESP_WMAC_H_ */ +diff --git a/drivers/net/wireless/esp8089/firmware/LICENSE-2.0.txt b/drivers/net/wireless/esp8089/firmware/LICENSE-2.0.txt +new file mode 100644 +index 000000000000..0dd35c82a001 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/firmware/LICENSE-2.0.txt +@@ -0,0 +1,203 @@ ++The esp8089 firmware files are licensed under the Apache License, Version 2.0: ++ ++ Apache License ++ Version 2.0, January 2004 ++ http://www.apache.org/licenses/ ++ ++ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION ++ ++ 1. Definitions. ++ ++ "License" shall mean the terms and conditions for use, reproduction, ++ and distribution as defined by Sections 1 through 9 of this document. ++ ++ "Licensor" shall mean the copyright owner or entity authorized by ++ the copyright owner that is granting the License. ++ ++ "Legal Entity" shall mean the union of the acting entity and all ++ other entities that control, are controlled by, or are under common ++ control with that entity. For the purposes of this definition, ++ "control" means (i) the power, direct or indirect, to cause the ++ direction or management of such entity, whether by contract or ++ otherwise, or (ii) ownership of fifty percent (50%) or more of the ++ outstanding shares, or (iii) beneficial ownership of such entity. ++ ++ "You" (or "Your") shall mean an individual or Legal Entity ++ exercising permissions granted by this License. ++ ++ "Source" form shall mean the preferred form for making modifications, ++ including but not limited to software source code, documentation ++ source, and configuration files. ++ ++ "Object" form shall mean any form resulting from mechanical ++ transformation or translation of a Source form, including but ++ not limited to compiled object code, generated documentation, ++ and conversions to other media types. ++ ++ "Work" shall mean the work of authorship, whether in Source or ++ Object form, made available under the License, as indicated by a ++ copyright notice that is included in or attached to the work ++ (an example is provided in the Appendix below). ++ ++ "Derivative Works" shall mean any work, whether in Source or Object ++ form, that is based on (or derived from) the Work and for which the ++ editorial revisions, annotations, elaborations, or other modifications ++ represent, as a whole, an original work of authorship. For the purposes ++ of this License, Derivative Works shall not include works that remain ++ separable from, or merely link (or bind by name) to the interfaces of, ++ the Work and Derivative Works thereof. ++ ++ "Contribution" shall mean any work of authorship, including ++ the original version of the Work and any modifications or additions ++ to that Work or Derivative Works thereof, that is intentionally ++ submitted to Licensor for inclusion in the Work by the copyright owner ++ or by an individual or Legal Entity authorized to submit on behalf of ++ the copyright owner. For the purposes of this definition, "submitted" ++ means any form of electronic, verbal, or written communication sent ++ to the Licensor or its representatives, including but not limited to ++ communication on electronic mailing lists, source code control systems, ++ and issue tracking systems that are managed by, or on behalf of, the ++ Licensor for the purpose of discussing and improving the Work, but ++ excluding communication that is conspicuously marked or otherwise ++ designated in writing by the copyright owner as "Not a Contribution." ++ ++ "Contributor" shall mean Licensor and any individual or Legal Entity ++ on behalf of whom a Contribution has been received by Licensor and ++ subsequently incorporated within the Work. ++ ++ 2. Grant of Copyright License. Subject to the terms and conditions of ++ this License, each Contributor hereby grants to You a perpetual, ++ worldwide, non-exclusive, no-charge, royalty-free, irrevocable ++ copyright license to reproduce, prepare Derivative Works of, ++ publicly display, publicly perform, sublicense, and distribute the ++ Work and such Derivative Works in Source or Object form. ++ ++ 3. Grant of Patent License. Subject to the terms and conditions of ++ this License, each Contributor hereby grants to You a perpetual, ++ worldwide, non-exclusive, no-charge, royalty-free, irrevocable ++ (except as stated in this section) patent license to make, have made, ++ use, offer to sell, sell, import, and otherwise transfer the Work, ++ where such license applies only to those patent claims licensable ++ by such Contributor that are necessarily infringed by their ++ Contribution(s) alone or by combination of their Contribution(s) ++ with the Work to which such Contribution(s) was submitted. If You ++ institute patent litigation against any entity (including a ++ cross-claim or counterclaim in a lawsuit) alleging that the Work ++ or a Contribution incorporated within the Work constitutes direct ++ or contributory patent infringement, then any patent licenses ++ granted to You under this License for that Work shall terminate ++ as of the date such litigation is filed. ++ ++ 4. Redistribution. You may reproduce and distribute copies of the ++ Work or Derivative Works thereof in any medium, with or without ++ modifications, and in Source or Object form, provided that You ++ meet the following conditions: ++ ++ (a) You must give any other recipients of the Work or ++ Derivative Works a copy of this License; and ++ ++ (b) You must cause any modified files to carry prominent notices ++ stating that You changed the files; and ++ ++ (c) You must retain, in the Source form of any Derivative Works ++ that You distribute, all copyright, patent, trademark, and ++ attribution notices from the Source form of the Work, ++ excluding those notices that do not pertain to any part of ++ the Derivative Works; and ++ ++ (d) If the Work includes a "NOTICE" text file as part of its ++ distribution, then any Derivative Works that You distribute must ++ include a readable copy of the attribution notices contained ++ within such NOTICE file, excluding those notices that do not ++ pertain to any part of the Derivative Works, in at least one ++ of the following places: within a NOTICE text file distributed ++ as part of the Derivative Works; within the Source form or ++ documentation, if provided along with the Derivative Works; or, ++ within a display generated by the Derivative Works, if and ++ wherever such third-party notices normally appear. The contents ++ of the NOTICE file are for informational purposes only and ++ do not modify the License. You may add Your own attribution ++ notices within Derivative Works that You distribute, alongside ++ or as an addendum to the NOTICE text from the Work, provided ++ that such additional attribution notices cannot be construed ++ as modifying the License. ++ ++ You may add Your own copyright statement to Your modifications and ++ may provide additional or different license terms and conditions ++ for use, reproduction, or distribution of Your modifications, or ++ for any such Derivative Works as a whole, provided Your use, ++ reproduction, and distribution of the Work otherwise complies with ++ the conditions stated in this License. ++ ++ 5. Submission of Contributions. Unless You explicitly state otherwise, ++ any Contribution intentionally submitted for inclusion in the Work ++ by You to the Licensor shall be under the terms and conditions of ++ this License, without any additional terms or conditions. ++ Notwithstanding the above, nothing herein shall supersede or modify ++ the terms of any separate license agreement you may have executed ++ with Licensor regarding such Contributions. ++ ++ 6. Trademarks. This License does not grant permission to use the trade ++ names, trademarks, service marks, or product names of the Licensor, ++ except as required for reasonable and customary use in describing the ++ origin of the Work and reproducing the content of the NOTICE file. ++ ++ 7. Disclaimer of Warranty. Unless required by applicable law or ++ agreed to in writing, Licensor provides the Work (and each ++ Contributor provides its Contributions) on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or ++ implied, including, without limitation, any warranties or conditions ++ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A ++ PARTICULAR PURPOSE. You are solely responsible for determining the ++ appropriateness of using or redistributing the Work and assume any ++ risks associated with Your exercise of permissions under this License. ++ ++ 8. Limitation of Liability. In no event and under no legal theory, ++ whether in tort (including negligence), contract, or otherwise, ++ unless required by applicable law (such as deliberate and grossly ++ negligent acts) or agreed to in writing, shall any Contributor be ++ liable to You for damages, including any direct, indirect, special, ++ incidental, or consequential damages of any character arising as a ++ result of this License or out of the use or inability to use the ++ Work (including but not limited to damages for loss of goodwill, ++ work stoppage, computer failure or malfunction, or any and all ++ other commercial damages or losses), even if such Contributor ++ has been advised of the possibility of such damages. ++ ++ 9. Accepting Warranty or Additional Liability. While redistributing ++ the Work or Derivative Works thereof, You may choose to offer, ++ and charge a fee for, acceptance of support, warranty, indemnity, ++ or other liability obligations and/or rights consistent with this ++ License. However, in accepting such obligations, You may act only ++ on Your own behalf and on Your sole responsibility, not on behalf ++ of any other Contributor, and only if You agree to indemnify, ++ defend, and hold each Contributor harmless for any liability ++ incurred by, or claims asserted against, such Contributor by reason ++ of your accepting any such warranty or additional liability. ++ ++ END OF TERMS AND CONDITIONS ++ ++ APPENDIX: How to apply the Apache License to your work. ++ ++ To apply the Apache License to your work, attach the following ++ boilerplate notice, with the fields enclosed by brackets "[]" ++ replaced with your own identifying information. (Don't include ++ the brackets!) The text should be enclosed in the appropriate ++ comment syntax for the file format. We also recommend that a ++ file or class name and description of purpose be included on the ++ same "printed page" as the copyright notice for easier ++ identification within third-party archives. ++ ++ Copyright [yyyy] [name of copyright owner] ++ ++ Licensed under the Apache License, Version 2.0 (the "License"); ++ you may not use this file except in compliance with the License. ++ You may obtain a copy of the License at ++ ++ http://www.apache.org/licenses/LICENSE-2.0 ++ ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ See the License for the specific language governing permissions and ++ limitations under the License. +diff --git a/drivers/net/wireless/esp8089/sdio_sif_esp.c b/drivers/net/wireless/esp8089/sdio_sif_esp.c +new file mode 100644 +index 000000000000..2bd2c63f5388 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/sdio_sif_esp.c +@@ -0,0 +1,824 @@ ++/* ++ * Copyright (c) 2010 -2013 Espressif System. ++ * ++ * sdio serial i/f driver ++ * - sdio device control routines ++ * - sync/async DMA/PIO read/write ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "esp_pub.h" ++#include "esp_sif.h" ++#include "esp_sip.h" ++#include "esp_debug.h" ++#include "slc_host_register.h" ++#include "esp_version.h" ++#include "esp_ctrl.h" ++#include "esp_file.h" ++#ifdef USE_EXT_GPIO ++#include "esp_ext.h" ++#endif /* USE_EXT_GPIO */ ++ ++#define MANUFACTURER_ID_EAGLE_BASE 0x1110 ++#define MANUFACTURER_ID_EAGLE_BASE_MASK 0xFF00 ++#define MANUFACTURER_CODE 0x6666 ++ ++static const struct sdio_device_id esp_sdio_devices[] = { ++ {SDIO_DEVICE ++ (MANUFACTURER_CODE, (MANUFACTURER_ID_EAGLE_BASE | 0x1))}, ++ {}, ++}; ++ ++static const struct of_device_id esp_of_match_table[] = { ++ { .compatible = "esp,esp8089", .data = NULL}, ++ { } ++}; ++ ++static int /*__init*/ esp_sdio_init(void); ++static void /*__exit*/ esp_sdio_exit(void); ++ ++ ++#define ESP_DMA_IBUFSZ 2048 ++ ++//unsigned int esp_msg_level = 0; ++unsigned int esp_msg_level = ESP_DBG_ERROR | ESP_SHOW; ++ ++struct esp_sdio_ctrl *sif_sctrl = NULL; ++ ++#ifdef ESP_ANDROID_LOGGER ++bool log_off = false; ++#endif /* ESP_ANDROID_LOGGER */ ++ ++static int esdio_power_off(struct esp_sdio_ctrl *sctrl); ++static int esdio_power_on(struct esp_sdio_ctrl *sctrl); ++ ++void sif_set_clock(struct sdio_func *func, int clk); ++ ++void sif_lock_bus(struct esp_pub *epub) ++{ ++ EPUB_FUNC_CHECK(epub, _exit); ++ ++ sdio_claim_host(EPUB_TO_FUNC(epub)); ++ _exit: ++ return; ++} ++ ++void sif_unlock_bus(struct esp_pub *epub) ++{ ++ EPUB_FUNC_CHECK(epub, _exit); ++ ++ sdio_release_host(EPUB_TO_FUNC(epub)); ++ _exit: ++ return; ++} ++ ++static inline bool bad_buf(u8 * buf) ++{ ++ return ((unsigned long) buf & 0x3) || !virt_addr_valid(buf); ++} ++ ++u8 sdio_io_readb(struct esp_pub *epub, int addr, int *res) ++{ ++ struct esp_sdio_ctrl *sctrl = NULL; ++ struct sdio_func *func = NULL; ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ func = sctrl->func; ++ ++ if (func->num == 0) ++ return sdio_f0_readb(func, addr, res); ++ else ++ return sdio_readb(func, addr, res); ++} ++ ++void sdio_io_writeb(struct esp_pub *epub, u8 value, int addr, int *res) ++{ ++ struct esp_sdio_ctrl *sctrl = NULL; ++ struct sdio_func *func = NULL; ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ func = sctrl->func; ++ ++ if (func->num == 0) ++ sdio_f0_writeb(func, value, addr, res); ++ else ++ sdio_writeb(func, value, addr, res); ++} ++ ++int sif_io_raw(struct esp_pub *epub, u32 addr, u8 * buf, u32 len, u32 flag) ++{ ++ int err = 0; ++ u8 *ibuf = NULL; ++ bool need_ibuf = false; ++ struct esp_sdio_ctrl *sctrl = NULL; ++ struct sdio_func *func = NULL; ++ ++ if (epub == NULL || buf == NULL) { ++ ESSERT(0); ++ err = -EINVAL; ++ goto _exit; ++ } ++ ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ func = sctrl->func; ++ if (func == NULL) { ++ ESSERT(0); ++ err = -EINVAL; ++ goto _exit; ++ } ++ ++ if (bad_buf(buf)) { ++ esp_dbg(ESP_DBG_TRACE, "%s dst 0x%08x, len %d badbuf\n", ++ __func__, addr, len); ++ need_ibuf = true; ++ ibuf = sctrl->dma_buffer; ++ } else { ++ ibuf = buf; ++ } ++ ++ if (flag & SIF_BLOCK_BASIS) { ++ /* round up for block data transcation */ ++ } ++ ++ if (flag & SIF_TO_DEVICE) { ++ ++ if (need_ibuf) ++ memcpy(ibuf, buf, len); ++ ++ if (flag & SIF_FIXED_ADDR) ++ err = sdio_writesb(func, addr, ibuf, len); ++ else if (flag & SIF_INC_ADDR) { ++ err = sdio_memcpy_toio(func, addr, ibuf, len); ++ } ++ } else if (flag & SIF_FROM_DEVICE) { ++ ++ if (flag & SIF_FIXED_ADDR) ++ err = sdio_readsb(func, ibuf, addr, len); ++ else if (flag & SIF_INC_ADDR) { ++ err = sdio_memcpy_fromio(func, ibuf, addr, len); ++ } ++ ++ ++ if (!err && need_ibuf) ++ memcpy(buf, ibuf, len); ++ } ++ ++ _exit: ++ return err; ++} ++ ++int sif_io_sync(struct esp_pub *epub, u32 addr, u8 * buf, u32 len, ++ u32 flag) ++{ ++ int err = 0; ++ u8 *ibuf = NULL; ++ bool need_ibuf = false; ++ struct esp_sdio_ctrl *sctrl = NULL; ++ struct sdio_func *func = NULL; ++ ++ if (epub == NULL || buf == NULL) { ++ ESSERT(0); ++ err = -EINVAL; ++ goto _exit; ++ } ++ ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ func = sctrl->func; ++ if (func == NULL) { ++ ESSERT(0); ++ err = -EINVAL; ++ goto _exit; ++ } ++ ++ if (bad_buf(buf)) { ++ esp_dbg(ESP_DBG_TRACE, "%s dst 0x%08x, len %d badbuf\n", ++ __func__, addr, len); ++ need_ibuf = true; ++ ibuf = sctrl->dma_buffer; ++ } else { ++ ibuf = buf; ++ } ++ ++ if (flag & SIF_BLOCK_BASIS) { ++ /* round up for block data transcation */ ++ } ++ ++ if (flag & SIF_TO_DEVICE) { ++ ++ esp_dbg(ESP_DBG_TRACE, "%s to addr 0x%08x, len %d \n", ++ __func__, addr, len); ++ if (need_ibuf) ++ memcpy(ibuf, buf, len); ++ ++ sdio_claim_host(func); ++ ++ if (flag & SIF_FIXED_ADDR) ++ err = sdio_writesb(func, addr, ibuf, len); ++ else if (flag & SIF_INC_ADDR) { ++ err = sdio_memcpy_toio(func, addr, ibuf, len); ++ } ++ sdio_release_host(func); ++ } else if (flag & SIF_FROM_DEVICE) { ++ ++ esp_dbg(ESP_DBG_TRACE, "%s from addr 0x%08x, len %d \n", ++ __func__, addr, len); ++ ++ sdio_claim_host(func); ++ ++ if (flag & SIF_FIXED_ADDR) ++ err = sdio_readsb(func, ibuf, addr, len); ++ else if (flag & SIF_INC_ADDR) { ++ err = sdio_memcpy_fromio(func, ibuf, addr, len); ++ } ++ ++ sdio_release_host(func); ++ ++ if (!err && need_ibuf) ++ memcpy(buf, ibuf, len); ++ } ++ ++ _exit: ++ return err; ++} ++ ++int sif_lldesc_read_sync(struct esp_pub *epub, u8 * buf, u32 len) ++{ ++ struct esp_sdio_ctrl *sctrl = NULL; ++ u32 read_len; ++ ++ if (epub == NULL || buf == NULL) { ++ ESSERT(0); ++ return -EINVAL; ++ } ++ ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ ++ switch (sctrl->target_id) { ++ case 0x100: ++ read_len = len; ++ break; ++ case 0x600: ++ read_len = roundup(len, sctrl->slc_blk_sz); ++ break; ++ default: ++ read_len = len; ++ break; ++ } ++ ++ return sif_io_sync((epub), ++ (sctrl->slc_window_end_addr - 2 - (len)), (buf), ++ (read_len), ++ SIF_FROM_DEVICE | SIF_BYTE_BASIS | ++ SIF_INC_ADDR); ++} ++ ++int sif_lldesc_write_sync(struct esp_pub *epub, u8 * buf, u32 len) ++{ ++ struct esp_sdio_ctrl *sctrl = NULL; ++ u32 write_len; ++ ++ if (epub == NULL || buf == NULL) { ++ ESSERT(0); ++ return -EINVAL; ++ } ++ ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ ++ switch (sctrl->target_id) { ++ case 0x100: ++ write_len = len; ++ break; ++ case 0x600: ++ write_len = roundup(len, sctrl->slc_blk_sz); ++ break; ++ default: ++ write_len = len; ++ break; ++ } ++ ++ return sif_io_sync((epub), (sctrl->slc_window_end_addr - (len)), ++ (buf), (write_len), ++ SIF_TO_DEVICE | SIF_BYTE_BASIS | SIF_INC_ADDR); ++} ++ ++int sif_lldesc_read_raw(struct esp_pub *epub, u8 * buf, u32 len, ++ bool noround) ++{ ++ struct esp_sdio_ctrl *sctrl = NULL; ++ u32 read_len; ++ ++ if (epub == NULL || buf == NULL) { ++ ESSERT(0); ++ return -EINVAL; ++ } ++ ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ ++ switch (sctrl->target_id) { ++ case 0x100: ++ read_len = len; ++ break; ++ case 0x600: ++ if (!noround) ++ read_len = roundup(len, sctrl->slc_blk_sz); ++ else ++ read_len = len; ++ break; ++ default: ++ read_len = len; ++ break; ++ } ++ ++ return sif_io_raw((epub), (sctrl->slc_window_end_addr - 2 - (len)), ++ (buf), (read_len), ++ SIF_FROM_DEVICE | SIF_BYTE_BASIS | SIF_INC_ADDR); ++} ++ ++int sif_lldesc_write_raw(struct esp_pub *epub, u8 * buf, u32 len) ++{ ++ struct esp_sdio_ctrl *sctrl = NULL; ++ u32 write_len; ++ ++ if (epub == NULL || buf == NULL) { ++ ESSERT(0); ++ return -EINVAL; ++ } ++ ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ ++ switch (sctrl->target_id) { ++ case 0x100: ++ write_len = len; ++ break; ++ case 0x600: ++ write_len = roundup(len, sctrl->slc_blk_sz); ++ break; ++ default: ++ write_len = len; ++ break; ++ } ++ return sif_io_raw((epub), (sctrl->slc_window_end_addr - (len)), ++ (buf), (write_len), ++ SIF_TO_DEVICE | SIF_BYTE_BASIS | SIF_INC_ADDR); ++ ++} ++ ++static int esdio_power_on(struct esp_sdio_ctrl *sctrl) ++{ ++ int err = 0; ++ ++ if (sctrl->off == false) ++ return err; ++ ++ sdio_claim_host(sctrl->func); ++ err = sdio_enable_func(sctrl->func); ++ ++ if (err) { ++ esp_dbg(ESP_DBG_ERROR, "Unable to enable sdio func: %d\n", ++ err); ++ sdio_release_host(sctrl->func); ++ return err; ++ } ++ ++ sdio_release_host(sctrl->func); ++ ++ /* ensure device is up */ ++ msleep(5); ++ ++ sctrl->off = false; ++ ++ return err; ++} ++ ++static int esdio_power_off(struct esp_sdio_ctrl *sctrl) ++{ ++ int err; ++ ++ if (sctrl->off) ++ return 0; ++ ++ sdio_claim_host(sctrl->func); ++ err = sdio_disable_func(sctrl->func); ++ sdio_release_host(sctrl->func); ++ ++ if (err) ++ return err; ++ ++ sctrl->off = true; ++ ++ return err; ++} ++ ++void sif_enable_irq(struct esp_pub *epub) ++{ ++ int err; ++ struct esp_sdio_ctrl *sctrl = NULL; ++ ++ sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ ++ sdio_claim_host(sctrl->func); ++ ++ err = sdio_claim_irq(sctrl->func, sif_dsr); ++ ++ if (err) ++ esp_dbg(ESP_DBG_ERROR, "sif %s failed\n", __func__); ++ ++ atomic_set(&epub->sip->state, SIP_BOOT); ++ ++ atomic_set(&sctrl->irq_installed, 1); ++ ++ sdio_release_host(sctrl->func); ++} ++ ++void sif_disable_irq(struct esp_pub *epub) ++{ ++ struct esp_sdio_ctrl *sctrl = (struct esp_sdio_ctrl *) epub->sif; ++ int i = 0; ++ ++ if (atomic_read(&sctrl->irq_installed) == 0) ++ return; ++ ++ sdio_claim_host(sctrl->func); ++ ++ while (atomic_read(&sctrl->irq_handling)) { ++ sdio_release_host(sctrl->func); ++ schedule_timeout(HZ / 100); ++ sdio_claim_host(sctrl->func); ++ if (i++ >= 400) { ++ esp_dbg(ESP_DBG_ERROR, "%s force to stop irq\n", ++ __func__); ++ break; ++ } ++ } ++ ++ /* Ignore errors, we don't always use an irq. */ ++ sdio_release_irq(sctrl->func); ++ ++ atomic_set(&sctrl->irq_installed, 0); ++ ++ sdio_release_host(sctrl->func); ++ ++} ++ ++void sif_set_clock(struct sdio_func *func, int clk) ++{ ++ struct mmc_host *host = NULL; ++ struct mmc_card *card = NULL; ++ ++ card = func->card; ++ host = card->host; ++ ++ sdio_claim_host(func); ++ ++ //currently only set clock ++ host->ios.clock = clk * 1000000; ++ ++ esp_dbg(ESP_SHOW, "%s clock is %u\n", __func__, host->ios.clock); ++ if (host->ios.clock > host->f_max) { ++ host->ios.clock = host->f_max; ++ } ++ host->ops->set_ios(host, &host->ios); ++ ++ mdelay(2); ++ ++ sdio_release_host(func); ++} ++ ++static int esp_sdio_probe(struct sdio_func *func, ++ const struct sdio_device_id *id); ++static void esp_sdio_remove(struct sdio_func *func); ++ ++static int esp_sdio_probe(struct sdio_func *func, ++ const struct sdio_device_id *id) ++{ ++ int err = 0; ++ struct esp_pub *epub = NULL; ++ struct esp_sdio_ctrl *sctrl; ++ ++ esp_dbg(ESP_DBG_TRACE, ++ "sdio_func_num: 0x%X, vendor id: 0x%X, dev id: 0x%X, block size: 0x%X/0x%X\n", ++ func->num, func->vendor, func->device, func->max_blksize, ++ func->cur_blksize); ++ ++ if (sif_sctrl == NULL) { ++ ++ esp_conf_init(&func->dev); ++ ++ esp_conf_upload_first(); ++ ++ sctrl = kzalloc(sizeof(struct esp_sdio_ctrl), GFP_KERNEL); ++ ++ if (sctrl == NULL) { ++ return -ENOMEM; ++ } ++ ++ /* temp buffer reserved for un-dma-able request */ ++ sctrl->dma_buffer = kzalloc(ESP_DMA_IBUFSZ, GFP_KERNEL); ++ ++ if (sctrl->dma_buffer == NULL) { ++ err = -ENOMEM; ++ goto _err_last; ++ } ++ sif_sctrl = sctrl; ++ sctrl->slc_blk_sz = SIF_SLC_BLOCK_SIZE; ++ ++ epub = esp_pub_alloc_mac80211(&func->dev); ++ ++ if (epub == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "no mem for epub \n"); ++ err = -ENOMEM; ++ goto _err_dma; ++ } ++ epub->sif = (void *) sctrl; ++ epub->sdio_state = ESP_SDIO_STATE_FIRST_INIT; ++ sctrl->epub = epub; ++ ++#ifdef USE_EXT_GPIO ++ if (sif_get_ate_config() == 0) { ++ err = ext_gpio_init(epub); ++ if (err) { ++ esp_dbg(ESP_DBG_ERROR, ++ "ext_irq_work_init failed %d\n", ++ err); ++ goto _err_epub; ++ } ++ } ++#endif ++ ++ } else { ++ sctrl = sif_sctrl; ++ sif_sctrl = NULL; ++ epub = sctrl->epub; ++ epub->sdio_state = ESP_SDIO_STATE_SECOND_INIT; ++ SET_IEEE80211_DEV(epub->hw, &func->dev); ++ epub->dev = &func->dev; ++ } ++ ++ sctrl->func = func; ++ sdio_set_drvdata(func, sctrl); ++ ++ sctrl->id = id; ++ sctrl->off = true; ++ ++ /* give us some time to enable, in ms */ ++ func->enable_timeout = 100; ++ ++ err = esdio_power_on(sctrl); ++ esp_dbg(ESP_DBG_TRACE, " %s >> power_on err %d \n", __func__, err); ++ ++ if (err) { ++ if (epub->sdio_state == ESP_SDIO_STATE_FIRST_INIT) ++ goto _err_ext_gpio; ++ else ++ goto _err_second_init; ++ } ++ check_target_id(epub); ++ ++ sdio_claim_host(func); ++ ++ err = sdio_set_block_size(func, sctrl->slc_blk_sz); ++ ++ if (err) { ++ esp_dbg(ESP_DBG_ERROR, ++ "Set sdio block size %d failed: %d)\n", ++ sctrl->slc_blk_sz, err); ++ sdio_release_host(func); ++ if (epub->sdio_state == ESP_SDIO_STATE_FIRST_INIT) ++ goto _err_off; ++ else ++ goto _err_second_init; ++ } ++ ++ sdio_release_host(func); ++ ++#ifdef LOWER_CLK ++ /* fix clock for dongle */ ++ sif_set_clock(func, 23); ++#endif //LOWER_CLK ++ ++ err = esp_pub_init_all(epub); ++ ++ if (err) { ++ esp_dbg(ESP_DBG_ERROR, "esp_init_all failed: %d\n", err); ++ if (epub->sdio_state == ESP_SDIO_STATE_FIRST_INIT) { ++ err = 0; ++ goto _err_first_init; ++ } ++ if (epub->sdio_state == ESP_SDIO_STATE_SECOND_INIT) ++ goto _err_second_init; ++ } ++ ++ esp_dbg(ESP_DBG_TRACE, " %s return %d\n", __func__, err); ++ if (epub->sdio_state == ESP_SDIO_STATE_FIRST_INIT) { ++ esp_dbg(ESP_DBG_TRACE, "first normal exit\n"); ++ epub->sdio_state = ESP_SDIO_STATE_FIRST_NORMAL_EXIT; ++ /* Rescan the esp8089 after loading the initial firmware */ ++ sdio_claim_host(func); ++ mmc_sw_reset(func->card); ++ sdio_release_host(func); ++ msleep(10); ++ } ++ ++ return err; ++ ++ _err_off: ++ esdio_power_off(sctrl); ++ _err_ext_gpio: ++#ifdef USE_EXT_GPIO ++ if (sif_get_ate_config() == 0) ++ ext_gpio_deinit(); ++ _err_epub: ++#endif ++ esp_pub_dealloc_mac80211(epub); ++ _err_dma: ++ kfree(sctrl->dma_buffer); ++ _err_last: ++ kfree(sctrl); ++ _err_first_init: ++ if (epub && epub->sdio_state == ESP_SDIO_STATE_FIRST_INIT) { ++ esp_dbg(ESP_DBG_ERROR, "first error exit\n"); ++ epub->sdio_state = ESP_SDIO_STATE_FIRST_ERROR_EXIT; ++ } ++ return err; ++ _err_second_init: ++ epub->sdio_state = ESP_SDIO_STATE_SECOND_ERROR_EXIT; ++ esp_sdio_remove(func); ++ return err; ++} ++ ++static void esp_sdio_remove(struct sdio_func *func) ++{ ++ struct esp_sdio_ctrl *sctrl = NULL; ++ struct esp_pub *epub = NULL; ++ ++ esp_dbg(ESP_DBG_TRACE, "%s enter\n", __func__); ++ ++ sctrl = sdio_get_drvdata(func); ++ ++ if (sctrl == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "%s no sctrl\n", __func__); ++ return; ++ } ++ ++ do { ++ epub = sctrl->epub; ++ if (epub == NULL) { ++ esp_dbg(ESP_DBG_ERROR, "%s epub null\n", __func__); ++ break; ++ } ++ if (epub->sdio_state != ESP_SDIO_STATE_FIRST_NORMAL_EXIT) { ++ if (epub->sip) { ++ sip_detach(epub->sip); ++ epub->sip = NULL; ++ esp_dbg(ESP_DBG_TRACE, ++ "%s sip detached \n", __func__); ++ } ++#ifdef USE_EXT_GPIO ++ if (sif_get_ate_config() == 0) ++ ext_gpio_deinit(); ++#endif ++ } else { ++ //sif_disable_target_interrupt(epub); ++ atomic_set(&epub->sip->state, SIP_STOP); ++ sif_disable_irq(epub); ++ } ++ ++ if (epub->sdio_state != ESP_SDIO_STATE_FIRST_NORMAL_EXIT) { ++ esp_pub_dealloc_mac80211(epub); ++ esp_dbg(ESP_DBG_TRACE, "%s dealloc mac80211 \n", ++ __func__); ++ ++ if (sctrl->dma_buffer) { ++ kfree(sctrl->dma_buffer); ++ sctrl->dma_buffer = NULL; ++ esp_dbg(ESP_DBG_TRACE, ++ "%s free dma_buffer \n", __func__); ++ } ++ ++ kfree(sctrl); ++ } ++ ++ } while (0); ++ ++ sdio_set_drvdata(func, NULL); ++ ++ /* ++ * Reset on sdio remove to leave the hardware in cold state, ++ * so a new module insertion will be possible ++ */ ++ if (epub->sdio_state == ESP_SDIO_STATE_SECOND_INIT) { ++ sdio_claim_host(func); ++ mmc_hw_reset(func->card); ++ sdio_release_host(func); ++ mdelay(10); ++ } ++ ++ esp_dbg(ESP_DBG_TRACE, "eagle sdio remove complete\n"); ++} ++ ++static int esp_sdio_suspend(struct device *dev) ++{ ++ struct sdio_func *func = dev_to_sdio_func(dev); ++ struct esp_sdio_ctrl *sctrl = sdio_get_drvdata(func); ++ struct esp_pub *epub = sctrl->epub; ++ ++ printk("%s", __func__); ++ atomic_set(&epub->ps.state, ESP_PM_ON); ++ ++ do { ++ u32 sdio_flags = 0; ++ int ret = 0; ++ sdio_flags = sdio_get_host_pm_caps(func); ++ ++ if (!(sdio_flags & MMC_PM_KEEP_POWER)) { ++ printk ++ ("%s can't keep power while host is suspended\n", ++ __func__); ++ } ++ ++ /* keep power while host suspended */ ++ ret = sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); ++ if (ret) { ++ printk("%s error while trying to keep power\n", ++ __func__); ++ } ++ } while (0); ++ ++ ++ return 0; ++ ++} ++ ++static int esp_sdio_resume(struct device *dev) ++{ ++ esp_dbg(ESP_DBG_ERROR, "%s", __func__); ++ ++ return 0; ++} ++ ++static const struct dev_pm_ops esp_sdio_pm_ops = { ++ .suspend = esp_sdio_suspend, ++ .resume = esp_sdio_resume, ++}; ++ ++static struct sdio_driver esp_sdio_driver = { ++ .name = "eagle_sdio", ++ .id_table = esp_sdio_devices, ++ .probe = esp_sdio_probe, ++ .remove = esp_sdio_remove, ++ .drv = { ++ .pm = &esp_sdio_pm_ops, ++ .of_match_table = esp_of_match_table, ++ }, ++}; ++ ++static int /*__init*/ esp_sdio_init(void) ++{ ++ ++ esp_debugfs_init(); ++ sdio_register_driver(&esp_sdio_driver); ++ ++ msleep(1000); ++ ++ sdio_unregister_driver(&esp_sdio_driver); ++ msleep(100); ++ sdio_register_driver(&esp_sdio_driver); ++ ++ return 0; ++} ++ ++static void /*__exit*/ esp_sdio_exit(void) ++{ ++ sdio_unregister_driver(&esp_sdio_driver); ++ esp_debugfs_exit(); ++} ++ ++MODULE_DEVICE_TABLE(sdio, esp_sdio_devices); ++MODULE_DEVICE_TABLE(of, esp_of_match_table); ++MODULE_AUTHOR("Espressif System"); ++MODULE_DESCRIPTION ++ ("Driver for SDIO interconnected eagle low-power WLAN devices"); ++MODULE_LICENSE("GPL"); ++ ++module_init(esp_sdio_init); ++module_exit(esp_sdio_exit); +diff --git a/drivers/net/wireless/esp8089/sip2_common.h b/drivers/net/wireless/esp8089/sip2_common.h +new file mode 100644 +index 000000000000..d46e87589b0b +--- /dev/null ++++ b/drivers/net/wireless/esp8089/sip2_common.h +@@ -0,0 +1,475 @@ ++/* ++ * Copyright (c) 2010 - 2014 Espressif System. ++ * ++ * Common definitions of Serial Interconnctor Protocol ++ * ++ * little endian ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef _SIP2_COMMON_H ++#define _SIP2_COMMON_H ++ ++#ifdef __ets__ ++#include "utils.h" ++#endif /*__ets__*/ ++ ++/* max 16 types */ ++typedef enum { ++ SIP_CTRL = 0, ++ SIP_DATA, ++ SIP_DATA_AMPDU ++} SIP_TYPE; ++ ++typedef enum { ++ SIP_TX_CTRL_BUF = 0, /* from host */ ++ SIP_RX_CTRL_BUF, /* to host */ ++ SIP_TX_DATA_BUF, /* from host */ ++ SIP_RX_DATA_BUF /* to host */ ++} SIP_BUF_TYPE; ++ ++enum sip_cmd_id { ++ SIP_CMD_GET_VER = 0, ++ SIP_CMD_WRITE_MEMORY, //1 ROM code ++ SIP_CMD_READ_MEMORY, //2 ++ SIP_CMD_WRITE_REG, //3 ROM code ++ SIP_CMD_READ_REG, //4 ++ SIP_CMD_BOOTUP, //5 ROM code ++ SIP_CMD_COPYBACK, //6 ++ SIP_CMD_INIT, //7 ++ SIP_CMD_SCAN, //8 ++ SIP_CMD_SETKEY, //9 ++ SIP_CMD_CONFIG, //10 ++ SIP_CMD_BSS_INFO_UPDATE, //11 ++ SIP_CMD_LOOPBACK, //12 ROM code ++ //do not add cmd before this line ++ SIP_CMD_SET_WMM_PARAM, ++ SIP_CMD_AMPDU_ACTION, ++ SIP_CMD_HB_REQ, //15 ++ SIP_CMD_RESET_MAC, //16 ++ SIP_CMD_PRE_DOWN, //17 ++ SIP_CMD_SLEEP, /* for sleep testing */ ++ SIP_CMD_WAKEUP, /* for sleep testing */ ++ SIP_CMD_DEBUG, /* for general testing */ ++ SIP_CMD_GET_FW_VER, /* get fw rev. */ ++ SIP_CMD_SETVIF, ++ SIP_CMD_SETSTA, ++ SIP_CMD_PS, ++ SIP_CMD_ATE, ++ SIP_CMD_SUSPEND, ++ SIP_CMD_RECALC_CREDIT, ++ SIP_CMD_MAX, ++}; ++ ++enum { ++ SIP_EVT_TARGET_ON = 0, // ++ SIP_EVT_BOOTUP, //1 in ROM code ++ SIP_EVT_COPYBACK, //2 ++ SIP_EVT_SCAN_RESULT, //3 ++ SIP_EVT_TX_STATUS, //4 ++ SIP_EVT_CREDIT_RPT, //5, in ROM code ++ SIP_EVT_ERROR, //6 ++ SIP_EVT_LOOPBACK, //7, in ROM code ++ SIP_EVT_SNPRINTF_TO_HOST, //8 in ROM code ++ //do not add evt before this line ++ SIP_EVT_HB_ACK, //9 ++ SIP_EVT_RESET_MAC_ACK, //10 ++ SIP_EVT_WAKEUP, //11 /* for sleep testing */ ++ SIP_EVT_DEBUG, //12 /* for general testing */ ++ SIP_EVT_PRINT_TO_HOST, //13 ++ SIP_EVT_TRC_AMPDU, //14 ++ SIP_EVT_ROC, //15 ++ SIP_EVT_RESETTING, ++ SIP_EVT_ATE, ++ SIP_EVT_EP, ++ SIP_EVT_INIT_EP, ++ SIP_EVT_SLEEP, ++ SIP_EVT_TXIDLE, ++ SIP_EVT_NOISEFLOOR, ++ SIP_EVT_MAX ++}; ++ ++#define SIP_IFIDX_MASK 0xf0 ++#define SIP_IFIDX_S 4 ++#define SIP_TYPE_MASK 0x0f ++#define SIP_TYPE_S 0 ++ ++#define SIP_HDR_GET_IFIDX(fc0) (((fc0) & SIP_IFIDX_MASK) >> SIP_IFIDX_S) ++#define SIP_HDR_SET_IFIDX(fc0, ifidx) ( (fc0) = ((fc0) & ~SIP_IFIDX_MASK) | ((ifidx) << SIP_IFIDX_S & SIP_IFIDX_MASK) ) ++#define SIP_HDR_GET_TYPE(fc0) ((fc0) & SIP_TYPE_MASK ) ++/* assume type field is cleared */ ++#define SIP_HDR_SET_TYPE(fc0, type) ((fc0) = ((fc0) & ~ SIP_TYPE_MASK) | ((type) & SIP_TYPE_MASK)) ++ ++/* sip 2.0, not hybrid header so far */ ++#define SIP_HDR_IS_CTRL(hdr) (SIP_HDR_GET_TYPE((hdr)->fc[0]) == SIP_CTRL) ++#define SIP_HDR_IS_DATA(hdr) (SIP_HDR_GET_TYPE((hdr)->fc[0]) == SIP_DATA) ++#define SIP_HDR_IS_AMPDU(hdr) (SIP_HDR_GET_TYPE((hdr)->fc[0]) == SIP_DATA_AMPDU) ++ ++/* fc[1] flags, only for data pkt. Ctrl pkts use fc[1] as eventID */ ++#define SIP_HDR_SET_FLAGS(hdr, flags) ((hdr)->fc[1] |= (flags)) ++#define SIP_HDR_F_MORE_PKT 0x1 ++#define SIP_HDR_F_NEED_CRDT_RPT 0x2 ++#define SIP_HDR_F_SYNC 0x4 ++#define SIP_HDR_F_SYNC_RESET 0x8 ++#define SIP_HDR_F_PM_TURNING_ON 0x10 ++#define SIP_HDR_F_PM_TURNING_OFF 0x20 ++ ++#define SIP_HDR_NEED_CREDIT_UPDATE(hdr) ((hdr)->fc[1] & SIP_HDR_F_NEED_CRDT_RPT) ++#define SIP_HDR_IS_MORE_PKT(hdr) ((hdr)->fc[1] & SIP_HDR_F_MORE_PKT) ++#define SIP_HDR_IS_CRDT_RPT(hdr) ((hdr)->fc[1] & SIP_HDR_F_CRDT_RPT) ++#define SIP_HDR_IS_SYNC(hdr) ((hdr)->fc[1] & SIP_HDR_F_SYNC) ++#define SIP_HDR_IS_SYNC_RESET(hdr) ((hdr)->fc[1] & SIP_HDR_F_SYNC_RESET) ++#define SIP_HDR_IS_SYNC_PKT(hdr) (SIP_HDR_IS_SYNC(hdr) | SIP_HDR_IS_SYNC_RESET(hdr)) ++#define SIP_HDR_SET_SYNC(hdr) SIP_HDR_SET_FLAGS((hdr), SIP_HDR_F_SYNC) ++#define SIP_HDR_SET_SYNC_RESET(hdr) SIP_HDR_SET_FLAGS((hdr), SIP_HDR_F_SYNC_RESET) ++#define SIP_HDR_SET_MORE_PKT(hdr) SIP_HDR_SET_FLAGS((hdr), SIP_HDR_F_MORE_PKT) ++#define SIP_HDR_SET_PM_TURNING_ON(hdr) SIP_HDR_SET_FLAGS((hdr), SIP_HDR_F_PM_TURNING_ON) ++#define SIP_HDR_IS_PM_TURNING_ON(hdr) ((hdr)->fc[1] & SIP_HDR_F_PM_TURNING_ON) ++#define SIP_HDR_SET_PM_TURNING_OFF(hdr) SIP_HDR_SET_FLAGS((hdr), SIP_HDR_F_PM_TURNING_OFF) ++#define SIP_HDR_IS_PM_TURNING_OFF(hdr) ((hdr)->fc[1] & SIP_HDR_F_PM_TURNING_OFF) ++ ++/* ++ * fc[0]: first 4bit: ifidx; last 4bit: type ++ * fc[1]: flags ++ * ++ * Don't touch the header definitons ++ */ ++struct sip_hdr_min { ++ u8 fc[2]; ++ __le16 len; ++} __packed; ++ ++/* not more than 4byte long */ ++struct sip_tx_data_info { ++ u8 tid; ++ u8 ac; ++ u8 p2p:1, enc_flag:7; ++ u8 hw_kid; ++} __packed; ++ ++/* NB: this structure should be not more than 4byte !! */ ++struct sip_tx_info { ++ union { ++ u32 cmdid; ++ struct sip_tx_data_info dinfo; ++ } u; ++} __packed; ++ ++struct sip_hdr { ++ u8 fc[2]; //fc[0]: type and ifidx ; fc[1] is eventID if the first ctrl pkt in the chain. data pkt still can use fc[1] to set flag ++ __le16 len; ++ union { ++ volatile u32 recycled_credits; /* last 12bits is credits, first 20 bits is actual length of the first pkt in the chain */ ++ struct sip_tx_info tx_info; ++ } u; ++ u32 seq; ++} __packed; ++ ++#define h_credits u.recycled_credits ++#define c_evtid fc[1] ++#define c_cmdid u.tx_info.u.cmdid ++#define d_ac u.tx_info.u.dinfo.ac ++#define d_tid u.tx_info.u.dinfo.tid ++#define d_p2p u.tx_info.u.dinfo.p2p ++#define d_enc_flag u.tx_info.u.dinfo.enc_flag ++#define d_hw_kid u.tx_info.u.dinfo.hw_kid ++ ++#define SIP_CREDITS_MASK 0xfff /* last 12 bits */ ++ ++#ifdef HOST_RC ++ ++#define RC_CNT_MASK 0xf ++ ++struct sip_rc_status { ++ u32 rc_map; ++ union { ++ u32 rc_cnt1:4, rc_cnt2:4, rc_cnt3:4, rc_cnt4:4, rc_cnt5:4; ++ ++ u32 rc_cnt_store; ++ }; ++}; ++ ++/* copy from mac80211.h */ ++struct sip_tx_rc { ++ struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; ++ s8 rts_cts_rate_idx; ++}; ++#endif /* HOST_RC */ ++ ++#define SIP_HDR_MIN_LEN 4 ++#define SIP_HDR_LEN sizeof(struct sip_hdr) ++#define SIP_CTRL_HDR_LEN SIP_HDR_LEN /* same as sip_hdr in sip2 design */ ++#define SIP_BOOT_BUF_SIZE 256 ++#define SIP_CTRL_BUF_SZ 256 /* too much?? */ ++#define SIP_CTRL_BUF_N 6 ++#define SIP_CTRL_TXBUF_N 2 ++#define SIP_CTRL_RXBUF_N 4 ++ ++/* WAR for mblk */ ++#define SIP_RX_ADDR_PREFIX_MASK 0xfc000000 ++#define SIP_RX_ADDR_SHIFT 6 /* [31:5], shift 6 bits */ ++ ++struct sip_cmd_write_memory { ++ u32 addr; ++ u32 len; ++} __packed; ++ ++struct sip_cmd_read_memory { ++ u32 addr; ++ u32 len; ++} __packed; ++ ++struct sip_cmd_write_reg { ++ u32 addr; ++ u32 val; ++} __packed; ++ ++struct sip_cmd_bootup { ++ u32 boot_addr; ++} __packed; ++ ++struct sip_cmd_loopback { ++ u32 txlen; //host to target packet len, 0 means no txpacket ++ u32 rxlen; //target to host packet len, 0 means no rxpacket ++ u32 pack_id; //sequence of packet ++} __packed; ++ ++struct sip_evt_loopback { ++ u32 txlen; //host to target packet len, 0 means no txpacket ++ u32 rxlen; //target to host packet len, 0 means no rxpacket ++ u32 pack_id; //sequence of packet ++} __packed; ++ ++struct sip_cmd_copyback { ++ u32 addr; ++ u32 len; ++} __packed; ++ ++struct sip_cmd_scan { ++// u8 ssid[32]; ++ u8 ssid_len; ++// u8 hw_channel[14]; ++ u8 n_channels; ++ u8 ie_len; ++ u8 aborted; ++} __packed; // ie[] append at the end ++ ++ ++#ifndef ETH_ALEN ++#define ETH_ALEN 6 ++#endif /* ETH_ALEN */ ++ ++struct sip_cmd_setkey { ++ u8 bssid_no; ++ u8 addr[ETH_ALEN]; ++ u8 alg; ++ u8 keyidx; ++ u8 hw_key_idx; ++ u8 flags; ++ u8 keylen; ++ u8 key[32]; ++} __packed; ++ ++struct sip_cmd_config { ++ u16 center_freq; ++ u16 duration; ++} __packed; ++ ++struct sip_cmd_bss_info_update { ++ u8 bssid[ETH_ALEN]; ++ u16 isassoc; ++ u32 beacon_int; ++ u8 bssid_no; ++} __packed; ++ ++struct sip_evt_bootup { ++ u16 tx_blksz; ++ u8 mac_addr[ETH_ALEN]; ++ /* anything else ? */ ++} __packed; ++ ++struct sip_cmd_setvif { ++ u8 index; ++ u8 mac[ETH_ALEN]; ++ u8 set; ++ u8 op_mode; ++ u8 is_p2p; ++} __packed; ++ ++enum esp_ieee80211_phytype { ++ ESP_IEEE80211_T_CCK = 0, ++ ESP_IEEE80211_T_OFDM = 1, ++ ESP_IEEE80211_T_HT20_L = 2, ++ ESP_IEEE80211_T_HT20_S = 3, ++}; ++ ++struct sip_cmd_setsta { ++ u8 ifidx; ++ u8 index; ++ u8 set; ++ u8 phymode; ++ u8 mac[ETH_ALEN]; ++ u16 aid; ++ u8 ampdu_factor; ++ u8 ampdu_density; ++ u16 resv; ++} __packed; ++ ++struct sip_cmd_ps { ++ u8 dtim_period; ++ u8 max_sleep_period; ++ u8 on; ++ u8 resv; ++} __packed; ++ ++struct sip_cmd_suspend { ++ u8 suspend; ++ u8 resv[3]; ++} __packed; ++ ++#define SIP_DUMP_RPBM_ERR BIT(0) ++#define SIP_RXABORT_FIXED BIT(1) ++#define SIP_SUPPORT_BGSCAN BIT(2) ++struct sip_evt_bootup2 { ++ u16 tx_blksz; ++ u8 mac_addr[ETH_ALEN]; ++ u16 rx_blksz; ++ u8 credit_to_reserve; ++ u8 options; ++ s16 noise_floor; ++ u8 resv[2]; ++ /* anything else ? */ ++} __packed; ++ ++typedef enum { ++ TRC_TX_AMPDU_STOPPED = 1, ++ TRC_TX_AMPDU_OPERATIONAL, ++ TRC_TX_AMPDU_WAIT_STOP, ++ TRC_TX_AMPDU_WAIT_OPERATIONAL, ++ TRC_TX_AMPDU_START, ++} trc_ampdu_state_t; ++ ++struct sip_evt_trc_ampdu { ++ u8 state; ++ u8 tid; ++ u8 addr[ETH_ALEN]; ++} __packed; ++ ++struct sip_cmd_set_wmm_params { ++ u8 aci; ++ u8 aifs; ++ u8 ecw_min; ++ u8 ecw_max; ++ u16 txop_us; ++} __packed; ++ ++#define SIP_AMPDU_RX_START 0 ++#define SIP_AMPDU_RX_STOP 1 ++#define SIP_AMPDU_TX_OPERATIONAL 2 ++#define SIP_AMPDU_TX_STOP 3 ++struct sip_cmd_ampdu_action { ++ u8 action; ++ u8 index; ++ u8 tid; ++ u8 win_size; ++ u16 ssn; ++ u8 addr[ETH_ALEN]; ++} __packed; ++ ++#define SIP_TX_ST_OK 0 ++#define SIP_TX_ST_NOEB 1 ++#define SIP_TX_ST_ACKTO 2 ++#define SIP_TX_ST_ENCERR 3 ++ ++//NB: sip_tx_status must be 4 bytes aligned ++struct sip_tx_status { ++ u32 sip_seq; ++#ifdef HOST_RC ++ struct sip_rc_status rcstatus; ++#endif /* HOST_RC */ ++ u8 errno; /* success or failure code */ ++ u8 rate_index; ++ char ack_signal; ++ u8 pad; ++} __packed; ++ ++struct sip_evt_tx_report { ++ u32 pkts; ++ struct sip_tx_status status[0]; ++} __packed; ++ ++struct sip_evt_tx_mblk { ++ u32 mblk_map; ++} __packed; ++ ++struct sip_evt_scan_report { ++ u16 scan_id; ++ u16 aborted; ++} __packed; ++ ++struct sip_evt_roc { ++ u16 state; //start:1, end :0 ++ u16 is_ok; ++} __packed; ++ ++struct sip_evt_txidle { ++ u32 last_seq; ++} __packed; ++ ++struct sip_evt_noisefloor { ++ s16 noise_floor; ++ u16 pad; ++} __packed; ++/* ++ * for mblk direct memory access, no need for sip_hdr. tx: first 2k for contrl msg, ++ * rest of 14k for data. rx, same. ++ */ ++#ifdef TEST_MODE ++ ++struct sip_cmd_sleep { ++ u32 sleep_mode; ++ u32 sleep_tm_ms; ++ u32 wakeup_tm_ms; //zero: after receive bcn, then sleep, nozero: delay nozero ms to sleep ++ u32 sleep_times; //zero: always sleep, nozero: after nozero number sleep/wakeup, then end up sleep ++} __packed; ++ ++struct sip_cmd_wakeup { ++ u32 check_data; //0:copy to event ++} __packed; ++ ++struct sip_evt_wakeup { ++ u32 check_data; ++} __packed; ++ ++//general debug command ++struct sip_cmd_debug { ++ u32 cmd_type; ++ u32 para_num; ++ u32 para[10]; ++} __packed; ++ ++struct sip_evt_debug { ++ u16 len; ++ u32 results[12]; ++ u16 pad; ++} __packed; ++ ++struct sip_cmd_ate { ++ //u8 len; ++ u8 cmdstr[0]; ++} __packed; ++ ++ ++ ++#endif //ifdef TEST_MODE ++ ++#endif /* _SIP_COMMON_H_ */ +diff --git a/drivers/net/wireless/esp8089/slc_host_register.h b/drivers/net/wireless/esp8089/slc_host_register.h +new file mode 100644 +index 000000000000..2cdb2c856d15 +--- /dev/null ++++ b/drivers/net/wireless/esp8089/slc_host_register.h +@@ -0,0 +1,271 @@ ++//Generated at 2012-10-23 20:11:08 ++/* ++ * Copyright (c) 2011 Espressif System ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#ifndef SLC_HOST_REGISTER_H_INCLUDED ++#define SLC_HOST_REGISTER_H_INCLUDED ++ ++/* #define REG_SLC_HOST_BASE 0x00000000 */ ++/* skip the token1, since reading it will clean the credit */ ++#define REG_SLC_HOST_BASE 0x00000000 ++#define REG_SLC_BASE 0x00000000 ++ ++ ++#define SLC_HOST_PF (REG_SLC_HOST_BASE + 0x0) ++#define SLC_HOST_TOKEN_RDATA (REG_SLC_HOST_BASE + 0x4) ++#define SLC_HOST_RX_PF_EOF 0x0000000F ++#define SLC_HOST_RX_PF_EOF_S 28 ++#define SLC_HOST_TOKEN1 0x00000FFF ++#define SLC_HOST_TOKEN1_S 16 ++#define SLC_HOST_RX_PF_VALID (BIT(15)) ++#define SLC_HOST_TOKEN0 0x00000FFF ++#define SLC_HOST_TOKEN0_S 0 ++ ++#define SLC_HOST_TOKEN0_MASK SLC_HOST_TOKEN0 ++ ++#define SLC_HOST_INT_RAW (REG_SLC_HOST_BASE + 0x8) ++#define SLC_HOST_EXT_BIT3_INT_RAW (BIT(22)) ++#define SLC_HOST_EXT_BIT2_INT_RAW (BIT(21)) ++#define SLC_HOST_EXT_BIT1_INT_RAW (BIT(20)) ++#define SLC_HOST_RXFIFO_NOT_EMPTY_INT_RAW (BIT(19)) ++#define SLC_HOST_RX_PF_VALID_INT_RAW (BIT(18)) ++#define SLC_HOST_TX_OVF_INT_RAW (BIT(17)) ++#define SLC_HOST_RX_UDF_INT_RAW (BIT(16)) ++#define SLC_HOST_TX_START_INT_RAW (BIT(15)) ++#define SLC_HOST_RX_START_INT_RAW (BIT(14)) ++#define SLC_HOST_RX_EOF_INT_RAW (BIT(13)) ++#define SLC_HOST_RX_SOF_INT_RAW (BIT(12)) ++#define SLC_HOST_TOKEN1_0TO1_INT_RAW (BIT(11)) ++#define SLC_HOST_TOKEN0_0TO1_INT_RAW (BIT(10)) ++#define SLC_HOST_TOKEN1_1TO0_INT_RAW (BIT(9)) ++#define SLC_HOST_TOKEN0_1TO0_INT_RAW (BIT(8)) ++#define SLC_HOST_TOHOST_BIT7_INT_RAW (BIT(7)) ++#define SLC_HOST_TOHOST_BIT6_INT_RAW (BIT(6)) ++#define SLC_HOST_TOHOST_BIT5_INT_RAW (BIT(5)) ++#define SLC_HOST_TOHOST_BIT4_INT_RAW (BIT(4)) ++#define SLC_HOST_TOHOST_BIT3_INT_RAW (BIT(3)) ++#define SLC_HOST_TOHOST_BIT2_INT_RAW (BIT(2)) ++#define SLC_HOST_TOHOST_BIT1_INT_RAW (BIT(1)) ++#define SLC_HOST_TOHOST_BIT0_INT_RAW (BIT(0)) ++ ++#define SLC_HOST_STATE_W0 (REG_SLC_HOST_BASE + 0xC) ++#define SLC_HOST_STATE3 0x000000FF ++#define SLC_HOST_STATE3_S 24 ++#define SLC_HOST_STATE2 0x000000FF ++#define SLC_HOST_STATE2_S 16 ++#define SLC_HOST_STATE1 0x000000FF ++#define SLC_HOST_STATE1_S 8 ++#define SLC_HOST_STATE0 0x000000FF ++#define SLC_HOST_STATE0_S 0 ++ ++#define SLC_HOST_STATE_W1 (REG_SLC_HOST_BASE + 0x10) ++#define SLC_HOST_STATE7 0x000000FF ++#define SLC_HOST_STATE7_S 24 ++#define SLC_HOST_STATE6 0x000000FF ++#define SLC_HOST_STATE6_S 16 ++#define SLC_HOST_STATE5 0x000000FF ++#define SLC_HOST_STATE5_S 8 ++#define SLC_HOST_STATE4 0x000000FF ++#define SLC_HOST_STATE4_S 0 ++ ++#define SLC_HOST_CONF_W0 (REG_SLC_HOST_BASE + 0x14) ++#define SLC_HOST_CONF3 0x000000FF ++#define SLC_HOST_CONF3_S 24 ++#define SLC_HOST_CONF2 0x000000FF ++#define SLC_HOST_CONF2_S 16 ++#define SLC_HOST_CONF1 0x000000FF ++#define SLC_HOST_CONF1_S 8 ++#define SLC_HOST_CONF0 0x000000FF ++#define SLC_HOST_CONF0_S 0 ++ ++#define SLC_HOST_CONF_W1 (REG_SLC_HOST_BASE + 0x18) ++#define SLC_HOST_CONF7 0x000000FF ++#define SLC_HOST_CONF7_S 24 ++#define SLC_HOST_CONF6 0x000000FF ++#define SLC_HOST_CONF6_S 16 ++#define SLC_HOST_CONF5 0x000000FF ++#define SLC_HOST_CONF5_S 8 ++#define SLC_HOST_CONF4 0x000000FF ++#define SLC_HOST_CONF4_S 0 ++ ++#define SLC_HOST_INT_ST (REG_SLC_HOST_BASE + 0x1C) ++#define SLC_HOST_RX_ST (BIT(23)) ++#define SLC_HOST_EXT_BIT3_INT_ST (BIT(22)) ++#define SLC_HOST_EXT_BIT2_INT_ST (BIT(21)) ++#define SLC_HOST_EXT_BIT1_INT_ST (BIT(20)) ++#define SLC_HOST_RXFIFO_NOT_EMPTY_INT_ST (BIT(19)) ++#define SLC_HOST_RX_PF_VALID_INT_ST (BIT(18)) ++#define SLC_HOST_TX_OVF_INT_ST (BIT(17)) ++#define SLC_HOST_RX_UDF_INT_ST (BIT(16)) ++#define SLC_HOST_TX_START_INT_ST (BIT(15)) ++#define SLC_HOST_RX_START_INT_ST (BIT(14)) ++#define SLC_HOST_RX_EOF_INT_ST (BIT(13)) ++#define SLC_HOST_RX_SOF_INT_ST (BIT(12)) ++#define SLC_HOST_TOKEN1_0TO1_INT_ST (BIT(11)) ++#define SLC_HOST_TOKEN0_0TO1_INT_ST (BIT(10)) ++#define SLC_HOST_TOKEN1_1TO0_INT_ST (BIT(9)) ++#define SLC_HOST_TOKEN0_1TO0_INT_ST (BIT(8)) ++#define SLC_HOST_TOHOST_BIT7_INT_ST (BIT(7)) ++#define SLC_HOST_TOHOST_BIT6_INT_ST (BIT(6)) ++#define SLC_HOST_TOHOST_BIT5_INT_ST (BIT(5)) ++#define SLC_HOST_TOHOST_BIT4_INT_ST (BIT(4)) ++#define SLC_HOST_TOHOST_BIT3_INT_ST (BIT(3)) ++#define SLC_HOST_TOHOST_BIT2_INT_ST (BIT(2)) ++#define SLC_HOST_TOHOST_BIT1_INT_ST (BIT(1)) ++#define SLC_HOST_TOHOST_BIT0_INT_ST (BIT(0)) ++ ++#define SLC_HOST_CONF_W2 (REG_SLC_HOST_BASE + 0x20) ++#define SLC_HOST_CONF11 0x000000FF ++#define SLC_HOST_CONF11_S 24 ++#define SLC_HOST_CONF10 0x000000FF ++#define SLC_HOST_CONF10_S 16 ++#define SLC_HOST_CONF9 0x000000FF ++#define SLC_HOST_CONF9_S 8 ++#define SLC_HOST_CONF8 0x000000FF ++#define SLC_HOST_CONF8_S 0 ++ ++#define SLC_HOST_CONF_W3 (REG_SLC_HOST_BASE + 0x24) ++#define SLC_HOST_CONF15 0x000000FF ++#define SLC_HOST_CONF15_S 24 ++#define SLC_HOST_CONF14 0x000000FF ++#define SLC_HOST_CONF14_S 16 ++#define SLC_HOST_CONF13 0x000000FF ++#define SLC_HOST_CONF13_S 8 ++#define SLC_HOST_CONF12 0x000000FF ++#define SLC_HOST_CONF12_S 0 ++ ++#define SLC_HOST_GEN_TXDONE_INT BIT(16) ++#define SLC_HOST_GEN_RXDONE_INT BIT(17) ++ ++#define SLC_HOST_CONF_W4 (REG_SLC_HOST_BASE + 0x28) ++#define SLC_HOST_CONF19 0x000000FF ++#define SLC_HOST_CONF19_S 24 ++#define SLC_HOST_CONF18 0x000000FF ++#define SLC_HOST_CONF18_S 16 ++#define SLC_HOST_CONF17 0x000000FF ++#define SLC_HOST_CONF17_S 8 ++#define SLC_HOST_CONF16 0x000000FF ++#define SLC_HOST_CONF16_S 0 ++ ++#define SLC_HOST_TOKEN_WDATA (REG_SLC_HOST_BASE + 0x2C) ++#define SLC_HOST_TOKEN1_WD 0x00000FFF ++#define SLC_HOST_TOKEN1_WD_S 16 ++#define SLC_HOST_TOKEN0_WD 0x00000FFF ++#define SLC_HOST_TOKEN0_WD_S 0 ++ ++#define SLC_HOST_INT_CLR (REG_SLC_HOST_BASE + 0x30) ++#define SLC_HOST_TOKEN1_WR (BIT(31)) ++#define SLC_HOST_TOKEN0_WR (BIT(30)) ++#define SLC_HOST_TOKEN1_DEC (BIT(29)) ++#define SLC_HOST_TOKEN0_DEC (BIT(28)) ++#define SLC_HOST_EXT_BIT3_INT_CLR (BIT(22)) ++#define SLC_HOST_EXT_BIT2_INT_CLR (BIT(21)) ++#define SLC_HOST_EXT_BIT1_INT_CLR (BIT(20)) ++#define SLC_HOST_EXT_BIT0_INT_CLR (BIT(19)) ++#define SLC_HOST_RX_PF_VALID_INT_CLR (BIT(18)) ++#define SLC_HOST_TX_OVF_INT_CLR (BIT(17)) ++#define SLC_HOST_RX_UDF_INT_CLR (BIT(16)) ++#define SLC_HOST_TX_START_INT_CLR (BIT(15)) ++#define SLC_HOST_RX_START_INT_CLR (BIT(14)) ++#define SLC_HOST_RX_EOF_INT_CLR (BIT(13)) ++#define SLC_HOST_RX_SOF_INT_CLR (BIT(12)) ++#define SLC_HOST_TOKEN1_0TO1_INT_CLR (BIT(11)) ++#define SLC_HOST_TOKEN0_0TO1_INT_CLR (BIT(10)) ++#define SLC_HOST_TOKEN1_1TO0_INT_CLR (BIT(9)) ++#define SLC_HOST_TOKEN0_1TO0_INT_CLR (BIT(8)) ++#define SLC_HOST_TOHOST_BIT7_INT_CLR (BIT(7)) ++#define SLC_HOST_TOHOST_BIT6_INT_CLR (BIT(6)) ++#define SLC_HOST_TOHOST_BIT5_INT_CLR (BIT(5)) ++#define SLC_HOST_TOHOST_BIT4_INT_CLR (BIT(4)) ++#define SLC_HOST_TOHOST_BIT3_INT_CLR (BIT(3)) ++#define SLC_HOST_TOHOST_BIT2_INT_CLR (BIT(2)) ++#define SLC_HOST_TOHOST_BIT1_INT_CLR (BIT(1)) ++#define SLC_HOST_TOHOST_BIT0_INT_CLR (BIT(0)) ++ ++#define SLC_HOST_INT_ENA (REG_SLC_HOST_BASE + 0x34) ++#define SLC_HOST_EXT_BIT3_INT_ENA (BIT(22)) ++#define SLC_HOST_EXT_BIT2_INT_ENA (BIT(21)) ++#define SLC_HOST_EXT_BIT1_INT_ENA (BIT(20)) ++#define SLC_HOST_EXT_BIT0_INT_ENA (BIT(19)) ++#define SLC_HOST_RX_PF_VALID_INT_ENA (BIT(18)) ++#define SLC_HOST_TX_OVF_INT_ENA (BIT(17)) ++#define SLC_HOST_RX_UDF_INT_ENA (BIT(16)) ++#define SLC_HOST_TX_START_INT_ENA (BIT(15)) ++#define SLC_HOST_RX_START_INT_ENA (BIT(14)) ++#define SLC_HOST_RX_EOF_INT_ENA (BIT(13)) ++#define SLC_HOST_RX_SOF_INT_ENA (BIT(12)) ++#define SLC_HOST_TOKEN1_0TO1_INT_ENA (BIT(11)) ++#define SLC_HOST_TOKEN0_0TO1_INT_ENA (BIT(10)) ++#define SLC_HOST_TOKEN1_1TO0_INT_ENA (BIT(9)) ++#define SLC_HOST_TOKEN0_1TO0_INT_ENA (BIT(8)) ++#define SLC_HOST_TOHOST_BIT7_INT_ENA (BIT(7)) ++#define SLC_HOST_TOHOST_BIT6_INT_ENA (BIT(6)) ++#define SLC_HOST_TOHOST_BIT5_INT_ENA (BIT(5)) ++#define SLC_HOST_TOHOST_BIT4_INT_ENA (BIT(4)) ++#define SLC_HOST_TOHOST_BIT3_INT_ENA (BIT(3)) ++#define SLC_HOST_TOHOST_BIT2_INT_ENA (BIT(2)) ++#define SLC_HOST_TOHOST_BIT1_INT_ENA (BIT(1)) ++#define SLC_HOST_TOHOST_BIT0_INT_ENA (BIT(0)) ++ ++#define SLC_HOST_CONF_W5 (REG_SLC_HOST_BASE + 0x3C) ++#define SLC_HOST_CONF23 0x000000FF ++#define SLC_HOST_CONF23_S 24 ++#define SLC_HOST_CONF22 0x000000FF ++#define SLC_HOST_CONF22_S 16 ++#define SLC_HOST_CONF21 0x000000FF ++#define SLC_HOST_CONF21_S 8 ++#define SLC_HOST_CONF20 0x000000FF ++#define SLC_HOST_CONF20_S 0 ++ ++#define SLC_HOST_WIN_CMD (REG_SLC_HOST_BASE + 0x40) ++ ++ ++#define SLC_HOST_DATE (REG_SLC_HOST_BASE + 0x78) ++#define SLC_HOST_ID (REG_SLC_HOST_BASE + 0x7C) ++ ++#define SLC_ADDR_WINDOW_CLEAR_MASK (~(0xf<<12)) ++#define SLC_FROM_HOST_ADDR_WINDOW (0x1<<12) ++#define SLC_TO_HOST_ADDR_WINDOW (0x3<<12) ++ ++#define SLC_SET_FROM_HOST_ADDR_WINDOW(v) do { \ ++ (v) &= 0xffff; \ ++ (v) &= SLC_ADDR_WINDOW_CLEAR_MASK; \ ++ (v) |= SLC_FROM_HOST_ADDR_WINDOW; \ ++} while (0); ++ ++#define SLC_SET_TO_HOST_ADDR_WINDOW(v) do { \ ++ (v) &= 0xffff; \ ++ (v) &= SLC_ADDR_WINDOW_CLEAR_MASK; \ ++ (v) |= SLC_TO_HOST_ADDR_WINDOW; \ ++} while (0); ++ ++#define SLC_INT_ENA (REG_SLC_BASE + 0xC) ++#define SLC_RX_EOF_INT_ENA BIT(17) ++#define SLC_FRHOST_BIT2_INT_ENA BIT(2) ++ ++#define SLC_RX_LINK (REG_SLC_BASE + 0x24) ++#define SLC_RXLINK_START BIT(29) ++ ++#define SLC_BRIDGE_CONF (REG_SLC_BASE + 0x44) ++#define SLC_TX_PUSH_IDLE_NUM 0xFFFF ++#define SLC_TX_PUSH_IDLE_NUM_S 16 ++#define SLC_HDA_MAP_128K BIT(13) ++#define SLC_TX_DUMMY_MODE BIT(12) ++#define SLC_FIFO_MAP_ENA 0x0000000F ++#define SLC_FIFO_MAP_ENA_S 8 ++#define SLC_TXEOF_ENA 0x0000003F ++#define SLC_TXEOF_ENA_S ++ ++ ++#endif // SLC_HOST_REGISTER_H_INCLUDED +-- +2.34.1 + From cd0bf00b1ffdf2da56d9dc8aacf05f38d8c92b38 Mon Sep 17 00:00:00 2001 From: mason Date: Wed, 8 Nov 2023 14:59:38 +0000 Subject: [PATCH 096/112] Bump kernel to 6.1.62 on supported platforms --- projects/Amlogic/packages/linux/package.mk | 2 +- projects/Rockchip/packages/linux/package.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/Amlogic/packages/linux/package.mk b/projects/Amlogic/packages/linux/package.mk index 60962c2f0..d7077c56c 100644 --- a/projects/Amlogic/packages/linux/package.mk +++ b/projects/Amlogic/packages/linux/package.mk @@ -18,7 +18,7 @@ PKG_PATCH_DIRS+="${DEVICE}" case ${DEVICE} in S922X*) - PKG_VERSION="6.1.61" + PKG_VERSION="6.1.62" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" ;; esac diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index 3d5efdca6..07de89cdc 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -36,7 +36,7 @@ case ${DEVICE} in PKG_GIT_CLONE_BRANCH="main" ;; RK33*) - PKG_VERSION="6.1.61" + PKG_VERSION="6.1.62" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" ;; esac From 14f05cf3609c115d24b7ce94488c5640a8a9372b Mon Sep 17 00:00:00 2001 From: adamg Date: Wed, 8 Nov 2023 16:41:24 +0000 Subject: [PATCH 097/112] linux-firmware: symlink all RTL BT firmware files on RK3588 The bsp kernel reformats the path and filename of realtek bluetooth firmware and config files --- packages/kernel/linux-firmware/kernel-firmware/package.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/kernel/linux-firmware/kernel-firmware/package.mk b/packages/kernel/linux-firmware/kernel-firmware/package.mk index 2e929b233..53efc4b2f 100644 --- a/packages/kernel/linux-firmware/kernel-firmware/package.mk +++ b/packages/kernel/linux-firmware/kernel-firmware/package.mk @@ -84,6 +84,14 @@ makeinstall_target() { ln -s "rtl8723bs_config-OBDA8723.bin" "${FW_TARGET_DIR}/rtl_bt/rtl8723bs_config.bin" fi + # The BSP kernel for RK3588 reformats the vendor firmware path for Realtek BT devices, + # so symlink the firmware. + if [ ${DEVICE} = "RK3588" ]; then + for i in ${FW_TARGET_DIR}/rtl_bt/*.bin; do + ln -s "rtl_bt/$(basename ${i})" "${FW_TARGET_DIR}/$(basename ${i%.*})" + done + fi + # Cleanup - which may be project or device specific find_file_path scripts/cleanup.sh && ${FOUND_PATH} ${FW_TARGET_DIR} || true } From 454357c3f96f5cd7c7177fc53bfcebc2d19c27c1 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Wed, 8 Nov 2023 16:48:36 +0000 Subject: [PATCH 098/112] PC image optimization testing. --- Makefile | 5 + config/arch.x86_64 | 4 +- .../libretro/duckstation-lr/package.mk | 8 + .../standalone/duckstation-sa/package.mk | 27 +- .../sources/devices/AMD64/overclock | 1 - .../PC/devices/AMD64/linux/linux.x86_64.conf | 406 +- projects/PC/devices/AMD64/options | 17 +- .../PC/devices/INTEL64/linux/linux.i686.conf | 1 + .../devices/INTEL64/linux/linux.x86_64.conf | 11487 ++++++++++++++++ projects/PC/devices/INTEL64/options | 129 + projects/PC/options | 12 - 11 files changed, 11868 insertions(+), 229 deletions(-) create mode 120000 projects/PC/devices/INTEL64/linux/linux.i686.conf create mode 100644 projects/PC/devices/INTEL64/linux/linux.x86_64.conf create mode 100644 projects/PC/devices/INTEL64/options diff --git a/Makefile b/Makefile index 450d465c9..259669720 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,11 @@ AMD64: PROJECT=PC DEVICE=AMD64 ARCH=i686 ./scripts/build_distro PROJECT=PC DEVICE=AMD64 ARCH=x86_64 ./scripts/build_distro +INTEL64: + unset DEVICE_ROOT + PROJECT=PC DEVICE=INTEL64 ARCH=i686 ./scripts/build_distro + PROJECT=PC DEVICE=INTEL64 ARCH=x86_64 ./scripts/build_distro + RK3588: unset DEVICE_ROOT PROJECT=Rockchip DEVICE=RK3588 ARCH=arm ./scripts/build_distro diff --git a/config/arch.x86_64 b/config/arch.x86_64 index 238e640ed..5448560ff 100644 --- a/config/arch.x86_64 +++ b/config/arch.x86_64 @@ -17,8 +17,8 @@ TARGET_KERNEL_ARCH=x86 # setup ARCH specific *FLAGS - TARGET_CFLAGS="-march=${TARGET_CPU}" - TARGET_LDFLAGS="-march=${TARGET_CPU}" + TARGET_CFLAGS="-march=${TARGET_CPU} -mtune=${TARGET_CPU}" + TARGET_LDFLAGS="-march=${TARGET_CPU} -mtune=${TARGET_CPU}" # build with SIMD support ( yes / no ) TARGET_FEATURES+=" mmx sse sse2" diff --git a/packages/emulators/libretro/duckstation-lr/package.mk b/packages/emulators/libretro/duckstation-lr/package.mk index ccdea1fa5..3e121c508 100644 --- a/packages/emulators/libretro/duckstation-lr/package.mk +++ b/packages/emulators/libretro/duckstation-lr/package.mk @@ -13,11 +13,19 @@ PKG_SHORTDESC="DuckStation - PlayStation 1, aka. PSX Emulator" PKG_TOOLCHAIN="cmake" PKG_BUILD_FLAGS="-lto" +pre_configure_target() { + case ${TARGET_ARCH} in + x86_64) + CFLAGS+=" -march=x86-64" + ;; + esac + PKG_CMAKE_OPTS_TARGET+=" -DBUILD_SDL_FRONTEND=OFF \ -DBUILD_QT_FRONTEND=OFF \ -DBUILD_LIBRETRO_CORE=ON \ -DENABLE_DISCORD_PRESENCE=OFF \ -DUSE_X11=OFF" +} makeinstall_target() { mkdir -p ${INSTALL}/usr/lib/libretro diff --git a/packages/emulators/standalone/duckstation-sa/package.mk b/packages/emulators/standalone/duckstation-sa/package.mk index 5b69568f0..5c939dc1a 100644 --- a/packages/emulators/standalone/duckstation-sa/package.mk +++ b/packages/emulators/standalone/duckstation-sa/package.mk @@ -49,17 +49,22 @@ else PKG_CMAKE_OPTS_TARGET+=" -DENABLE_VULKAN=OFF" fi pre_configure_target() { - PKG_CMAKE_OPTS_TARGET+=" -DANDROID=OFF \ - -DENABLE_DISCORD_PRESENCE=OFF \ - -DBUILD_QT_FRONTEND=OFF \ - -DBUILD_NOGUI_FRONTEND=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=OFF \ - -DUSE_SDL2=ON \ - -DENABLE_CHEEVOS=ON \ - -DUSE_FBDEV=OFF \ - -DUSE_EVDEV=ON \ - -DUSE_X11=OFF" + case ${TARGET_ARCH} in + x86_64) + CFLAGS+=" -march=x86-64" + ;; + esac + PKG_CMAKE_OPTS_TARGET+=" -DANDROID=OFF \ + -DENABLE_DISCORD_PRESENCE=OFF \ + -DBUILD_QT_FRONTEND=OFF \ + -DBUILD_NOGUI_FRONTEND=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DUSE_SDL2=ON \ + -DENABLE_CHEEVOS=ON \ + -DUSE_FBDEV=OFF \ + -DUSE_EVDEV=ON \ + -DUSE_X11=OFF" } makeinstall_target() { diff --git a/packages/sysutils/system-utils/sources/devices/AMD64/overclock b/packages/sysutils/system-utils/sources/devices/AMD64/overclock index 3088467b4..b39f27f7f 100755 --- a/packages/sysutils/system-utils/sources/devices/AMD64/overclock +++ b/packages/sysutils/system-utils/sources/devices/AMD64/overclock @@ -85,4 +85,3 @@ case ${PROFILE} in esac ryzenadj --tctl-temp=97 --stapm-limit=${WATTS} --fast-limit=${WATTS} --stapm-time=500 --slow-limit=${WATTS} --slow-time=30 --vrmmax-current=70000 -set_setting system.overclock ${PROFILE} diff --git a/projects/PC/devices/AMD64/linux/linux.x86_64.conf b/projects/PC/devices/AMD64/linux/linux.x86_64.conf index 9beab031e..121ae2502 100644 --- a/projects/PC/devices/AMD64/linux/linux.x86_64.conf +++ b/projects/PC/devices/AMD64/linux/linux.x86_64.conf @@ -1,20 +1,21 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.3.8 Kernel Configuration +# Linux/x86 6.5.10 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="x86_64-libreelec-linux-gnu-gcc-12.3.0 (GCC) 12.3.0" +CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=120300 +CONFIG_GCC_VERSION=110400 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24000 +CONFIG_AS_VERSION=23800 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24000 +CONFIG_LD_VERSION=23800 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_TOOLS_SUPPORT_RELR=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y CONFIG_PAHOLE_VERSION=0 @@ -151,7 +152,6 @@ CONFIG_CPU_ISOLATION=y CONFIG_TREE_RCU=y CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set -CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y CONFIG_TASKS_RCU=y @@ -166,7 +166,6 @@ CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 # CONFIG_PRINTK_INDEX is not set CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y @@ -219,7 +218,6 @@ CONFIG_PID_NS=y CONFIG_NET_NS=y # CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_SCHED_AUTOGROUP is not set -# CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" @@ -277,10 +275,10 @@ CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_KCMP=y CONFIG_RSEQ=y +CONFIG_CACHESTAT_SYSCALL=y # CONFIG_DEBUG_RSEQ is not set # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y -CONFIG_GUEST_PERF_EVENTS=y # CONFIG_PC104 is not set # @@ -328,7 +326,6 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # Processor type and features # CONFIG_SMP=y -CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set @@ -342,26 +339,26 @@ CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_XXL=y # CONFIG_PARAVIRT_DEBUG is not set CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_X86_HV_CALLBACK_VECTOR=y -CONFIG_XEN=n -CONFIG_KVM_GUEST=n +# CONFIG_XEN is not set +# CONFIG_KVM_GUEST is not set CONFIG_ARCH_CPUIDLE_HALTPOLL=y CONFIG_PVH=y CONFIG_PARAVIRT_TIME_ACCOUNTING=y -CONFIG_PARAVIRT_CLOCK=y CONFIG_JAILHOUSE_GUEST=y CONFIG_ACRN_GUEST=y CONFIG_INTEL_TDX_GUEST=y -# CONFIG_MK8 is not set +CONFIG_MK8=y # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set -CONFIG_GENERIC_CPU=y +# CONFIG_GENERIC_CPU is not set CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y @@ -482,9 +479,8 @@ CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_DYNAMIC_MEMORY_LAYOUT=y CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa +# CONFIG_ADDRESS_MASKING is not set CONFIG_HOTPLUG_CPU=y -# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set -# CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set @@ -515,7 +511,9 @@ CONFIG_CALL_DEPTH_TRACKING=y # CONFIG_CALL_THUNKS_DEBUG is not set CONFIG_CPU_IBPB_ENTRY=y CONFIG_CPU_IBRS_ENTRY=y +CONFIG_CPU_SRSO=y CONFIG_SLS=y +# CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y @@ -651,6 +649,7 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_AMD_PSTATE=y +CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 CONFIG_X86_AMD_PSTATE_UT=y CONFIG_X86_ACPI_CPUFREQ=y CONFIG_X86_ACPI_CPUFREQ_CPB=y @@ -672,8 +671,6 @@ CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_IDLE_GOV_TEO=y -CONFIG_CPU_IDLE_GOV_HALTPOLL=y -CONFIG_HALTPOLL_CPUIDLE=y # end of CPU Idle CONFIG_INTEL_IDLE=y @@ -684,7 +681,6 @@ CONFIG_INTEL_IDLE=y # CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y -CONFIG_PCI_XEN=y CONFIG_MMCONF_FAM10H=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_ISA_BUS is not set @@ -702,7 +698,14 @@ CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y # end of Binary Emulations -# CONFIG_HAVE_KVM=n +CONFIG_HAVE_KVM=y +CONFIG_VIRTUALIZATION=y +# CONFIG_KVM is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y +CONFIG_AS_GFNI=y # # General architecture-dependent options @@ -710,6 +713,11 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y +CONFIG_HOTPLUG_CORE_SYNC_FULL=y +CONFIG_HOTPLUG_SPLIT_STARTUP=y +CONFIG_HOTPLUG_PARALLEL=y CONFIG_GENERIC_ENTRY=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y @@ -722,7 +730,6 @@ CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y CONFIG_KRETPROBE_ON_RETHOOK=y -CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y @@ -739,6 +746,7 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_ARCH_WANTS_NO_INSTR=y @@ -759,6 +767,7 @@ CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y CONFIG_MMU_GATHER_TABLE_FREE=y CONFIG_MMU_GATHER_RCU_TABLE_FREE=y CONFIG_MMU_GATHER_MERGE_VMAS=y +CONFIG_MMU_LAZY_TLB_REFCOUNT=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y @@ -852,8 +861,6 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set CONFIG_FUNCTION_ALIGNMENT_4B=y CONFIG_FUNCTION_ALIGNMENT_16B=y CONFIG_FUNCTION_ALIGNMENT=16 @@ -863,6 +870,8 @@ CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULE_SIG_FORMAT=y CONFIG_MODULES=y +CONFIG_MODULE_DEBUGFS=y +# CONFIG_MODULE_DEBUG is not set CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y @@ -890,6 +899,7 @@ CONFIG_BLOCK=y CONFIG_BLOCK_LEGACY_AUTOLOAD=y CONFIG_BLK_RQ_ALLOC_TIME=y CONFIG_BLK_CGROUP_RWSTAT=y +CONFIG_BLK_CGROUP_PUNT_BIO=y CONFIG_BLK_DEV_BSG_COMMON=y CONFIG_BLK_ICQ=y CONFIG_BLK_DEV_BSGLIB=y @@ -938,7 +948,6 @@ CONFIG_EFI_PARTITION=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y -CONFIG_BLK_MQ_RDMA=y CONFIG_BLK_PM=y CONFIG_BLOCK_HOLDER_DEPRECATED=y CONFIG_BLK_MQ_STACKING=y @@ -953,7 +962,6 @@ CONFIG_BFQ_GROUP_IOSCHED=y # CONFIG_BFQ_CGROUP_DEBUG is not set # end of IO Schedulers -CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y @@ -989,6 +997,7 @@ CONFIG_ZPOOL=y CONFIG_SWAP=y CONFIG_ZSWAP=y CONFIG_ZSWAP_DEFAULT_ON=y +# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set @@ -1009,9 +1018,8 @@ CONFIG_ZSMALLOC_CHAIN_SIZE=8 # # SLAB allocator options # -# CONFIG_SLAB is not set +# CONFIG_SLAB_DEPRECATED is not set CONFIG_SLUB=y -# CONFIG_SLOB_DEPRECATED is not set # CONFIG_SLUB_TINY is not set CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_RANDOM=y @@ -1026,6 +1034,7 @@ CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_ARCH_WANT_OPTIMIZE_VMEMMAP=y CONFIG_HAVE_FAST_GUP=y CONFIG_NUMA_KEEP_MEMINFO=y CONFIG_MEMORY_ISOLATION=y @@ -1093,6 +1102,7 @@ CONFIG_ARCH_HAS_PKEYS=y CONFIG_VM_EVENT_COUNTERS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_TEST is not set +# CONFIG_DMAPOOL_TEST is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_MAPPING_DIRTY_HELPERS=y CONFIG_SECRETMEM=y @@ -1104,6 +1114,9 @@ CONFIG_PTE_MARKER_UFFD_WP=y CONFIG_LRU_GEN=y CONFIG_LRU_GEN_ENABLED=y # CONFIG_LRU_GEN_STATS is not set +CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y +CONFIG_LOCK_MM_AND_FIND_VMA=y # # Data Access Monitoring @@ -1156,6 +1169,7 @@ CONFIG_SMC=m CONFIG_SMC_DIAG=m CONFIG_XDP_SOCKETS=y CONFIG_XDP_SOCKETS_DIAG=m +CONFIG_NET_HANDSHAKE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -1268,6 +1282,7 @@ CONFIG_NETFILTER_SKIP_EGRESS=y CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y CONFIG_NETFILTER_FAMILY_ARP=y +CONFIG_NETFILTER_BPF_LINK=y CONFIG_NETFILTER_NETLINK_HOOK=m CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m @@ -1839,6 +1854,7 @@ CONFIG_NET_NCSI=y CONFIG_NCSI_OEM_CMD_GET_MAC=y CONFIG_NCSI_OEM_CMD_KEEP_PHY=y CONFIG_PCPU_DEV_REFCNT=y +CONFIG_MAX_SKB_FRAGS=17 CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_SOCK_RX_QUEUE_MAPPING=y @@ -1949,6 +1965,7 @@ CONFIG_BT_MTKSDIO=m CONFIG_BT_MTKUART=m CONFIG_BT_HCIRSI=m CONFIG_BT_VIRTIO=m +# CONFIG_BT_NXPUART is not set # end of Bluetooth device drivers CONFIG_AF_RXRPC=m @@ -2003,7 +2020,6 @@ CONFIG_RFKILL_GPIO=m CONFIG_NET_9P=m CONFIG_NET_9P_FD=m CONFIG_NET_9P_VIRTIO=m -CONFIG_NET_9P_XEN=m CONFIG_NET_9P_RDMA=m # CONFIG_NET_9P_DEBUG is not set # CONFIG_CAIF is not set @@ -2099,7 +2115,6 @@ CONFIG_PCI_QUIRKS=y # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCI_STUB=y CONFIG_PCI_PF_STUB=m -CONFIG_XEN_PCIDEV_FRONTEND=m CONFIG_PCI_ATS=y CONFIG_PCI_DOE=y CONFIG_PCI_LOCKLESS_CONFIG=y @@ -2131,24 +2146,24 @@ CONFIG_VMD=m CONFIG_PCI_HYPERV_INTERFACE=m # -# DesignWare PCI Core Support +# Cadence-based PCIe controllers +# +# end of Cadence-based PCIe controllers + +# +# DesignWare-based PCIe controllers # CONFIG_PCIE_DW=y CONFIG_PCIE_DW_HOST=y +CONFIG_PCI_MESON=y CONFIG_PCIE_DW_PLAT=y CONFIG_PCIE_DW_PLAT_HOST=y -CONFIG_PCI_MESON=y -# end of DesignWare PCI Core Support +# end of DesignWare-based PCIe controllers # -# Mobiveil PCIe Core Support +# Mobiveil-based PCIe controllers # -# end of Mobiveil PCIe Core Support - -# -# Cadence PCIe controllers support -# -# end of Cadence PCIe controllers support +# end of Mobiveil-based PCIe controllers # end of PCI controller drivers # @@ -2173,6 +2188,7 @@ CONFIG_CXL_PORT=m CONFIG_CXL_SUSPEND=y CONFIG_CXL_REGION=y # CONFIG_CXL_REGION_INVALIDATION_TEST is not set +CONFIG_CXL_PMU=m CONFIG_PCCARD=m CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y @@ -2207,6 +2223,7 @@ CONFIG_STANDALONE=y # Firmware loader # CONFIG_FW_LOADER=y +CONFIG_FW_LOADER_DEBUG=y CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_FW_LOADER_SYSFS=y CONFIG_EXTRA_FIRMWARE="" @@ -2225,7 +2242,6 @@ CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set CONFIG_HMEM_REPORTING=y # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -CONFIG_SYS_HYPERVISOR=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_SOC_BUS=y @@ -2242,6 +2258,7 @@ CONFIG_REGMAP_SCCB=m CONFIG_REGMAP_SPI_AVMM=m CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set +# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set # end of Generic Driver Options # @@ -2307,6 +2324,7 @@ CONFIG_EFI_EARLYCON=y CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y # CONFIG_EFI_DISABLE_RUNTIME is not set CONFIG_EFI_COCO_SECRET=y +CONFIG_UNACCEPTED_MEMORY=y CONFIG_EFI_EMBEDDED_FIRMWARE=y # end of EFI (Extensible Firmware Interface) Support @@ -2502,11 +2520,10 @@ CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m -CONFIG_XEN_BLKDEV_FRONTEND=m -CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=y CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_UBLK=m +CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y CONFIG_BLK_DEV_RNBD=y CONFIG_BLK_DEV_RNBD_CLIENT=m CONFIG_BLK_DEV_RNBD_SERVER=m @@ -2601,6 +2618,7 @@ CONFIG_INTEL_MEI_TXE=m CONFIG_INTEL_MEI_GSC=m CONFIG_INTEL_MEI_HDCP=m CONFIG_INTEL_MEI_PXP=m +# CONFIG_INTEL_MEI_GSC_PROXY is not set CONFIG_VMWARE_VMCI=m CONFIG_GENWQE=m CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 @@ -2709,7 +2727,6 @@ CONFIG_SCSI_FLASHPOINT=y CONFIG_SCSI_MYRB=m CONFIG_SCSI_MYRS=m CONFIG_VMWARE_PVSCSI=m -CONFIG_XEN_SCSI_FRONTEND=m CONFIG_HYPERV_STORAGE=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m @@ -2867,6 +2884,7 @@ CONFIG_PATA_PARPORT=m # CONFIG_PATA_PARPORT_ATEN=m CONFIG_PATA_PARPORT_BPCK=m +# CONFIG_PATA_PARPORT_BPCK6 is not set CONFIG_PATA_PARPORT_COMM=m CONFIG_PATA_PARPORT_DSTR=m CONFIG_PATA_PARPORT_FIT2=m @@ -2951,6 +2969,7 @@ CONFIG_TCM_FC=m CONFIG_ISCSI_TARGET=m CONFIG_ISCSI_TARGET_CXGB4=m CONFIG_SBP_TARGET=m +# CONFIG_REMOTE_TARGET is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -3053,6 +3072,8 @@ CONFIG_NET_DSA_LOOP=m CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m # CONFIG_NET_DSA_LANTIQ_GSWIP is not set CONFIG_NET_DSA_MT7530=m +CONFIG_NET_DSA_MT7530_MDIO=m +CONFIG_NET_DSA_MT7530_MMIO=m CONFIG_NET_DSA_MV88E6060=m CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m @@ -3066,6 +3087,7 @@ CONFIG_NET_DSA_MSCC_OCELOT_EXT=m CONFIG_NET_DSA_MSCC_SEVILLE=m CONFIG_NET_DSA_AR9331=m CONFIG_NET_DSA_QCA8K=m +# CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT is not set CONFIG_NET_DSA_SJA1105=m CONFIG_NET_DSA_SJA1105_PTP=y CONFIG_NET_DSA_SJA1105_TAS=y @@ -3112,6 +3134,7 @@ CONFIG_PCMCIA_NMCLAN=m CONFIG_AMD_XGBE=m CONFIG_AMD_XGBE_DCB=y CONFIG_AMD_XGBE_HAVE_ECC=y +# CONFIG_PDS_CORE is not set CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_AQTION=m CONFIG_NET_VENDOR_ARC=y @@ -3153,6 +3176,7 @@ CONFIG_THUNDER_NIC_VF=m CONFIG_THUNDER_NIC_BGX=m CONFIG_THUNDER_NIC_RGX=m CONFIG_CAVIUM_PTP=m +CONFIG_LIQUIDIO_CORE=m CONFIG_LIQUIDIO=m CONFIG_LIQUIDIO_VF=m CONFIG_NET_VENDOR_CHELSIO=y @@ -3219,7 +3243,6 @@ CONFIG_E1000E_HWTS=y CONFIG_IGB=y CONFIG_IGB_HWMON=y CONFIG_IGBVF=m -CONFIG_IXGB=y CONFIG_IXGBE=y CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCB=y @@ -3235,10 +3258,6 @@ CONFIG_ICE_SWITCHDEV=y CONFIG_ICE_HWTS=y CONFIG_FM10K=m CONFIG_IGC=y -CONFIG_NET_VENDOR_WANGXUN=y -CONFIG_LIBWX=m -CONFIG_NGBE=m -CONFIG_TXGBE=m CONFIG_JME=y CONFIG_NET_VENDOR_ADI=y CONFIG_ADIN1110=m @@ -3420,6 +3439,10 @@ CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=y CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=y +CONFIG_NET_VENDOR_WANGXUN=y +CONFIG_LIBWX=m +CONFIG_NGBE=m +CONFIG_TXGBE=m CONFIG_NET_VENDOR_WIZNET=y CONFIG_WIZNET_W5100=m CONFIG_WIZNET_W5300=m @@ -3473,11 +3496,13 @@ CONFIG_MARVELL_88X2222_PHY=m CONFIG_MAXLINEAR_GPHY=m CONFIG_MEDIATEK_GE_PHY=m CONFIG_MICREL_PHY=m +# CONFIG_MICROCHIP_T1S_PHY is not set CONFIG_MICROCHIP_PHY=m CONFIG_MICROCHIP_T1_PHY=m CONFIG_MICROSEMI_PHY=m CONFIG_MOTORCOMM_PHY=m CONFIG_NATIONAL_PHY=m +# CONFIG_NXP_CBTX_PHY is not set CONFIG_NXP_C45_TJA11XX_PHY=m CONFIG_NXP_TJA11XX_PHY=m CONFIG_NCN26000_PHY=m @@ -3554,6 +3579,7 @@ CONFIG_CAN_8DEV_USB=m CONFIG_CAN_EMS_USB=m CONFIG_CAN_ESD_USB=m CONFIG_CAN_ETAS_ES58X=m +# CONFIG_CAN_F81604 is not set CONFIG_CAN_GS_USB=m CONFIG_CAN_KVASER_USB=m CONFIG_CAN_MCBA_USB=m @@ -3582,6 +3608,7 @@ CONFIG_MDIO_GPIO=m CONFIG_MDIO_I2C=m CONFIG_MDIO_MVUSB=m CONFIG_MDIO_MSCC_MIIM=m +CONFIG_MDIO_REGMAP=m CONFIG_MDIO_THUNDER=m # @@ -3593,7 +3620,7 @@ CONFIG_MDIO_THUNDER=m # CONFIG_PCS_XPCS=m CONFIG_PCS_LYNX=m -CONFIG_PCS_ALTERA_TSE=m +CONFIG_PCS_MTK_LYNXI=m # end of PCS device drivers CONFIG_PLIP=m @@ -3605,6 +3632,11 @@ CONFIG_PPP_MPPE=m CONFIG_PPP_MULTILINK=y CONFIG_PPPOATM=m CONFIG_PPPOE=m +# CONFIG_PPPOE_HASH_BITS_1 is not set +# CONFIG_PPPOE_HASH_BITS_2 is not set +CONFIG_PPPOE_HASH_BITS_4=y +# CONFIG_PPPOE_HASH_BITS_8 is not set +CONFIG_PPPOE_HASH_BITS=4 CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m @@ -3806,9 +3838,9 @@ CONFIG_IWLWIFI_OPMODE_MODULAR=y # # Debugging Options # -CONFIG_IWLWIFI_DEBUG=n -CONFIG_IWLWIFI_DEBUGFS=n -CONFIG_IWLWIFI_DEVICE_TRACING=n +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set # end of Debugging Options CONFIG_WLAN_VENDOR_INTERSIL=y @@ -3946,12 +3978,16 @@ CONFIG_RTW88_8822C=m CONFIG_RTW88_8723D=m CONFIG_RTW88_8821C=m CONFIG_RTW88_8822BE=m +# CONFIG_RTW88_8822BS is not set CONFIG_RTW88_8822BU=m CONFIG_RTW88_8822CE=m +# CONFIG_RTW88_8822CS is not set CONFIG_RTW88_8822CU=m CONFIG_RTW88_8723DE=m +# CONFIG_RTW88_8723DS is not set CONFIG_RTW88_8723DU=m CONFIG_RTW88_8821CE=m +# CONFIG_RTW88_8821CS is not set CONFIG_RTW88_8821CU=m CONFIG_RTW88_DEBUG=y CONFIG_RTW88_DEBUGFS=y @@ -3961,6 +3997,7 @@ CONFIG_RTW89_PCI=m CONFIG_RTW89_8852A=m CONFIG_RTW89_8852B=m CONFIG_RTW89_8852C=m +# CONFIG_RTW89_8851BE is not set CONFIG_RTW89_8852AE=m CONFIG_RTW89_8852BE=m CONFIG_RTW89_8852CE=m @@ -3996,8 +4033,8 @@ CONFIG_QTNFMAC=m CONFIG_QTNFMAC_PCIE=m CONFIG_PCMCIA_RAYCS=m CONFIG_PCMCIA_WL3501=m -CONFIG_MAC80211_HWSIM=m CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_MAC80211_HWSIM=m CONFIG_VIRT_WIFI=m # CONFIG_WAN is not set CONFIG_IEEE802154_DRIVERS=m @@ -4025,8 +4062,6 @@ CONFIG_IOSM=m CONFIG_MTK_T7XX=m # end of Wireless WAN -CONFIG_XEN_NETDEV_FRONTEND=m -CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m CONFIG_FUJITSU_ES=m CONFIG_USB4_NET=m @@ -4238,9 +4273,9 @@ CONFIG_TOUCHSCREEN_MMS114=m CONFIG_TOUCHSCREEN_MELFAS_MIP4=m CONFIG_TOUCHSCREEN_MSG2638=m CONFIG_TOUCHSCREEN_MTOUCH=m +# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set CONFIG_TOUCHSCREEN_IMAGIS=m CONFIG_TOUCHSCREEN_INEXIO=m -CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_PENMOUNT=m CONFIG_TOUCHSCREEN_EDT_FT5X06=m CONFIG_TOUCHSCREEN_TOUCHRIGHT=m @@ -4352,7 +4387,6 @@ CONFIG_INPUT_IQS626A=m CONFIG_INPUT_IQS7222=m CONFIG_INPUT_CMA3000=m CONFIG_INPUT_CMA3000_I2C=m -CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m CONFIG_INPUT_IDEAPAD_SLIDEBAR=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_DRV260X_HAPTICS=m @@ -4483,13 +4517,11 @@ CONFIG_MOXA_INTELLIO=m CONFIG_MOXA_SMARTIO=m CONFIG_SYNCLINK_GT=m CONFIG_N_HDLC=m +CONFIG_IPWIRELESS=m CONFIG_N_GSM=m CONFIG_NOZOMI=m CONFIG_NULL_TTY=m CONFIG_HVC_DRIVER=y -CONFIG_HVC_IRQ=y -CONFIG_HVC_XEN=y -CONFIG_HVC_XEN_FRONTEND=y CONFIG_RPMSG_TTY=m CONFIG_SERIAL_DEV_BUS=y CONFIG_SERIAL_DEV_CTRL_TTYPORT=y @@ -4519,17 +4551,6 @@ CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m CONFIG_HW_RANDOM_XIPHERA=m CONFIG_APPLICOM=m - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -CONFIG_CARDMAN_4000=m -CONFIG_CARDMAN_4040=m -CONFIG_SCR24X=m -CONFIG_IPWIRELESS=m -# end of PCMCIA character devices - CONFIG_MWAVE=m CONFIG_DEVMEM=y CONFIG_NVRAM=y @@ -4550,7 +4571,6 @@ CONFIG_TCG_TIS_I2C_NUVOTON=m CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m -CONFIG_TCG_XEN=m CONFIG_TCG_CRB=y CONFIG_TCG_VTPM_PROXY=m CONFIG_TCG_TIS_ST33ZP24=m @@ -4630,7 +4650,6 @@ CONFIG_I2C_CBUS_GPIO=y CONFIG_I2C_DESIGNWARE_CORE=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DESIGNWARE_PLATFORM=y -CONFIG_I2C_DESIGNWARE_AMDPSP=y CONFIG_I2C_DESIGNWARE_BAYTRAIL=y CONFIG_I2C_DESIGNWARE_PCI=y CONFIG_I2C_EMEV2=m @@ -4693,7 +4712,6 @@ CONFIG_SPI_DW_DMA=y CONFIG_SPI_DW_PCI=m CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DLN2=m -CONFIG_SPI_NXP_FLEXSPI=m CONFIG_SPI_GPIO=m CONFIG_SPI_INTEL=m CONFIG_SPI_INTEL_PCI=m @@ -4706,7 +4724,6 @@ CONFIG_SPI_OC_TINY=m CONFIG_SPI_PCI1XXXX=m CONFIG_SPI_PXA2XX=m CONFIG_SPI_PXA2XX_PCI=m -# CONFIG_SPI_ROCKCHIP is not set CONFIG_SPI_SC18IS602=m CONFIG_SPI_SIFIVE=m CONFIG_SPI_MXIC=m @@ -4765,11 +4782,11 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_PTP_1588_CLOCK_OPTIONAL=y CONFIG_DP83640_PHY=m CONFIG_PTP_1588_CLOCK_INES=m -CONFIG_PTP_1588_CLOCK_KVM=y CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK_OCP=m +# CONFIG_PTP_DFL_TOD is not set # end of PTP clock support CONFIG_PINCTRL=y @@ -4843,13 +4860,13 @@ CONFIG_GPIO_ICH=m CONFIG_GPIO_MB86S7X=m CONFIG_GPIO_MENZ127=m CONFIG_GPIO_SIOX=m -CONFIG_GPIO_VX855=m CONFIG_GPIO_AMD_FCH=m # end of Memory mapped GPIO drivers # # Port-mapped I/O GPIO drivers # +CONFIG_GPIO_VX855=m CONFIG_GPIO_F7188X=m CONFIG_GPIO_IT87=m CONFIG_GPIO_SCH=m @@ -4861,6 +4878,7 @@ CONFIG_GPIO_WS16C48=m # # I2C GPIO expanders # +# CONFIG_GPIO_FXL6408 is not set CONFIG_GPIO_MAX7300=m CONFIG_GPIO_MAX732X=m CONFIG_GPIO_PCA953X=m @@ -4880,6 +4898,7 @@ CONFIG_GPIO_CRYSTAL_COVE=m CONFIG_GPIO_DA9052=m CONFIG_GPIO_DA9055=m CONFIG_GPIO_DLN2=m +# CONFIG_GPIO_ELKHARTLAKE is not set CONFIG_GPIO_JANZ_TTL=m CONFIG_GPIO_KEMPLD=m CONFIG_GPIO_LP3943=m @@ -5050,6 +5069,7 @@ CONFIG_CHARGER_TPS65090=m CONFIG_BATTERY_GAUGE_LTC2941=m CONFIG_BATTERY_GOLDFISH=m CONFIG_BATTERY_RT5033=m +# CONFIG_CHARGER_RT5033 is not set CONFIG_CHARGER_RT9455=m CONFIG_CHARGER_RT9467=m CONFIG_CHARGER_RT9471=m @@ -5148,6 +5168,7 @@ CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX31722=m CONFIG_SENSORS_MAX31730=m CONFIG_SENSORS_MAX31760=m +# CONFIG_MAX31827 is not set CONFIG_SENSORS_MAX6620=m CONFIG_SENSORS_MAX6621=m CONFIG_SENSORS_MAX6639=m @@ -5196,6 +5217,7 @@ CONFIG_SENSORS_OXP=m CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m +# CONFIG_SENSORS_ACBEL_FSG032 is not set CONFIG_SENSORS_ADM1266=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_BEL_PFE=m @@ -5314,6 +5336,7 @@ CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_SENSORS_ASUS_WMI=m CONFIG_SENSORS_ASUS_EC=m +# CONFIG_SENSORS_HP_WMI is not set CONFIG_THERMAL=y CONFIG_THERMAL_NETLINK=y CONFIG_THERMAL_STATISTICS=y @@ -5325,6 +5348,7 @@ CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set +# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set CONFIG_THERMAL_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_BANG_BANG=y @@ -5355,7 +5379,6 @@ CONFIG_PROC_THERMAL_MMIO_RAPL=m CONFIG_INTEL_BXT_PMIC_THERMAL=m CONFIG_INTEL_PCH_THERMAL=m CONFIG_INTEL_TCC_COOLING=m -CONFIG_INTEL_MENLOW=m CONFIG_INTEL_HFI_THERMAL=y # end of Intel thermal drivers @@ -5443,7 +5466,6 @@ CONFIG_NI903X_WDT=m CONFIG_NIC7018_WDT=m CONFIG_SIEMENS_SIMATIC_IPC_WDT=m CONFIG_MEN_A21_WDT=m -CONFIG_XEN_WDT=m # # PCI-based Watchdog Cards @@ -5531,6 +5553,7 @@ CONFIG_MFD_88PM800=m CONFIG_MFD_88PM805=m CONFIG_MFD_88PM860X=y CONFIG_MFD_MAX14577=m +# CONFIG_MFD_MAX77541 is not set CONFIG_MFD_MAX77693=m CONFIG_MFD_MAX77843=y CONFIG_MFD_MAX8907=m @@ -5576,6 +5599,8 @@ CONFIG_MFD_TPS65910=y CONFIG_MFD_TPS65912=m CONFIG_MFD_TPS65912_I2C=m CONFIG_MFD_TPS65912_SPI=m +# CONFIG_MFD_TPS6594_I2C is not set +# CONFIG_MFD_TPS6594_SPI is not set CONFIG_TWL4030_CORE=y CONFIG_MFD_TWL4030_AUDIO=y CONFIG_TWL6040_CORE=y @@ -5682,12 +5707,15 @@ CONFIG_REGULATOR_PV88090=m CONFIG_REGULATOR_PWM=m # CONFIG_REGULATOR_QCOM_SPMI is not set # CONFIG_REGULATOR_QCOM_USB_VBUS is not set +# CONFIG_REGULATOR_RAA215300 is not set CONFIG_REGULATOR_RC5T583=m CONFIG_REGULATOR_RT4801=m +# CONFIG_REGULATOR_RT4803 is not set CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT5033=m CONFIG_REGULATOR_RT5120=m CONFIG_REGULATOR_RT5190A=m +# CONFIG_REGULATOR_RT5739 is not set CONFIG_REGULATOR_RT5759=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6190=m @@ -5753,7 +5781,7 @@ CONFIG_IR_WINBOND_CIR=m CONFIG_RC_ATI_REMOTE=m CONFIG_RC_LOOPBACK=m CONFIG_RC_XBOX_DVD=m -CONFIG_CEC_CORE=m +CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PIN=y @@ -5806,7 +5834,6 @@ CONFIG_V4L2_FWNODE=m CONFIG_V4L2_ASYNC=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m -CONFIG_VIDEOBUF_VMALLOC=m # end of Video4Linux options # @@ -5913,7 +5940,6 @@ CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set -CONFIG_VIDEO_STK1160_COMMON=m CONFIG_VIDEO_STK1160=m # @@ -6062,6 +6088,7 @@ CONFIG_DVB_BUDGET_CORE=m CONFIG_DVB_BUDGET=m CONFIG_DVB_BUDGET_CI=m CONFIG_DVB_BUDGET_AV=m +CONFIG_IPU_BRIDGE=m CONFIG_VIDEO_IPU3_CIO2=m CONFIG_CIO2_BRIDGE=y CONFIG_RADIO_ADAPTERS=m @@ -6245,10 +6272,7 @@ CONFIG_MEDIA_ATTACH=y # IR I2C driver auto-selected by 'Autoselect ancillary drivers' # CONFIG_VIDEO_IR_I2C=m - -# -# Camera sensor devices -# +CONFIG_VIDEO_CAMERA_SENSOR=y CONFIG_VIDEO_APTINA_PLL=m CONFIG_VIDEO_CCS_PLL=m CONFIG_VIDEO_AR0521=m @@ -6266,16 +6290,14 @@ CONFIG_VIDEO_IMX319=m CONFIG_VIDEO_IMX355=m CONFIG_VIDEO_MAX9271_LIB=m CONFIG_VIDEO_MT9M001=m -CONFIG_VIDEO_MT9M032=m CONFIG_VIDEO_MT9M111=m CONFIG_VIDEO_MT9P031=m -CONFIG_VIDEO_MT9T001=m CONFIG_VIDEO_MT9T112=m CONFIG_VIDEO_MT9V011=m CONFIG_VIDEO_MT9V032=m CONFIG_VIDEO_MT9V111=m -CONFIG_VIDEO_NOON010PC30=m CONFIG_VIDEO_OG01A1B=m +# CONFIG_VIDEO_OV01A10 is not set CONFIG_VIDEO_OV02A10=m CONFIG_VIDEO_OV08D10=m CONFIG_VIDEO_OV08X40=m @@ -6311,13 +6333,8 @@ CONFIG_VIDEO_RJ54N1=m CONFIG_VIDEO_S5C73M3=m CONFIG_VIDEO_S5K5BAF=m CONFIG_VIDEO_S5K6A3=m -CONFIG_VIDEO_S5K6AA=m -CONFIG_VIDEO_SR030PC30=m -CONFIG_VIDEO_VS6624=m CONFIG_VIDEO_CCS=m CONFIG_VIDEO_ET8EK8=m -CONFIG_VIDEO_M5MOLS=m -# end of Camera sensor devices # # Lens drivers @@ -6399,7 +6416,6 @@ CONFIG_VIDEO_CX25840=m # # Video encoders # -# CONFIG_VIDEO_AD9389B is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set # CONFIG_VIDEO_ADV7343 is not set @@ -6665,16 +6681,17 @@ CONFIG_DVB_DUMMY_FE=m # Graphics support # CONFIG_APERTURE_HELPERS=y +CONFIG_VIDEO_CMDLINE=y CONFIG_VIDEO_NOMODESET=y CONFIG_AGP=y CONFIG_AGP_AMD64=y CONFIG_AGP_INTEL=y CONFIG_AGP_SIS=y CONFIG_AGP_VIA=y -CONFIG_INTEL_GTT=m +CONFIG_INTEL_GTT=y CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=y -CONFIG_DRM_MIPI_DBI=y +CONFIG_DRM_MIPI_DBI=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DEBUG_MM is not set CONFIG_DRM_KMS_HELPER=y @@ -6684,19 +6701,20 @@ CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=200 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set CONFIG_DRM_LOAD_EDID_FIRMWARE=y -CONFIG_DRM_DISPLAY_HELPER=m +CONFIG_DRM_DISPLAY_HELPER=y CONFIG_DRM_DISPLAY_DP_HELPER=y CONFIG_DRM_DISPLAY_HDCP_HELPER=y CONFIG_DRM_DISPLAY_HDMI_HELPER=y CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DP_CEC=y -CONFIG_DRM_TTM=m -CONFIG_DRM_BUDDY=m +CONFIG_DRM_TTM=y +CONFIG_DRM_BUDDY=y CONFIG_DRM_VRAM_HELPER=m -CONFIG_DRM_TTM_HELPER=m +CONFIG_DRM_TTM_HELPER=y CONFIG_DRM_GEM_DMA_HELPER=m CONFIG_DRM_GEM_SHMEM_HELPER=y -CONFIG_DRM_SCHED=m +CONFIG_DRM_SUBALLOC_HELPER=y +CONFIG_DRM_SCHED=y # # I2C encoder or helper chips @@ -6718,6 +6736,7 @@ CONFIG_DRM_AMDGPU=y CONFIG_DRM_AMDGPU_SI=y CONFIG_DRM_AMDGPU_CIK=y CONFIG_DRM_AMDGPU_USERPTR=y +# CONFIG_DRM_AMDGPU_WERROR is not set # # ACP (Audio CoProcessor) Configuration @@ -6729,8 +6748,7 @@ CONFIG_DRM_AMD_ACP=y # Display Engine Configuration # CONFIG_DRM_AMD_DC=y -CONFIG_DRM_AMD_DC_DCN=y -CONFIG_DRM_AMD_DC_HDCP=y +CONFIG_DRM_AMD_DC_FP=y CONFIG_DRM_AMD_DC_SI=y CONFIG_DRM_AMD_SECURE_DISPLAY=y # end of Display Engine Configuration @@ -6749,7 +6767,6 @@ CONFIG_DRM_I915_FORCE_PROBE="*" CONFIG_DRM_I915_CAPTURE_ERROR=y CONFIG_DRM_I915_COMPRESS_ERROR=y CONFIG_DRM_I915_USERPTR=y -CONFIG_DRM_I915_GVT_KVMGT=m CONFIG_DRM_I915_PXP=y # @@ -6781,7 +6798,6 @@ CONFIG_DRM_I915_STOP_TIMEOUT=100 CONFIG_DRM_I915_TIMESLICE_DURATION=1 # end of drm/i915 Profile Guided Optimisation -CONFIG_DRM_I915_GVT=y CONFIG_DRM_VGEM=m CONFIG_DRM_VKMS=m CONFIG_DRM_VMWGFX=m @@ -6792,6 +6808,7 @@ CONFIG_DRM_AST=m CONFIG_DRM_MGAG200=m CONFIG_DRM_QXL=m CONFIG_DRM_VIRTIO_GPU=m +CONFIG_DRM_VIRTIO_GPU_KMS=y CONFIG_DRM_PANEL=y # @@ -6828,8 +6845,6 @@ CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m CONFIG_TINYDRM_ST7735R=m -CONFIG_DRM_XEN=y -CONFIG_DRM_XEN_FRONTEND=m CONFIG_DRM_VBOXVIDEO=m CONFIG_DRM_GUD=m CONFIG_DRM_SSD130X=m @@ -6843,7 +6858,6 @@ CONFIG_DRM_PRIVACY_SCREEN=y # # Frame buffer Devices # -CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set @@ -6857,6 +6871,9 @@ CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_IO_HELPERS=y +CONFIG_FB_SYS_HELPERS=y +CONFIG_FB_SYS_HELPERS_DEFERRED=y CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y @@ -6882,7 +6899,6 @@ CONFIG_FB_EFI=y # CONFIG_FB_RIVA is not set # CONFIG_FB_I740 is not set # CONFIG_FB_LE80578 is not set -# CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y @@ -6908,7 +6924,6 @@ CONFIG_FB_RADEON_BACKLIGHT=y CONFIG_FB_UDL=y # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set -CONFIG_XEN_FBDEV_FRONTEND=m # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_HYPERV is not set @@ -6989,6 +7004,7 @@ CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_DRM_ACCEL=y CONFIG_DRM_ACCEL_HABANALABS=m CONFIG_DRM_ACCEL_IVPU=m +# CONFIG_DRM_ACCEL_QAIC is not set CONFIG_SOUND=y CONFIG_SOUND_OSS_CORE=y # CONFIG_SOUND_OSS_CORE_PRECLAIM is not set @@ -7034,6 +7050,7 @@ CONFIG_SND_SEQ_MIDI_EVENT=m CONFIG_SND_SEQ_MIDI=m CONFIG_SND_SEQ_MIDI_EMUL=m CONFIG_SND_SEQ_VIRMIDI=m +# CONFIG_SND_SEQ_UMP is not set CONFIG_SND_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL3_LIB_SEQ=m @@ -7042,6 +7059,7 @@ CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m +# CONFIG_SND_PCMTEST is not set CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m @@ -7172,6 +7190,7 @@ CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m +# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y CONFIG_SND_USB_UA101=m CONFIG_SND_USB_USX2Y=m @@ -7259,6 +7278,7 @@ CONFIG_SND_SOC_FSL_RPMSG=m # CONFIG_SND_SOC_IMX_AUDMUX is not set # end of SoC Audio for Freescale CPUs +# CONFIG_SND_SOC_CHV3_I2S is not set CONFIG_SND_I2S_HI6210_I2S=m CONFIG_SND_SOC_IMG=y CONFIG_SND_SOC_IMG_I2S_IN=m @@ -7403,6 +7423,7 @@ CONFIG_SND_SOC_SOF_ALDERLAKE=m CONFIG_SND_SOC_SOF_INTEL_MTL=m CONFIG_SND_SOC_SOF_METEORLAKE=m CONFIG_SND_SOC_SOF_HDA_COMMON=m +CONFIG_SND_SOC_SOF_HDA_MLINK=m CONFIG_SND_SOC_SOF_HDA_LINK=y CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m @@ -7457,6 +7478,7 @@ CONFIG_SND_SOC_AW88395_LIB=m CONFIG_SND_SOC_AW88395=m CONFIG_SND_SOC_BD28623=m # CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CHV3_CODEC is not set CONFIG_SND_SOC_CROS_EC_CODEC=m CONFIG_SND_SOC_CS35L32=m CONFIG_SND_SOC_CS35L33=m @@ -7470,6 +7492,9 @@ CONFIG_SND_SOC_CS35L41_I2C=m CONFIG_SND_SOC_CS35L45=m CONFIG_SND_SOC_CS35L45_SPI=m CONFIG_SND_SOC_CS35L45_I2C=m +# CONFIG_SND_SOC_CS35L56_I2C is not set +# CONFIG_SND_SOC_CS35L56_SPI is not set +# CONFIG_SND_SOC_CS35L56_SDW is not set CONFIG_SND_SOC_CS42L42_CORE=m CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L42_SDW=m @@ -7517,9 +7542,11 @@ CONFIG_SND_SOC_MAX98504=m CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m CONFIG_SND_SOC_MAX98520=m +CONFIG_SND_SOC_MAX98363=m CONFIG_SND_SOC_MAX98373=m CONFIG_SND_SOC_MAX98373_I2C=m CONFIG_SND_SOC_MAX98373_SDW=m +# CONFIG_SND_SOC_MAX98388 is not set CONFIG_SND_SOC_MAX98390=m CONFIG_SND_SOC_MAX98396=m CONFIG_SND_SOC_MAX9860=m @@ -7582,6 +7609,8 @@ CONFIG_SND_SOC_RT711=m CONFIG_SND_SOC_RT711_SDW=m CONFIG_SND_SOC_RT711_SDCA_SDW=m CONFIG_SND_SOC_RT712_SDCA_SDW=m +CONFIG_SND_SOC_RT712_SDCA_DMIC_SDW=m +# CONFIG_SND_SOC_RT722_SDCA_SDW is not set CONFIG_SND_SOC_RT715=m CONFIG_SND_SOC_RT715_SDW=m CONFIG_SND_SOC_RT715_SDCA_SDW=m @@ -7612,6 +7641,7 @@ CONFIG_SND_SOC_TAS2562=m CONFIG_SND_SOC_TAS2764=m CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS2780=m +# CONFIG_SND_SOC_TAS2781_I2C is not set CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_TAS5720=m @@ -7672,6 +7702,7 @@ CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m CONFIG_SND_SOC_WSA881X=m CONFIG_SND_SOC_WSA883X=m +# CONFIG_SND_SOC_WSA884X is not set CONFIG_SND_SOC_ZL38060=m CONFIG_SND_SOC_MAX9759=m CONFIG_SND_SOC_MT6351=m @@ -7697,7 +7728,6 @@ CONFIG_SND_SIMPLE_CARD=m CONFIG_SND_X86=y CONFIG_HDMI_LPE_AUDIO=m CONFIG_SND_SYNTH_EMUX=m -CONFIG_SND_XEN_FRONTEND=m CONFIG_SND_VIRTIO=m CONFIG_AC97_BUS=y CONFIG_HID_SUPPORT=y @@ -7785,6 +7815,7 @@ CONFIG_HID_NINTENDO=m CONFIG_NINTENDO_FF=y CONFIG_HID_NTI=m CONFIG_HID_NTRIG=m +# CONFIG_HID_NVIDIA_SHIELD is not set CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m CONFIG_PANTHERLORD_FF=y @@ -7857,6 +7888,7 @@ CONFIG_USB_HIDDEV=y CONFIG_I2C_HID=y CONFIG_I2C_HID_ACPI=m +# CONFIG_I2C_HID_OF is not set CONFIG_I2C_HID_CORE=m # @@ -7927,7 +7959,6 @@ CONFIG_USB_OHCI_HCD_PCI=y # CONFIG_USB_OHCI_HCD_SSB is not set CONFIG_USB_OHCI_HCD_PLATFORM=m CONFIG_USB_UHCI_HCD=y -CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m # CONFIG_USB_SL811_HCD_ISO is not set CONFIG_USB_SL811_CS=m @@ -7935,7 +7966,6 @@ CONFIG_USB_R8A66597_HCD=m CONFIG_USB_HCD_BCMA=m CONFIG_USB_HCD_SSB=m # CONFIG_USB_HCD_TEST_MODE is not set -CONFIG_USB_XEN_HCD=m # # USB Device Class drivers @@ -8046,7 +8076,6 @@ CONFIG_USB_ISP1760_DUAL_ROLE=y # # USB port drivers # -CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_SIMPLE=m @@ -8107,6 +8136,7 @@ CONFIG_USB_SERIAL_DEBUG=m # # USB Miscellaneous drivers # +CONFIG_USB_USS720=m CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m CONFIG_USB_ADUTUX=m @@ -8116,7 +8146,6 @@ CONFIG_USB_LCD=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m CONFIG_USB_IDMOUSE=m -CONFIG_USB_FTDI_ELAN=m CONFIG_USB_APPLEDISPLAY=m CONFIG_APPLE_MFI_FASTCHARGE=m CONFIG_USB_SISUSBVGA=m @@ -8176,6 +8205,7 @@ CONFIG_USB_NET2280=m CONFIG_USB_GOKU=m CONFIG_USB_EG20T=m CONFIG_USB_MAX3420_UDC=m +# CONFIG_USB_CDNS2_UDC is not set CONFIG_USB_DUMMY_HCD=m # end of USB Peripheral Controller @@ -8286,6 +8316,7 @@ CONFIG_TYPEC_MUX_FSA4480=m CONFIG_TYPEC_MUX_GPIO_SBU=m CONFIG_TYPEC_MUX_PI3USB30532=m CONFIG_TYPEC_MUX_INTEL_PMC=m +# CONFIG_TYPEC_MUX_NB7VPQ904M is not set # end of USB Type-C Multiplexer/DeMultiplexer Switch support # @@ -8370,6 +8401,8 @@ CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y # CONFIG_LEDS_88PM860X=m CONFIG_LEDS_APU=m +# CONFIG_LEDS_AW200XX is not set +# CONFIG_LEDS_CHT_WCOVE is not set CONFIG_LEDS_LM3530=m CONFIG_LEDS_LM3532=m CONFIG_LEDS_LM3533=m @@ -8392,6 +8425,7 @@ CONFIG_LEDS_DA9052=m CONFIG_LEDS_DAC124S085=m CONFIG_LEDS_PWM=m CONFIG_LEDS_REGULATOR=m +# CONFIG_LEDS_BD2606MVV is not set CONFIG_LEDS_BD2802=m CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LT3593=m @@ -8421,6 +8455,7 @@ CONFIG_LEDS_TPS6105X=m # CONFIG_LEDS_AS3645A=m CONFIG_LEDS_LM3601X=m +# CONFIG_LEDS_MT6370_FLASH is not set CONFIG_LEDS_RT8515=m CONFIG_LEDS_SGM3140=m @@ -8428,6 +8463,7 @@ CONFIG_LEDS_SGM3140=m # RGB LED drivers # CONFIG_LEDS_PWM_MULTICOLOR=m +# CONFIG_LEDS_MT6370_RGB is not set # # LED Triggers @@ -8441,7 +8477,6 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_ACTIVITY=m -CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # @@ -8459,6 +8494,8 @@ CONFIG_LEDS_TRIGGER_TTY=m # Simple LED drivers # CONFIG_LEDS_SIEMENS_SIMATIC_IPC=m +CONFIG_LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE=m +CONFIG_LEDS_SIEMENS_SIMATIC_IPC_F7188X=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y @@ -8755,6 +8792,10 @@ CONFIG_VFIO_CONTAINER=y CONFIG_VFIO_IOMMU_TYPE1=m # CONFIG_VFIO_NOIOMMU is not set CONFIG_VFIO_VIRQFD=y + +# +# VFIO support for PCI devices +# CONFIG_VFIO_PCI_CORE=m CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y @@ -8762,7 +8803,8 @@ CONFIG_VFIO_PCI=m CONFIG_VFIO_PCI_VGA=y CONFIG_VFIO_PCI_IGD=y CONFIG_MLX5_VFIO_PCI=m -CONFIG_VFIO_MDEV=m +# end of VFIO support for PCI devices + CONFIG_IRQ_BYPASS_MANAGER=m CONFIG_VIRT_DRIVERS=y CONFIG_VMGENID=y @@ -8801,6 +8843,7 @@ CONFIG_ALIBABA_ENI_VDPA=m CONFIG_SNET_VDPA=m CONFIG_VHOST_IOTLB=m CONFIG_VHOST_RING=m +CONFIG_VHOST_TASK=y CONFIG_VHOST=m CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m @@ -8813,50 +8856,12 @@ CONFIG_VHOST_VDPA=m # Microsoft Hyper-V guest support # CONFIG_HYPERV=m +# CONFIG_HYPERV_VTL_MODE is not set CONFIG_HYPERV_TIMER=y CONFIG_HYPERV_UTILS=m CONFIG_HYPERV_BALLOON=m # end of Microsoft Hyper-V guest support -# -# Xen driver support -# -CONFIG_XEN_BALLOON=y -CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y -CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 -CONFIG_XEN_SCRUB_PAGES_DEFAULT=y -CONFIG_XEN_DEV_EVTCHN=m -CONFIG_XEN_BACKEND=y -CONFIG_XENFS=m -CONFIG_XEN_COMPAT_XENFS=y -CONFIG_XEN_SYS_HYPERVISOR=y -CONFIG_XEN_XENBUS_FRONTEND=y -CONFIG_XEN_GNTDEV=m -CONFIG_XEN_GNTDEV_DMABUF=y -CONFIG_XEN_GRANT_DEV_ALLOC=m -CONFIG_XEN_GRANT_DMA_ALLOC=y -CONFIG_SWIOTLB_XEN=y -CONFIG_XEN_PCI_STUB=y -CONFIG_XEN_PCIDEV_BACKEND=m -CONFIG_XEN_PVCALLS_FRONTEND=m -CONFIG_XEN_PVCALLS_BACKEND=y -CONFIG_XEN_SCSI_BACKEND=m -CONFIG_XEN_PRIVCMD=m -CONFIG_XEN_ACPI_PROCESSOR=m -CONFIG_XEN_MCE_LOG=y -CONFIG_XEN_HAVE_PVMMU=y -CONFIG_XEN_EFI=y -CONFIG_XEN_AUTO_XLATE=y -CONFIG_XEN_ACPI=y -CONFIG_XEN_SYMS=y -CONFIG_XEN_HAVE_VPMU=y -CONFIG_XEN_FRONT_PGDIR_SHBUF=m -CONFIG_XEN_UNPOPULATED_ALLOC=y -CONFIG_XEN_GRANT_DMA_OPS=y -CONFIG_XEN_VIRTIO=y -# CONFIG_XEN_VIRTIO_FORCE_GRANT is not set -# end of Xen driver support - # CONFIG_GREYBUS is not set # CONFIG_COMEDI is not set CONFIG_STAGING=y @@ -8911,14 +8916,6 @@ CONFIG_AD9834=m CONFIG_AD5933=m # end of Network Analyzer, Impedance Converters -# -# Active energy metering IC -# -CONFIG_ADE7854=m -CONFIG_ADE7854_I2C=m -CONFIG_ADE7854_SPI=m -# end of Active energy metering IC - # # Resolver to digital converters # @@ -9000,16 +8997,16 @@ CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACPI_WMI=y CONFIG_WMI_BMOF=y CONFIG_HUAWEI_WMI=m -CONFIG_MXM_WMI=m -CONFIG_PEAQ_WMI=m +CONFIG_MXM_WMI=y CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m CONFIG_XIAOMI_WMI=m CONFIG_GIGABYTE_WMI=m -CONFIG_YOGABOOK_WMI=m +# CONFIG_YOGABOOK is not set CONFIG_ACERHDF=m CONFIG_ACER_WIRELESS=m CONFIG_ACER_WMI=m CONFIG_AMD_PMF=y +# CONFIG_AMD_PMF_DEBUG is not set CONFIG_AMD_PMC=y CONFIG_AMD_HSMP=y CONFIG_ADV_SWBUTTON=m @@ -9049,6 +9046,7 @@ CONFIG_HP_WMI=m CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m +# CONFIG_LENOVO_YMC is not set CONFIG_SENSORS_HDAPS=m CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y @@ -9072,6 +9070,7 @@ CONFIG_INTEL_PMT_CRASHLOG=m # # Intel Speed Select Technology interface support # +CONFIG_INTEL_SPEED_SELECT_TPMI=m CONFIG_INTEL_SPEED_SELECT_INTERFACE=m # end of Intel Speed Select Technology interface support @@ -9083,6 +9082,7 @@ CONFIG_INTEL_WMI_THUNDERBOLT=m # # Intel Uncore Frequency Control # +CONFIG_INTEL_UNCORE_FREQ_CONTROL_TPMI=m CONFIG_INTEL_UNCORE_FREQ_CONTROL=m # end of Intel Uncore Frequency Control @@ -9091,6 +9091,7 @@ CONFIG_INTEL_VBTN=m CONFIG_INTEL_INT0002_VGPIO=m CONFIG_INTEL_OAKTRAIL=m CONFIG_INTEL_BXTWC_PMIC_TMU=m +# CONFIG_INTEL_BYTCRC_PWRSRC is not set CONFIG_INTEL_CHTDC_TI_PWRBTN=m CONFIG_INTEL_CHTWC_INT33FE=m CONFIG_INTEL_ISHTP_ECLITE=m @@ -9102,6 +9103,7 @@ CONFIG_INTEL_SMARTCONNECT=m CONFIG_INTEL_TPMI=m CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_VSEC=m +# CONFIG_MSI_EC is not set CONFIG_MSI_LAPTOP=m CONFIG_MSI_WMI=m CONFIG_PCENGINES_APU2=m @@ -9164,7 +9166,6 @@ CONFIG_MAILBOX=y CONFIG_PCC=y CONFIG_ALTERA_MBOX=m CONFIG_IOMMU_IOVA=y -CONFIG_IOASID=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -9218,6 +9219,7 @@ CONFIG_SOUNDWIRE=m # # SoundWire Devices # +# CONFIG_SOUNDWIRE_AMD is not set CONFIG_SOUNDWIRE_CADENCE=m CONFIG_SOUNDWIRE_INTEL=m CONFIG_SOUNDWIRE_QCOM=m @@ -9465,6 +9467,7 @@ CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m CONFIG_TI_ADS7924=m +# CONFIG_TI_ADS1100 is not set CONFIG_TI_ADS7950=m CONFIG_TI_ADS8344=m CONFIG_TI_ADS8688=m @@ -9759,6 +9762,8 @@ CONFIG_ISL29125=m CONFIG_HID_SENSOR_ALS=m CONFIG_HID_SENSOR_PROX=m CONFIG_JSA1212=m +# CONFIG_ROHM_BU27008 is not set +# CONFIG_ROHM_BU27034 is not set CONFIG_RPR0521=m CONFIG_SENSORS_LM3533=m CONFIG_LTR501=m @@ -9768,6 +9773,7 @@ CONFIG_MAX44000=m CONFIG_MAX44009=m CONFIG_NOA1305=m CONFIG_OPT3001=m +# CONFIG_OPT4001 is not set CONFIG_PA12203001=m CONFIG_SI1133=m CONFIG_SI1145=m @@ -9859,6 +9865,7 @@ CONFIG_MCP4131=m CONFIG_MCP4531=m CONFIG_MCP41010=m CONFIG_TPL0102=m +# CONFIG_X9250 is not set # end of Digital potentiometers # @@ -9884,6 +9891,7 @@ CONFIG_MPL115=m CONFIG_MPL115_I2C=m CONFIG_MPL115_SPI=m CONFIG_MPL3115=m +# CONFIG_MPRLS0025PA is not set CONFIG_MS5611=m CONFIG_MS5611_I2C=m CONFIG_MS5611_SPI=m @@ -10018,6 +10026,7 @@ CONFIG_PHY_INTEL_LGM_EMMC=m CONFIG_POWERCAP=y CONFIG_INTEL_RAPL_CORE=m CONFIG_INTEL_RAPL=m +# CONFIG_INTEL_RAPL_TPMI is not set CONFIG_IDLE_INJECT=y CONFIG_MCB=m CONFIG_MCB_PCI=m @@ -10058,6 +10067,14 @@ CONFIG_DEV_DAX_HMEM_DEVICES=y CONFIG_DEV_DAX_KMEM=m CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y + +# +# Layout Types +# +# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set +# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set +# end of Layout Types + CONFIG_NVMEM_RAVE_SP_EEPROM=m CONFIG_NVMEM_RMEM=m # CONFIG_NVMEM_SPMI_SDAM is not set @@ -10163,9 +10180,11 @@ CONFIG_JFS_SECURITY=y CONFIG_JFS_STATISTICS=y CONFIG_XFS_FS=m CONFIG_XFS_SUPPORT_V4=y +CONFIG_XFS_SUPPORT_ASCII_CI=y CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y +CONFIG_XFS_DRAIN_INTENTS=y CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_ONLINE_REPAIR=y # CONFIG_XFS_WARN is not set @@ -10220,13 +10239,11 @@ CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y -# CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=y CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -10300,7 +10317,6 @@ CONFIG_TMPFS_XATTR=y CONFIG_TMPFS_INODE64=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y -CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y # CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set CONFIG_MEMFD_CREATE=y @@ -10446,7 +10462,7 @@ CONFIG_SMB_SERVER=m CONFIG_SMB_SERVER_SMBDIRECT=y CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y CONFIG_SMB_SERVER_KERBEROS5=y -CONFIG_SMBFS_COMMON=m +CONFIG_SMBFS=m CONFIG_CODA_FS=m CONFIG_AFS_FS=m # CONFIG_AFS_DEBUG is not set @@ -10508,7 +10524,6 @@ CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=y CONFIG_DLM=m -# CONFIG_DLM_DEPRECATED_API is not set CONFIG_DLM_DEBUG=y CONFIG_UNICODE=y # CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set @@ -10536,16 +10551,13 @@ CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y # CONFIG_INTEL_TXT is not set CONFIG_LSM_MMAP_MIN_ADDR=65536 -CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=y CONFIG_FORTIFY_SOURCE=y # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -# CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 CONFIG_SECURITY_SMACK=y @@ -10582,10 +10594,10 @@ CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y CONFIG_INTEGRITY_TRUSTED_KEYRING=y CONFIG_INTEGRITY_PLATFORM_KEYRING=y CONFIG_INTEGRITY_MACHINE_KEYRING=y +# CONFIG_INTEGRITY_CA_MACHINE_KEYRING is not set CONFIG_LOAD_UEFI_KEYS=y CONFIG_INTEGRITY_AUDIT=y # CONFIG_IMA is not set -# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set # CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set # CONFIG_EVM is not set # CONFIG_DEFAULT_SECURITY_SELINUX is not set @@ -10602,13 +10614,7 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor" # # Memory initialization # -CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y CONFIG_INIT_STACK_NONE=y -# CONFIG_INIT_STACK_ALL_PATTERN is not set -# CONFIG_INIT_STACK_ALL_ZERO is not set -# CONFIG_GCC_PLUGIN_STACKLEAK is not set CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y @@ -10616,8 +10622,6 @@ CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y # end of Memory initialization CONFIG_RANDSTRUCT_NONE=y -# CONFIG_RANDSTRUCT_FULL is not set -# CONFIG_RANDSTRUCT_PERFORMANCE is not set # end of Kernel hardening options # end of Security options @@ -10636,6 +10640,7 @@ CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SIG2=y CONFIG_CRYPTO_SKCIPHER=y CONFIG_CRYPTO_SKCIPHER2=y CONFIG_CRYPTO_HASH=y @@ -10729,6 +10734,7 @@ CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_GENIV=y CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=m CONFIG_CRYPTO_ESSIV=m @@ -10750,7 +10756,7 @@ CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA3=m +CONFIG_CRYPTO_SHA3=y CONFIG_CRYPTO_SM3=m CONFIG_CRYPTO_SM3_GENERIC=m CONFIG_CRYPTO_STREEBOG=m @@ -10790,6 +10796,7 @@ CONFIG_CRYPTO_DRBG_HASH=y CONFIG_CRYPTO_DRBG_CTR=y CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set CONFIG_CRYPTO_KDF800108_CTR=y # end of Random number generation @@ -10861,6 +10868,8 @@ CONFIG_CRYPTO_DEV_SP_CCP=y CONFIG_CRYPTO_DEV_CCP_CRYPTO=m CONFIG_CRYPTO_DEV_SP_PSP=y CONFIG_CRYPTO_DEV_CCP_DEBUGFS=y +CONFIG_CRYPTO_DEV_NITROX=m +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_QAT=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_C3XXX=m @@ -10869,8 +10878,6 @@ CONFIG_CRYPTO_DEV_QAT_4XXX=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m -CONFIG_CRYPTO_DEV_NITROX=m -CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_CHELSIO=m CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DEV_SAFEXCEL=m @@ -11005,9 +11012,11 @@ CONFIG_INTERVAL_TREE_SPAN_ITER=y CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_DMA_OPS=y +CONFIG_NEED_SG_DMA_FLAGS=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y @@ -11167,6 +11176,7 @@ CONFIG_PTDUMP_CORE=y # CONFIG_PTDUMP_DEBUGFS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_PER_VMA_LOCK_STATS is not set # CONFIG_DEBUG_OBJECTS is not set CONFIG_SHRINKER_DEBUG=y # CONFIG_DEBUG_STACK_USAGE is not set @@ -11206,14 +11216,20 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_HARDLOCKUP_DETECTOR_PERF=y -CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_HARDLOCKUP_DETECTOR_PREFER_BUDDY is not set +CONFIG_HARDLOCKUP_DETECTOR_PERF=y +# CONFIG_HARDLOCKUP_DETECTOR_BUDDY is not set +# CONFIG_HARDLOCKUP_DETECTOR_ARCH is not set +CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER=y +CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set # CONFIG_WQ_WATCHDOG is not set +# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set # CONFIG_TEST_LOCKUP is not set # end of Debug Oops, Lockups and Hangs @@ -11292,6 +11308,7 @@ CONFIG_HAVE_RETHOOK=y CONFIG_RETHOOK=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y @@ -11319,6 +11336,7 @@ CONFIG_FTRACE=y CONFIG_BOOTTIME_TRACING=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_FUNCTION_GRAPH_RETVAL is not set CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y @@ -11339,6 +11357,7 @@ CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_FPROBE_EVENTS=y CONFIG_KPROBE_EVENTS=y # CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set CONFIG_UPROBE_EVENTS=y @@ -11350,6 +11369,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y CONFIG_FTRACE_MCOUNT_USE_CC=y CONFIG_TRACING_MAP=y CONFIG_SYNTH_EVENTS=y +# CONFIG_USER_EVENTS is not set CONFIG_HIST_TRIGGERS=y # CONFIG_TRACE_EVENT_INJECT is not set # CONFIG_TRACEPOINT_BENCHMARK is not set diff --git a/projects/PC/devices/AMD64/options b/projects/PC/devices/AMD64/options index f8f44c43c..c343a38c2 100644 --- a/projects/PC/devices/AMD64/options +++ b/projects/PC/devices/AMD64/options @@ -1,14 +1,11 @@ case ${TARGET_ARCH} in - x86_64) - # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 - # athlon-fx amdfam10 barcelona - # (Intel CPUs) atom core2 nocona - # - TARGET_CPU="x86-64" - ;; - i686) - TARGET_CPU="i686" - ;; + x86_64|i686) + if [ -z "${TARGET_CPU}" ] + then + # Zen version 1 + TARGET_CPU="znver1" + fi + ;; esac # kernel command line diff --git a/projects/PC/devices/INTEL64/linux/linux.i686.conf b/projects/PC/devices/INTEL64/linux/linux.i686.conf new file mode 120000 index 000000000..cfe5f551c --- /dev/null +++ b/projects/PC/devices/INTEL64/linux/linux.i686.conf @@ -0,0 +1 @@ +linux.x86_64.conf \ No newline at end of file diff --git a/projects/PC/devices/INTEL64/linux/linux.x86_64.conf b/projects/PC/devices/INTEL64/linux/linux.x86_64.conf new file mode 100644 index 000000000..d425b5f1b --- /dev/null +++ b/projects/PC/devices/INTEL64/linux/linux.x86_64.conf @@ -0,0 +1,11487 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/x86 6.5.10 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=110400 +CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=23800 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=23800 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y +CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_TOOLS_SUPPORT_RELR=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BUILD_SALT="" +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_HAVE_KERNEL_ZSTD=y +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +# CONFIG_KERNEL_ZSTD is not set +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="@DEVICENAME@" +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +CONFIG_AUDIT=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_IRQ_INJECTION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_SIM=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_IRQ_MSI_IOMMU=y +CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y +CONFIG_GENERIC_IRQ_RESERVATION_MODE=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_CONTEXT_TRACKING_IDLE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 +# end of Timers subsystem + +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y + +# +# BPF subsystem +# +CONFIG_BPF_SYSCALL=y +# CONFIG_BPF_JIT is not set +# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set +# CONFIG_BPF_PRELOAD is not set +# end of BPF subsystem + +CONFIG_PREEMPT_BUILD=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y +CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_HAVE_SCHED_AVG_IRQ=y +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_TASKSTATS is not set +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_RCU=y +CONFIG_TASKS_RUDE_RCU=y +CONFIG_TASKS_TRACE_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_IKCONFIG=m +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +# CONFIG_PRINTK_INDEX is not set +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y + +# +# Scheduler features +# +# CONFIG_UCLAMP_TASK is not set +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y +CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_CC_NO_ARRAY_BOUNDS=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +# CONFIG_CGROUP_FAVOR_DYNMODS is not set +CONFIG_MEMCG=y +CONFIG_MEMCG_KMEM=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y +# CONFIG_CGROUP_PIDS is not set +# CONFIG_CGROUP_RDMA is not set +CONFIG_CGROUP_FREEZER=y +# CONFIG_CGROUP_HUGETLB is not set +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y +# CONFIG_CGROUP_MISC is not set +# CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_TIME_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_RD_ZSTD=y +# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set +CONFIG_INITRAMFS_COMPRESSION_NONE=y +CONFIG_BOOT_CONFIG=y +# CONFIG_BOOT_CONFIG_FORCE is not set +# CONFIG_BOOT_CONFIG_EMBED is not set +# CONFIG_INITRAMFS_PRESERVE_MTIME is not set +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_LD_ORPHAN_WARN=y +CONFIG_LD_ORPHAN_WARN_LEVEL="warn" +CONFIG_SYSCTL=y +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_EXPERT=y +# CONFIG_UID16 is not set +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +# CONFIG_SYSFS_SYSCALL is not set +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +# CONFIG_PCSPKR_PLATFORM is not set +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_SELFTEST is not set +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_KCMP=y +CONFIG_RSEQ=y +CONFIG_CACHESTAT_SYSCALL=y +# CONFIG_DEBUG_RSEQ is not set +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_SYSTEM_DATA_VERIFICATION=y +# CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y +# end of General setup + +CONFIG_64BIT=y +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=28 +CONFIG_ARCH_MMAP_RND_BITS_MAX=32 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_AUDIT_ARCH=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_X86_64_SMP=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_DYNAMIC_PHYSICAL_MASK=y +CONFIG_PGTABLE_LEVELS=5 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y + +# +# Processor type and features +# +CONFIG_SMP=y +CONFIG_X86_X2APIC=y +CONFIG_X86_MPPARSE=y +# CONFIG_GOLDFISH is not set +CONFIG_X86_CPU_RESCTRL=y +# CONFIG_X86_EXTENDED_PLATFORM is not set +CONFIG_X86_INTEL_LPSS=y +CONFIG_X86_AMD_PLATFORM_DEVICE=y +CONFIG_IOSF_MBI=y +# CONFIG_IOSF_MBI_DEBUG is not set +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_SPINLOCKS=y +CONFIG_X86_HV_CALLBACK_VECTOR=y +# CONFIG_XEN is not set +# CONFIG_KVM_GUEST is not set +CONFIG_ARCH_CPUIDLE_HALTPOLL=y +CONFIG_PVH=y +CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_JAILHOUSE_GUEST=y +CONFIG_ACRN_GUEST=y +CONFIG_INTEL_TDX_GUEST=y +# CONFIG_MK8 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_MATOM is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_IA32_FEAT_CTL=y +CONFIG_X86_VMX_FEATURE_NAMES=y +# CONFIG_PROCESSOR_SELECT is not set +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_HYGON=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_ZHAOXIN=y +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +CONFIG_BOOT_VESA_SUPPORT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=16 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +# CONFIG_X86_MCELOG_LEGACY is not set +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_THRESHOLD=y +CONFIG_X86_MCE_INJECT=m + +# +# Performance monitoring +# +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +CONFIG_PERF_EVENTS_INTEL_RAPL=y +CONFIG_PERF_EVENTS_INTEL_CSTATE=y +CONFIG_PERF_EVENTS_AMD_POWER=y +CONFIG_PERF_EVENTS_AMD_UNCORE=y +CONFIG_PERF_EVENTS_AMD_BRS=y +# end of Performance monitoring + +CONFIG_X86_16BIT=y +CONFIG_X86_ESPFIX64=y +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_X86_IOPL_IOPERM=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +# CONFIG_MICROCODE_LATE_LOADING is not set +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +CONFIG_X86_5LEVEL=y +CONFIG_X86_DIRECT_GBPAGES=y +CONFIG_X86_CPA_STATISTICS=y +CONFIG_X86_MEM_ENCRYPT=y +CONFIG_AMD_MEM_ENCRYPT=y +# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set +CONFIG_NUMA=y +CONFIG_AMD_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NODES_SHIFT=6 +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +# CONFIG_ARCH_MEMORY_PROBE is not set +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_X86_PMEM_LEGACY_DEVICE=y +CONFIG_X86_PMEM_LEGACY=m +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_X86_UMIP=y +CONFIG_CC_HAS_IBT=y +CONFIG_X86_KERNEL_IBT=y +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y +CONFIG_X86_INTEL_TSX_MODE_OFF=y +# CONFIG_X86_INTEL_TSX_MODE_ON is not set +# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +CONFIG_X86_SGX=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_EFI_HANDOVER_PROTOCOL=y +CONFIG_EFI_MIXED=y +# CONFIG_EFI_FAKE_MEMMAP is not set +CONFIG_EFI_RUNTIME_MAP=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +CONFIG_HZ_300=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=300 +CONFIG_SCHED_HRTICK=y +CONFIG_KEXEC=y +CONFIG_KEXEC_FILE=y +CONFIG_ARCH_HAS_KEXEC_PURGATORY=y +CONFIG_KEXEC_SIG=y +# CONFIG_KEXEC_SIG_FORCE is not set +CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y +CONFIG_CRASH_DUMP=y +CONFIG_KEXEC_JUMP=y +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_DYNAMIC_MEMORY_LAYOUT=y +CONFIG_RANDOMIZE_MEMORY=y +CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa +# CONFIG_ADDRESS_MASKING is not set +CONFIG_HOTPLUG_CPU=y +# CONFIG_COMPAT_VDSO is not set +CONFIG_LEGACY_VSYSCALL_XONLY=y +# CONFIG_LEGACY_VSYSCALL_NONE is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.authorized_default=1" +# CONFIG_CMDLINE_OVERRIDE is not set +CONFIG_MODIFY_LDT_SYSCALL=y +# CONFIG_STRICT_SIGALTSTACK_SIZE is not set +CONFIG_HAVE_LIVEPATCH=y +# CONFIG_LIVEPATCH is not set +# end of Processor type and features + +CONFIG_CC_HAS_SLS=y +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_CC_HAS_ENTRY_PADDING=y +CONFIG_FUNCTION_PADDING_CFI=11 +CONFIG_FUNCTION_PADDING_BYTES=16 +CONFIG_CALL_PADDING=y +CONFIG_HAVE_CALL_THUNKS=y +CONFIG_CALL_THUNKS=y +CONFIG_PREFIX_SYMBOLS=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CALL_DEPTH_TRACKING=y +# CONFIG_CALL_THUNKS_DEBUG is not set +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y +CONFIG_CPU_SRSO=y +CONFIG_SLS=y +# CONFIG_GDS_FORCE_MITIGATION is not set +CONFIG_ARCH_HAS_ADD_PAGES=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_AUTOSLEEP=y +# CONFIG_PM_USERSPACE_AUTOSLEEP is not set +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=100 +CONFIG_PM_WAKELOCKS_GC=y +CONFIG_PM=y +CONFIG_PM_DEBUG=y +# CONFIG_PM_ADVANCED_DEBUG is not set +# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_SLEEP_DEBUG=y +# CONFIG_DPM_WATCHDOG is not set +CONFIG_PM_TRACE=y +CONFIG_PM_TRACE_RTC=y +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_ENERGY_MODEL=y +CONFIG_ARCH_SUPPORTS_ACPI=y +CONFIG_ACPI=y +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y +CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +CONFIG_ACPI_TABLE_LIB=y +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y +CONFIG_ACPI_FPDT=y +CONFIG_ACPI_LPIT=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y +CONFIG_ACPI_EC_DEBUGFS=m +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=y +CONFIG_ACPI_FAN=y +CONFIG_ACPI_TAD=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_PROCESSOR_AGGREGATOR=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_PLATFORM_PROFILE=y +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD is not set +CONFIG_ACPI_DEBUG=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_HOTPLUG_MEMORY=y +CONFIG_ACPI_HOTPLUG_IOAPIC=y +CONFIG_ACPI_SBS=m +CONFIG_ACPI_HED=y +CONFIG_ACPI_CUSTOM_METHOD=m +CONFIG_ACPI_BGRT=y +# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set +CONFIG_ACPI_NFIT=m +# CONFIG_NFIT_SECURITY_DEBUG is not set +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_HMAT=y +CONFIG_HAVE_ACPI_APEI=y +CONFIG_HAVE_ACPI_APEI_NMI=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_EINJ=m +CONFIG_ACPI_APEI_ERST_DEBUG=m +CONFIG_ACPI_DPTF=y +CONFIG_DPTF_POWER=m +CONFIG_DPTF_PCH_FIVR=m +CONFIG_ACPI_WATCHDOG=y +CONFIG_ACPI_EXTLOG=m +CONFIG_ACPI_ADXL=y +CONFIG_ACPI_CONFIGFS=m +CONFIG_ACPI_PFRUT=m +CONFIG_ACPI_PCC=y +CONFIG_ACPI_FFH=y +CONFIG_PMIC_OPREGION=y +CONFIG_BYTCRC_PMIC_OPREGION=y +CONFIG_CHTCRC_PMIC_OPREGION=y +CONFIG_XPOWER_PMIC_OPREGION=y +CONFIG_BXT_WC_PMIC_OPREGION=y +CONFIG_CHT_WC_PMIC_OPREGION=y +CONFIG_CHT_DC_TI_PMIC_OPREGION=y +CONFIG_TPS68470_PMIC_OPREGION=y +CONFIG_ACPI_VIOT=y +CONFIG_ACPI_PRMT=y +CONFIG_X86_PM_TIMER=y + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_PCC_CPUFREQ=m +CONFIG_X86_AMD_PSTATE=y +CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 +CONFIG_X86_AMD_PSTATE_UT=y +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ_CPB=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_AMD_FREQ_SENSITIVITY=m +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +CONFIG_X86_P4_CLOCKMOD=y + +# +# shared options +# +CONFIG_X86_SPEEDSTEP_LIB=y +# end of CPU Frequency scaling + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_IDLE_GOV_TEO=y +# end of CPU Idle + +CONFIG_INTEL_IDLE=y +# end of Power management and ACPI options + +# +# Bus options (PCI etc.) +# +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_MMCONF_FAM10H=y +# CONFIG_PCI_CNB20LE_QUIRK is not set +# CONFIG_ISA_BUS is not set +CONFIG_ISA_DMA_API=y +CONFIG_AMD_NB=y +# end of Bus options (PCI etc.) + +# +# Binary Emulations +# +CONFIG_IA32_EMULATION=y +# CONFIG_X86_X32_ABI is not set +CONFIG_COMPAT_32=y +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +# end of Binary Emulations + +CONFIG_HAVE_KVM=y +CONFIG_VIRTUALIZATION=y +# CONFIG_KVM is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y +CONFIG_AS_GFNI=y + +# +# General architecture-dependent options +# +CONFIG_CRASH_CORE=y +CONFIG_KEXEC_CORE=y +CONFIG_HOTPLUG_SMT=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y +CONFIG_HOTPLUG_CORE_SYNC_FULL=y +CONFIG_HOTPLUG_SPLIT_STARTUP=y +CONFIG_HOTPLUG_PARALLEL=y +CONFIG_GENERIC_ENTRY=y +CONFIG_KPROBES=y +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +# CONFIG_STATIC_CALL_SELFTEST is not set +CONFIG_OPTPROBES=y +CONFIG_KPROBES_ON_FTRACE=y +CONFIG_UPROBES=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_KRETPROBES=y +CONFIG_KRETPROBE_ON_RETHOOK=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_ARCH_WANTS_NO_INSTR=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_RUST=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_MMU_GATHER_TABLE_FREE=y +CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_MMU_GATHER_MERGE_VMAS=y +CONFIG_MMU_LAZY_TLB_REFCOUNT=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +# CONFIG_SECCOMP_CACHE_DEBUG is not set +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_LTO_NONE=y +CONFIG_ARCH_SUPPORTS_CFI_CLANG=y +CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y +CONFIG_HAVE_CONTEXT_TRACKING_USER=y +CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_SOFTIRQ_ON_OWN_STACK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS=28 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_HAVE_OBJTOOL=y +CONFIG_HAVE_JUMP_LABEL_HACK=y +CONFIG_HAVE_NOINSTR_HACK=y +CONFIG_HAVE_NOINSTR_VALIDATION=y +CONFIG_HAVE_UACCESS_VALIDATION=y +CONFIG_HAVE_STACK_VALIDATION=y +CONFIG_HAVE_RELIABLE_STACKTRACE=y +CONFIG_ISA_BUS_API=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +CONFIG_RANDOMIZE_KSTACK_OFFSET=y +CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +CONFIG_LOCK_EVENT_COUNTS=y +CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_ARCH_HAS_CC_PLATFORM=y +CONFIG_HAVE_STATIC_CALL=y +CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y +CONFIG_ARCH_HAS_ELFCORE_COMPAT=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y +CONFIG_DYNAMIC_SIGFRAME=y +CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y +CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +CONFIG_FUNCTION_ALIGNMENT_4B=y +CONFIG_FUNCTION_ALIGNMENT_16B=y +CONFIG_FUNCTION_ALIGNMENT=16 +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULE_SIG_FORMAT=y +CONFIG_MODULES=y +CONFIG_MODULE_DEBUGFS=y +# CONFIG_MODULE_DEBUG is not set +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y +# CONFIG_MODVERSIONS is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_SIG=y +# CONFIG_MODULE_SIG_FORCE is not set +CONFIG_MODULE_SIG_ALL=y +# CONFIG_MODULE_SIG_SHA1 is not set +# CONFIG_MODULE_SIG_SHA224 is not set +# CONFIG_MODULE_SIG_SHA256 is not set +# CONFIG_MODULE_SIG_SHA384 is not set +CONFIG_MODULE_SIG_SHA512=y +CONFIG_MODULE_SIG_HASH="sha512" +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y +CONFIG_MODPROBE_PATH="/sbin/modprobe" +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_BLOCK_LEGACY_AUTOLOAD=y +CONFIG_BLK_RQ_ALLOC_TIME=y +CONFIG_BLK_CGROUP_RWSTAT=y +CONFIG_BLK_CGROUP_PUNT_BIO=y +CONFIG_BLK_DEV_BSG_COMMON=y +CONFIG_BLK_ICQ=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_INTEGRITY_T10=y +CONFIG_BLK_DEV_ZONED=y +CONFIG_BLK_DEV_THROTTLING=y +CONFIG_BLK_DEV_THROTTLING_LOW=y +CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_MQ=y +CONFIG_BLK_CGROUP_IOLATENCY=y +CONFIG_BLK_CGROUP_FC_APPID=y +CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_CGROUP_IOPRIO=y +CONFIG_BLK_DEBUG_FS=y +CONFIG_BLK_DEBUG_FS_ZONED=y +CONFIG_BLK_SED_OPAL=y +CONFIG_BLK_INLINE_ENCRYPTION=y +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +CONFIG_AIX_PARTITION=y +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set +# end of Partition Types + +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y +CONFIG_BLK_MQ_STACKING=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +CONFIG_IOSCHED_BFQ=y +CONFIG_BFQ_GROUP_IOSCHED=y +# CONFIG_BFQ_CGROUP_DEBUG is not set +# end of IO Schedulers + +CONFIG_PADATA=y +CONFIG_ASN1=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_ZPOOL=y +CONFIG_SWAP=y +CONFIG_ZSWAP=y +CONFIG_ZSWAP_DEFAULT_ON=y +# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y +CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd" +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y +CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc" +CONFIG_ZBUD=y +CONFIG_Z3FOLD=y +CONFIG_ZSMALLOC=y +CONFIG_ZSMALLOC_STAT=y +CONFIG_ZSMALLOC_CHAIN_SIZE=8 + +# +# SLAB allocator options +# +# CONFIG_SLAB_DEPRECATED is not set +CONFIG_SLUB=y +# CONFIG_SLUB_TINY is not set +CONFIG_SLAB_MERGE_DEFAULT=y +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +# CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y +# end of SLAB allocator options + +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_ARCH_WANT_OPTIMIZE_VMEMMAP=y +CONFIG_HAVE_FAST_GUP=y +CONFIG_NUMA_KEEP_MEMINFO=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_EXCLUSIVE_SYSTEM_RAM=y +CONFIG_HAVE_BOOTMEM_INFO_NODE=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MHP_MEMMAP_ON_MEMORY=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_MEMORY_BALLOON=y +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 +CONFIG_PAGE_REPORTING=y +CONFIG_MIGRATION=y +CONFIG_DEVICE_MIGRATION=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_ARCH_ENABLE_THP_MIGRATION=y +CONFIG_CONTIG_ALLOC=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_MMU_NOTIFIER=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_MEMORY_FAILURE=y +CONFIG_HWPOISON_INJECT=m +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANTS_THP_SWAP=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_THP_SWAP=y +CONFIG_READ_ONLY_THP_FOR_FS=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_FRONTSWAP=y +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA_DEBUGFS=y +CONFIG_CMA_SYSFS=y +CONFIG_CMA_AREAS=19 +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +CONFIG_PAGE_IDLE_FLAG=y +CONFIG_IDLE_PAGE_TRACKING=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ARCH_HAS_ZONE_DMA_SET=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DEVICE=y +CONFIG_HMM_MIRROR=y +CONFIG_GET_FREE_REGION=y +CONFIG_DEVICE_PRIVATE=y +CONFIG_VMAP_PFN=y +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_HAS_PKEYS=y +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_TEST is not set +# CONFIG_DMAPOOL_TEST is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_MAPPING_DIRTY_HELPERS=y +CONFIG_SECRETMEM=y +CONFIG_ANON_VMA_NAME=y +CONFIG_USERFAULTFD=y +CONFIG_HAVE_ARCH_USERFAULTFD_WP=y +CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y +CONFIG_PTE_MARKER_UFFD_WP=y +CONFIG_LRU_GEN=y +CONFIG_LRU_GEN_ENABLED=y +# CONFIG_LRU_GEN_STATS is not set +CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y +CONFIG_LOCK_MM_AND_FIND_VMA=y + +# +# Data Access Monitoring +# +CONFIG_DAMON=y +CONFIG_DAMON_VADDR=y +CONFIG_DAMON_PADDR=y +CONFIG_DAMON_SYSFS=y +CONFIG_DAMON_DBGFS=y +CONFIG_DAMON_RECLAIM=y +CONFIG_DAMON_LRU_SORT=y +# end of Data Access Monitoring +# end of Memory Management options + +CONFIG_NET=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y +CONFIG_NET_REDIRECT=y +CONFIG_SKB_EXTENSIONS=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y +CONFIG_UNIX_DIAG=m +CONFIG_TLS=m +CONFIG_TLS_DEVICE=y +# CONFIG_TLS_TOE is not set +CONFIG_XFRM=y +CONFIG_XFRM_OFFLOAD=y +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_USER_COMPAT is not set +CONFIG_XFRM_INTERFACE=m +CONFIG_XFRM_SUB_POLICY=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_XFRM_AH=m +CONFIG_XFRM_ESP=m +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_XFRM_ESPINTCP=y +CONFIG_SMC=m +CONFIG_SMC_DIAG=m +CONFIG_XDP_SOCKETS=y +CONFIG_XDP_SOCKETS_DIAG=m +CONFIG_NET_HANDSHAKE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE_COMMON=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m +CONFIG_NET_UDP_TUNNEL=m +CONFIG_NET_FOU=m +CONFIG_NET_FOU_IP_TUNNELS=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_ESP_OFFLOAD=m +CONFIG_INET_ESPINTCP=y +CONFIG_INET_IPCOMP=m +CONFIG_INET_TABLE_PERTURB_ORDER=16 +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_INET_RAW_DIAG=m +CONFIG_INET_DIAG_DESTROY=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_NV=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_DCTCP=m +CONFIG_TCP_CONG_CDG=m +CONFIG_TCP_CONG_BBR=m +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_ESP_OFFLOAD=m +CONFIG_INET6_ESPINTCP=y +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_IPV6_ILA=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_IPV6_VTI=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_GRE=m +CONFIG_IPV6_FOU=m +CONFIG_IPV6_FOU_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +CONFIG_IPV6_SEG6_LWTUNNEL=y +CONFIG_IPV6_SEG6_HMAC=y +CONFIG_IPV6_SEG6_BPF=y +CONFIG_IPV6_RPL_LWTUNNEL=y +CONFIG_IPV6_IOAM6_LWTUNNEL=y +CONFIG_NETLABEL=y +CONFIG_MPTCP=y +CONFIG_INET_MPTCP_DIAG=m +CONFIG_MPTCP_IPV6=y +CONFIG_NETWORK_SECMARK=y +CONFIG_NET_PTP_CLASSIFY=y +CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=m + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_EGRESS=y +CONFIG_NETFILTER_SKIP_EGRESS=y +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_FAMILY_ARP=y +CONFIG_NETFILTER_BPF_LINK=y +CONFIG_NETFILTER_NETLINK_HOOK=m +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_OSF=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_LOG_SYSLOG=m +CONFIG_NETFILTER_CONNCOUNT=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CONNTRACK_OVS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_GRE=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_GLUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_REDIRECT=y +CONFIG_NF_NAT_MASQUERADE=y +CONFIG_NF_NAT_OVS=y +CONFIG_NETFILTER_SYNPROXY=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y +CONFIG_NFT_NUMGEN=m +CONFIG_NFT_CT=m +CONFIG_NFT_FLOW_OFFLOAD=m +CONFIG_NFT_CONNLIMIT=m +CONFIG_NFT_LOG=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_MASQ=m +CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m +CONFIG_NFT_TUNNEL=m +CONFIG_NFT_QUEUE=m +CONFIG_NFT_QUOTA=m +CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m +CONFIG_NFT_COMPAT=m +CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m +CONFIG_NFT_XFRM=m +CONFIG_NFT_SOCKET=m +CONFIG_NFT_OSF=m +CONFIG_NFT_TPROXY=m +CONFIG_NFT_SYNPROXY=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m +CONFIG_NFT_REJECT_NETDEV=m +CONFIG_NF_FLOW_TABLE_INET=m +CONFIG_NF_FLOW_TABLE=m +CONFIG_NF_FLOW_TABLE_PROCFS=y +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES_COMPAT=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_NAT=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CGROUP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_L2TP=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +# end of Core Netfilter Configuration + +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPMARK=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_IPMAC=m +CONFIG_IP_SET_HASH_MAC=m +CONFIG_IP_SET_HASH_NETPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=15 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_MH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_TWOS=m + +# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# +# IPVS MH scheduler +# +CONFIG_IP_VS_MH_TAB_INDEX=12 + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PE_SIP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_SOCKET_IPV4=m +CONFIG_NF_TPROXY_IPV4=m +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_DUP_IPV4=m +CONFIG_NF_LOG_ARP=m +CONFIG_NF_LOG_IPV4=m +CONFIG_NF_REJECT_IPV4=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SYNPROXY=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +# end of IP: Netfilter Configuration + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_SOCKET_IPV6=m +CONFIG_NF_TPROXY_IPV6=m +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m +CONFIG_NF_DUP_IPV6=m +CONFIG_NF_REJECT_IPV6=m +CONFIG_NF_LOG_IPV6=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_SRH=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_TARGET_SYNPROXY=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_TABLES_BRIDGE=m +CONFIG_NFT_BRIDGE_META=m +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_CONNTRACK_BRIDGE=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y +CONFIG_INET_SCTP_DIAG=m +CONFIG_RDS=m +CONFIG_RDS_RDMA=m +CONFIG_RDS_TCP=m +# CONFIG_RDS_DEBUG is not set +CONFIG_TIPC=m +CONFIG_TIPC_MEDIA_IB=y +CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TIPC_CRYPTO=y +CONFIG_TIPC_DIAG=m +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_MRP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_BRIDGE_MRP=y +CONFIG_BRIDGE_CFM=y +CONFIG_NET_DSA=m +CONFIG_NET_DSA_TAG_NONE=m +CONFIG_NET_DSA_TAG_AR9331=m +CONFIG_NET_DSA_TAG_BRCM_COMMON=m +CONFIG_NET_DSA_TAG_BRCM=m +CONFIG_NET_DSA_TAG_BRCM_LEGACY=m +CONFIG_NET_DSA_TAG_BRCM_PREPEND=m +CONFIG_NET_DSA_TAG_HELLCREEK=m +CONFIG_NET_DSA_TAG_GSWIP=m +CONFIG_NET_DSA_TAG_DSA_COMMON=m +CONFIG_NET_DSA_TAG_DSA=m +CONFIG_NET_DSA_TAG_EDSA=m +CONFIG_NET_DSA_TAG_MTK=m +CONFIG_NET_DSA_TAG_KSZ=m +CONFIG_NET_DSA_TAG_OCELOT=m +CONFIG_NET_DSA_TAG_OCELOT_8021Q=m +CONFIG_NET_DSA_TAG_QCA=m +CONFIG_NET_DSA_TAG_RTL4_A=m +CONFIG_NET_DSA_TAG_RTL8_4=m +CONFIG_NET_DSA_TAG_RZN1_A5PSW=m +CONFIG_NET_DSA_TAG_LAN9303=m +CONFIG_NET_DSA_TAG_SJA1105=m +CONFIG_NET_DSA_TAG_TRAILER=m +CONFIG_NET_DSA_TAG_XRS700X=m +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_LLC=m +CONFIG_LLC2=m +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +CONFIG_PHONET=m +CONFIG_6LOWPAN=m +CONFIG_6LOWPAN_DEBUGFS=y +CONFIG_6LOWPAN_NHC=m +CONFIG_6LOWPAN_NHC_DEST=m +CONFIG_6LOWPAN_NHC_FRAGMENT=m +CONFIG_6LOWPAN_NHC_HOP=m +CONFIG_6LOWPAN_NHC_IPV6=m +CONFIG_6LOWPAN_NHC_MOBILITY=m +CONFIG_6LOWPAN_NHC_ROUTING=m +CONFIG_6LOWPAN_NHC_UDP=m +CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m +CONFIG_6LOWPAN_GHC_UDP=m +CONFIG_6LOWPAN_GHC_ICMPV6=m +CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m +CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m +CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m +CONFIG_IEEE802154=m +CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y +CONFIG_IEEE802154_SOCKET=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_MAC802154=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_CBS=m +CONFIG_NET_SCH_ETF=m +CONFIG_NET_SCH_MQPRIO_LIB=m +CONFIG_NET_SCH_TAPRIO=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_SKBPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_CAKE=m +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_HHF=m +CONFIG_NET_SCH_PIE=m +CONFIG_NET_SCH_FQ_PIE=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_PLUG=m +CONFIG_NET_SCH_ETS=m +CONFIG_NET_SCH_DEFAULT=y +# CONFIG_DEFAULT_FQ is not set +# CONFIG_DEFAULT_CODEL is not set +CONFIG_DEFAULT_FQ_CODEL=y +# CONFIG_DEFAULT_FQ_PIE is not set +# CONFIG_DEFAULT_SFQ is not set +# CONFIG_DEFAULT_PFIFO_FAST is not set +CONFIG_DEFAULT_NET_SCH="fq_codel" + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_BPF=m +CONFIG_NET_CLS_FLOWER=m +CONFIG_NET_CLS_MATCHALL=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_CANID=m +CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_EMATCH_IPT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_SAMPLE=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_ACT_MPLS=m +CONFIG_NET_ACT_VLAN=m +CONFIG_NET_ACT_BPF=m +CONFIG_NET_ACT_CONNMARK=m +CONFIG_NET_ACT_CTINFO=m +CONFIG_NET_ACT_SKBMOD=m +CONFIG_NET_ACT_IFE=m +CONFIG_NET_ACT_TUNNEL_KEY=m +CONFIG_NET_ACT_CT=m +CONFIG_NET_ACT_GATE=m +CONFIG_NET_IFE_SKBMARK=m +CONFIG_NET_IFE_SKBPRIO=m +CONFIG_NET_IFE_SKBTCINDEX=m +CONFIG_NET_TC_SKB_EXT=y +CONFIG_NET_SCH_FIFO=y +CONFIG_DCB=y +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BATMAN_V=y +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +CONFIG_BATMAN_ADV_NC=y +CONFIG_BATMAN_ADV_MCAST=y +# CONFIG_BATMAN_ADV_DEBUG is not set +# CONFIG_BATMAN_ADV_TRACING is not set +CONFIG_OPENVSWITCH=m +CONFIG_OPENVSWITCH_GRE=m +CONFIG_OPENVSWITCH_VXLAN=m +CONFIG_OPENVSWITCH_GENEVE=m +CONFIG_VSOCKETS=m +CONFIG_VSOCKETS_DIAG=m +CONFIG_VSOCKETS_LOOPBACK=m +CONFIG_VMWARE_VMCI_VSOCKETS=m +CONFIG_VIRTIO_VSOCKETS=m +CONFIG_VIRTIO_VSOCKETS_COMMON=m +CONFIG_HYPERV_VSOCKETS=m +CONFIG_NETLINK_DIAG=m +CONFIG_MPLS=y +CONFIG_NET_MPLS_GSO=m +CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m +CONFIG_NET_NSH=m +CONFIG_HSR=m +CONFIG_NET_SWITCHDEV=y +CONFIG_NET_L3_MASTER_DEV=y +CONFIG_QRTR=m +CONFIG_QRTR_SMD=m +CONFIG_QRTR_TUN=m +CONFIG_QRTR_MHI=m +CONFIG_NET_NCSI=y +CONFIG_NCSI_OEM_CMD_GET_MAC=y +CONFIG_NCSI_OEM_CMD_KEEP_PHY=y +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_MAX_SKB_FRAGS=17 +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CGROUP_NET_CLASSID=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +CONFIG_BPF_STREAM_PARSER=y +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +CONFIG_NET_DROP_MONITOR=y +# end of Network testing +# end of Networking options + +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m +# end of AX.25 network device drivers + +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m +CONFIG_CAN_GW=m +CONFIG_CAN_J1939=m +CONFIG_CAN_ISOTP=m +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m +CONFIG_BT_HS=y +CONFIG_BT_LE=y +CONFIG_BT_LE_L2CAP_ECRED=y +CONFIG_BT_6LOWPAN=m +CONFIG_BT_LEDS=y +CONFIG_BT_MSFTEXT=y +CONFIG_BT_AOSPEXT=y +CONFIG_BT_DEBUGFS=y +# CONFIG_BT_SELFTEST is not set + +# +# Bluetooth device drivers +# +CONFIG_BT_INTEL=m +CONFIG_BT_BCM=m +CONFIG_BT_RTL=m +CONFIG_BT_QCA=m +CONFIG_BT_MTK=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y +CONFIG_BT_HCIBTUSB_POLL_SYNC=y +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_MTK=y +CONFIG_BT_HCIBTUSB_RTL=y +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_SERDEV=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_NOKIA=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_RTL=y +CONFIG_BT_HCIUART_QCA=y +CONFIG_BT_HCIUART_AG6XX=y +CONFIG_BT_HCIUART_MRVL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBCM4377=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_MTKSDIO=m +CONFIG_BT_MTKUART=m +CONFIG_BT_HCIRSI=m +CONFIG_BT_VIRTIO=m +# CONFIG_BT_NXPUART is not set +# end of Bluetooth device drivers + +CONFIG_AF_RXRPC=m +CONFIG_AF_RXRPC_IPV6=y +# CONFIG_AF_RXRPC_INJECT_LOSS is not set +# CONFIG_AF_RXRPC_INJECT_RX_DELAY is not set +CONFIG_AF_RXRPC_DEBUG=y +CONFIG_RXKAD=y +# CONFIG_RXPERF is not set +CONFIG_AF_KCM=m +CONFIG_STREAM_PARSER=y +CONFIG_MCTP=y +CONFIG_MCTP_FLOWS=y +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_DEFAULT_PS=y +CONFIG_CFG80211_DEBUGFS=y +CONFIG_CFG80211_CRDA_SUPPORT=y +CONFIG_CFG80211_WEXT=y +CONFIG_CFG80211_WEXT_EXPORT=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +CONFIG_RFKILL=m +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_GPIO=m +CONFIG_NET_9P=m +CONFIG_NET_9P_FD=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_9P_RDMA=m +# CONFIG_NET_9P_DEBUG is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +CONFIG_CEPH_LIB_PRETTYDEBUG=y +CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y +CONFIG_NFC=m +CONFIG_NFC_DIGITAL=m +CONFIG_NFC_NCI=m +CONFIG_NFC_NCI_SPI=m +CONFIG_NFC_NCI_UART=m +CONFIG_NFC_HCI=m +CONFIG_NFC_SHDLC=y + +# +# Near Field Communication (NFC) devices +# +CONFIG_NFC_TRF7970A=m +CONFIG_NFC_MEI_PHY=m +CONFIG_NFC_SIM=m +CONFIG_NFC_PORT100=m +CONFIG_NFC_VIRTUAL_NCI=m +CONFIG_NFC_FDP=m +CONFIG_NFC_FDP_I2C=m +CONFIG_NFC_PN544=m +CONFIG_NFC_PN544_I2C=m +CONFIG_NFC_PN544_MEI=m +CONFIG_NFC_PN533=m +CONFIG_NFC_PN533_USB=m +CONFIG_NFC_PN533_I2C=m +CONFIG_NFC_PN532_UART=m +CONFIG_NFC_MICROREAD=m +CONFIG_NFC_MICROREAD_I2C=m +CONFIG_NFC_MICROREAD_MEI=m +CONFIG_NFC_MRVL=m +CONFIG_NFC_MRVL_USB=m +CONFIG_NFC_MRVL_UART=m +CONFIG_NFC_MRVL_I2C=m +CONFIG_NFC_MRVL_SPI=m +CONFIG_NFC_ST21NFCA=m +CONFIG_NFC_ST21NFCA_I2C=m +CONFIG_NFC_ST_NCI=m +CONFIG_NFC_ST_NCI_I2C=m +CONFIG_NFC_ST_NCI_SPI=m +CONFIG_NFC_NXP_NCI=m +CONFIG_NFC_NXP_NCI_I2C=m +CONFIG_NFC_S3FWRN5=m +CONFIG_NFC_S3FWRN5_I2C=m +CONFIG_NFC_S3FWRN82_UART=m +CONFIG_NFC_ST95HF=m +# end of Near Field Communication (NFC) devices + +CONFIG_PSAMPLE=m +CONFIG_NET_IFE=m +CONFIG_LWTUNNEL=y +CONFIG_LWTUNNEL_BPF=y +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_SOCK_VALIDATE_XMIT=y +CONFIG_NET_SELFTESTS=y +CONFIG_NET_SOCK_MSG=y +CONFIG_NET_DEVLINK=y +CONFIG_PAGE_POOL=y +# CONFIG_PAGE_POOL_STATS is not set +CONFIG_FAILOVER=y +CONFIG_ETHTOOL_NETLINK=y + +# +# Device Drivers +# +CONFIG_HAVE_EISA=y +# CONFIG_EISA is not set +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_PCIEAER=y +CONFIG_PCIEAER_INJECT=m +CONFIG_PCIE_ECRC=y +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEFAULT is not set +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +CONFIG_PCIEASPM_PERFORMANCE=y +CONFIG_PCIE_PME=y +CONFIG_PCIE_DPC=y +CONFIG_PCIE_PTM=y +CONFIG_PCIE_EDR=y +CONFIG_PCI_MSI=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +CONFIG_PCI_STUB=y +CONFIG_PCI_PF_STUB=m +CONFIG_PCI_ATS=y +CONFIG_PCI_DOE=y +CONFIG_PCI_LOCKLESS_CONFIG=y +CONFIG_PCI_IOV=y +CONFIG_PCI_PRI=y +CONFIG_PCI_PASID=y +CONFIG_PCI_P2PDMA=y +CONFIG_PCI_LABEL=y +CONFIG_PCI_HYPERV=m +# CONFIG_PCIE_BUS_TUNE_OFF is not set +CONFIG_PCIE_BUS_DEFAULT=y +# CONFIG_PCIE_BUS_SAFE is not set +# CONFIG_PCIE_BUS_PERFORMANCE is not set +# CONFIG_PCIE_BUS_PEER2PEER is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_SHPC=y + +# +# PCI controller drivers +# +CONFIG_VMD=m +CONFIG_PCI_HYPERV_INTERFACE=m + +# +# Cadence-based PCIe controllers +# +# end of Cadence-based PCIe controllers + +# +# DesignWare-based PCIe controllers +# +CONFIG_PCIE_DW=y +CONFIG_PCIE_DW_HOST=y +CONFIG_PCI_MESON=y +CONFIG_PCIE_DW_PLAT=y +CONFIG_PCIE_DW_PLAT_HOST=y +# end of DesignWare-based PCIe controllers + +# +# Mobiveil-based PCIe controllers +# +# end of Mobiveil-based PCIe controllers +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +CONFIG_PCI_SW_SWITCHTEC=m +# end of PCI switch controller drivers + +CONFIG_CXL_BUS=m +CONFIG_CXL_PCI=m +# CONFIG_CXL_MEM_RAW_COMMANDS is not set +CONFIG_CXL_ACPI=m +CONFIG_CXL_PMEM=m +CONFIG_CXL_MEM=m +CONFIG_CXL_PORT=m +CONFIG_CXL_SUSPEND=y +CONFIG_CXL_REGION=y +# CONFIG_CXL_REGION_INVALIDATION_TEST is not set +CONFIG_CXL_PMU=m +CONFIG_PCCARD=m +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=y +# CONFIG_RAPIDIO is not set + +# +# Generic Driver Options +# +CONFIG_AUXILIARY_BUS=y +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEVTMPFS_SAFE=y +CONFIG_STANDALONE=y +# CONFIG_PREVENT_FIRMWARE_BUILD is not set + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_FW_LOADER_DEBUG=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_FW_LOADER_SYSFS=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_EXTRA_FIRMWARE_DIR="external-firmware" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +CONFIG_FW_CACHE=y +CONFIG_FW_UPLOAD=y +# end of Firmware loader + +CONFIG_WANT_DEV_COREDUMP=y +CONFIG_ALLOW_DEV_COREDUMP=y +CONFIG_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +CONFIG_HMEM_REPORTING=y +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_SOC_BUS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SLIMBUS=m +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_W1=m +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_REGMAP_SOUNDWIRE=m +CONFIG_REGMAP_SOUNDWIRE_MBQ=m +CONFIG_REGMAP_SCCB=m +CONFIG_REGMAP_SPI_AVMM=m +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set +# end of Generic Driver Options + +# +# Bus devices +# +CONFIG_MHI_BUS=m +# CONFIG_MHI_BUS_DEBUG is not set +CONFIG_MHI_BUS_PCI_GENERIC=m +CONFIG_MHI_BUS_EP=m +# end of Bus devices + +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_ISCSI_IBFT is not set +CONFIG_FW_CFG_SYSFS=m +# CONFIG_FW_CFG_SYSFS_CMDLINE is not set +CONFIG_SYSFB=y +# CONFIG_SYSFB_SIMPLEFB is not set +CONFIG_FW_CS_DSP=m +CONFIG_GOOGLE_FIRMWARE=y +# CONFIG_GOOGLE_SMI is not set +CONFIG_GOOGLE_CBMEM=m +CONFIG_GOOGLE_COREBOOT_TABLE=m +CONFIG_GOOGLE_MEMCONSOLE=m +# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set +CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=m +CONFIG_GOOGLE_VPD=m + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_ESRT=y +CONFIG_EFI_VARS_PSTORE=y +CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y +CONFIG_EFI_SOFT_RESERVE=y +CONFIG_EFI_DXE_MEM_ATTRIBUTES=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_BOOTLOADER_CONTROL=m +CONFIG_EFI_CAPSULE_LOADER=m +# CONFIG_EFI_TEST is not set +CONFIG_EFI_DEV_PATH_PARSER=y +CONFIG_APPLE_PROPERTIES=y +# CONFIG_RESET_ATTACK_MITIGATION is not set +CONFIG_EFI_RCI2_TABLE=y +# CONFIG_EFI_DISABLE_PCI_DMA is not set +CONFIG_EFI_EARLYCON=y +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y +# CONFIG_EFI_DISABLE_RUNTIME is not set +CONFIG_EFI_COCO_SECRET=y +CONFIG_UNACCEPTED_MEMORY=y +CONFIG_EFI_EMBEDDED_FIRMWARE=y +# end of EFI (Extensible Firmware Interface) Support + +CONFIG_UEFI_CPER=y +CONFIG_UEFI_CPER_X86=y + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +CONFIG_GNSS=m +CONFIG_GNSS_SERIAL=m +CONFIG_GNSS_MTK_SERIAL=m +CONFIG_GNSS_SIRF_SERIAL=m +CONFIG_GNSS_UBX_SERIAL=m +CONFIG_GNSS_USB=m +CONFIG_MTD=m +# CONFIG_MTD_TESTS is not set + +# +# Partition parsers +# +# CONFIG_MTD_AR7_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# end of Partition parsers + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set + +# +# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK. +# +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +CONFIG_MTD_PSTORE=m +# CONFIG_MTD_SWAP is not set +CONFIG_MTD_PARTITIONED_MASTER=y + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=m +# CONFIG_MTD_ABSENT is not set +# end of RAM/ROM/Flash chip drivers + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set +# end of Mapping drivers for chip access + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_MCHP23K256 is not set +# CONFIG_MTD_MCHP48L640 is not set +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +# end of Self-contained MTD device drivers + +# +# NAND +# +CONFIG_MTD_NAND_CORE=m +# CONFIG_MTD_ONENAND is not set +CONFIG_MTD_RAW_NAND=m + +# +# Raw/parallel NAND flash controllers +# +# CONFIG_MTD_NAND_DENALI_PCI is not set +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_MXIC is not set +# CONFIG_MTD_NAND_GPIO is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_NAND_ARASAN is not set + +# +# Misc +# +CONFIG_MTD_NAND_NANDSIM=m +# CONFIG_MTD_NAND_RICOH is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_SPI_NAND is not set + +# +# ECC engine support +# +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_ECC_SW_HAMMING=y +CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC=y +CONFIG_MTD_NAND_ECC_SW_BCH=y +CONFIG_MTD_NAND_ECC_MXIC=y +# end of ECC engine support +# end of NAND + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# end of LPDDR & LPDDR2 PCM memory drivers + +CONFIG_MTD_SPI_NOR=m +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set +CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y +# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_BLOCK is not set +# CONFIG_MTD_HYPERBUS is not set +# CONFIG_OF is not set +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_SUPERIO=y +CONFIG_PARPORT_PC_PCMCIA=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_NULL_BLK=m +CONFIG_BLK_DEV_FD=m +# CONFIG_BLK_DEV_FD_RAWCMD is not set +CONFIG_CDROM=y +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +CONFIG_ZRAM=m +# CONFIG_ZRAM_DEF_COMP_LZORLE is not set +CONFIG_ZRAM_DEF_COMP_ZSTD=y +# CONFIG_ZRAM_DEF_COMP_LZ4 is not set +# CONFIG_ZRAM_DEF_COMP_LZO is not set +# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set +# CONFIG_ZRAM_DEF_COMP_842 is not set +CONFIG_ZRAM_DEF_COMP="zstd" +CONFIG_ZRAM_WRITEBACK=y +# CONFIG_ZRAM_MEMORY_TRACKING is not set +CONFIG_ZRAM_MULTI_COMP=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 +CONFIG_BLK_DEV_DRBD=m +# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_BLK_DEV_NBD=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_RBD=m +CONFIG_BLK_DEV_UBLK=m +CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y +CONFIG_BLK_DEV_RNBD=y +CONFIG_BLK_DEV_RNBD_CLIENT=m +CONFIG_BLK_DEV_RNBD_SERVER=m + +# +# NVME Support +# +CONFIG_NVME_COMMON=y +CONFIG_NVME_CORE=y +CONFIG_BLK_DEV_NVME=y +CONFIG_NVME_MULTIPATH=y +CONFIG_NVME_VERBOSE_ERRORS=y +CONFIG_NVME_HWMON=y +CONFIG_NVME_FABRICS=m +CONFIG_NVME_RDMA=m +CONFIG_NVME_FC=m +CONFIG_NVME_TCP=m +CONFIG_NVME_AUTH=y +CONFIG_NVME_TARGET=m +CONFIG_NVME_TARGET_PASSTHRU=y +CONFIG_NVME_TARGET_LOOP=m +CONFIG_NVME_TARGET_RDMA=m +CONFIG_NVME_TARGET_FC=m +CONFIG_NVME_TARGET_FCLOOP=m +CONFIG_NVME_TARGET_TCP=m +CONFIG_NVME_TARGET_AUTH=y +# end of NVME Support + +# +# Misc devices +# +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +# CONFIG_DUMMY_IRQ is not set +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_SMPRO_ERRMON=m +CONFIG_SMPRO_MISC=m +CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_VMWARE_BALLOON=m +CONFIG_LATTICE_ECP3_CONFIG=m +# CONFIG_SRAM is not set +CONFIG_DW_XDATA_PCIE=m +CONFIG_PCI_ENDPOINT_TEST=m +CONFIG_XILINX_SDFEC=m +CONFIG_MISC_RTSX=y +CONFIG_C2PORT=m +CONFIG_C2PORT_DURAMAR_2150=m + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +# CONFIG_EEPROM_AT25 is not set +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +# CONFIG_EEPROM_93XX46 is not set +CONFIG_EEPROM_IDT_89HPESX=m +CONFIG_EEPROM_EE1004=y +# end of EEPROM support + +CONFIG_CB710_CORE=m +# CONFIG_CB710_DEBUG is not set +CONFIG_CB710_DEBUG_ASSUMPTIONS=y + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +# end of Texas Instruments shared transport line discipline + +CONFIG_SENSORS_LIS3_I2C=m +CONFIG_ALTERA_STAPL=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +CONFIG_INTEL_MEI_TXE=m +CONFIG_INTEL_MEI_GSC=m +CONFIG_INTEL_MEI_HDCP=m +CONFIG_INTEL_MEI_PXP=m +# CONFIG_INTEL_MEI_GSC_PROXY is not set +CONFIG_VMWARE_VMCI=m +CONFIG_GENWQE=m +CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 +CONFIG_ECHO=m +CONFIG_BCM_VK=m +CONFIG_BCM_VK_TTY=y +CONFIG_MISC_ALCOR_PCI=m +CONFIG_MISC_RTSX_PCI=y +CONFIG_MISC_RTSX_USB=y +CONFIG_UACCE=m +CONFIG_PVPANIC=y +CONFIG_PVPANIC_MMIO=m +CONFIG_PVPANIC_PCI=m +CONFIG_GP_PCI1XXXX=m +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +CONFIG_RAID_ATTRS=m +CONFIG_SCSI_COMMON=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_BLK_DEV_BSG=y +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SRP_ATTRS=m +# end of SCSI Transports + +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m +CONFIG_BE2ISCSI=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_AIC79XX_BUILD_FIRMWARE is not set +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +CONFIG_AIC94XX_DEBUG=y +CONFIG_SCSI_MVSAS=y +CONFIG_SCSI_MVSAS_DEBUG=y +CONFIG_SCSI_MVSAS_TASKLET=y +CONFIG_SCSI_MVUMI=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ESAS2R=m +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=y +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_MPI3MR=m +CONFIG_SCSI_SMARTPQI=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_FLASHPOINT=y +CONFIG_SCSI_MYRB=m +CONFIG_SCSI_MYRS=m +CONFIG_VMWARE_PVSCSI=m +CONFIG_HYPERV_STORAGE=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_FCOE=m +CONFIG_FCOE_FNIC=m +CONFIG_SCSI_SNIC=m +# CONFIG_SCSI_SNIC_DEBUG_FS is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_FDOMAIN=m +CONFIG_SCSI_FDOMAIN_PCI=m +CONFIG_SCSI_ISCI=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=m +CONFIG_SCSI_IPR_TRACE=y +CONFIG_SCSI_IPR_DUMP=y +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_TCM_QLA2XXX=m +# CONFIG_TCM_QLA2XXX_DEBUG is not set +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_QEDI=m +CONFIG_QEDF=m +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_EFCT=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_AM53C974=m +CONFIG_SCSI_WD719X=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCSI_CHELSIO_FCOE=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +# end of SCSI device support + +CONFIG_ATA=y +CONFIG_SATA_HOST=y +CONFIG_PATA_TIMINGS=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATA_FORCE=y +CONFIG_ATA_ACPI=y +CONFIG_SATA_ZPODD=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_DWC=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_ACARD_AHCI=m +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +CONFIG_ATA_PIIX=y +CONFIG_SATA_DWC=m +# CONFIG_SATA_DWC_OLD_DMA is not set +CONFIG_SATA_MV=m +CONFIG_SATA_NV=y +CONFIG_SATA_PROMISE=m +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_SVW=m +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=m + +# +# PATA SFF controllers with BMDMA +# +CONFIG_PATA_ALI=y +CONFIG_PATA_AMD=y +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=y +CONFIG_PATA_ATP867X=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=y +CONFIG_PATA_MARVELL=y +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RDC=m +CONFIG_PATA_SCH=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=y +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=y +CONFIG_PATA_WINBOND=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_PARPORT=m + +# +# Parallel IDE protocol modules +# +CONFIG_PATA_PARPORT_ATEN=m +CONFIG_PATA_PARPORT_BPCK=m +# CONFIG_PATA_PARPORT_BPCK6 is not set +CONFIG_PATA_PARPORT_COMM=m +CONFIG_PATA_PARPORT_DSTR=m +CONFIG_PATA_PARPORT_FIT2=m +CONFIG_PATA_PARPORT_FIT3=m +CONFIG_PATA_PARPORT_EPAT=m +CONFIG_PATA_PARPORT_EPATC8=y +CONFIG_PATA_PARPORT_EPIA=m +CONFIG_PATA_PARPORT_FRIQ=m +CONFIG_PATA_PARPORT_FRPW=m +CONFIG_PATA_PARPORT_KBIC=m +CONFIG_PATA_PARPORT_KTTI=m +CONFIG_PATA_PARPORT_ON20=m +CONFIG_PATA_PARPORT_ON26=m + +# +# Generic fallback / legacy drivers +# +CONFIG_PATA_ACPI=y +CONFIG_ATA_GENERIC=y +CONFIG_PATA_LEGACY=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_MD_CLUSTER=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +CONFIG_BCACHE_ASYNC_REGISTRATION=y +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=m +CONFIG_DM_DEBUG=y +CONFIG_DM_BUFIO=m +CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +CONFIG_DM_BIO_PRISON=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_UNSTRIPED=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_SMQ=m +CONFIG_DM_WRITECACHE=m +CONFIG_DM_EBS=m +CONFIG_DM_ERA=m +CONFIG_DM_CLONE=m +CONFIG_DM_MIRROR=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_RAID=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_MULTIPATH_HST=m +CONFIG_DM_MULTIPATH_IOA=m +CONFIG_DM_DELAY=m +CONFIG_DM_DUST=m +CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +CONFIG_DM_VERITY=m +CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y +CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING=y +CONFIG_DM_VERITY_FEC=y +CONFIG_DM_SWITCH=m +CONFIG_DM_LOG_WRITES=m +CONFIG_DM_INTEGRITY=m +CONFIG_DM_ZONED=m +CONFIG_DM_AUDIT=y +CONFIG_TARGET_CORE=m +CONFIG_TCM_IBLOCK=m +CONFIG_TCM_FILEIO=m +CONFIG_TCM_PSCSI=m +CONFIG_TCM_USER2=m +CONFIG_LOOPBACK_TARGET=m +CONFIG_TCM_FC=m +CONFIG_ISCSI_TARGET=m +CONFIG_ISCSI_TARGET_CXGB4=m +CONFIG_SBP_TARGET=m +# CONFIG_REMOTE_TARGET is not set +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIREWIRE_NET=m +CONFIG_FIREWIRE_NOSY=m +# end of IEEE 1394 (FireWire) support + +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=m +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_WIREGUARD=m +# CONFIG_WIREGUARD_DEBUG is not set +CONFIG_EQUALIZER=m +CONFIG_NET_FC=y +CONFIG_IFB=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_BROADCAST=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_RANDOM=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_IPVLAN_L3S=y +CONFIG_IPVLAN=m +CONFIG_IPVTAP=m +CONFIG_VXLAN=m +CONFIG_GENEVE=m +CONFIG_BAREUDP=m +CONFIG_GTP=m +CONFIG_AMT=m +CONFIG_MACSEC=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NTB_NETDEV=m +CONFIG_TUN=y +CONFIG_TAP=m +# CONFIG_TUN_VNET_CROSS_LE is not set +CONFIG_VETH=m +CONFIG_VIRTIO_NET=y +CONFIG_NLMON=m +CONFIG_NET_VRF=m +CONFIG_VSOCKMON=m +CONFIG_MHI_NET=m +CONFIG_SUNGEM_PHY=m +# CONFIG_ARCNET is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_SOLOS=m + +# +# Distributed Switch Architecture drivers +# +CONFIG_B53=m +CONFIG_B53_SPI_DRIVER=m +CONFIG_B53_MDIO_DRIVER=m +CONFIG_B53_MMAP_DRIVER=m +CONFIG_B53_SRAB_DRIVER=m +CONFIG_B53_SERDES=m +CONFIG_NET_DSA_BCM_SF2=m +CONFIG_NET_DSA_LOOP=m +CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m +# CONFIG_NET_DSA_LANTIQ_GSWIP is not set +CONFIG_NET_DSA_MT7530=m +CONFIG_NET_DSA_MT7530_MDIO=m +CONFIG_NET_DSA_MT7530_MMIO=m +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m +CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m +CONFIG_NET_DSA_MICROCHIP_KSZ_SPI=m +CONFIG_NET_DSA_MICROCHIP_KSZ_PTP=y +CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_PTP=y +CONFIG_NET_DSA_MSCC_FELIX_DSA_LIB=m +CONFIG_NET_DSA_MSCC_OCELOT_EXT=m +CONFIG_NET_DSA_MSCC_SEVILLE=m +CONFIG_NET_DSA_AR9331=m +CONFIG_NET_DSA_QCA8K=m +# CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT is not set +CONFIG_NET_DSA_SJA1105=m +CONFIG_NET_DSA_SJA1105_PTP=y +CONFIG_NET_DSA_SJA1105_TAS=y +CONFIG_NET_DSA_SJA1105_VL=y +CONFIG_NET_DSA_XRS700X=m +CONFIG_NET_DSA_XRS700X_I2C=m +CONFIG_NET_DSA_XRS700X_MDIO=m +CONFIG_NET_DSA_REALTEK=m +# CONFIG_NET_DSA_REALTEK_MDIO is not set +# CONFIG_NET_DSA_REALTEK_SMI is not set +CONFIG_NET_DSA_REALTEK_RTL8365MB=m +CONFIG_NET_DSA_REALTEK_RTL8366RB=m +CONFIG_NET_DSA_SMSC_LAN9303=m +CONFIG_NET_DSA_SMSC_LAN9303_I2C=m +CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m +CONFIG_NET_DSA_VITESSE_VSC73XX=m +CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m +CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m +# end of Distributed Switch Architecture drivers + +CONFIG_ETHERNET=y +CONFIG_MDIO=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_VORTEX=y +CONFIG_TYPHOON=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_AGERE=y +CONFIG_ET131X=m +CONFIG_NET_VENDOR_ALACRITECH=y +CONFIG_SLICOSS=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ALTERA_TSE=m +CONFIG_NET_VENDOR_AMAZON=y +CONFIG_ENA_ETHERNET=m +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m +CONFIG_PCNET32=y +CONFIG_PCMCIA_NMCLAN=m +CONFIG_AMD_XGBE=m +CONFIG_AMD_XGBE_DCB=y +CONFIG_AMD_XGBE_HAVE_ECC=y +# CONFIG_PDS_CORE is not set +CONFIG_NET_VENDOR_AQUANTIA=y +CONFIG_AQTION=m +CONFIG_NET_VENDOR_ARC=y +CONFIG_NET_VENDOR_ASIX=y +CONFIG_SPI_AX88796C=m +CONFIG_SPI_AX88796C_COMPRESSION=y +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=y +CONFIG_ATL1=y +CONFIG_ATL1E=y +CONFIG_ATL1C=y +CONFIG_ALX=y +CONFIG_CX_ECAT=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=y +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BCMGENET=m +CONFIG_BNX2=y +CONFIG_CNIC=y +CONFIG_TIGON3=y +CONFIG_TIGON3_HWMON=y +CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y +CONFIG_SYSTEMPORT=m +CONFIG_BNXT=m +CONFIG_BNXT_SRIOV=y +CONFIG_BNXT_FLOWER_OFFLOAD=y +CONFIG_BNXT_DCB=y +CONFIG_BNXT_HWMON=y +CONFIG_NET_VENDOR_CADENCE=y +CONFIG_MACB=m +CONFIG_MACB_USE_HWSTAMP=y +CONFIG_MACB_PCI=m +CONFIG_NET_VENDOR_CAVIUM=y +CONFIG_THUNDER_NIC_PF=m +CONFIG_THUNDER_NIC_VF=m +CONFIG_THUNDER_NIC_BGX=m +CONFIG_THUNDER_NIC_RGX=m +CONFIG_CAVIUM_PTP=m +CONFIG_LIQUIDIO_CORE=m +CONFIG_LIQUIDIO=m +CONFIG_LIQUIDIO_VF=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4_DCB=y +CONFIG_CHELSIO_T4_FCOE=y +CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_LIB=m +CONFIG_CHELSIO_INLINE_CRYPTO=y +CONFIG_CHELSIO_IPSEC_INLINE=m +CONFIG_CHELSIO_TLS_DEVICE=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m +CONFIG_NET_VENDOR_CORTINA=y +CONFIG_NET_VENDOR_DAVICOM=y +CONFIG_DM9051=m +CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_TULIP=m +CONFIG_TULIP_MWI=y +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=y +CONFIG_PCMCIA_XIRCOM=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_BE2NET_HWMON=y +CONFIG_BE2NET_BE2=y +CONFIG_BE2NET_BE3=y +CONFIG_BE2NET_LANCER=y +CONFIG_BE2NET_SKYHAWK=y +CONFIG_NET_VENDOR_ENGLEDER=y +CONFIG_TSNEP=m +# CONFIG_TSNEP_SELFTESTS is not set +CONFIG_NET_VENDOR_EZCHIP=y +CONFIG_NET_VENDOR_FUJITSU=y +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_NET_VENDOR_FUNGIBLE=y +CONFIG_FUN_CORE=m +CONFIG_FUN_ETH=m +CONFIG_NET_VENDOR_GOOGLE=y +CONFIG_GVE=m +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_HINIC=m +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=y +CONFIG_E1000=y +CONFIG_E1000E=y +CONFIG_E1000E_HWTS=y +CONFIG_IGB=y +CONFIG_IGB_HWMON=y +CONFIG_IGBVF=m +CONFIG_IXGBE=y +CONFIG_IXGBE_HWMON=y +CONFIG_IXGBE_DCB=y +# CONFIG_IXGBE_IPSEC is not set +CONFIG_IXGBEVF=m +CONFIG_IXGBEVF_IPSEC=y +CONFIG_I40E=m +CONFIG_I40E_DCB=y +CONFIG_IAVF=m +CONFIG_I40EVF=m +CONFIG_ICE=m +CONFIG_ICE_SWITCHDEV=y +CONFIG_ICE_HWTS=y +CONFIG_FM10K=m +CONFIG_IGC=y +CONFIG_JME=y +CONFIG_NET_VENDOR_ADI=y +CONFIG_ADIN1110=m +CONFIG_NET_VENDOR_LITEX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m +CONFIG_SKGE=y +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=y +# CONFIG_SKY2_DEBUG is not set +CONFIG_OCTEON_EP=m +CONFIG_PRESTERA=m +CONFIG_PRESTERA_PCI=m +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_EN_DCB=y +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_MLX4_CORE_GEN2=y +CONFIG_MLX5_CORE=m +CONFIG_MLX5_FPGA=y +CONFIG_MLX5_CORE_EN=y +CONFIG_MLX5_EN_ARFS=y +CONFIG_MLX5_EN_RXNFC=y +CONFIG_MLX5_MPFS=y +CONFIG_MLX5_ESWITCH=y +CONFIG_MLX5_BRIDGE=y +CONFIG_MLX5_CLS_ACT=y +CONFIG_MLX5_TC_CT=y +CONFIG_MLX5_TC_SAMPLE=y +CONFIG_MLX5_CORE_EN_DCB=y +CONFIG_MLX5_CORE_IPOIB=y +CONFIG_MLX5_EN_MACSEC=y +CONFIG_MLX5_EN_IPSEC=y +CONFIG_MLX5_EN_TLS=y +CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_SF=y +CONFIG_MLX5_SF_MANAGER=y +CONFIG_MLXSW_CORE=m +CONFIG_MLXSW_CORE_HWMON=y +CONFIG_MLXSW_CORE_THERMAL=y +CONFIG_MLXSW_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MLXSW_SPECTRUM=m +CONFIG_MLXSW_SPECTRUM_DCB=y +CONFIG_MLXSW_MINIMAL=m +CONFIG_MLXFW=m +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set +CONFIG_ENCX24J600=m +CONFIG_LAN743X=y +CONFIG_VCAP=y +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_MSCC_OCELOT_SWITCH_LIB=m +CONFIG_NET_VENDOR_MICROSOFT=y +CONFIG_MICROSOFT_MANA=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NI=y +CONFIG_NI_XGE_MANAGEMENT_ENET=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_NETERION=y +CONFIG_S2IO=m +CONFIG_NET_VENDOR_NETRONOME=y +CONFIG_NFP=m +CONFIG_NFP_APP_FLOWER=y +CONFIG_NFP_APP_ABM_NIC=y +CONFIG_NFP_NET_IPSEC=y +# CONFIG_NFP_DEBUG is not set +CONFIG_NET_VENDOR_8390=y +CONFIG_PCMCIA_AXNET=m +CONFIG_NE2K_PCI=m +CONFIG_PCMCIA_PCNET=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=y +CONFIG_NET_VENDOR_OKI=y +CONFIG_ETHOC=m +CONFIG_NET_VENDOR_PACKET_ENGINES=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_PENSANDO=y +CONFIG_IONIC=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=y +CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y +CONFIG_QLCNIC_DCB=y +CONFIG_QLCNIC_HWMON=y +CONFIG_NETXEN_NIC=m +CONFIG_QED=m +CONFIG_QED_LL2=y +CONFIG_QED_SRIOV=y +CONFIG_QEDE=m +CONFIG_QED_RDMA=y +CONFIG_QED_ISCSI=y +CONFIG_QED_FCOE=y +CONFIG_QED_OOO=y +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_QUALCOMM=y +CONFIG_QCOM_EMAC=m +CONFIG_RMNET=m +CONFIG_NET_VENDOR_RDC=y +CONFIG_R6040=m +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_ATP=m +CONFIG_8139CP=m +CONFIG_8139TOO=y +# CONFIG_8139TOO_PIO is not set +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=y +CONFIG_NET_VENDOR_RENESAS=y +CONFIG_NET_VENDOR_ROCKER=y +CONFIG_ROCKER=m +CONFIG_NET_VENDOR_SAMSUNG=y +CONFIG_SXGBE_ETH=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y +CONFIG_SIS900=y +CONFIG_SIS190=y +CONFIG_NET_VENDOR_SOLARFLARE=y +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y +CONFIG_SFC_MCDI_LOGGING=y +CONFIG_SFC_FALCON=m +CONFIG_SFC_FALCON_MTD=y +CONFIG_SFC_SIENA=m +CONFIG_SFC_SIENA_MTD=y +CONFIG_SFC_SIENA_MCDI_MON=y +CONFIG_SFC_SIENA_SRIOV=y +CONFIG_SFC_SIENA_MCDI_LOGGING=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_PCMCIA_SMC91C92=m +CONFIG_EPIC100=m +CONFIG_SMSC911X=m +CONFIG_SMSC9420=m +CONFIG_NET_VENDOR_SOCIONEXT=y +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_SELFTESTS is not set +CONFIG_STMMAC_PLATFORM=m +CONFIG_DWMAC_GENERIC=m +CONFIG_DWMAC_INTEL=m +CONFIG_DWMAC_LOONGSON=m +CONFIG_STMMAC_PCI=m +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_SYNOPSYS=y +CONFIG_DWC_XLGMAC=m +CONFIG_DWC_XLGMAC_PCI=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_CPSW_PHY_SEL is not set +CONFIG_TLAN=m +CONFIG_NET_VENDOR_VERTEXCOM=y +CONFIG_MSE102X=m +CONFIG_NET_VENDOR_VIA=y +CONFIG_VIA_RHINE=y +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_VELOCITY=y +CONFIG_NET_VENDOR_WANGXUN=y +CONFIG_LIBWX=m +CONFIG_NGBE=m +CONFIG_TXGBE=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_BUS_ANY=y +CONFIG_WIZNET_W5100_SPI=m +CONFIG_NET_VENDOR_XILINX=y +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_AXI_EMAC=m +CONFIG_XILINX_LL_TEMAC=m +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_FDDI=m +CONFIG_DEFXX=m +CONFIG_SKFP=m +# CONFIG_HIPPI is not set +CONFIG_NET_SB1000=m +CONFIG_PHYLINK=m +CONFIG_PHYLIB=y +CONFIG_SWPHY=y +CONFIG_LED_TRIGGER_PHY=y +CONFIG_FIXED_PHY=y +CONFIG_SFP=m + +# +# MII PHY device drivers +# +CONFIG_AMD_PHY=y +CONFIG_ADIN_PHY=m +CONFIG_ADIN1100_PHY=m +CONFIG_AQUANTIA_PHY=m +CONFIG_AX88796B_PHY=m +CONFIG_BROADCOM_PHY=y +CONFIG_BCM54140_PHY=m +CONFIG_BCM7XXX_PHY=m +CONFIG_BCM84881_PHY=m +CONFIG_BCM87XX_PHY=m +CONFIG_BCM_NET_PHYLIB=y +CONFIG_BCM_NET_PHYPTP=y +CONFIG_CICADA_PHY=m +CONFIG_CORTINA_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_LXT_PHY=m +CONFIG_INTEL_XWAY_PHY=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MARVELL_PHY=y +CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_88X2222_PHY=m +CONFIG_MAXLINEAR_GPHY=m +CONFIG_MEDIATEK_GE_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_MICROCHIP_T1S_PHY is not set +CONFIG_MICROCHIP_PHY=m +CONFIG_MICROCHIP_T1_PHY=m +CONFIG_MICROSEMI_PHY=m +CONFIG_MOTORCOMM_PHY=m +CONFIG_NATIONAL_PHY=m +# CONFIG_NXP_CBTX_PHY is not set +CONFIG_NXP_C45_TJA11XX_PHY=m +CONFIG_NXP_TJA11XX_PHY=m +CONFIG_NCN26000_PHY=m +CONFIG_AT803X_PHY=y +CONFIG_QSEMI_PHY=m +CONFIG_REALTEK_PHY=y +CONFIG_RENESAS_PHY=m +# CONFIG_ROCKCHIP_PHY is not set +CONFIG_SMSC_PHY=m +CONFIG_STE10XP=m +CONFIG_TERANETICS_PHY=m +CONFIG_DP83822_PHY=m +CONFIG_DP83TC811_PHY=m +CONFIG_DP83848_PHY=m +CONFIG_DP83867_PHY=m +CONFIG_DP83869_PHY=m +CONFIG_DP83TD510_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_XILINX_GMII2RGMII=m +CONFIG_MICREL_KS8995MA=m +CONFIG_PSE_CONTROLLER=y +CONFIG_PSE_REGULATOR=m +CONFIG_CAN_DEV=m +CONFIG_CAN_VCAN=m +CONFIG_CAN_VXCAN=m +CONFIG_CAN_NETLINK=y +CONFIG_CAN_CALC_BITTIMING=y +CONFIG_CAN_RX_OFFLOAD=y +CONFIG_CAN_CAN327=m +CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_KVASER_PCIEFD=m +CONFIG_CAN_SLCAN=m +CONFIG_CAN_C_CAN=m +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CAN_C_CAN_PCI=m +CONFIG_CAN_CC770=m +# CONFIG_CAN_CC770_ISA is not set +CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_CTUCANFD=m +CONFIG_CAN_CTUCANFD_PCI=m +CONFIG_CAN_IFI_CANFD=m +CONFIG_CAN_M_CAN=m +CONFIG_CAN_M_CAN_PCI=m +CONFIG_CAN_M_CAN_PLATFORM=m +CONFIG_CAN_M_CAN_TCAN4X5X=m +CONFIG_CAN_PEAK_PCIEFD=m +CONFIG_CAN_SJA1000=m +CONFIG_CAN_EMS_PCI=m +# CONFIG_CAN_EMS_PCMCIA is not set +CONFIG_CAN_F81601=m +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_PEAK_PCI=m +CONFIG_CAN_PEAK_PCIEC=y +CONFIG_CAN_PEAK_PCMCIA=m +CONFIG_CAN_PLX_PCI=m +# CONFIG_CAN_SJA1000_ISA is not set +CONFIG_CAN_SJA1000_PLATFORM=m +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m + +# +# CAN SPI interfaces +# +CONFIG_CAN_HI311X=m +CONFIG_CAN_MCP251X=m +CONFIG_CAN_MCP251XFD=m +# CONFIG_CAN_MCP251XFD_SANITY is not set +# end of CAN SPI interfaces + +# +# CAN USB interfaces +# +CONFIG_CAN_8DEV_USB=m +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_ESD_USB=m +CONFIG_CAN_ETAS_ES58X=m +# CONFIG_CAN_F81604 is not set +CONFIG_CAN_GS_USB=m +CONFIG_CAN_KVASER_USB=m +CONFIG_CAN_MCBA_USB=m +CONFIG_CAN_PEAK_USB=m +CONFIG_CAN_UCAN=m +# end of CAN USB interfaces + +# CONFIG_CAN_DEBUG_DEVICES is not set + +# +# MCTP Device Drivers +# +CONFIG_MCTP_SERIAL=m +CONFIG_MCTP_TRANSPORT_I2C=m +# end of MCTP Device Drivers + +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +CONFIG_FWNODE_MDIO=y +CONFIG_ACPI_MDIO=y +CONFIG_MDIO_DEVRES=y +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_BCM_UNIMAC=m +CONFIG_MDIO_CAVIUM=m +CONFIG_MDIO_GPIO=m +CONFIG_MDIO_I2C=m +CONFIG_MDIO_MVUSB=m +CONFIG_MDIO_MSCC_MIIM=m +CONFIG_MDIO_REGMAP=m +CONFIG_MDIO_THUNDER=m + +# +# MDIO Multiplexers +# + +# +# PCS device drivers +# +CONFIG_PCS_XPCS=m +CONFIG_PCS_LYNX=m +CONFIG_PCS_MTK_LYNXI=m +# end of PCS device drivers + +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +# CONFIG_PPPOE_HASH_BITS_1 is not set +# CONFIG_PPPOE_HASH_BITS_2 is not set +CONFIG_PPPOE_HASH_BITS_4=y +# CONFIG_PPPOE_HASH_BITS_8 is not set +CONFIG_PPPOE_HASH_BITS=4 +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_HUAWEI_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9700=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET_ENABLE=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_CDC_PHONET=m +CONFIG_USB_IPHETH=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_USB_NET_CH9200=m +CONFIG_USB_NET_AQC111=m +CONFIG_USB_RTL8153_ECM=m +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_ADMTEK=y +CONFIG_ADM8211=m +CONFIG_ATH_COMMON=m +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +CONFIG_ATH5K_DEBUG=y +CONFIG_ATH5K_TRACER=y +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_COMMON_DEBUG=y +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +CONFIG_ATH9K_DEBUGFS=y +CONFIG_ATH9K_STATION_STATISTICS=y +CONFIG_ATH9K_DYNACK=y +CONFIG_ATH9K_WOW=y +CONFIG_ATH9K_RFKILL=y +CONFIG_ATH9K_CHANNEL_CONTEXT=y +CONFIG_ATH9K_PCOEM=y +CONFIG_ATH9K_PCI_NO_EEPROM=m +CONFIG_ATH9K_HTC=m +CONFIG_ATH9K_HTC_DEBUGFS=y +CONFIG_ATH9K_HWRNG=y +CONFIG_ATH9K_COMMON_SPECTRAL=y +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_DEBUGFS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +CONFIG_ATH6KL=m +CONFIG_ATH6KL_SDIO=m +CONFIG_ATH6KL_USB=m +CONFIG_ATH6KL_DEBUG=y +CONFIG_ATH6KL_TRACING=y +CONFIG_AR5523=m +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y +CONFIG_WIL6210_TRACING=y +CONFIG_WIL6210_DEBUGFS=y +CONFIG_ATH10K=m +CONFIG_ATH10K_CE=y +CONFIG_ATH10K_PCI=m +CONFIG_ATH10K_SDIO=m +CONFIG_ATH10K_USB=m +CONFIG_ATH10K_DEBUG=y +CONFIG_ATH10K_DEBUGFS=y +CONFIG_ATH10K_SPECTRAL=y +CONFIG_ATH10K_TRACING=y +CONFIG_WCN36XX=m +CONFIG_WCN36XX_DEBUGFS=y +CONFIG_ATH11K=m +CONFIG_ATH11K_AHB=m +CONFIG_ATH11K_PCI=m +CONFIG_ATH11K_DEBUG=y +CONFIG_ATH11K_DEBUGFS=y +# CONFIG_ATH11K_TRACING is not set +CONFIG_ATH11K_SPECTRAL=y +CONFIG_ATH12K=m +CONFIG_ATH12K_DEBUG=y +CONFIG_ATH12K_TRACING=y +CONFIG_WLAN_VENDOR_ATMEL=y +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_B43=m +CONFIG_B43_BCMA=y +CONFIG_B43_SSB=y +CONFIG_B43_BUSES_BCMA_AND_SSB=y +# CONFIG_B43_BUSES_BCMA is not set +# CONFIG_B43_BUSES_SSB is not set +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_SDIO=y +CONFIG_B43_BCMA_PIO=y +CONFIG_B43_PIO=y +CONFIG_B43_PHY_G=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_PHY_HT=y +CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_HWRNG=y +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_BRCMUTIL=m +CONFIG_BRCMSMAC=m +CONFIG_BRCMSMAC_LEDS=y +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_PROTO_BCDC=y +CONFIG_BRCMFMAC_PROTO_MSGBUF=y +CONFIG_BRCMFMAC_SDIO=y +CONFIG_BRCMFMAC_USB=y +CONFIG_BRCMFMAC_PCIE=y +CONFIG_BRCM_TRACING=y +CONFIG_BRCMDBG=y +CONFIG_WLAN_VENDOR_CISCO=y +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +CONFIG_WLAN_VENDOR_INTEL=y +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +CONFIG_IWLEGACY_DEBUG=y +CONFIG_IWLEGACY_DEBUGFS=y +# end of iwl3945 / iwl4965 Debugging Options + +CONFIG_IWLWIFI=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set +# end of Debugging Options + +CONFIG_WLAN_VENDOR_INTERSIL=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_HERMES=m +CONFIG_HERMES_PRISM=y +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ORINOCO_USB=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_SPI=m +# CONFIG_P54_SPI_DEFAULT_EEPROM is not set +CONFIG_P54_LEDS=y +CONFIG_WLAN_VENDOR_MARVELL=y +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_MESH=y +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m +CONFIG_MWL8K=m +CONFIG_WLAN_VENDOR_MEDIATEK=y +CONFIG_MT7601U=m +CONFIG_MT76_CORE=m +CONFIG_MT76_LEDS=y +CONFIG_MT76_USB=m +CONFIG_MT76_SDIO=m +CONFIG_MT76x02_LIB=m +CONFIG_MT76x02_USB=m +CONFIG_MT76_CONNAC_LIB=m +CONFIG_MT76x0_COMMON=m +CONFIG_MT76x0U=m +CONFIG_MT76x0E=m +CONFIG_MT76x2_COMMON=m +CONFIG_MT76x2E=m +CONFIG_MT76x2U=m +CONFIG_MT7603E=m +CONFIG_MT7615_COMMON=m +CONFIG_MT7615E=m +CONFIG_MT7663_USB_SDIO_COMMON=m +CONFIG_MT7663U=m +CONFIG_MT7663S=m +CONFIG_MT7915E=m +CONFIG_MT7921_COMMON=m +CONFIG_MT7921E=m +CONFIG_MT7921S=m +CONFIG_MT7921U=m +CONFIG_MT7996E=m +CONFIG_WLAN_VENDOR_MICROCHIP=y +CONFIG_WILC1000=m +CONFIG_WILC1000_SDIO=m +CONFIG_WILC1000_SPI=m +# CONFIG_WILC1000_HW_OOB_INTR is not set +CONFIG_WLAN_VENDOR_PURELIFI=y +CONFIG_PLFXLC=m +CONFIG_WLAN_VENDOR_RALINK=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2800_LIB_MMIO=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +CONFIG_RT2X00_LIB_DEBUGFS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_WLAN_VENDOR_REALTEK=y +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8723BE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192EE=m +CONFIG_RTL8821AE=m +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTLWIFI_PCI=m +CONFIG_RTLWIFI_USB=m +CONFIG_RTLWIFI_DEBUG=y +CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8723_COMMON=m +CONFIG_RTLBTCOEXIST=m +CONFIG_RTL8XXXU=m +CONFIG_RTL8XXXU_UNTESTED=y +CONFIG_RTW88=m +CONFIG_RTW88_CORE=m +CONFIG_RTW88_PCI=m +CONFIG_RTW88_USB=m +CONFIG_RTW88_8822B=m +CONFIG_RTW88_8822C=m +CONFIG_RTW88_8723D=m +CONFIG_RTW88_8821C=m +CONFIG_RTW88_8822BE=m +# CONFIG_RTW88_8822BS is not set +CONFIG_RTW88_8822BU=m +CONFIG_RTW88_8822CE=m +# CONFIG_RTW88_8822CS is not set +CONFIG_RTW88_8822CU=m +CONFIG_RTW88_8723DE=m +# CONFIG_RTW88_8723DS is not set +CONFIG_RTW88_8723DU=m +CONFIG_RTW88_8821CE=m +# CONFIG_RTW88_8821CS is not set +CONFIG_RTW88_8821CU=m +CONFIG_RTW88_DEBUG=y +CONFIG_RTW88_DEBUGFS=y +CONFIG_RTW89=m +CONFIG_RTW89_CORE=m +CONFIG_RTW89_PCI=m +CONFIG_RTW89_8852A=m +CONFIG_RTW89_8852B=m +CONFIG_RTW89_8852C=m +# CONFIG_RTW89_8851BE is not set +CONFIG_RTW89_8852AE=m +CONFIG_RTW89_8852BE=m +CONFIG_RTW89_8852CE=m +CONFIG_RTW89_DEBUG=y +CONFIG_RTW89_DEBUGMSG=y +CONFIG_RTW89_DEBUGFS=y +CONFIG_WLAN_VENDOR_RSI=y +CONFIG_RSI_91X=m +CONFIG_RSI_DEBUGFS=y +CONFIG_RSI_SDIO=m +CONFIG_RSI_USB=m +CONFIG_RSI_COEX=y +CONFIG_WLAN_VENDOR_SILABS=y +CONFIG_WFX=m +CONFIG_WLAN_VENDOR_ST=y +CONFIG_CW1200=m +CONFIG_CW1200_WLAN_SDIO=m +CONFIG_CW1200_WLAN_SPI=m +CONFIG_WLAN_VENDOR_TI=y +CONFIG_WL1251=m +CONFIG_WL1251_SPI=m +CONFIG_WL1251_SDIO=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WLAN_VENDOR_ZYDAS=y +CONFIG_USB_ZD1201=m +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +CONFIG_QTNFMAC=m +CONFIG_QTNFMAC_PCIE=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_MAC80211_HWSIM=m +CONFIG_VIRT_WIFI=m +# CONFIG_WAN is not set +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKELB=m +CONFIG_IEEE802154_AT86RF230=m +CONFIG_IEEE802154_MRF24J40=m +CONFIG_IEEE802154_CC2520=m +CONFIG_IEEE802154_ATUSB=m +CONFIG_IEEE802154_ADF7242=m +CONFIG_IEEE802154_CA8210=m +# CONFIG_IEEE802154_CA8210_DEBUGFS is not set +CONFIG_IEEE802154_MCR20A=m +CONFIG_IEEE802154_HWSIM=m + +# +# Wireless WAN +# +CONFIG_WWAN=y +CONFIG_WWAN_DEBUGFS=y +CONFIG_WWAN_HWSIM=m +CONFIG_MHI_WWAN_CTRL=m +CONFIG_MHI_WWAN_MBIM=m +CONFIG_RPMSG_WWAN_CTRL=m +CONFIG_IOSM=m +CONFIG_MTK_T7XX=m +# end of Wireless WAN + +CONFIG_VMXNET3=m +CONFIG_FUJITSU_ES=m +CONFIG_USB4_NET=m +CONFIG_HYPERV_NET=m +CONFIG_NETDEVSIM=m +CONFIG_NET_FAILOVER=y +CONFIG_ISDN=y +CONFIG_ISDN_CAPI=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_HDLC=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_MATRIXKMAP=m +CONFIG_INPUT_VIVALDIFMAP=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ADC=m +CONFIG_KEYBOARD_ADP5520=m +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m +CONFIG_KEYBOARD_APPLESPI=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_QT1050=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_DLINK_DIR685=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TCA8418=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_LM8333=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_PINEPHONE=m +CONFIG_KEYBOARD_SAMSUNG=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_IQS62X=m +CONFIG_KEYBOARD_TM2_TOUCHKEY=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYBOARD_CROS_EC=m +CONFIG_KEYBOARD_MTK_PMIC=m +CONFIG_KEYBOARD_CYPRESS_SF=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_PS2_FOCALTECH=y +CONFIG_MOUSE_PS2_VMMOUSE=y +CONFIG_MOUSE_PS2_SMBUS=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_ELAN_I2C=m +CONFIG_MOUSE_ELAN_I2C_I2C=y +CONFIG_MOUSE_ELAN_I2C_SMBUS=y +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOUSE_GPIO=m +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADC=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=m +CONFIG_JOYSTICK_IFORCE_232=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_AS5011=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_JOYSTICK_WALKERA0701=m +CONFIG_JOYSTICK_PSXPAD_SPI=m +CONFIG_JOYSTICK_PSXPAD_SPI_FF=y +CONFIG_JOYSTICK_PXRC=m +CONFIG_JOYSTICK_QWIIC=m +CONFIG_JOYSTICK_FSIA6B=m +CONFIG_JOYSTICK_SENSEHAT=m +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_HANWANG=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_PEGASUS=m +CONFIG_TABLET_SERIAL_WACOM4=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_88PM860X=m +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_AD7879=m +CONFIG_TOUCHSCREEN_AD7879_I2C=m +CONFIG_TOUCHSCREEN_AD7879_SPI=m +CONFIG_TOUCHSCREEN_ADC=m +CONFIG_TOUCHSCREEN_ATMEL_MXT=m +CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y +CONFIG_TOUCHSCREEN_AUO_PIXCIR=m +CONFIG_TOUCHSCREEN_BU21013=m +CONFIG_TOUCHSCREEN_BU21029=m +CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m +CONFIG_TOUCHSCREEN_CY8CTMA140=m +CONFIG_TOUCHSCREEN_CY8CTMG110=m +CONFIG_TOUCHSCREEN_CYTTSP_CORE=m +CONFIG_TOUCHSCREEN_CYTTSP_I2C=m +CONFIG_TOUCHSCREEN_CYTTSP_SPI=m +CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m +CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m +CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m +CONFIG_TOUCHSCREEN_CYTTSP5=m +CONFIG_TOUCHSCREEN_DA9034=m +CONFIG_TOUCHSCREEN_DA9052=m +CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_HAMPSHIRE=m +CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m +CONFIG_TOUCHSCREEN_EXC3000=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GOODIX=y +CONFIG_TOUCHSCREEN_HIDEEP=m +CONFIG_TOUCHSCREEN_HYCON_HY46XX=m +CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=m +CONFIG_TOUCHSCREEN_ILI210X=m +CONFIG_TOUCHSCREEN_ILITEK=m +CONFIG_TOUCHSCREEN_S6SY761=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_EKTF2127=m +CONFIG_TOUCHSCREEN_ELAN=y +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_WACOM_I2C=m +CONFIG_TOUCHSCREEN_MAX11801=m +CONFIG_TOUCHSCREEN_MCS5000=m +CONFIG_TOUCHSCREEN_MMS114=m +CONFIG_TOUCHSCREEN_MELFAS_MIP4=m +CONFIG_TOUCHSCREEN_MSG2638=m +CONFIG_TOUCHSCREEN_MTOUCH=m +# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set +CONFIG_TOUCHSCREEN_IMAGIS=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_EDT_FT5X06=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m +CONFIG_TOUCHSCREEN_PIXCIR=m +CONFIG_TOUCHSCREEN_WDT87XX_I2C=m +CONFIG_TOUCHSCREEN_WM831X=m +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_USB_JASTEC=y +CONFIG_TOUCHSCREEN_USB_ELO=y +CONFIG_TOUCHSCREEN_USB_E2I=y +CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y +CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y +CONFIG_TOUCHSCREEN_USB_NEXIO=y +CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TSC_SERIO=m +CONFIG_TOUCHSCREEN_TSC200X_CORE=m +CONFIG_TOUCHSCREEN_TSC2004=m +CONFIG_TOUCHSCREEN_TSC2005=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_TOUCHSCREEN_TSC2007_IIO=y +CONFIG_TOUCHSCREEN_PCAP=m +CONFIG_TOUCHSCREEN_RM_TS=m +CONFIG_TOUCHSCREEN_SILEAD=m +CONFIG_TOUCHSCREEN_SIS_I2C=m +CONFIG_TOUCHSCREEN_ST1232=m +CONFIG_TOUCHSCREEN_STMFTS=m +CONFIG_TOUCHSCREEN_SUR40=m +CONFIG_TOUCHSCREEN_SURFACE3_SPI=m +CONFIG_TOUCHSCREEN_SX8654=m +CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_ZET6223=m +CONFIG_TOUCHSCREEN_ZFORCE=m +CONFIG_TOUCHSCREEN_COLIBRI_VF50=m +CONFIG_TOUCHSCREEN_ROHM_BU21023=m +CONFIG_TOUCHSCREEN_IQS5XX=m +CONFIG_TOUCHSCREEN_ZINITIX=m +CONFIG_TOUCHSCREEN_HIMAX_HX83112B=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_88PM80X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_AD714X_SPI=m +CONFIG_INPUT_ARIZONA_HAPTICS=m +CONFIG_INPUT_ATC260X_ONKEY=m +CONFIG_INPUT_BMA150=m +CONFIG_INPUT_E3X0_BUTTON=m +CONFIG_INPUT_MAX77693_HAPTIC=m +CONFIG_INPUT_MAX8925_ONKEY=m +CONFIG_INPUT_MAX8997_HAPTIC=m +CONFIG_INPUT_MC13783_PWRBUTTON=m +CONFIG_INPUT_MMA8450=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_GPIO_BEEPER=m +CONFIG_INPUT_GPIO_DECODER=m +CONFIG_INPUT_GPIO_VIBRA=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_KXTJ9=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_REGULATOR_HAPTIC=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_AXP20X_PEK=m +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_PALMAS_PWRBUTTON=m +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_PWM_VIBRA=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +CONFIG_INPUT_DA7280_HAPTICS=m +CONFIG_INPUT_DA9052_ONKEY=m +CONFIG_INPUT_DA9055_ONKEY=m +CONFIG_INPUT_DA9063_ONKEY=m +CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_PCAP=m +CONFIG_INPUT_ADXL34X=m +CONFIG_INPUT_ADXL34X_I2C=m +CONFIG_INPUT_ADXL34X_SPI=m +CONFIG_INPUT_IBM_PANEL=m +CONFIG_INPUT_IMS_PCU=m +CONFIG_INPUT_IQS269A=m +CONFIG_INPUT_IQS626A=m +CONFIG_INPUT_IQS7222=m +CONFIG_INPUT_CMA3000=m +CONFIG_INPUT_CMA3000_I2C=m +CONFIG_INPUT_IDEAPAD_SLIDEBAR=m +CONFIG_INPUT_SOC_BUTTON_ARRAY=m +CONFIG_INPUT_DRV260X_HAPTICS=m +CONFIG_INPUT_DRV2665_HAPTICS=m +CONFIG_INPUT_DRV2667_HAPTICS=m +CONFIG_INPUT_RAVE_SP_PWRBUTTON=m +CONFIG_INPUT_RT5120_PWRKEY=m +CONFIG_RMI4_CORE=y +CONFIG_RMI4_I2C=m +CONFIG_RMI4_SPI=m +CONFIG_RMI4_SMB=m +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=y +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y +CONFIG_RMI4_F34=y +CONFIG_RMI4_F3A=y +CONFIG_RMI4_F55=y + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_HYPERV_KEYBOARD=m +CONFIG_SERIO_GPIO_PS2=m +CONFIG_USERIO=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_LEGACY_TIOCSTI=y +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_16550A_VARIANTS is not set +CONFIG_SERIAL_8250_FINTEK=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCILIB=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_MEN_MCB=m +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_PCI1XXXX=m +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DWLIB=y +CONFIG_SERIAL_8250_DFL=m +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_8250_RT288X=y +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y +CONFIG_SERIAL_8250_PERICOM=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_MAX310X=m +CONFIG_SERIAL_UARTLITE=m +CONFIG_SERIAL_UARTLITE_NR_UARTS=1 +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +# CONFIG_SERIAL_LANTIQ is not set +CONFIG_SERIAL_SCCNXP=m +CONFIG_SERIAL_SC16IS7XX_CORE=m +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_I2C=y +CONFIG_SERIAL_SC16IS7XX_SPI=y +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +CONFIG_SERIAL_FSL_LPUART=m +CONFIG_SERIAL_FSL_LINFLEXUART=m +CONFIG_SERIAL_MEN_Z135=m +CONFIG_SERIAL_SPRD=m +# end of Serial drivers + +CONFIG_SERIAL_MCTRL_GPIO=y +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_IPWIRELESS=m +CONFIG_N_GSM=m +CONFIG_NOZOMI=m +CONFIG_NULL_TTY=m +CONFIG_HVC_DRIVER=y +CONFIG_RPMSG_TTY=m +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y +# CONFIG_TTY_PRINTK is not set +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +CONFIG_VIRTIO_CONSOLE=y +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DMI_DECODE=y +CONFIG_IPMI_PLAT_DATA=y +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_SSIF=m +CONFIG_IPMI_IPMB=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_SSIF_IPMI_BMC=m +CONFIG_IPMB_DEVICE_INTERFACE=m +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_BA431=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HW_RANDOM_XIPHERA=m +CONFIG_APPLICOM=m +CONFIG_MWAVE=m +CONFIG_DEVMEM=y +CONFIG_NVRAM=y +CONFIG_DEVPORT=y +CONFIG_HPET=y +# CONFIG_HPET_MMAP is not set +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS_CORE=y +CONFIG_TCG_TIS=y +CONFIG_TCG_TIS_SPI=m +CONFIG_TCG_TIS_SPI_CR50=y +CONFIG_TCG_TIS_I2C=m +CONFIG_TCG_TIS_I2C_CR50=m +CONFIG_TCG_TIS_I2C_ATMEL=m +CONFIG_TCG_TIS_I2C_INFINEON=m +CONFIG_TCG_TIS_I2C_NUVOTON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_CRB=y +CONFIG_TCG_VTPM_PROXY=m +CONFIG_TCG_TIS_ST33ZP24=m +CONFIG_TCG_TIS_ST33ZP24_I2C=m +CONFIG_TCG_TIS_ST33ZP24_SPI=m +CONFIG_TELCLOCK=m +CONFIG_XILLYBUS_CLASS=m +CONFIG_XILLYBUS=m +CONFIG_XILLYBUS_PCIE=m +CONFIG_XILLYUSB=m +# end of Character devices + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_ACPI_I2C_OPREGION=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_LTC4306=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m +CONFIG_I2C_MUX_REG=m +CONFIG_I2C_MUX_MLXCPLD=m +# end of Multiplexer I2C Chip support + +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +CONFIG_I2C_CCGX_UCSI=y +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_AMD_MP2=m +CONFIG_I2C_I801=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=m +CONFIG_I2C_PIIX4=y +CONFIG_I2C_CHT_WC=m +CONFIG_I2C_NFORCE2=y +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_NVIDIA_GPU=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=y +CONFIG_I2C_VIAPRO=y + +# +# ACPI drivers +# +CONFIG_I2C_SCMI=m + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_CBUS_GPIO=y +CONFIG_I2C_DESIGNWARE_CORE=y +CONFIG_I2C_DESIGNWARE_SLAVE=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_DESIGNWARE_BAYTRAIL=y +CONFIG_I2C_DESIGNWARE_PCI=y +CONFIG_I2C_EMEV2=m +CONFIG_I2C_GPIO=m +# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set +CONFIG_I2C_KEMPLD=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_DLN2=m +CONFIG_I2C_CP2615=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PCI1XXXX=m +CONFIG_I2C_ROBOTFUZZ_OSIF=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIPERBOARD=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_MLXCPLD=m +CONFIG_I2C_CROS_EC_TUNNEL=m +CONFIG_I2C_VIRTIO=m +# end of I2C Hardware Bus support + +CONFIG_I2C_STUB=m +CONFIG_I2C_SLAVE=y +CONFIG_I2C_SLAVE_EEPROM=m +CONFIG_I2C_SLAVE_TESTUNIT=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_ALTERA=m +CONFIG_SPI_ALTERA_CORE=m +CONFIG_SPI_ALTERA_DFL=m +CONFIG_SPI_AXI_SPI_ENGINE=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +CONFIG_SPI_CADENCE=m +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_DW_DMA=y +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_DW_MMIO=m +CONFIG_SPI_DLN2=m +CONFIG_SPI_GPIO=m +CONFIG_SPI_INTEL=m +CONFIG_SPI_INTEL_PCI=m +CONFIG_SPI_INTEL_PLATFORM=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_MICROCHIP_CORE=m +CONFIG_SPI_MICROCHIP_CORE_QSPI=m +# CONFIG_SPI_LANTIQ_SSC is not set +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_PCI1XXXX=m +CONFIG_SPI_PXA2XX=m +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_SPI_SC18IS602=m +CONFIG_SPI_SIFIVE=m +CONFIG_SPI_MXIC=m +CONFIG_SPI_XCOMM=m +CONFIG_SPI_XILINX=m +CONFIG_SPI_ZYNQMP_GQSPI=m +CONFIG_SPI_AMD=m + +# +# SPI Multiplexer support +# +CONFIG_SPI_MUX=m + +# +# SPI Protocol Masters +# +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_LOOPBACK_TEST=m +CONFIG_SPI_TLE62X0=m +CONFIG_SPI_SLAVE=y +CONFIG_SPI_SLAVE_TIME=m +CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m +CONFIG_SPI_DYNAMIC=y +CONFIG_SPMI=m +# CONFIG_SPMI_HISI3670 is not set +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y + +# +# HSI controllers +# + +# +# HSI clients +# +CONFIG_HSI_CHAR=m +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +CONFIG_PPS_CLIENT_KTIMER=m +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +CONFIG_PPS_CLIENT_GPIO=m + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y +CONFIG_DP83640_PHY=m +CONFIG_PTP_1588_CLOCK_INES=m +CONFIG_PTP_1588_CLOCK_IDT82P33=m +CONFIG_PTP_1588_CLOCK_IDTCM=m +CONFIG_PTP_1588_CLOCK_VMW=m +CONFIG_PTP_1588_CLOCK_OCP=m +# CONFIG_PTP_DFL_TOD is not set +# end of PTP clock support + +CONFIG_PINCTRL=y +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_CY8C95X0=m +CONFIG_PINCTRL_DA9062=m +CONFIG_PINCTRL_MCP23S08_I2C=y +CONFIG_PINCTRL_MCP23S08_SPI=y +CONFIG_PINCTRL_MCP23S08=y +CONFIG_PINCTRL_SX150X=y +CONFIG_PINCTRL_MADERA=m +CONFIG_PINCTRL_CS47L15=y +CONFIG_PINCTRL_CS47L35=y +CONFIG_PINCTRL_CS47L85=y +CONFIG_PINCTRL_CS47L90=y +CONFIG_PINCTRL_CS47L92=y + +# +# Intel pinctrl drivers +# +CONFIG_PINCTRL_BAYTRAIL=y +CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_LYNXPOINT=y +CONFIG_PINCTRL_INTEL=y +CONFIG_PINCTRL_ALDERLAKE=y +CONFIG_PINCTRL_BROXTON=y +CONFIG_PINCTRL_CANNONLAKE=y +CONFIG_PINCTRL_CEDARFORK=y +CONFIG_PINCTRL_DENVERTON=y +CONFIG_PINCTRL_ELKHARTLAKE=y +CONFIG_PINCTRL_EMMITSBURG=y +CONFIG_PINCTRL_GEMINILAKE=y +CONFIG_PINCTRL_ICELAKE=y +CONFIG_PINCTRL_JASPERLAKE=y +CONFIG_PINCTRL_LAKEFIELD=y +CONFIG_PINCTRL_LEWISBURG=y +CONFIG_PINCTRL_METEORLAKE=y +CONFIG_PINCTRL_SUNRISEPOINT=y +CONFIG_PINCTRL_TIGERLAKE=y +# end of Intel pinctrl drivers + +# +# Renesas pinctrl drivers +# +# end of Renesas pinctrl drivers + +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 +CONFIG_GPIO_ACPI=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_IDIO_16=m + +# +# Memory mapped GPIO drivers +# +CONFIG_GPIO_AMDPT=m +CONFIG_GPIO_DWAPB=m +CONFIG_GPIO_EXAR=m +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_ICH=m +CONFIG_GPIO_MB86S7X=m +CONFIG_GPIO_MENZ127=m +CONFIG_GPIO_SIOX=m +CONFIG_GPIO_AMD_FCH=m +# end of Memory mapped GPIO drivers + +# +# Port-mapped I/O GPIO drivers +# +CONFIG_GPIO_VX855=m +CONFIG_GPIO_F7188X=m +CONFIG_GPIO_IT87=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_SCH311X=m +CONFIG_GPIO_WINBOND=m +CONFIG_GPIO_WS16C48=m +# end of Port-mapped I/O GPIO drivers + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_FXL6408 is not set +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_PCA9570=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_TPIC2810=m +# end of I2C GPIO expanders + +# +# MFD GPIO expanders +# +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_ARIZONA=m +CONFIG_GPIO_BD9571MWV=m +CONFIG_GPIO_CRYSTAL_COVE=m +CONFIG_GPIO_DA9052=m +CONFIG_GPIO_DA9055=m +CONFIG_GPIO_DLN2=m +# CONFIG_GPIO_ELKHARTLAKE is not set +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_KEMPLD=m +CONFIG_GPIO_LP3943=m +CONFIG_GPIO_LP873X=m +CONFIG_GPIO_MADERA=m +CONFIG_GPIO_PALMAS=y +CONFIG_GPIO_RC5T583=y +CONFIG_GPIO_TPS65086=m +CONFIG_GPIO_TPS6586X=y +CONFIG_GPIO_TPS65910=y +CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TPS68470=m +CONFIG_GPIO_TQMX86=m +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_TWL6040=m +CONFIG_GPIO_WHISKEY_COVE=m +CONFIG_GPIO_WM831X=m +CONFIG_GPIO_WM8350=m +CONFIG_GPIO_WM8994=m +# end of MFD GPIO expanders + +# +# PCI GPIO expanders +# +CONFIG_GPIO_AMD8111=m +CONFIG_GPIO_ML_IOH=m +CONFIG_GPIO_PCI_IDIO_16=m +CONFIG_GPIO_PCIE_IDIO_24=m +CONFIG_GPIO_RDC321X=m +# end of PCI GPIO expanders + +# +# SPI GPIO expanders +# +CONFIG_GPIO_MAX3191X=m +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_PISOSR=m +CONFIG_GPIO_XRA1403=m +# end of SPI GPIO expanders + +# +# USB GPIO expanders +# +CONFIG_GPIO_VIPERBOARD=m +# end of USB GPIO expanders + +# +# Virtual GPIO drivers +# +CONFIG_GPIO_AGGREGATOR=m +CONFIG_GPIO_LATCH=m +CONFIG_GPIO_MOCKUP=m +CONFIG_GPIO_VIRTIO=m +CONFIG_GPIO_SIM=m +# end of Virtual GPIO drivers + +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_W1_MASTER_SGI=m +# end of 1-wire Bus Masters + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2405=m +CONFIG_W1_SLAVE_DS2408=m +# CONFIG_W1_SLAVE_DS2408_READBACK is not set +CONFIG_W1_SLAVE_DS2413=m +CONFIG_W1_SLAVE_DS2406=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2805=m +CONFIG_W1_SLAVE_DS2430=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2438=m +CONFIG_W1_SLAVE_DS250X=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m +CONFIG_W1_SLAVE_DS28E17=m +# end of 1-wire Slaves + +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_ATC260X=m +CONFIG_POWER_RESET_MT6323=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_RESET_TPS65086=y +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_POWER_SUPPLY_HWMON=y +CONFIG_GENERIC_ADC_BATTERY=m +CONFIG_IP5XXX_POWER=m +CONFIG_MAX8925_POWER=m +CONFIG_WM831X_BACKUP=m +CONFIG_WM831X_POWER=m +CONFIG_WM8350_POWER=m +CONFIG_TEST_POWER=m +CONFIG_BATTERY_88PM860X=m +CONFIG_CHARGER_ADP5061=m +CONFIG_BATTERY_CW2015=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_DS2780=m +CONFIG_BATTERY_DS2781=m +CONFIG_BATTERY_DS2782=m +# CONFIG_BATTERY_SAMSUNG_SDI is not set +CONFIG_BATTERY_SBS=m +CONFIG_CHARGER_SBS=m +CONFIG_MANAGER_SBS=m +CONFIG_BATTERY_BQ27XXX=m +CONFIG_BATTERY_BQ27XXX_I2C=m +CONFIG_BATTERY_BQ27XXX_HDQ=m +# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set +CONFIG_BATTERY_DA9030=m +CONFIG_BATTERY_DA9052=m +CONFIG_CHARGER_DA9150=m +CONFIG_BATTERY_DA9150=m +CONFIG_CHARGER_AXP20X=m +CONFIG_BATTERY_AXP20X=m +CONFIG_AXP20X_POWER=m +CONFIG_AXP288_CHARGER=m +CONFIG_AXP288_FUEL_GAUGE=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_MAX17042=m +CONFIG_BATTERY_MAX1721X=m +CONFIG_BATTERY_TWL4030_MADC=m +CONFIG_CHARGER_88PM860X=m +CONFIG_CHARGER_PCF50633=m +CONFIG_BATTERY_RX51=m +CONFIG_CHARGER_ISP1704=m +CONFIG_CHARGER_MAX8903=m +CONFIG_CHARGER_TWL4030=m +CONFIG_CHARGER_LP8727=m +CONFIG_CHARGER_LP8788=m +CONFIG_CHARGER_GPIO=m +CONFIG_CHARGER_MANAGER=y +CONFIG_CHARGER_LT3651=m +CONFIG_CHARGER_LTC4162L=m +CONFIG_CHARGER_MAX14577=m +CONFIG_CHARGER_MAX77693=m +CONFIG_CHARGER_MAX77976=m +CONFIG_CHARGER_MAX8997=m +CONFIG_CHARGER_MAX8998=m +CONFIG_CHARGER_MP2629=m +CONFIG_CHARGER_MT6360=m +CONFIG_CHARGER_MT6370=m +CONFIG_CHARGER_BQ2415X=m +CONFIG_CHARGER_BQ24190=m +CONFIG_CHARGER_BQ24257=m +CONFIG_CHARGER_BQ24735=m +CONFIG_CHARGER_BQ2515X=m +CONFIG_CHARGER_BQ25890=m +CONFIG_CHARGER_BQ25980=m +CONFIG_CHARGER_BQ256XX=m +CONFIG_CHARGER_SMB347=m +CONFIG_CHARGER_TPS65090=m +CONFIG_BATTERY_GAUGE_LTC2941=m +CONFIG_BATTERY_GOLDFISH=m +CONFIG_BATTERY_RT5033=m +# CONFIG_CHARGER_RT5033 is not set +CONFIG_CHARGER_RT9455=m +CONFIG_CHARGER_RT9467=m +CONFIG_CHARGER_RT9471=m +CONFIG_CHARGER_CROS_USBPD=m +CONFIG_CHARGER_CROS_PCHG=m +CONFIG_CHARGER_BD99954=m +CONFIG_CHARGER_WILCO=m +CONFIG_BATTERY_SURFACE=m +CONFIG_CHARGER_SURFACE=m +CONFIG_BATTERY_UG3105=m +CONFIG_HWMON=y +CONFIG_HWMON_VID=y +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_SMPRO=m +CONFIG_SENSORS_AD7314=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM1177=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_ADT7310=m +CONFIG_SENSORS_ADT7410=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_AHT10=m +CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m +CONFIG_SENSORS_AS370=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_FAM15H_POWER=m +CONFIG_SENSORS_APPLESMC=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_CORSAIR_CPRO=m +CONFIG_SENSORS_CORSAIR_PSU=m +CONFIG_SENSORS_DRIVETEMP=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_DELL_SMM=m +CONFIG_I8K=y +CONFIG_SENSORS_DA9052_ADC=m +CONFIG_SENSORS_DA9055=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_FTSTEUTATES=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_G762=m +CONFIG_SENSORS_HIH6130=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IIO_HWMON=m +CONFIG_SENSORS_I5500=m +CONFIG_SENSORS_CORETEMP=y +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_POWR1220=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LTC2945=m +CONFIG_SENSORS_LTC2947=m +CONFIG_SENSORS_LTC2947_I2C=m +CONFIG_SENSORS_LTC2947_SPI=m +CONFIG_SENSORS_LTC2990=m +CONFIG_SENSORS_LTC2992=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4222=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4260=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX127=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m +CONFIG_SENSORS_MAX31722=m +CONFIG_SENSORS_MAX31730=m +CONFIG_SENSORS_MAX31760=m +# CONFIG_MAX31827 is not set +CONFIG_SENSORS_MAX6620=m +CONFIG_SENSORS_MAX6621=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MAX31790=m +CONFIG_SENSORS_MC34VR500=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_MLXREG_FAN=m +CONFIG_SENSORS_TC654=m +CONFIG_SENSORS_TPS23861=m +CONFIG_SENSORS_MENF21BMC_HWMON=m +CONFIG_SENSORS_MR75203=m +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LM95234=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_NCT6683=m +CONFIG_SENSORS_NCT6775_CORE=m +CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NCT6775_I2C=m +CONFIG_SENSORS_NCT7802=m +CONFIG_SENSORS_NCT7904=m +CONFIG_SENSORS_NPCM7XX=m +CONFIG_SENSORS_NZXT_KRAKEN2=m +CONFIG_SENSORS_NZXT_SMART2=m +CONFIG_SENSORS_OCC_P8_I2C=m +CONFIG_SENSORS_OCC=m +CONFIG_SENSORS_OXP=m +CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +# CONFIG_SENSORS_ACBEL_FSG032 is not set +CONFIG_SENSORS_ADM1266=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_BEL_PFE=m +CONFIG_SENSORS_BPA_RS600=m +CONFIG_SENSORS_DELTA_AHE50DC_FAN=m +CONFIG_SENSORS_FSP_3Y=m +CONFIG_SENSORS_IBM_CFFPS=m +CONFIG_SENSORS_DPS920AB=m +CONFIG_SENSORS_INSPUR_IPSPS=m +CONFIG_SENSORS_IR35221=m +CONFIG_SENSORS_IR36021=m +CONFIG_SENSORS_IR38064=m +CONFIG_SENSORS_IR38064_REGULATOR=y +CONFIG_SENSORS_IRPS5401=m +CONFIG_SENSORS_ISL68137=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LM25066_REGULATOR=y +CONFIG_SENSORS_LT7182S=m +CONFIG_SENSORS_LTC2978=m +# CONFIG_SENSORS_LTC2978_REGULATOR is not set +CONFIG_SENSORS_LTC3815=m +CONFIG_SENSORS_MAX15301=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX16601=m +CONFIG_SENSORS_MAX20730=m +CONFIG_SENSORS_MAX20751=m +CONFIG_SENSORS_MAX31785=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_MP2888=m +CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP5023=m +CONFIG_SENSORS_MPQ7932_REGULATOR=y +CONFIG_SENSORS_MPQ7932=m +CONFIG_SENSORS_PIM4328=m +CONFIG_SENSORS_PLI1209BC=m +CONFIG_SENSORS_PLI1209BC_REGULATOR=y +CONFIG_SENSORS_PM6764TR=m +CONFIG_SENSORS_PXE1610=m +CONFIG_SENSORS_Q54SJ108A2=m +CONFIG_SENSORS_STPDDC60=m +CONFIG_SENSORS_TDA38640=m +CONFIG_SENSORS_TDA38640_REGULATOR=y +CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m +CONFIG_SENSORS_TPS546D24=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_XDPE152=m +CONFIG_SENSORS_XDPE122=m +CONFIG_SENSORS_XDPE122_REGULATOR=y +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SBTSI=m +CONFIG_SENSORS_SBRMI=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_SHT3x=m +CONFIG_SENSORS_SHT4x=m +CONFIG_SENSORS_SHTC1=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SY7636A=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC2305=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_STTS751=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_ADC128D818=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_INA238=m +CONFIG_SENSORS_INA3221=m +CONFIG_SENSORS_TC74=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP103=m +CONFIG_SENSORS_TMP108=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TMP464=m +CONFIG_SENSORS_TMP513=m +CONFIG_SENSORS_VIA_CPUTEMP=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83773G=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=y +CONFIG_SENSORS_WM831X=m +CONFIG_SENSORS_WM8350=m +CONFIG_SENSORS_XGENE=m +CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m + +# +# ACPI drivers +# +CONFIG_SENSORS_ACPI_POWER=m +CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ASUS_WMI=m +CONFIG_SENSORS_ASUS_EC=m +# CONFIG_SENSORS_HP_WMI is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_NETLINK=y +CONFIG_THERMAL_STATISTICS=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_ACPI=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set +# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_BANG_BANG=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y +CONFIG_DEVFREQ_THERMAL=y +# CONFIG_THERMAL_EMULATION is not set + +# +# Intel thermal drivers +# +CONFIG_INTEL_POWERCLAMP=m +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_INTEL_TCC=y +CONFIG_X86_PKG_TEMP_THERMAL=m +CONFIG_INTEL_SOC_DTS_IOSF_CORE=m +CONFIG_INTEL_SOC_DTS_THERMAL=m + +# +# ACPI INT340X thermal drivers +# +CONFIG_INT340X_THERMAL=m +CONFIG_ACPI_THERMAL_REL=m +CONFIG_INT3406_THERMAL=m +CONFIG_PROC_THERMAL_MMIO_RAPL=m +# end of ACPI INT340X thermal drivers + +CONFIG_INTEL_BXT_PMIC_THERMAL=m +CONFIG_INTEL_PCH_THERMAL=m +CONFIG_INTEL_TCC_COOLING=m +CONFIG_INTEL_HFI_THERMAL=y +# end of Intel thermal drivers + +CONFIG_GENERIC_ADC_THERMAL=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WATCHDOG_OPEN_TIMEOUT=0 +CONFIG_WATCHDOG_SYSFS=y +# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set + +# +# Watchdog Pretimeout Governors +# +CONFIG_WATCHDOG_PRETIMEOUT_GOV=y +CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m +CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m +CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y +# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP is not set +CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +# CONFIG_SOFT_WATCHDOG_PRETIMEOUT is not set +CONFIG_DA9052_WATCHDOG=m +CONFIG_DA9055_WATCHDOG=m +CONFIG_DA9063_WATCHDOG=m +CONFIG_DA9062_WATCHDOG=m +CONFIG_MENF21BMC_WATCHDOG=m +CONFIG_MENZ069_WATCHDOG=m +CONFIG_WDAT_WDT=m +CONFIG_WM831X_WATCHDOG=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_XILINX_WATCHDOG=m +CONFIG_ZIIRAVE_WATCHDOG=m +CONFIG_RAVE_SP_WATCHDOG=m +CONFIG_MLX_WDT=m +CONFIG_CADENCE_WATCHDOG=m +CONFIG_DW_WATCHDOG=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_RETU_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ADVANTECH_EC_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_EBC_C384_WDT=m +CONFIG_EXAR_WDT=m +CONFIG_F71808E_WDT=m +CONFIG_SP5100_TCO=m +CONFIG_SBC_FITPC2_WATCHDOG=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_IE6XX_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_HPWDT_NMI_DECODING=y +CONFIG_KEMPLD_WDT=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_NV_TCO=m +CONFIG_60XX_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_TQMX86_WDT=m +CONFIG_VIA_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_INTEL_MEI_WDT=m +CONFIG_NI903X_WDT=m +CONFIG_NIC7018_WDT=m +CONFIG_SIEMENS_SIMATIC_IPC_WDT=m +CONFIG_MEN_A21_WDT=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB=y +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y +CONFIG_BCMA_POSSIBLE=y +CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_HOST_PCI=y +# CONFIG_BCMA_HOST_SOC is not set +CONFIG_BCMA_DRIVER_PCI=y +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y +# CONFIG_BCMA_DEBUG is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +CONFIG_MFD_AS3711=y +CONFIG_MFD_SMPRO=m +CONFIG_PMIC_ADP5520=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_BCM590XX=m +CONFIG_MFD_BD9571MWV=m +CONFIG_MFD_AXP20X=m +CONFIG_MFD_AXP20X_I2C=m +CONFIG_MFD_CROS_EC_DEV=m +CONFIG_MFD_MADERA=m +CONFIG_MFD_MADERA_I2C=m +CONFIG_MFD_MADERA_SPI=m +CONFIG_MFD_CS47L15=y +CONFIG_MFD_CS47L35=y +CONFIG_MFD_CS47L85=y +CONFIG_MFD_CS47L90=y +CONFIG_MFD_CS47L92=y +CONFIG_PMIC_DA903X=y +CONFIG_PMIC_DA9052=y +CONFIG_MFD_DA9052_SPI=y +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_DA9055=y +CONFIG_MFD_DA9062=m +CONFIG_MFD_DA9063=m +CONFIG_MFD_DA9150=m +CONFIG_MFD_DLN2=m +CONFIG_MFD_MC13XXX=m +CONFIG_MFD_MC13XXX_SPI=m +CONFIG_MFD_MC13XXX_I2C=m +CONFIG_MFD_MP2629=m +CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m +CONFIG_LPC_ICH=m +CONFIG_LPC_SCH=y +CONFIG_INTEL_SOC_PMIC=y +CONFIG_INTEL_SOC_PMIC_BXTWC=m +CONFIG_INTEL_SOC_PMIC_CHTWC=y +CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m +CONFIG_INTEL_SOC_PMIC_MRFLD=m +CONFIG_MFD_INTEL_LPSS=y +CONFIG_MFD_INTEL_LPSS_ACPI=y +CONFIG_MFD_INTEL_LPSS_PCI=y +CONFIG_MFD_INTEL_PMC_BXT=m +CONFIG_MFD_IQS62X=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_KEMPLD=m +CONFIG_MFD_88PM800=m +CONFIG_MFD_88PM805=m +CONFIG_MFD_88PM860X=y +CONFIG_MFD_MAX14577=m +# CONFIG_MFD_MAX77541 is not set +CONFIG_MFD_MAX77693=m +CONFIG_MFD_MAX77843=y +CONFIG_MFD_MAX8907=m +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_MT6360=m +CONFIG_MFD_MT6370=m +CONFIG_MFD_MT6397=m +CONFIG_MFD_MENF21BMC=m +CONFIG_MFD_OCELOT=m +CONFIG_EZX_PCAP=y +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_RETU=m +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +CONFIG_MFD_SY7636A=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RT4831=m +CONFIG_MFD_RT5033=m +CONFIG_MFD_RT5120=m +CONFIG_MFD_RC5T583=y +CONFIG_MFD_SI476X_CORE=m +CONFIG_MFD_SIMPLE_MFD_I2C=m +CONFIG_MFD_SM501=m +CONFIG_MFD_SM501_GPIO=y +CONFIG_MFD_SKY81452=m +CONFIG_MFD_SYSCON=y +CONFIG_MFD_TI_AM335X_TSCADC=m +CONFIG_MFD_LP3943=m +CONFIG_MFD_LP8788=y +CONFIG_MFD_TI_LMU=m +CONFIG_MFD_PALMAS=y +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +CONFIG_MFD_TPS65086=m +CONFIG_MFD_TPS65090=y +CONFIG_MFD_TI_LP873X=m +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912=m +CONFIG_MFD_TPS65912_I2C=m +CONFIG_MFD_TPS65912_SPI=m +# CONFIG_MFD_TPS6594_I2C is not set +# CONFIG_MFD_TPS6594_SPI is not set +CONFIG_TWL4030_CORE=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_TWL6040_CORE=y +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_LM3533=m +CONFIG_MFD_TQMX86=m +CONFIG_MFD_VX855=m +CONFIG_MFD_ARIZONA=m +CONFIG_MFD_ARIZONA_I2C=m +CONFIG_MFD_ARIZONA_SPI=m +CONFIG_MFD_CS47L24=y +CONFIG_MFD_WM5102=y +CONFIG_MFD_WM5110=y +CONFIG_MFD_WM8997=y +CONFIG_MFD_WM8998=y +CONFIG_MFD_WM8400=y +CONFIG_MFD_WM831X=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8994=m +CONFIG_MFD_WCD934X=m +CONFIG_MFD_ATC260X=m +CONFIG_MFD_ATC260X_I2C=m +CONFIG_RAVE_SP_CORE=m +CONFIG_MFD_INTEL_M10_BMC_CORE=m +CONFIG_MFD_INTEL_M10_BMC_SPI=m +CONFIG_MFD_INTEL_M10_BMC_PMCI=m +# end of Multifunction device drivers + +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_88PG86X=m +CONFIG_REGULATOR_88PM800=m +CONFIG_REGULATOR_88PM8607=m +CONFIG_REGULATOR_ACT8865=m +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_AAT2870=m +CONFIG_REGULATOR_ARIZONA_LDO1=m +CONFIG_REGULATOR_ARIZONA_MICSUPP=m +CONFIG_REGULATOR_AS3711=m +CONFIG_REGULATOR_ATC260X=m +CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BCM590XX=m +CONFIG_REGULATOR_BD9571MWV=m +CONFIG_REGULATOR_DA903X=m +CONFIG_REGULATOR_DA9052=m +CONFIG_REGULATOR_DA9055=m +CONFIG_REGULATOR_DA9062=m +CONFIG_REGULATOR_DA9210=m +CONFIG_REGULATOR_DA9211=m +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_ISL9305=m +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_LM363X=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_LP872X=m +CONFIG_REGULATOR_LP8755=m +CONFIG_REGULATOR_LP8788=m +CONFIG_REGULATOR_LTC3589=m +CONFIG_REGULATOR_LTC3676=m +CONFIG_REGULATOR_MAX14577=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8893=m +CONFIG_REGULATOR_MAX8907=m +CONFIG_REGULATOR_MAX8925=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8997=m +CONFIG_REGULATOR_MAX8998=m +CONFIG_REGULATOR_MAX20086=m +CONFIG_REGULATOR_MAX20411=m +CONFIG_REGULATOR_MAX77693=m +CONFIG_REGULATOR_MAX77826=m +CONFIG_REGULATOR_MC13XXX_CORE=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MP8859=m +CONFIG_REGULATOR_MT6311=m +# CONFIG_REGULATOR_MT6315 is not set +CONFIG_REGULATOR_MT6323=m +CONFIG_REGULATOR_MT6331=m +CONFIG_REGULATOR_MT6332=m +CONFIG_REGULATOR_MT6357=m +CONFIG_REGULATOR_MT6358=m +CONFIG_REGULATOR_MT6359=m +CONFIG_REGULATOR_MT6360=m +CONFIG_REGULATOR_MT6370=m +CONFIG_REGULATOR_MT6397=m +CONFIG_REGULATOR_PALMAS=m +CONFIG_REGULATOR_PCA9450=m +CONFIG_REGULATOR_PCAP=m +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_PV88060=m +CONFIG_REGULATOR_PV88080=m +CONFIG_REGULATOR_PV88090=m +CONFIG_REGULATOR_PWM=m +# CONFIG_REGULATOR_QCOM_SPMI is not set +# CONFIG_REGULATOR_QCOM_USB_VBUS is not set +# CONFIG_REGULATOR_RAA215300 is not set +CONFIG_REGULATOR_RC5T583=m +CONFIG_REGULATOR_RT4801=m +# CONFIG_REGULATOR_RT4803 is not set +CONFIG_REGULATOR_RT4831=m +CONFIG_REGULATOR_RT5033=m +CONFIG_REGULATOR_RT5120=m +CONFIG_REGULATOR_RT5190A=m +# CONFIG_REGULATOR_RT5739 is not set +CONFIG_REGULATOR_RT5759=m +CONFIG_REGULATOR_RT6160=m +CONFIG_REGULATOR_RT6190=m +CONFIG_REGULATOR_RT6245=m +CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTMV20=m +CONFIG_REGULATOR_RTQ6752=m +CONFIG_REGULATOR_SKY81452=m +CONFIG_REGULATOR_SLG51000=m +CONFIG_REGULATOR_SY7636A=m +CONFIG_REGULATOR_TPS51632=m +CONFIG_REGULATOR_TPS6105X=m +CONFIG_REGULATOR_TPS62360=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65086=m +CONFIG_REGULATOR_TPS65090=m +CONFIG_REGULATOR_TPS65132=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS6586X=m +CONFIG_REGULATOR_TPS65910=m +CONFIG_REGULATOR_TPS65912=m +CONFIG_REGULATOR_TPS68470=m +CONFIG_REGULATOR_TWL4030=m +CONFIG_REGULATOR_WM831X=m +CONFIG_REGULATOR_WM8350=m +CONFIG_REGULATOR_WM8400=m +CONFIG_REGULATOR_WM8994=m +# CONFIG_REGULATOR_QCOM_LABIBB is not set +CONFIG_RC_CORE=y +CONFIG_BPF_LIRC_MODE2=y +CONFIG_LIRC=y +CONFIG_RC_MAP=m +CONFIG_RC_DECODERS=y +CONFIG_IR_IMON_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_RCMM_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_SHARP_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_XMP_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_IR_ENE=m +CONFIG_IR_FINTEK=m +CONFIG_IR_IGORPLUGUSB=m +CONFIG_IR_IGUANA=m +CONFIG_IR_IMON=m +CONFIG_IR_IMON_RAW=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_SERIAL=m +CONFIG_IR_SERIAL_TRANSMITTER=y +CONFIG_IR_STREAMZAP=m +CONFIG_IR_TOY=m +CONFIG_IR_TTUSBIR=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_RC_ATI_REMOTE=m +CONFIG_RC_LOOPBACK=m +CONFIG_RC_XBOX_DVD=m +CONFIG_CEC_CORE=y +CONFIG_CEC_NOTIFIER=y +CONFIG_CEC_PIN=y + +# +# CEC support +# +CONFIG_MEDIA_CEC_RC=y +# CONFIG_CEC_PIN_ERROR_INJ is not set +CONFIG_MEDIA_CEC_SUPPORT=y +CONFIG_CEC_CH7322=m +CONFIG_CEC_CROS_EC=m +CONFIG_CEC_GPIO=m +CONFIG_CEC_SECO=m +CONFIG_CEC_SECO_RC=y +CONFIG_USB_PULSE8_CEC=m +CONFIG_USB_RAINSHADOW_CEC=m +# end of CEC support + +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_SUPPORT_FILTER=y +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y + +# +# Media device types +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +CONFIG_MEDIA_TEST_SUPPORT=y +# end of Media device types + +CONFIG_VIDEO_DEV=m +CONFIG_MEDIA_CONTROLLER=y +CONFIG_DVB_CORE=m + +# +# Video4Linux options +# +CONFIG_VIDEO_V4L2_I2C=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L2_FLASH_LED_CLASS=m +CONFIG_V4L2_FWNODE=m +CONFIG_V4L2_ASYNC=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +# end of Video4Linux options + +# +# Media controller options +# +CONFIG_MEDIA_CONTROLLER_DVB=y +CONFIG_MEDIA_CONTROLLER_REQUEST_API=y +# end of Media controller options + +# +# Digital TV options +# +CONFIG_DVB_MMAP=y +CONFIG_DVB_NET=y +CONFIG_DVB_MAX_ADAPTERS=64 +CONFIG_DVB_DYNAMIC_MINORS=y +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set +# end of Digital TV options + +# +# Media drivers +# + +# +# Drivers filtered as selected at 'Filter media drivers' +# + +# +# Media drivers +# +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_DTCS033=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STK1135=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TOUPTEK=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_GL860=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_USB_S2255=m +CONFIG_VIDEO_USBTV=m +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y + +# +# Analog TV USB devices +# +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_GO7007_USB=m +CONFIG_VIDEO_GO7007_LOADER=m +CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_STK1160=m + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_AU0828_RC=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_AS102=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_ZD1301=m +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_CXUSB_ANALOG=y +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIB3000MC=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_V4L2=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m + +# +# Software defined radio USB devices +# +# CONFIG_USB_AIRSPY is not set +# CONFIG_USB_HACKRF is not set +# CONFIG_USB_MSI2500 is not set +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +CONFIG_VIDEO_SOLO6X10=m +CONFIG_VIDEO_TW5864=m +CONFIG_VIDEO_TW68=m +CONFIG_VIDEO_TW686X=m +# CONFIG_VIDEO_ZORAN is not set + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_DT3155=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +# CONFIG_VIDEO_FB_IVTV is not set +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_MXB=m + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_ENABLE_VP3054=y +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_GO7007=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set +CONFIG_DVB_DM1105=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NETUP_UNIDVB=m +CONFIG_DVB_NGENE=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_PT1=m +CONFIG_DVB_PT3=m +CONFIG_DVB_SMIPCIE=m +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_IPU_BRIDGE=m +CONFIG_VIDEO_IPU3_CIO2=m +CONFIG_CIO2_BRIDGE=y +CONFIG_RADIO_ADAPTERS=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_RADIO_SI4713=m +CONFIG_RADIO_SI476X=m +CONFIG_RADIO_TEA575X=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_WL1273=m +CONFIG_USB_DSBR=m +CONFIG_USB_KEENE=m +CONFIG_USB_MA901=m +CONFIG_USB_MR800=m +CONFIG_USB_RAREMONO=m +CONFIG_RADIO_SI470X=m +CONFIG_USB_SI470X=m +CONFIG_I2C_SI470X=m +CONFIG_USB_SI4713=m +CONFIG_PLATFORM_SI4713=m +CONFIG_I2C_SI4713=m +CONFIG_RADIO_WL128X=m +CONFIG_MEDIA_PLATFORM_DRIVERS=y +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_SDR_PLATFORM_DRIVERS is not set +CONFIG_DVB_PLATFORM_DRIVERS=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m + +# +# Allegro DVT media platform drivers +# + +# +# Amlogic media platform drivers +# + +# +# Amphion drivers +# + +# +# Aspeed media platform drivers +# + +# +# Atmel media platform drivers +# + +# +# Cadence media platform drivers +# +CONFIG_VIDEO_CADENCE_CSI2RX=m +CONFIG_VIDEO_CADENCE_CSI2TX=m + +# +# Chips&Media media platform drivers +# + +# +# Intel media platform drivers +# + +# +# Marvell media platform drivers +# +CONFIG_VIDEO_CAFE_CCIC=m + +# +# Mediatek media platform drivers +# + +# +# Microchip Technology, Inc. media platform drivers +# + +# +# NVidia media platform drivers +# + +# +# NXP media platform drivers +# + +# +# Qualcomm media platform drivers +# + +# +# Renesas media platform drivers +# + +# +# Rockchip media platform drivers +# + +# +# Samsung media platform drivers +# + +# +# STMicroelectronics media platform drivers +# + +# +# Sunxi media platform drivers +# + +# +# Texas Instruments drivers +# + +# +# Verisilicon media platform drivers +# + +# +# VIA media platform drivers +# + +# +# Xilinx media platform drivers +# + +# +# MMC/SDIO DVB adapters +# +CONFIG_SMS_SDIO_DRV=m +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VIDEO_VIM2M=m +CONFIG_VIDEO_VICODEC=m +CONFIG_VIDEO_VIMC=m +CONFIG_VIDEO_VIVID=m +CONFIG_VIDEO_VIVID_CEC=y +CONFIG_VIDEO_VIVID_MAX_DEVS=64 +CONFIG_VIDEO_VISL=m +# CONFIG_VISL_DEBUGFS is not set +CONFIG_DVB_TEST_DRIVERS=y +CONFIG_DVB_VIDTV=m + +# +# FireWire (IEEE 1394) Adapters +# +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_TTPCI_EEPROM=m +CONFIG_UVC_COMMON=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set +CONFIG_VIDEO_V4L2_TPG=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_V4L2=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_DVB=m +# end of Media drivers + +# +# Media ancillary drivers +# +CONFIG_MEDIA_ATTACH=y + +# +# IR I2C driver auto-selected by 'Autoselect ancillary drivers' +# +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_CAMERA_SENSOR=y +CONFIG_VIDEO_APTINA_PLL=m +CONFIG_VIDEO_CCS_PLL=m +CONFIG_VIDEO_AR0521=m +CONFIG_VIDEO_HI556=m +CONFIG_VIDEO_HI846=m +CONFIG_VIDEO_HI847=m +CONFIG_VIDEO_IMX208=m +CONFIG_VIDEO_IMX214=m +CONFIG_VIDEO_IMX219=m +CONFIG_VIDEO_IMX258=m +CONFIG_VIDEO_IMX274=m +CONFIG_VIDEO_IMX290=m +CONFIG_VIDEO_IMX296=m +CONFIG_VIDEO_IMX319=m +CONFIG_VIDEO_IMX355=m +CONFIG_VIDEO_MAX9271_LIB=m +CONFIG_VIDEO_MT9M001=m +CONFIG_VIDEO_MT9M111=m +CONFIG_VIDEO_MT9P031=m +CONFIG_VIDEO_MT9T112=m +CONFIG_VIDEO_MT9V011=m +CONFIG_VIDEO_MT9V032=m +CONFIG_VIDEO_MT9V111=m +CONFIG_VIDEO_OG01A1B=m +# CONFIG_VIDEO_OV01A10 is not set +CONFIG_VIDEO_OV02A10=m +CONFIG_VIDEO_OV08D10=m +CONFIG_VIDEO_OV08X40=m +CONFIG_VIDEO_OV13858=m +CONFIG_VIDEO_OV13B10=m +CONFIG_VIDEO_OV2640=m +CONFIG_VIDEO_OV2659=m +CONFIG_VIDEO_OV2680=m +CONFIG_VIDEO_OV2685=m +CONFIG_VIDEO_OV2740=m +CONFIG_VIDEO_OV4689=m +CONFIG_VIDEO_OV5647=m +CONFIG_VIDEO_OV5648=m +CONFIG_VIDEO_OV5670=m +CONFIG_VIDEO_OV5675=m +CONFIG_VIDEO_OV5693=m +CONFIG_VIDEO_OV5695=m +CONFIG_VIDEO_OV6650=m +CONFIG_VIDEO_OV7251=m +CONFIG_VIDEO_OV7640=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_OV772X=m +CONFIG_VIDEO_OV7740=m +CONFIG_VIDEO_OV8856=m +CONFIG_VIDEO_OV8858=m +CONFIG_VIDEO_OV8865=m +CONFIG_VIDEO_OV9640=m +CONFIG_VIDEO_OV9650=m +CONFIG_VIDEO_OV9734=m +CONFIG_VIDEO_RDACM20=m +CONFIG_VIDEO_RDACM21=m +CONFIG_VIDEO_RJ54N1=m +CONFIG_VIDEO_S5C73M3=m +CONFIG_VIDEO_S5K5BAF=m +CONFIG_VIDEO_S5K6A3=m +CONFIG_VIDEO_CCS=m +CONFIG_VIDEO_ET8EK8=m + +# +# Lens drivers +# +CONFIG_VIDEO_AD5820=m +CONFIG_VIDEO_AK7375=m +CONFIG_VIDEO_DW9714=m +CONFIG_VIDEO_DW9768=m +CONFIG_VIDEO_DW9807_VCM=m +# end of Lens drivers + +# +# Flash devices +# +CONFIG_VIDEO_ADP1653=m +CONFIG_VIDEO_LM3560=m +CONFIG_VIDEO_LM3646=m +# end of Flash devices + +# +# Audio decoders, processors and mixers +# +CONFIG_VIDEO_CS3308=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_SONY_BTF_MPX=m +# CONFIG_VIDEO_TDA1997X is not set +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +# CONFIG_VIDEO_TLV320AIC23B is not set +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_UDA1342=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +# end of Audio decoders, processors and mixers + +# +# RDS decoders +# +CONFIG_VIDEO_SAA6588=m +# end of RDS decoders + +# +# Video decoders +# +CONFIG_VIDEO_ADV7180=m +# CONFIG_VIDEO_ADV7183 is not set +# CONFIG_VIDEO_ADV7604 is not set +# CONFIG_VIDEO_ADV7842 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_ML86V7667 is not set +# CONFIG_VIDEO_SAA7110 is not set +CONFIG_VIDEO_SAA711X=m +# CONFIG_VIDEO_TC358743 is not set +# CONFIG_VIDEO_TC358746 is not set +# CONFIG_VIDEO_TVP514X is not set +CONFIG_VIDEO_TVP5150=m +# CONFIG_VIDEO_TVP7002 is not set +CONFIG_VIDEO_TW2804=m +CONFIG_VIDEO_TW9903=m +CONFIG_VIDEO_TW9906=m +# CONFIG_VIDEO_TW9910 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_CX25840=m +# end of Video decoders + +# +# Video encoders +# +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_ADV7393 is not set +# CONFIG_VIDEO_ADV7511 is not set +# CONFIG_VIDEO_AK881X is not set +CONFIG_VIDEO_SAA7127=m +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_THS8200 is not set +# end of Video encoders + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +# end of Video improvement chips + +# +# Audio/Video compression chips +# +CONFIG_VIDEO_SAA6752HS=m +# end of Audio/Video compression chips + +# +# SDR tuner chips +# +CONFIG_SDR_MAX2175=m +# end of SDR tuner chips + +# +# Miscellaneous helper chips +# +# CONFIG_VIDEO_I2C is not set +CONFIG_VIDEO_M52790=m +# CONFIG_VIDEO_ST_MIPID02 is not set +# CONFIG_VIDEO_THS7303 is not set +# end of Miscellaneous helper chips + +# +# Media SPI Adapters +# +CONFIG_CXD2880_SPI_DRV=m +CONFIG_VIDEO_GS1662=m +# end of Media SPI Adapters + +CONFIG_MEDIA_TUNER=m + +# +# Customize TV tuners +# +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_M88RS6000T=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +# CONFIG_MEDIA_TUNER_MSI001 is not set +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MXL301RF=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_QM1D1B0004=m +CONFIG_MEDIA_TUNER_QM1D1C0042=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_SI2157=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_TDA18250=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_XC5000=m +# end of Customize TV tuners + +# +# Customise DVB Frontends +# + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_MXL5XX=m +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV0910=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_STV6111=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_MN88472=m +CONFIG_DVB_MN88473=m +CONFIG_DVB_SI2165=m +CONFIG_DVB_TDA18271C2DD=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24117=m +CONFIG_DVB_CX24120=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_TDA10071=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_AF9013=m +CONFIG_DVB_AS102_FE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_CXD2841ER=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +# CONFIG_DVB_DIB9000 is not set +CONFIG_DVB_DRXD=m +CONFIG_DVB_EC100=m +CONFIG_DVB_GP8PSK_FE=m +CONFIG_DVB_L64781=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m +CONFIG_DVB_RTL2832_SDR=m +# CONFIG_DVB_S5H1432 is not set +CONFIG_DVB_SI2168=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_ZD1301_DEMOD=m +CONFIG_DVB_ZL10353=m +# CONFIG_DVB_CXD2880 is not set + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_STV0297=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_VES1820=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT3306A=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_MXL692=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m +CONFIG_DVB_S921=m + +# +# ISDB-S (satellite) & ISDB-T (terrestrial) frontends +# +# CONFIG_DVB_MN88443X is not set +CONFIG_DVB_TC90522=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_A8293=m +CONFIG_DVB_AF9033=m +CONFIG_DVB_ASCOT2E=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_HELENE=m +CONFIG_DVB_HORUS3A=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_IX2505V=m +# CONFIG_DVB_LGS8GL5 is not set +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_LNBH25=m +# CONFIG_DVB_LNBH29 is not set +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_DRX39XYJ=m + +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_CXD2099=m +CONFIG_DVB_SP2=m +# end of Customise DVB Frontends + +# +# Tools to develop new frontends +# +CONFIG_DVB_DUMMY_FE=m +# end of Media ancillary drivers + +# +# Graphics support +# +CONFIG_APERTURE_HELPERS=y +CONFIG_VIDEO_CMDLINE=y +CONFIG_VIDEO_NOMODESET=y +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +CONFIG_AGP_SIS=y +CONFIG_AGP_VIA=y +CONFIG_INTEL_GTT=y +CONFIG_VGA_SWITCHEROO=y +CONFIG_DRM=y +CONFIG_DRM_MIPI_DBI=m +CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DEBUG_MM is not set +CONFIG_DRM_KMS_HELPER=y +# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_FBDEV_OVERALLOC=200 +# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_DISPLAY_HELPER=y +CONFIG_DRM_DISPLAY_DP_HELPER=y +CONFIG_DRM_DISPLAY_HDCP_HELPER=y +CONFIG_DRM_DISPLAY_HDMI_HELPER=y +CONFIG_DRM_DP_AUX_CHARDEV=y +CONFIG_DRM_DP_CEC=y +CONFIG_DRM_TTM=y +CONFIG_DRM_BUDDY=y +CONFIG_DRM_VRAM_HELPER=m +CONFIG_DRM_TTM_HELPER=y +CONFIG_DRM_GEM_DMA_HELPER=m +CONFIG_DRM_GEM_SHMEM_HELPER=y +CONFIG_DRM_SUBALLOC_HELPER=y +CONFIG_DRM_SCHED=y + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_I2C_NXP_TDA9950=m +# end of I2C encoder or helper chips + +# +# ARM devices +# +# end of ARM devices + +CONFIG_DRM_RADEON=y +CONFIG_DRM_RADEON_USERPTR=y +CONFIG_DRM_AMDGPU=y +CONFIG_DRM_AMDGPU_SI=y +CONFIG_DRM_AMDGPU_CIK=y +CONFIG_DRM_AMDGPU_USERPTR=y +# CONFIG_DRM_AMDGPU_WERROR is not set + +# +# ACP (Audio CoProcessor) Configuration +# +CONFIG_DRM_AMD_ACP=y +# end of ACP (Audio CoProcessor) Configuration + +# +# Display Engine Configuration +# +CONFIG_DRM_AMD_DC=y +CONFIG_DRM_AMD_DC_FP=y +CONFIG_DRM_AMD_DC_SI=y +CONFIG_DRM_AMD_SECURE_DISPLAY=y +# end of Display Engine Configuration + +CONFIG_HSA_AMD=y +CONFIG_HSA_AMD_SVM=y +CONFIG_DRM_NOUVEAU=y +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +# CONFIG_NOUVEAU_DEBUG_MMU is not set +# CONFIG_NOUVEAU_DEBUG_PUSH is not set +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +CONFIG_DRM_NOUVEAU_SVM=y +CONFIG_DRM_I915=y +CONFIG_DRM_I915_FORCE_PROBE="*" +CONFIG_DRM_I915_CAPTURE_ERROR=y +CONFIG_DRM_I915_COMPRESS_ERROR=y +CONFIG_DRM_I915_USERPTR=y +CONFIG_DRM_I915_PXP=y + +# +# drm/i915 Debugging +# +# CONFIG_DRM_I915_WERROR is not set +# CONFIG_DRM_I915_DEBUG is not set +# CONFIG_DRM_I915_DEBUG_MMIO is not set +# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set +# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set +# CONFIG_DRM_I915_DEBUG_GUC is not set +# CONFIG_DRM_I915_SELFTEST is not set +# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set +# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set +# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set +# end of drm/i915 Debugging + +# +# drm/i915 Profile Guided Optimisation +# +CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 +CONFIG_DRM_I915_FENCE_TIMEOUT=10000 +CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 +CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 +CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 +CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 +CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 +CONFIG_DRM_I915_STOP_TIMEOUT=100 +CONFIG_DRM_I915_TIMESLICE_DURATION=1 +# end of drm/i915 Profile Guided Optimisation + +CONFIG_DRM_VGEM=m +CONFIG_DRM_VKMS=m +CONFIG_DRM_VMWGFX=m +CONFIG_DRM_VMWGFX_MKSSTATS=y +CONFIG_DRM_GMA500=m +CONFIG_DRM_UDL=m +CONFIG_DRM_AST=m +CONFIG_DRM_MGAG200=m +CONFIG_DRM_QXL=m +CONFIG_DRM_VIRTIO_GPU=m +CONFIG_DRM_VIRTIO_GPU_KMS=y +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +CONFIG_DRM_PANEL_AUO_A030JTN01=m +CONFIG_DRM_PANEL_ORISETECH_OTA5601A=m +CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m +CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m +# end of Display Panels + +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y + +# +# Display Interface Bridges +# +CONFIG_DRM_ANALOGIX_ANX78XX=m +CONFIG_DRM_ANALOGIX_DP=m +# end of Display Interface Bridges + +# CONFIG_DRM_ETNAVIV is not set +CONFIG_DRM_BOCHS=m +CONFIG_DRM_CIRRUS_QEMU=m +CONFIG_DRM_GM12U320=m +CONFIG_DRM_PANEL_MIPI_DBI=m +CONFIG_DRM_SIMPLEDRM=y +CONFIG_TINYDRM_HX8357D=m +CONFIG_TINYDRM_ILI9163=m +CONFIG_TINYDRM_ILI9225=m +CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m +CONFIG_TINYDRM_MI0283QT=m +CONFIG_TINYDRM_REPAPER=m +CONFIG_TINYDRM_ST7586=m +CONFIG_TINYDRM_ST7735R=m +CONFIG_DRM_VBOXVIDEO=m +CONFIG_DRM_GUD=m +CONFIG_DRM_SSD130X=m +CONFIG_DRM_SSD130X_I2C=m +CONFIG_DRM_SSD130X_SPI=m +CONFIG_DRM_HYPERV=m +# CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y +CONFIG_DRM_PRIVACY_SCREEN=y + +# +# Frame buffer Devices +# +CONFIG_FB_NOTIFY=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FB_DDC=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_IO_HELPERS=y +CONFIG_FB_SYS_HELPERS=y +CONFIG_FB_SYS_HELPERS_DEFERRED=y +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_UVESA is not set +CONFIG_FB_VESA=y +CONFIG_FB_EFI=y +# CONFIG_FB_N411 is not set +# CONFIG_FB_HGA is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_LE80578 is not set +# CONFIG_FB_MATROX is not set +CONFIG_FB_RADEON=y +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_VIA is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_SM501 is not set +# CONFIG_FB_SMSCUFX is not set +CONFIG_FB_UDL=y +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_HYPERV is not set +# CONFIG_FB_SSD1307 is not set +# CONFIG_FB_SM712 is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_L4F00242T03=m +CONFIG_LCD_LMS283GF05=m +CONFIG_LCD_LTV350QV=m +CONFIG_LCD_ILI922X=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_TDO24M=m +CONFIG_LCD_VGG2432A4=m +CONFIG_LCD_PLATFORM=m +CONFIG_LCD_AMS369FG06=m +CONFIG_LCD_LMS501KF03=m +CONFIG_LCD_HX8357=m +CONFIG_LCD_OTM3225A=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_KTD253=m +CONFIG_BACKLIGHT_KTZ8866=m +CONFIG_BACKLIGHT_LM3533=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_DA903X=m +CONFIG_BACKLIGHT_DA9052=m +CONFIG_BACKLIGHT_MAX8925=m +CONFIG_BACKLIGHT_MT6370=m +CONFIG_BACKLIGHT_APPLE=m +CONFIG_BACKLIGHT_QCOM_WLED=m +CONFIG_BACKLIGHT_RT4831=m +CONFIG_BACKLIGHT_SAHARA=m +CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP5520=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_PCF50633=m +CONFIG_BACKLIGHT_AAT2870=m +CONFIG_BACKLIGHT_LM3630A=m +CONFIG_BACKLIGHT_LM3639=m +CONFIG_BACKLIGHT_LP855X=m +CONFIG_BACKLIGHT_LP8788=m +CONFIG_BACKLIGHT_PANDORA=m +CONFIG_BACKLIGHT_SKY81452=m +CONFIG_BACKLIGHT_AS3711=m +CONFIG_BACKLIGHT_GPIO=m +CONFIG_BACKLIGHT_LV5207LP=m +CONFIG_BACKLIGHT_BD6107=m +CONFIG_BACKLIGHT_ARCXCNN=m +CONFIG_BACKLIGHT_RAVE_SP=m +# end of Backlight & LCD device support + +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_HDMI=y + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set +# end of Console display driver support + +# CONFIG_LOGO is not set +# end of Graphics support + +CONFIG_DRM_ACCEL=y +CONFIG_DRM_ACCEL_HABANALABS=m +CONFIG_DRM_ACCEL_IVPU=m +# CONFIG_DRM_ACCEL_QAIC is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_PCM_ELD=y +CONFIG_SND_PCM_IEC958=y +CONFIG_SND_DMAENGINE_PCM=y +CONFIG_SND_HWDEP=m +CONFIG_SND_SEQ_DEVICE=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCM_TIMER=y +CONFIG_SND_HRTIMER=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_MAX_CARDS=32 +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_CTL_FAST_LOOKUP=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +# CONFIG_SND_PCM_XRUN_DEBUG is not set +CONFIG_SND_CTL_INPUT_VALIDATION=y +# CONFIG_SND_CTL_DEBUG is not set +# CONFIG_SND_JACK_INJECTION_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_DMA_SGBUF=y +CONFIG_SND_CTL_LED=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQUENCER_OSS=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SEQ_MIDI_EVENT=m +CONFIG_SND_SEQ_MIDI=m +CONFIG_SND_SEQ_MIDI_EMUL=m +CONFIG_SND_SEQ_VIRMIDI=m +# CONFIG_SND_SEQ_UMP is not set +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m +# CONFIG_SND_PCMTEST is not set +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_SB_COMMON=m +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m + +# +# HD-Audio +# +CONFIG_SND_HDA=m +CONFIG_SND_HDA_GENERIC_LEDS=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_SCODEC_CS35L41=m +CONFIG_SND_HDA_CS_DSP_CONTROLS=m +CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +CONFIG_SND_HDA_CODEC_REALTEK=m +CONFIG_SND_HDA_CODEC_ANALOG=m +CONFIG_SND_HDA_CODEC_SIGMATEL=m +CONFIG_SND_HDA_CODEC_VIA=m +CONFIG_SND_HDA_CODEC_HDMI=m +CONFIG_SND_HDA_CODEC_CIRRUS=m +CONFIG_SND_HDA_CODEC_CS8409=m +CONFIG_SND_HDA_CODEC_CONEXANT=m +CONFIG_SND_HDA_CODEC_CA0110=m +CONFIG_SND_HDA_CODEC_CA0132=m +CONFIG_SND_HDA_CODEC_CA0132_DSP=y +CONFIG_SND_HDA_CODEC_CMEDIA=m +CONFIG_SND_HDA_CODEC_SI3054=m +CONFIG_SND_HDA_GENERIC=m +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 +CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y +# CONFIG_SND_HDA_CTL_DEV_ID is not set +# end of HD-Audio + +CONFIG_SND_HDA_CORE=m +CONFIG_SND_HDA_DSP_LOADER=y +CONFIG_SND_HDA_COMPONENT=y +CONFIG_SND_HDA_I915=y +CONFIG_SND_HDA_EXT_CORE=m +CONFIG_SND_HDA_PREALLOC_SIZE=0 +CONFIG_SND_INTEL_NHLT=y +CONFIG_SND_INTEL_DSP_CONFIG=m +CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m +# CONFIG_SND_INTEL_BYT_PREFER_SOF is not set +CONFIG_SND_SPI=y +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set +CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_USB_HIFACE=m +CONFIG_SND_BCD2000=m +CONFIG_SND_USB_LINE6=m +CONFIG_SND_USB_POD=m +CONFIG_SND_USB_PODHD=m +CONFIG_SND_USB_TONEPORT=m +CONFIG_SND_USB_VARIAX=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_DICE=m +CONFIG_SND_OXFW=m +CONFIG_SND_ISIGHT=m +CONFIG_SND_FIREWORKS=m +CONFIG_SND_BEBOB=m +CONFIG_SND_FIREWIRE_DIGI00X=m +CONFIG_SND_FIREWIRE_TASCAM=m +CONFIG_SND_FIREWIRE_MOTU=m +CONFIG_SND_FIREFACE=m +CONFIG_SND_PCMCIA=y +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_SOC=y +CONFIG_SND_SOC_AC97_BUS=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +CONFIG_SND_SOC_COMPRESS=y +CONFIG_SND_SOC_TOPOLOGY=y +CONFIG_SND_SOC_ACPI=m +CONFIG_SND_SOC_ADI=m +CONFIG_SND_SOC_ADI_AXI_I2S=m +CONFIG_SND_SOC_ADI_AXI_SPDIF=m +CONFIG_SND_SOC_AMD_ACP=m +CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m +CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m +CONFIG_SND_SOC_AMD_ST_ES8336_MACH=m +CONFIG_SND_SOC_AMD_ACP3x=m +CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m +CONFIG_SND_SOC_AMD_RENOIR=m +CONFIG_SND_SOC_AMD_RENOIR_MACH=m +CONFIG_SND_SOC_AMD_ACP5x=m +CONFIG_SND_SOC_AMD_VANGOGH_MACH=m +CONFIG_SND_SOC_AMD_ACP6x=m +CONFIG_SND_SOC_AMD_YC_MACH=m +CONFIG_SND_AMD_ACP_CONFIG=m +CONFIG_SND_SOC_AMD_ACP_COMMON=m +CONFIG_SND_SOC_AMD_ACP_PDM=m +CONFIG_SND_SOC_AMD_ACP_I2S=m +CONFIG_SND_SOC_AMD_ACP_PCM=m +CONFIG_SND_SOC_AMD_ACP_PCI=m +CONFIG_SND_AMD_ASOC_RENOIR=m +CONFIG_SND_AMD_ASOC_REMBRANDT=m +CONFIG_SND_SOC_AMD_MACH_COMMON=m +CONFIG_SND_SOC_AMD_LEGACY_MACH=m +CONFIG_SND_SOC_AMD_SOF_MACH=m +CONFIG_SND_SOC_AMD_RPL_ACP6x=m +CONFIG_SND_SOC_AMD_PS=m +CONFIG_SND_SOC_AMD_PS_MACH=m +CONFIG_SND_ATMEL_SOC=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set +CONFIG_SND_DESIGNWARE_I2S=m +CONFIG_SND_DESIGNWARE_PCM=y + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_AUDMIX is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_FSL_MICFIL is not set +CONFIG_SND_SOC_FSL_XCVR=m +CONFIG_SND_SOC_FSL_RPMSG=m +# CONFIG_SND_SOC_IMX_AUDMUX is not set +# end of SoC Audio for Freescale CPUs + +# CONFIG_SND_SOC_CHV3_I2S is not set +CONFIG_SND_I2S_HI6210_I2S=m +CONFIG_SND_SOC_IMG=y +CONFIG_SND_SOC_IMG_I2S_IN=m +CONFIG_SND_SOC_IMG_I2S_OUT=m +CONFIG_SND_SOC_IMG_PARALLEL_OUT=m +CONFIG_SND_SOC_IMG_SPDIF_IN=m +CONFIG_SND_SOC_IMG_SPDIF_OUT=m +CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m +CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y +CONFIG_SND_SOC_INTEL_SST=m +CONFIG_SND_SOC_INTEL_CATPT=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m +CONFIG_SND_SOC_INTEL_SKYLAKE=m +CONFIG_SND_SOC_INTEL_SKL=m +CONFIG_SND_SOC_INTEL_APL=m +CONFIG_SND_SOC_INTEL_KBL=m +CONFIG_SND_SOC_INTEL_GLK=m +CONFIG_SND_SOC_INTEL_CNL=m +CONFIG_SND_SOC_INTEL_CFL=m +CONFIG_SND_SOC_INTEL_CML_H=m +CONFIG_SND_SOC_INTEL_CML_LP=m +CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m +CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m +CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y +CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m +CONFIG_SND_SOC_ACPI_INTEL_MATCH=m +CONFIG_SND_SOC_INTEL_AVS=m + +# +# Intel AVS Machine drivers +# + +# +# Available DSP configurations +# +CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m +CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m +CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m +CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m +CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927=m +CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m +CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m +CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m +CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682=m +CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567=m +# end of Intel AVS Machine drivers + +CONFIG_SND_SOC_INTEL_MACH=y +CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y +CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m +CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m +CONFIG_SND_SOC_INTEL_SOF_REALTEK_COMMON=m +CONFIG_SND_SOC_INTEL_SOF_CIRRUS_COMMON=m +CONFIG_SND_SOC_INTEL_HASWELL_MACH=m +CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m +CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m +CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m +CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m +CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m +CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m +CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m +CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m +CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m +CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m +CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m +CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m +CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m +CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m +CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m +CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m +CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m +CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m +CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH=m +CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m +CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m +CONFIG_SND_SOC_INTEL_SOF_SSP_AMP_MACH=m +CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m +CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m +CONFIG_SND_SOC_MTK_BTCVSD=m +CONFIG_SND_SOC_SOF_TOPLEVEL=y +CONFIG_SND_SOC_SOF_PCI_DEV=m +CONFIG_SND_SOC_SOF_PCI=m +CONFIG_SND_SOC_SOF_ACPI=m +CONFIG_SND_SOC_SOF_ACPI_DEV=m +CONFIG_SND_SOC_SOF_DEBUG_PROBES=m +CONFIG_SND_SOC_SOF_CLIENT=m +# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set +CONFIG_SND_SOC_SOF=m +CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y +CONFIG_SND_SOC_SOF_IPC3=y +CONFIG_SND_SOC_SOF_INTEL_IPC4=y +CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m +CONFIG_SND_SOC_SOF_AMD_COMMON=m +CONFIG_SND_SOC_SOF_AMD_RENOIR=m +CONFIG_SND_SOC_SOF_AMD_REMBRANDT=m +CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y +CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m +CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m +CONFIG_SND_SOC_SOF_INTEL_COMMON=m +CONFIG_SND_SOC_SOF_BAYTRAIL=m +# CONFIG_SND_SOC_SOF_BROADWELL is not set +CONFIG_SND_SOC_SOF_MERRIFIELD=m +# CONFIG_SND_SOC_SOF_SKYLAKE is not set +# CONFIG_SND_SOC_SOF_KABYLAKE is not set +CONFIG_SND_SOC_SOF_INTEL_APL=m +CONFIG_SND_SOC_SOF_APOLLOLAKE=m +CONFIG_SND_SOC_SOF_GEMINILAKE=m +CONFIG_SND_SOC_SOF_INTEL_CNL=m +CONFIG_SND_SOC_SOF_CANNONLAKE=m +CONFIG_SND_SOC_SOF_COFFEELAKE=m +CONFIG_SND_SOC_SOF_COMETLAKE=m +CONFIG_SND_SOC_SOF_INTEL_ICL=m +CONFIG_SND_SOC_SOF_ICELAKE=m +CONFIG_SND_SOC_SOF_JASPERLAKE=m +CONFIG_SND_SOC_SOF_INTEL_TGL=m +CONFIG_SND_SOC_SOF_TIGERLAKE=m +CONFIG_SND_SOC_SOF_ELKHARTLAKE=m +CONFIG_SND_SOC_SOF_ALDERLAKE=m +CONFIG_SND_SOC_SOF_INTEL_MTL=m +CONFIG_SND_SOC_SOF_METEORLAKE=m +CONFIG_SND_SOC_SOF_HDA_COMMON=m +CONFIG_SND_SOC_SOF_HDA_MLINK=m +CONFIG_SND_SOC_SOF_HDA_LINK=y +CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y +CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m +CONFIG_SND_SOC_SOF_HDA=m +CONFIG_SND_SOC_SOF_HDA_PROBES=m +CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m +CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m +CONFIG_SND_SOC_SOF_XTENSA=m + +# +# STMicroelectronics STM32 SOC audio support +# +# end of STMicroelectronics STM32 SOC audio support + +CONFIG_SND_SOC_XILINX_I2S=m +CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m +CONFIG_SND_SOC_XILINX_SPDIF=m +CONFIG_SND_SOC_XTFPGA_I2S=m +CONFIG_SND_SOC_I2C_AND_SPI=y + +# +# CODEC drivers +# +CONFIG_SND_SOC_ARIZONA=m +CONFIG_SND_SOC_WM_ADSP=m +CONFIG_SND_SOC_AC97_CODEC=m +CONFIG_SND_SOC_ADAU_UTILS=m +CONFIG_SND_SOC_ADAU1372=m +CONFIG_SND_SOC_ADAU1372_I2C=m +CONFIG_SND_SOC_ADAU1372_SPI=m +CONFIG_SND_SOC_ADAU1701=m +CONFIG_SND_SOC_ADAU17X1=m +CONFIG_SND_SOC_ADAU1761=m +CONFIG_SND_SOC_ADAU1761_I2C=m +CONFIG_SND_SOC_ADAU1761_SPI=m +CONFIG_SND_SOC_ADAU7002=m +CONFIG_SND_SOC_ADAU7118=m +CONFIG_SND_SOC_ADAU7118_HW=m +CONFIG_SND_SOC_ADAU7118_I2C=m +CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4118=m +CONFIG_SND_SOC_AK4375=m +CONFIG_SND_SOC_AK4458=m +CONFIG_SND_SOC_AK4554=m +CONFIG_SND_SOC_AK4613=m +CONFIG_SND_SOC_AK4642=m +CONFIG_SND_SOC_AK5386=m +CONFIG_SND_SOC_AK5558=m +CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_AW8738=m +CONFIG_SND_SOC_AW88395_LIB=m +CONFIG_SND_SOC_AW88395=m +CONFIG_SND_SOC_BD28623=m +# CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CHV3_CODEC is not set +CONFIG_SND_SOC_CROS_EC_CODEC=m +CONFIG_SND_SOC_CS35L32=m +CONFIG_SND_SOC_CS35L33=m +CONFIG_SND_SOC_CS35L34=m +CONFIG_SND_SOC_CS35L35=m +CONFIG_SND_SOC_CS35L36=m +CONFIG_SND_SOC_CS35L41_LIB=m +CONFIG_SND_SOC_CS35L41=m +CONFIG_SND_SOC_CS35L41_SPI=m +CONFIG_SND_SOC_CS35L41_I2C=m +CONFIG_SND_SOC_CS35L45=m +CONFIG_SND_SOC_CS35L45_SPI=m +CONFIG_SND_SOC_CS35L45_I2C=m +# CONFIG_SND_SOC_CS35L56_I2C is not set +# CONFIG_SND_SOC_CS35L56_SPI is not set +# CONFIG_SND_SOC_CS35L56_SDW is not set +CONFIG_SND_SOC_CS42L42_CORE=m +CONFIG_SND_SOC_CS42L42=m +CONFIG_SND_SOC_CS42L42_SDW=m +CONFIG_SND_SOC_CS42L51=m +CONFIG_SND_SOC_CS42L51_I2C=m +CONFIG_SND_SOC_CS42L52=m +CONFIG_SND_SOC_CS42L56=m +CONFIG_SND_SOC_CS42L73=m +CONFIG_SND_SOC_CS42L83=m +CONFIG_SND_SOC_CS4234=m +CONFIG_SND_SOC_CS4265=m +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_CS4271=m +CONFIG_SND_SOC_CS4271_I2C=m +CONFIG_SND_SOC_CS4271_SPI=m +CONFIG_SND_SOC_CS42XX8=m +CONFIG_SND_SOC_CS42XX8_I2C=m +CONFIG_SND_SOC_CS43130=m +CONFIG_SND_SOC_CS4341=m +CONFIG_SND_SOC_CS4349=m +CONFIG_SND_SOC_CS53L30=m +CONFIG_SND_SOC_CX2072X=m +CONFIG_SND_SOC_DA7213=m +CONFIG_SND_SOC_DA7219=m +CONFIG_SND_SOC_DMIC=m +CONFIG_SND_SOC_HDMI_CODEC=m +CONFIG_SND_SOC_ES7134=m +CONFIG_SND_SOC_ES7241=m +CONFIG_SND_SOC_ES8316=m +CONFIG_SND_SOC_ES8326=m +CONFIG_SND_SOC_ES8328=m +CONFIG_SND_SOC_ES8328_I2C=m +CONFIG_SND_SOC_ES8328_SPI=m +CONFIG_SND_SOC_GTM601=m +CONFIG_SND_SOC_HDAC_HDMI=m +CONFIG_SND_SOC_HDAC_HDA=m +CONFIG_SND_SOC_HDA=m +CONFIG_SND_SOC_ICS43432=m +CONFIG_SND_SOC_IDT821034=m +CONFIG_SND_SOC_INNO_RK3036=m +CONFIG_SND_SOC_MAX98088=m +CONFIG_SND_SOC_MAX98090=m +CONFIG_SND_SOC_MAX98357A=m +CONFIG_SND_SOC_MAX98504=m +CONFIG_SND_SOC_MAX9867=m +CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MAX98520=m +CONFIG_SND_SOC_MAX98363=m +CONFIG_SND_SOC_MAX98373=m +CONFIG_SND_SOC_MAX98373_I2C=m +CONFIG_SND_SOC_MAX98373_SDW=m +# CONFIG_SND_SOC_MAX98388 is not set +CONFIG_SND_SOC_MAX98390=m +CONFIG_SND_SOC_MAX98396=m +CONFIG_SND_SOC_MAX9860=m +# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set +CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m +CONFIG_SND_SOC_PCM1681=m +CONFIG_SND_SOC_PCM1789=m +CONFIG_SND_SOC_PCM1789_I2C=m +CONFIG_SND_SOC_PCM179X=m +CONFIG_SND_SOC_PCM179X_I2C=m +CONFIG_SND_SOC_PCM179X_SPI=m +CONFIG_SND_SOC_PCM186X=m +CONFIG_SND_SOC_PCM186X_I2C=m +CONFIG_SND_SOC_PCM186X_SPI=m +CONFIG_SND_SOC_PCM3060=m +CONFIG_SND_SOC_PCM3060_I2C=m +CONFIG_SND_SOC_PCM3060_SPI=m +CONFIG_SND_SOC_PCM3168A=m +CONFIG_SND_SOC_PCM3168A_I2C=m +CONFIG_SND_SOC_PCM3168A_SPI=m +CONFIG_SND_SOC_PCM5102A=m +CONFIG_SND_SOC_PCM512x=m +CONFIG_SND_SOC_PCM512x_I2C=m +CONFIG_SND_SOC_PCM512x_SPI=m +CONFIG_SND_SOC_PEB2466=m +CONFIG_SND_SOC_RK3328=m +CONFIG_SND_SOC_RL6231=m +CONFIG_SND_SOC_RL6347A=m +CONFIG_SND_SOC_RT274=m +CONFIG_SND_SOC_RT286=m +CONFIG_SND_SOC_RT298=m +CONFIG_SND_SOC_RT1011=m +CONFIG_SND_SOC_RT1015=m +CONFIG_SND_SOC_RT1015P=m +CONFIG_SND_SOC_RT1019=m +CONFIG_SND_SOC_RT1308=m +CONFIG_SND_SOC_RT1308_SDW=m +CONFIG_SND_SOC_RT1316_SDW=m +CONFIG_SND_SOC_RT1318_SDW=m +CONFIG_SND_SOC_RT5514=m +CONFIG_SND_SOC_RT5514_SPI=m +CONFIG_SND_SOC_RT5616=m +CONFIG_SND_SOC_RT5631=m +CONFIG_SND_SOC_RT5640=m +CONFIG_SND_SOC_RT5645=m +CONFIG_SND_SOC_RT5651=m +CONFIG_SND_SOC_RT5659=m +CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5663=m +CONFIG_SND_SOC_RT5670=m +CONFIG_SND_SOC_RT5677=m +CONFIG_SND_SOC_RT5677_SPI=m +CONFIG_SND_SOC_RT5682=m +CONFIG_SND_SOC_RT5682_I2C=m +CONFIG_SND_SOC_RT5682_SDW=m +CONFIG_SND_SOC_RT5682S=m +CONFIG_SND_SOC_RT700=m +CONFIG_SND_SOC_RT700_SDW=m +CONFIG_SND_SOC_RT711=m +CONFIG_SND_SOC_RT711_SDW=m +CONFIG_SND_SOC_RT711_SDCA_SDW=m +CONFIG_SND_SOC_RT712_SDCA_SDW=m +CONFIG_SND_SOC_RT712_SDCA_DMIC_SDW=m +# CONFIG_SND_SOC_RT722_SDCA_SDW is not set +CONFIG_SND_SOC_RT715=m +CONFIG_SND_SOC_RT715_SDW=m +CONFIG_SND_SOC_RT715_SDCA_SDW=m +CONFIG_SND_SOC_RT9120=m +# CONFIG_SND_SOC_SDW_MOCKUP is not set +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_SI476X=m +CONFIG_SND_SOC_SIGMADSP=m +CONFIG_SND_SOC_SIGMADSP_I2C=m +CONFIG_SND_SOC_SIGMADSP_REGMAP=m +CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m +CONFIG_SND_SOC_SIMPLE_MUX=m +CONFIG_SND_SOC_SMA1303=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SND_SOC_SRC4XXX_I2C=m +CONFIG_SND_SOC_SRC4XXX=m +CONFIG_SND_SOC_SSM2305=m +CONFIG_SND_SOC_SSM2518=m +CONFIG_SND_SOC_SSM2602=m +CONFIG_SND_SOC_SSM2602_SPI=m +CONFIG_SND_SOC_SSM2602_I2C=m +CONFIG_SND_SOC_SSM4567=m +CONFIG_SND_SOC_STA32X=m +CONFIG_SND_SOC_STA350=m +CONFIG_SND_SOC_STI_SAS=m +CONFIG_SND_SOC_TAS2552=m +CONFIG_SND_SOC_TAS2562=m +CONFIG_SND_SOC_TAS2764=m +CONFIG_SND_SOC_TAS2770=m +CONFIG_SND_SOC_TAS2780=m +# CONFIG_SND_SOC_TAS2781_I2C is not set +CONFIG_SND_SOC_TAS5086=m +CONFIG_SND_SOC_TAS571X=m +CONFIG_SND_SOC_TAS5720=m +CONFIG_SND_SOC_TAS5805M=m +CONFIG_SND_SOC_TAS6424=m +CONFIG_SND_SOC_TDA7419=m +CONFIG_SND_SOC_TFA9879=m +CONFIG_SND_SOC_TFA989X=m +CONFIG_SND_SOC_TLV320ADC3XXX=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC23_I2C=m +CONFIG_SND_SOC_TLV320AIC23_SPI=m +CONFIG_SND_SOC_TLV320AIC31XX=m +CONFIG_SND_SOC_TLV320AIC32X4=m +CONFIG_SND_SOC_TLV320AIC32X4_I2C=m +CONFIG_SND_SOC_TLV320AIC32X4_SPI=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TLV320AIC3X_I2C=m +CONFIG_SND_SOC_TLV320AIC3X_SPI=m +CONFIG_SND_SOC_TLV320ADCX140=m +CONFIG_SND_SOC_TS3A227E=m +CONFIG_SND_SOC_TSCS42XX=m +CONFIG_SND_SOC_TSCS454=m +CONFIG_SND_SOC_UDA1334=m +CONFIG_SND_SOC_WCD9335=m +CONFIG_SND_SOC_WCD_MBHC=m +CONFIG_SND_SOC_WCD934X=m +CONFIG_SND_SOC_WCD938X=m +CONFIG_SND_SOC_WCD938X_SDW=m +CONFIG_SND_SOC_WM5102=m +CONFIG_SND_SOC_WM8510=m +CONFIG_SND_SOC_WM8523=m +CONFIG_SND_SOC_WM8524=m +CONFIG_SND_SOC_WM8580=m +CONFIG_SND_SOC_WM8711=m +CONFIG_SND_SOC_WM8728=m +CONFIG_SND_SOC_WM8731=m +CONFIG_SND_SOC_WM8731_I2C=m +CONFIG_SND_SOC_WM8731_SPI=m +CONFIG_SND_SOC_WM8737=m +CONFIG_SND_SOC_WM8741=m +CONFIG_SND_SOC_WM8750=m +CONFIG_SND_SOC_WM8753=m +CONFIG_SND_SOC_WM8770=m +CONFIG_SND_SOC_WM8776=m +CONFIG_SND_SOC_WM8782=m +CONFIG_SND_SOC_WM8804=m +CONFIG_SND_SOC_WM8804_I2C=m +CONFIG_SND_SOC_WM8804_SPI=m +CONFIG_SND_SOC_WM8903=m +CONFIG_SND_SOC_WM8904=m +CONFIG_SND_SOC_WM8940=m +CONFIG_SND_SOC_WM8960=m +CONFIG_SND_SOC_WM8961=m +CONFIG_SND_SOC_WM8962=m +CONFIG_SND_SOC_WM8974=m +CONFIG_SND_SOC_WM8978=m +CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_WSA881X=m +CONFIG_SND_SOC_WSA883X=m +# CONFIG_SND_SOC_WSA884X is not set +CONFIG_SND_SOC_ZL38060=m +CONFIG_SND_SOC_MAX9759=m +CONFIG_SND_SOC_MT6351=m +CONFIG_SND_SOC_MT6358=m +CONFIG_SND_SOC_MT6660=m +CONFIG_SND_SOC_NAU8315=m +CONFIG_SND_SOC_NAU8540=m +CONFIG_SND_SOC_NAU8810=m +CONFIG_SND_SOC_NAU8821=m +CONFIG_SND_SOC_NAU8822=m +CONFIG_SND_SOC_NAU8824=m +CONFIG_SND_SOC_NAU8825=m +CONFIG_SND_SOC_TPA6130A2=m +CONFIG_SND_SOC_LPASS_MACRO_COMMON=m +CONFIG_SND_SOC_LPASS_WSA_MACRO=m +CONFIG_SND_SOC_LPASS_VA_MACRO=m +CONFIG_SND_SOC_LPASS_RX_MACRO=m +CONFIG_SND_SOC_LPASS_TX_MACRO=m +# end of CODEC drivers + +CONFIG_SND_SIMPLE_CARD_UTILS=m +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_X86=y +CONFIG_HDMI_LPE_AUDIO=m +CONFIG_SND_SYNTH_EMUX=m +CONFIG_SND_VIRTIO=m +CONFIG_AC97_BUS=y +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=m +CONFIG_HID_ACCUTOUCH=m +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=m +CONFIG_HID_APPLEIR=m +CONFIG_HID_ASUS=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BELKIN=m +CONFIG_HID_BETOP_FF=m +CONFIG_HID_BIGBEN_FF=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CORSAIR=m +CONFIG_HID_COUGAR=m +CONFIG_HID_MACALLY=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CMEDIA=m +CONFIG_HID_CP2112=m +CONFIG_HID_CREATIVE_SB0540=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_DRAGONRISE_FF=y +CONFIG_HID_EMS_FF=m +CONFIG_HID_ELAN=m +CONFIG_HID_ELECOM=m +CONFIG_HID_ELO=m +CONFIG_HID_EVISION=m +CONFIG_HID_EZKEY=m +CONFIG_HID_FT260=m +CONFIG_HID_GEMBIRD=m +CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m +CONFIG_HID_HOLTEK=m +CONFIG_HOLTEK_FF=y +CONFIG_HID_VIVALDI_COMMON=m +CONFIG_HID_GOOGLE_HAMMER=m +CONFIG_HID_VIVALDI=m +CONFIG_HID_GT683R=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m +CONFIG_HID_VIEWSONIC=m +CONFIG_HID_VRC2=m +CONFIG_HID_XIAOMI=m +CONFIG_HID_GYRATION=m +CONFIG_HID_ICADE=m +CONFIG_HID_ITE=m +CONFIG_HID_JABRA=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LED=m +CONFIG_HID_LENOVO=m +CONFIG_HID_LETSKETCH=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +CONFIG_HID_LOGITECH_HIDPP=m +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIWHEELS_FF=y +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MALTRON=m +CONFIG_HID_MAYFLASH=m +CONFIG_HID_MEGAWORLD_FF=m +CONFIG_HID_REDRAGON=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NINTENDO=m +CONFIG_NINTENDO_FF=y +CONFIG_HID_NTI=m +CONFIG_HID_NTRIG=m +# CONFIG_HID_NVIDIA_SHIELD is not set +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PENMOUNT=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD_CIR=y +CONFIG_HID_PLANTRONICS=m +CONFIG_HID_PLAYSTATION=m +CONFIG_PLAYSTATION_FF=y +CONFIG_HID_PXRC=m +CONFIG_HID_RAZER=m +CONFIG_HID_PRIMAX=m +CONFIG_HID_RETRODE=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SEMITEK=m +CONFIG_HID_SIGMAMICRO=m +CONFIG_HID_SONY=m +CONFIG_SONY_FF=y +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEAM=m +CONFIG_STEAM_FF=y +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_RMI=m +CONFIG_HID_GREENASIA=m +CONFIG_GREENASIA_FF=y +CONFIG_HID_HYPERV_MOUSE=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TOPRE=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_THRUSTMASTER_FF=y +CONFIG_HID_UDRAW_PS3=m +CONFIG_HID_U2FZERO=m +CONFIG_HID_WACOM=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_XINMO=m +CONFIG_HID_ZEROPLUS=m +CONFIG_ZEROPLUS_FF=y +CONFIG_HID_ZYDACRON=m +CONFIG_HID_SENSOR_HUB=m +CONFIG_HID_SENSOR_CUSTOM_SENSOR=m +CONFIG_HID_ALPS=m +CONFIG_HID_MCP2221=m +# end of Special HID drivers + +# +# HID-BPF support +# +CONFIG_HID_BPF=y +# end of HID-BPF support + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y +# end of USB HID support + +CONFIG_I2C_HID=y +CONFIG_I2C_HID_ACPI=m +# CONFIG_I2C_HID_OF is not set +CONFIG_I2C_HID_CORE=m + +# +# Intel ISH HID support +# +CONFIG_INTEL_ISH_HID=m +CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m +# end of Intel ISH HID support + +# +# AMD SFH HID Support +# +CONFIG_AMD_SFH_HID=m +# end of AMD SFH HID Support + +# +# Surface System Aggregator Module HID support +# +CONFIG_SURFACE_HID=m +CONFIG_SURFACE_KBD=m +# end of Surface System Aggregator Module HID support + +CONFIG_SURFACE_HID_CORE=m +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_LED_TRIG=y +CONFIG_USB_ULPI_BUS=m +CONFIG_USB_CONN_GPIO=m +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +CONFIG_USB_PCI=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_FEW_INIT_RETRIES is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_PRODUCTLIST is not set +# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set +CONFIG_USB_LEDS_TRIGGER_USBPORT=m +CONFIG_USB_AUTOSUSPEND_DELAY=2 +CONFIG_USB_MON=m + +# +# USB Host Controller Drivers +# +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set +CONFIG_USB_XHCI_PCI=y +CONFIG_USB_XHCI_PCI_RENESAS=y +CONFIG_USB_XHCI_PLATFORM=m +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_FSL=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_MAX3421_HCD=m +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y +# CONFIG_USB_OHCI_HCD_SSB is not set +CONFIG_USB_OHCI_HCD_PLATFORM=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_HCD_BCMA=m +CONFIG_USB_HCD_SSB=m +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=y + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_VHCI_HC_PORTS=8 +CONFIG_USBIP_VHCI_NR_HCS=1 +CONFIG_USBIP_HOST=m +CONFIG_USBIP_VUDC=m +# CONFIG_USBIP_DEBUG is not set + +# +# USB dual-mode controller drivers +# +CONFIG_USB_CDNS_SUPPORT=m +CONFIG_USB_CDNS_HOST=y +CONFIG_USB_CDNS3=m +CONFIG_USB_CDNS3_GADGET=y +CONFIG_USB_CDNS3_HOST=y +CONFIG_USB_CDNS3_PCI_WRAP=m +CONFIG_USB_CDNSP_PCI=m +CONFIG_USB_CDNSP_GADGET=y +CONFIG_USB_CDNSP_HOST=y +CONFIG_USB_MUSB_HDRC=m +# CONFIG_USB_MUSB_HOST is not set +# CONFIG_USB_MUSB_GADGET is not set +CONFIG_USB_MUSB_DUAL_ROLE=y + +# +# Platform Glue Layer +# + +# +# MUSB DMA mode +# +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_ULPI=y +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y + +# +# Platform Glue Driver Support +# +CONFIG_USB_DWC3_PCI=m +CONFIG_USB_DWC3_HAPS=m +CONFIG_USB_DWC2=m +# CONFIG_USB_DWC2_HOST is not set + +# +# Gadget/Dual-role mode requires USB Gadget support to be enabled +# +# CONFIG_USB_DWC2_PERIPHERAL is not set +CONFIG_USB_DWC2_DUAL_ROLE=y +CONFIG_USB_DWC2_PCI=m +# CONFIG_USB_DWC2_DEBUG is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CHIPIDEA_MSM=m +CONFIG_USB_CHIPIDEA_GENERIC=m +CONFIG_USB_ISP1760=m +CONFIG_USB_ISP1760_HCD=y +CONFIG_USB_ISP1761_UDC=y +# CONFIG_USB_ISP1760_HOST_ROLE is not set +# CONFIG_USB_ISP1760_GADGET_ROLE is not set +CONFIG_USB_ISP1760_DUAL_ROLE=y + +# +# USB port drivers +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_SIMPLE=m +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m +CONFIG_USB_SERIAL_F8153X=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MXUPORT=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_UPD78F0730=m +CONFIG_USB_SERIAL_XR=m +CONFIG_USB_SERIAL_DEBUG=m + +# +# USB Miscellaneous drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_APPLE_MFI_FASTCHARGE=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HUB_USB251XB=m +CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_HSIC_USB4604=m +CONFIG_USB_LINK_LAYER_TEST=m +CONFIG_USB_CHAOSKEY=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m + +# +# USB Physical Layer drivers +# +CONFIG_USB_PHY=y +CONFIG_NOP_USB_XCEIV=m +CONFIG_USB_GPIO_VBUS=m +CONFIG_TAHVO_USB=m +# CONFIG_TAHVO_USB_HOST_BY_DEFAULT is not set +CONFIG_USB_ISP1301=m +# end of USB Physical Layer drivers + +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +CONFIG_U_SERIAL_CONSOLE=y + +# +# USB Peripheral Controller +# +CONFIG_USB_GR_UDC=m +CONFIG_USB_R8A66597=m +CONFIG_USB_PXA27X=m +CONFIG_USB_MV_UDC=m +CONFIG_USB_MV_U3D=m +CONFIG_USB_SNP_CORE=m +CONFIG_USB_M66592=m +CONFIG_USB_BDC_UDC=m +CONFIG_USB_AMD5536UDC=m +CONFIG_USB_NET2272=m +# CONFIG_USB_NET2272_DMA is not set +CONFIG_USB_NET2280=m +CONFIG_USB_GOKU=m +CONFIG_USB_EG20T=m +CONFIG_USB_MAX3420_UDC=m +# CONFIG_USB_CDNS2_UDC is not set +CONFIG_USB_DUMMY_HCD=m +# end of USB Peripheral Controller + +CONFIG_USB_LIBCOMPOSITE=m +CONFIG_USB_F_ACM=m +CONFIG_USB_F_SS_LB=m +CONFIG_USB_U_SERIAL=m +CONFIG_USB_U_ETHER=m +CONFIG_USB_U_AUDIO=m +CONFIG_USB_F_SERIAL=m +CONFIG_USB_F_OBEX=m +CONFIG_USB_F_NCM=m +CONFIG_USB_F_ECM=m +CONFIG_USB_F_PHONET=m +CONFIG_USB_F_EEM=m +CONFIG_USB_F_SUBSET=m +CONFIG_USB_F_RNDIS=m +CONFIG_USB_F_MASS_STORAGE=m +CONFIG_USB_F_FS=m +CONFIG_USB_F_UAC1=m +CONFIG_USB_F_UAC1_LEGACY=m +CONFIG_USB_F_UAC2=m +CONFIG_USB_F_UVC=m +CONFIG_USB_F_MIDI=m +CONFIG_USB_F_HID=m +CONFIG_USB_F_PRINTER=m +CONFIG_USB_F_TCM=m +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_PHONET=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_CONFIGFS_F_UVC=y +CONFIG_USB_CONFIGFS_F_PRINTER=y +CONFIG_USB_CONFIGFS_F_TCM=y + +# +# USB Gadget precomposed configurations +# +CONFIG_USB_ZERO=m +CONFIG_USB_AUDIO=m +# CONFIG_GADGET_UAC1 is not set +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_ETH_EEM=y +CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +CONFIG_USB_FUNCTIONFS_RNDIS=y +CONFIG_USB_FUNCTIONFS_GENERIC=y +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_GADGET_TARGET=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_G_NOKIA=m +CONFIG_USB_G_ACM_MS=m +CONFIG_USB_G_MULTI=m +CONFIG_USB_G_MULTI_RNDIS=y +CONFIG_USB_G_MULTI_CDC=y +CONFIG_USB_G_HID=m +CONFIG_USB_G_DBGP=m +# CONFIG_USB_G_DBGP_PRINTK is not set +CONFIG_USB_G_DBGP_SERIAL=y +CONFIG_USB_G_WEBCAM=m +CONFIG_USB_RAW_GADGET=m +# end of USB Gadget precomposed configurations + +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_TCPCI=m +CONFIG_TYPEC_RT1711H=m +CONFIG_TYPEC_MT6360=m +CONFIG_TYPEC_TCPCI_MT6370=m +CONFIG_TYPEC_TCPCI_MAXIM=m +CONFIG_TYPEC_FUSB302=m +CONFIG_TYPEC_WCOVE=m +CONFIG_TYPEC_UCSI=m +CONFIG_UCSI_CCG=m +CONFIG_UCSI_ACPI=m +CONFIG_UCSI_STM32G0=m +CONFIG_TYPEC_TPS6598X=m +CONFIG_TYPEC_ANX7411=m +CONFIG_TYPEC_RT1719=m +CONFIG_TYPEC_HD3SS3220=m +CONFIG_TYPEC_STUSB160X=m +CONFIG_TYPEC_WUSB3801=m + +# +# USB Type-C Multiplexer/DeMultiplexer Switch support +# +CONFIG_TYPEC_MUX_FSA4480=m +CONFIG_TYPEC_MUX_GPIO_SBU=m +CONFIG_TYPEC_MUX_PI3USB30532=m +CONFIG_TYPEC_MUX_INTEL_PMC=m +# CONFIG_TYPEC_MUX_NB7VPQ904M is not set +# end of USB Type-C Multiplexer/DeMultiplexer Switch support + +# +# USB Type-C Alternate Mode drivers +# +CONFIG_TYPEC_DP_ALTMODE=m +CONFIG_TYPEC_NVIDIA_ALTMODE=m +# end of USB Type-C Alternate Mode drivers + +CONFIG_USB_ROLE_SWITCH=m +CONFIG_USB_ROLES_INTEL_XHCI=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_SDIO_UART=m +CONFIG_MMC_TEST=m +CONFIG_MMC_CRYPTO=y + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PCI=y +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_F_SDH30=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_ALCOR=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SPI=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_CB710=m +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +CONFIG_MMC_USDHI6ROL0=m +CONFIG_MMC_REALTEK_PCI=y +CONFIG_MMC_REALTEK_USB=y +CONFIG_MMC_CQHCI=y +CONFIG_MMC_HSQ=y +CONFIG_MMC_TOSHIBA_PCI=y +CONFIG_MMC_MTK=m +CONFIG_MMC_SDHCI_XENON=m +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFS_BSG=y +CONFIG_SCSI_UFS_CRYPTO=y +CONFIG_SCSI_UFS_HPB=y +CONFIG_SCSI_UFS_HWMON=y +CONFIG_SCSI_UFSHCD_PCI=m +# CONFIG_SCSI_UFS_DWC_TC_PCI is not set +CONFIG_SCSI_UFSHCD_PLATFORM=m +CONFIG_SCSI_UFS_CDNS_PLATFORM=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m +CONFIG_MS_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_MEMSTICK_TIFM_MS=m +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m +CONFIG_MEMSTICK_REALTEK_USB=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLASS_FLASH=y +CONFIG_LEDS_CLASS_MULTICOLOR=m +CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y + +# +# LED drivers +# +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_APU=m +# CONFIG_LEDS_AW200XX is not set +# CONFIG_LEDS_CHT_WCOVE is not set +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LM3532=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM3642=m +CONFIG_LEDS_MT6323=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP3952=m +CONFIG_LEDS_LP50XX=m +CONFIG_LEDS_LP8788=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PCA955X_GPIO=y +CONFIG_LEDS_PCA963X=m +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_LEDS_DA903X=m +CONFIG_LEDS_DA9052=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +# CONFIG_LEDS_BD2606MVV is not set +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_MC13783=m +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_TLC591XX=m +CONFIG_LEDS_MAX8997=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_MENF21BMC=m +CONFIG_LEDS_IS31FL319X=m + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +CONFIG_LEDS_BLINKM=m +CONFIG_LEDS_MLXCPLD=m +CONFIG_LEDS_MLXREG=m +CONFIG_LEDS_USER=m +CONFIG_LEDS_NIC78BX=m +CONFIG_LEDS_TI_LMU_COMMON=m +CONFIG_LEDS_LM36274=m +CONFIG_LEDS_TPS6105X=m + +# +# Flash and Torch LED drivers +# +CONFIG_LEDS_AS3645A=m +CONFIG_LEDS_LM3601X=m +# CONFIG_LEDS_MT6370_FLASH is not set +CONFIG_LEDS_RT8515=m +CONFIG_LEDS_SGM3140=m + +# +# RGB LED drivers +# +CONFIG_LEDS_PWM_MULTICOLOR=m +# CONFIG_LEDS_MT6370_RGB is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_MTD=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_ACTIVITY=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_CAMERA=m +CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LEDS_TRIGGER_NETDEV=m +CONFIG_LEDS_TRIGGER_PATTERN=m +CONFIG_LEDS_TRIGGER_AUDIO=m +CONFIG_LEDS_TRIGGER_TTY=m + +# +# Simple LED drivers +# +CONFIG_LEDS_SIEMENS_SIMATIC_IPC=m +CONFIG_LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE=m +CONFIG_LEDS_SIEMENS_SIMATIC_IPC_F7188X=m +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y + +# +# Speakup console speech +# +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_SYNTH_ACNTSA=m +CONFIG_SPEAKUP_SYNTH_APOLLO=m +CONFIG_SPEAKUP_SYNTH_AUDPTR=m +CONFIG_SPEAKUP_SYNTH_BNS=m +CONFIG_SPEAKUP_SYNTH_DECTLK=m +CONFIG_SPEAKUP_SYNTH_DECEXT=m +CONFIG_SPEAKUP_SYNTH_LTLK=m +CONFIG_SPEAKUP_SYNTH_SOFT=m +CONFIG_SPEAKUP_SYNTH_SPKOUT=m +CONFIG_SPEAKUP_SYNTH_TXPRT=m +CONFIG_SPEAKUP_SYNTH_DUMMY=m +# end of Speakup console speech + +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ON_DEMAND_PAGING=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y +CONFIG_INFINIBAND_VIRT_DMA=y +CONFIG_INFINIBAND_BNXT_RE=m +CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_EFA=m +CONFIG_INFINIBAND_ERDMA=m +CONFIG_INFINIBAND_HFI1=m +# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set +# CONFIG_SDMA_VERBOSITY is not set +CONFIG_INFINIBAND_IRDMA=m +CONFIG_MANA_INFINIBAND=m +CONFIG_MLX4_INFINIBAND=m +CONFIG_MLX5_INFINIBAND=m +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_OCRDMA=m +CONFIG_INFINIBAND_QEDR=m +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_QIB_DCA=y +CONFIG_INFINIBAND_USNIC=m +CONFIG_INFINIBAND_VMWARE_PVRDMA=m +CONFIG_INFINIBAND_RDMAVT=m +CONFIG_RDMA_RXE=m +CONFIG_RDMA_SIW=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_SRPT=m +CONFIG_INFINIBAND_ISER=m +CONFIG_INFINIBAND_ISERT=m +CONFIG_INFINIBAND_RTRS=m +CONFIG_INFINIBAND_RTRS_CLIENT=m +CONFIG_INFINIBAND_RTRS_SERVER=m +CONFIG_INFINIBAND_OPA_VNIC=m +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +CONFIG_EDAC=y +CONFIG_EDAC_LEGACY_SYSFS=y +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_GHES=y +CONFIG_EDAC_AMD64=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_IE31200=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I7300=m +CONFIG_EDAC_SBRIDGE=m +CONFIG_EDAC_SKX=m +CONFIG_EDAC_I10NM=m +CONFIG_EDAC_PND2=m +CONFIG_EDAC_IGEN6=m +CONFIG_RTC_LIB=y +CONFIG_RTC_MC146818_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_ABB5ZES3=m +CONFIG_RTC_DRV_ABEOZ9=m +CONFIG_RTC_DRV_ABX80X=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1307_CENTURY=y +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1374_WDT=y +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_LP8788=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_MAX8907=m +CONFIG_RTC_DRV_MAX8925=m +CONFIG_RTC_DRV_MAX8998=m +CONFIG_RTC_DRV_MAX8997=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m +CONFIG_RTC_DRV_PCF85063=m +CONFIG_RTC_DRV_PCF85363=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_PALMAS=m +CONFIG_RTC_DRV_TPS6586X=m +CONFIG_RTC_DRV_TPS65910=m +CONFIG_RTC_DRV_RC5T583=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8010=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3028=m +CONFIG_RTC_DRV_RV3032=m +CONFIG_RTC_DRV_RV8803=m +CONFIG_RTC_DRV_SD3078=m + +# +# SPI RTC drivers +# +CONFIG_RTC_DRV_M41T93=m +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_DS1302=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1343=m +CONFIG_RTC_DRV_DS1347=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_MAX6916=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RX4581=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_MCP795=m +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_DS3232_HWMON=y +CONFIG_RTC_DRV_PCF2127=m +CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_RV3029_HWMON=y +CONFIG_RTC_DRV_RX6110=m + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1685_FAMILY=m +CONFIG_RTC_DRV_DS1685=y +# CONFIG_RTC_DRV_DS1689 is not set +# CONFIG_RTC_DRV_DS17285 is not set +# CONFIG_RTC_DRV_DS17485 is not set +# CONFIG_RTC_DRV_DS17885 is not set +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_DS2404=m +CONFIG_RTC_DRV_DA9052=m +CONFIG_RTC_DRV_DA9055=m +CONFIG_RTC_DRV_DA9063=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_WM831X=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_CROS_EC=m + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_FTRTC010=m +CONFIG_RTC_DRV_PCAP=m +CONFIG_RTC_DRV_MC13XXX=m +CONFIG_RTC_DRV_MT6397=m + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_HID_SENSOR_TIME=m +CONFIG_RTC_DRV_GOLDFISH=m +CONFIG_RTC_DRV_WILCO_EC=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_ACPI=y +CONFIG_ALTERA_MSGDMA=m +CONFIG_INTEL_IDMA64=m +CONFIG_INTEL_IDXD_BUS=m +CONFIG_INTEL_IDXD=m +# CONFIG_INTEL_IDXD_COMPAT is not set +CONFIG_INTEL_IDXD_SVM=y +CONFIG_INTEL_IDXD_PERFMON=y +CONFIG_INTEL_IOATDMA=m +CONFIG_PLX_DMA=m +CONFIG_XILINX_XDMA=m +CONFIG_AMD_PTDMA=m +CONFIG_QCOM_HIDMA_MGMT=m +CONFIG_QCOM_HIDMA=m +CONFIG_DW_DMAC_CORE=y +CONFIG_DW_DMAC=m +CONFIG_DW_DMAC_PCI=y +CONFIG_DW_EDMA=m +CONFIG_DW_EDMA_PCIE=m +CONFIG_HSU_DMA=y +CONFIG_SF_PDMA=m +CONFIG_INTEL_LDMA=y + +# +# DMA Clients +# +CONFIG_ASYNC_TX_DMA=y +# CONFIG_DMATEST is not set +CONFIG_DMA_ENGINE_RAID=y + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +CONFIG_UDMABUF=y +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set +# CONFIG_DMABUF_SELFTESTS is not set +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_SYSFS_STATS=y +CONFIG_DMABUF_HEAPS_SYSTEM=y +CONFIG_DMABUF_HEAPS_CMA=y +# end of DMABUF options + +CONFIG_DCA=m +# CONFIG_AUXDISPLAY is not set +# CONFIG_PANEL is not set +CONFIG_UIO=y +CONFIG_UIO_CIF=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_DMEM_GENIRQ=m +CONFIG_UIO_AEC=m +CONFIG_UIO_SERCOS3=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PRUSS=m +CONFIG_UIO_MF624=m +CONFIG_UIO_HV_GENERIC=m +CONFIG_UIO_DFL=m +CONFIG_VFIO=m +CONFIG_VFIO_CONTAINER=y +CONFIG_VFIO_IOMMU_TYPE1=m +# CONFIG_VFIO_NOIOMMU is not set +CONFIG_VFIO_VIRQFD=y + +# +# VFIO support for PCI devices +# +CONFIG_VFIO_PCI_CORE=m +CONFIG_VFIO_PCI_MMAP=y +CONFIG_VFIO_PCI_INTX=y +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_VGA=y +CONFIG_VFIO_PCI_IGD=y +CONFIG_MLX5_VFIO_PCI=m +# end of VFIO support for PCI devices + +CONFIG_IRQ_BYPASS_MANAGER=m +CONFIG_VIRT_DRIVERS=y +CONFIG_VMGENID=y +CONFIG_VBOXGUEST=m +CONFIG_NITRO_ENCLAVES=m +CONFIG_ACRN_HSM=m +CONFIG_EFI_SECRET=m +CONFIG_SEV_GUEST=m +CONFIG_TDX_GUEST_DRIVER=m +CONFIG_VIRTIO_ANCHOR=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_PCI_LIB=y +CONFIG_VIRTIO_PCI_LIB_LEGACY=y +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTIO_VDPA=m +CONFIG_VIRTIO_PMEM=m +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_MEM=m +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_VIRTIO_DMA_SHARED_BUFFER=m +CONFIG_VDPA=m +CONFIG_VDPA_SIM=m +CONFIG_VDPA_SIM_NET=m +CONFIG_VDPA_SIM_BLOCK=m +CONFIG_VDPA_USER=m +CONFIG_IFCVF=m +CONFIG_MLX5_VDPA=y +CONFIG_MLX5_VDPA_NET=m +# CONFIG_MLX5_VDPA_STEERING_DEBUG is not set +CONFIG_VP_VDPA=m +CONFIG_ALIBABA_ENI_VDPA=m +CONFIG_SNET_VDPA=m +CONFIG_VHOST_IOTLB=m +CONFIG_VHOST_RING=m +CONFIG_VHOST_TASK=y +CONFIG_VHOST=m +CONFIG_VHOST_MENU=y +CONFIG_VHOST_NET=m +CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VSOCK=m +CONFIG_VHOST_VDPA=m +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_HYPERV=m +# CONFIG_HYPERV_VTL_MODE is not set +CONFIG_HYPERV_TIMER=y +CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_BALLOON=m +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set +CONFIG_STAGING=y +CONFIG_PRISM2_USB=m +CONFIG_RTL8192U=m +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m +CONFIG_RTL8192E=m +CONFIG_RTL8723BS=m +CONFIG_R8712U=m +CONFIG_RTS5208=y +CONFIG_VT6655=m +CONFIG_VT6656=m + +# +# IIO staging drivers +# + +# +# Accelerometers +# +CONFIG_ADIS16203=m +CONFIG_ADIS16240=m +# end of Accelerometers + +# +# Analog to digital converters +# +CONFIG_AD7816=m +# end of Analog to digital converters + +# +# Analog digital bi-direction converters +# +CONFIG_ADT7316=m +CONFIG_ADT7316_SPI=m +CONFIG_ADT7316_I2C=m +# end of Analog digital bi-direction converters + +# +# Direct Digital Synthesis +# +CONFIG_AD9832=m +CONFIG_AD9834=m +# end of Direct Digital Synthesis + +# +# Network Analyzer, Impedance Converters +# +CONFIG_AD5933=m +# end of Network Analyzer, Impedance Converters + +# +# Resolver to digital converters +# +CONFIG_AD2S1210=m +# end of Resolver to digital converters +# end of IIO staging drivers + +# CONFIG_FB_SM750 is not set +CONFIG_STAGING_MEDIA=y +# CONFIG_INTEL_ATOMISP is not set +CONFIG_DVB_AV7110_IR=y +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_SP8870=m +CONFIG_VIDEO_IPU3_IMGU=m +# CONFIG_STAGING_MEDIA_DEPRECATED is not set +CONFIG_LTE_GDM724X=m +# CONFIG_FB_TFT is not set +CONFIG_MOST_COMPONENTS=m +CONFIG_MOST_NET=m +CONFIG_MOST_VIDEO=m +CONFIG_MOST_I2C=m +CONFIG_KS7010=m +CONFIG_PI433=m +CONFIG_FIELDBUS_DEV=m +CONFIG_QLGE=m +# CONFIG_VME_BUS is not set +CONFIG_CHROME_PLATFORMS=y +CONFIG_CHROMEOS_ACPI=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_CHROMEOS_PSTORE=m +CONFIG_CHROMEOS_TBMC=m +CONFIG_CROS_EC=m +CONFIG_CROS_EC_I2C=m +CONFIG_CROS_EC_ISHTP=m +CONFIG_CROS_EC_SPI=m +CONFIG_CROS_EC_UART=m +CONFIG_CROS_EC_LPC=m +CONFIG_CROS_EC_PROTO=y +CONFIG_CROS_KBD_LED_BACKLIGHT=m +CONFIG_CROS_EC_CHARDEV=m +CONFIG_CROS_EC_LIGHTBAR=m +CONFIG_CROS_EC_DEBUGFS=m +CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m +CONFIG_CROS_HPS_I2C=m +CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m +CONFIG_CHROMEOS_PRIVACY_SCREEN=m +CONFIG_CROS_TYPEC_SWITCH=m +CONFIG_WILCO_EC=m +CONFIG_WILCO_EC_DEBUGFS=m +CONFIG_WILCO_EC_EVENTS=m +CONFIG_WILCO_EC_TELEMETRY=m +CONFIG_MELLANOX_PLATFORM=y +CONFIG_MLXREG_HOTPLUG=m +CONFIG_MLXREG_IO=m +CONFIG_MLXREG_LC=m +CONFIG_NVSW_SN2201=m +CONFIG_SURFACE_PLATFORMS=y +CONFIG_SURFACE3_WMI=m +CONFIG_SURFACE_3_POWER_OPREGION=m +CONFIG_SURFACE_ACPI_NOTIFY=m +CONFIG_SURFACE_AGGREGATOR_CDEV=m +CONFIG_SURFACE_AGGREGATOR_HUB=m +CONFIG_SURFACE_AGGREGATOR_REGISTRY=m +CONFIG_SURFACE_AGGREGATOR_TABLET_SWITCH=m +CONFIG_SURFACE_DTX=m +CONFIG_SURFACE_GPE=m +CONFIG_SURFACE_HOTPLUG=m +CONFIG_SURFACE_PLATFORM_PROFILE=m +CONFIG_SURFACE_PRO3_BUTTON=m +CONFIG_SURFACE_AGGREGATOR=m +CONFIG_SURFACE_AGGREGATOR_BUS=y +# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACPI_WMI=y +CONFIG_WMI_BMOF=y +CONFIG_HUAWEI_WMI=m +CONFIG_MXM_WMI=y +CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m +CONFIG_XIAOMI_WMI=m +CONFIG_GIGABYTE_WMI=m +# CONFIG_YOGABOOK is not set +CONFIG_ACERHDF=m +CONFIG_ACER_WIRELESS=m +CONFIG_ACER_WMI=m +CONFIG_AMD_PMF=y +# CONFIG_AMD_PMF_DEBUG is not set +CONFIG_AMD_PMC=y +CONFIG_AMD_HSMP=y +CONFIG_ADV_SWBUTTON=m +CONFIG_APPLE_GMUX=m +CONFIG_ASUS_LAPTOP=m +CONFIG_ASUS_WIRELESS=m +CONFIG_ASUS_WMI=m +CONFIG_ASUS_NB_WMI=m +CONFIG_ASUS_TF103C_DOCK=m +CONFIG_MERAKI_MX100=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_EEEPC_WMI=m +CONFIG_X86_PLATFORM_DRIVERS_DELL=y +CONFIG_ALIENWARE_WMI=m +CONFIG_DCDBAS=m +CONFIG_DELL_LAPTOP=m +# CONFIG_DELL_RBU is not set +CONFIG_DELL_RBTN=m +CONFIG_DELL_SMBIOS=m +CONFIG_DELL_SMBIOS_WMI=y +CONFIG_DELL_SMBIOS_SMM=y +CONFIG_DELL_SMO8800=m +CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_PRIVACY=y +CONFIG_DELL_WMI_AIO=m +CONFIG_DELL_WMI_DESCRIPTOR=m +CONFIG_DELL_WMI_DDV=m +CONFIG_DELL_WMI_LED=m +CONFIG_DELL_WMI_SYSMAN=m +CONFIG_AMILO_RFKILL=m +CONFIG_FUJITSU_LAPTOP=m +CONFIG_FUJITSU_TABLET=m +CONFIG_GPD_POCKET_FAN=m +CONFIG_X86_PLATFORM_DRIVERS_HP=y +CONFIG_HP_ACCEL=m +CONFIG_HP_WMI=m +CONFIG_WIRELESS_HOTKEY=m +CONFIG_IBM_RTL=m +CONFIG_IDEAPAD_LAPTOP=m +# CONFIG_LENOVO_YMC is not set +CONFIG_SENSORS_HDAPS=m +CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_THINKPAD_LMI=m +CONFIG_INTEL_ATOMISP2_PDX86=y +CONFIG_INTEL_ATOMISP2_LED=m +CONFIG_INTEL_ATOMISP2_PM=y +CONFIG_INTEL_IFS=m +CONFIG_INTEL_SAR_INT1092=m +CONFIG_INTEL_SKL_INT3472=m +CONFIG_INTEL_PMC_CORE=y +CONFIG_INTEL_PMT_CLASS=m +CONFIG_INTEL_PMT_TELEMETRY=m +CONFIG_INTEL_PMT_CRASHLOG=m + +# +# Intel Speed Select Technology interface support +# +CONFIG_INTEL_SPEED_SELECT_TPMI=m +CONFIG_INTEL_SPEED_SELECT_INTERFACE=m +# end of Intel Speed Select Technology interface support + +CONFIG_INTEL_TELEMETRY=m +CONFIG_INTEL_WMI=y +CONFIG_INTEL_WMI_SBL_FW_UPDATE=m +CONFIG_INTEL_WMI_THUNDERBOLT=m + +# +# Intel Uncore Frequency Control +# +CONFIG_INTEL_UNCORE_FREQ_CONTROL_TPMI=m +CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +# end of Intel Uncore Frequency Control + +CONFIG_INTEL_HID_EVENT=m +CONFIG_INTEL_VBTN=m +CONFIG_INTEL_INT0002_VGPIO=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_INTEL_BXTWC_PMIC_TMU=m +# CONFIG_INTEL_BYTCRC_PWRSRC is not set +CONFIG_INTEL_CHTDC_TI_PWRBTN=m +CONFIG_INTEL_CHTWC_INT33FE=m +CONFIG_INTEL_ISHTP_ECLITE=m +CONFIG_INTEL_MRFLD_PWRBTN=m +CONFIG_INTEL_PUNIT_IPC=m +CONFIG_INTEL_RST=m +CONFIG_INTEL_SDSI=m +CONFIG_INTEL_SMARTCONNECT=m +CONFIG_INTEL_TPMI=m +CONFIG_INTEL_TURBO_MAX_3=y +CONFIG_INTEL_VSEC=m +# CONFIG_MSI_EC is not set +CONFIG_MSI_LAPTOP=m +CONFIG_MSI_WMI=m +CONFIG_PCENGINES_APU2=m +CONFIG_BARCO_P50_GPIO=m +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_SAMSUNG_Q10=m +CONFIG_ACPI_TOSHIBA=m +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_TOSHIBA_HAPS=m +CONFIG_TOSHIBA_WMI=m +CONFIG_ACPI_CMPC=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_LG_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_SYSTEM76_ACPI=m +CONFIG_TOPSTAR_LAPTOP=m +CONFIG_SERIAL_MULTI_INSTANTIATE=m +CONFIG_MLX_PLATFORM=m +CONFIG_TOUCHSCREEN_DMI=y +CONFIG_X86_ANDROID_TABLETS=m +CONFIG_FW_ATTR_CLASS=m +CONFIG_INTEL_IPS=m +CONFIG_INTEL_SCU_IPC=y +CONFIG_INTEL_SCU=y +CONFIG_INTEL_SCU_PCI=y +CONFIG_INTEL_SCU_PLATFORM=m +CONFIG_INTEL_SCU_IPC_UTIL=m +CONFIG_SIEMENS_SIMATIC_IPC=m +CONFIG_WINMATE_FM07_KEYS=m +# CONFIG_STEAMDECK is not set +CONFIG_P2SB=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y +CONFIG_COMMON_CLK_WM831X=m +CONFIG_LMK04832=m +CONFIG_COMMON_CLK_MAX9485=m +CONFIG_COMMON_CLK_SI5341=m +CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_SI544=m +CONFIG_COMMON_CLK_CDCE706=m +CONFIG_COMMON_CLK_TPS68470=m +CONFIG_COMMON_CLK_CS2000_CP=m +CONFIG_CLK_TWL6040=m +CONFIG_COMMON_CLK_PALMAS=m +CONFIG_COMMON_CLK_PWM=m +CONFIG_XILINX_VCU=m +CONFIG_HWSPINLOCK=y + +# +# Clock Source drivers +# +CONFIG_CLKEVT_I8253=y +CONFIG_CLKBLD_I8253=y +# end of Clock Source drivers + +CONFIG_MAILBOX=y +CONFIG_PCC=y +CONFIG_ALTERA_MBOX=m +CONFIG_IOMMU_IOVA=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y + +# +# Generic IOMMU Pagetable Support +# +CONFIG_IOMMU_IO_PGTABLE=y +# end of Generic IOMMU Pagetable Support + +# CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y +CONFIG_IOMMU_DMA=y +CONFIG_IOMMU_SVA=y +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_V2=y +CONFIG_DMAR_TABLE=y +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_SVM=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y +CONFIG_INTEL_IOMMU_PERF_EVENTS=y +CONFIG_IOMMUFD=m +CONFIG_IRQ_REMAP=y +CONFIG_HYPERV_IOMMU=y +CONFIG_VIRTIO_IOMMU=m + +# +# Remoteproc drivers +# +CONFIG_REMOTEPROC=y +CONFIG_REMOTEPROC_CDEV=y +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +CONFIG_RPMSG=m +CONFIG_RPMSG_CHAR=m +CONFIG_RPMSG_CTRL=m +CONFIG_RPMSG_NS=m +CONFIG_RPMSG_QCOM_GLINK=m +CONFIG_RPMSG_QCOM_GLINK_RPM=m +CONFIG_RPMSG_VIRTIO=m +# end of Rpmsg drivers + +CONFIG_SOUNDWIRE=m + +# +# SoundWire Devices +# +# CONFIG_SOUNDWIRE_AMD is not set +CONFIG_SOUNDWIRE_CADENCE=m +CONFIG_SOUNDWIRE_INTEL=m +CONFIG_SOUNDWIRE_QCOM=m +CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# fujitsu SoC drivers +# +# end of fujitsu SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Enable LiteX SoC Builder specific drivers +# +# end of Enable LiteX SoC Builder specific drivers + +CONFIG_WPCM450_SOC=m + +# +# Qualcomm SoC drivers +# +CONFIG_QCOM_QMI_HELPERS=m +# end of Qualcomm SoC drivers + +CONFIG_SOC_TI=y + +# +# Xilinx SoC drivers +# +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m +CONFIG_DEVFREQ_GOV_PERFORMANCE=m +CONFIG_DEVFREQ_GOV_POWERSAVE=m +CONFIG_DEVFREQ_GOV_USERSPACE=m +CONFIG_DEVFREQ_GOV_PASSIVE=m + +# +# DEVFREQ Drivers +# +CONFIG_PM_DEVFREQ_EVENT=y +CONFIG_EXTCON=y + +# +# Extcon Device Drivers +# +CONFIG_EXTCON_ADC_JACK=m +CONFIG_EXTCON_AXP288=m +CONFIG_EXTCON_FSA9480=m +CONFIG_EXTCON_GPIO=m +CONFIG_EXTCON_INTEL_INT3496=m +CONFIG_EXTCON_INTEL_CHT_WC=m +CONFIG_EXTCON_INTEL_MRFLD=m +CONFIG_EXTCON_MAX14577=m +CONFIG_EXTCON_MAX3355=m +CONFIG_EXTCON_MAX77693=m +CONFIG_EXTCON_MAX77843=m +CONFIG_EXTCON_MAX8997=m +CONFIG_EXTCON_PALMAS=m +CONFIG_EXTCON_PTN5150=m +CONFIG_EXTCON_RT8973A=m +CONFIG_EXTCON_SM5502=m +CONFIG_EXTCON_USB_GPIO=m +CONFIG_EXTCON_USBC_CROS_EC=m +CONFIG_EXTCON_USBC_TUSB320=m +CONFIG_MEMORY=y +CONFIG_FPGA_DFL_EMIF=m +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=m +CONFIG_IIO_BUFFER_DMA=m +CONFIG_IIO_BUFFER_DMAENGINE=m +CONFIG_IIO_BUFFER_HW_CONSUMER=m +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_TRIGGERED_BUFFER=m +CONFIG_IIO_CONFIGFS=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 +CONFIG_IIO_SW_DEVICE=m +CONFIG_IIO_SW_TRIGGER=m +CONFIG_IIO_TRIGGERED_EVENT=m + +# +# Accelerometers +# +CONFIG_ADIS16201=m +CONFIG_ADIS16209=m +CONFIG_ADXL313=m +CONFIG_ADXL313_I2C=m +CONFIG_ADXL313_SPI=m +CONFIG_ADXL355=m +CONFIG_ADXL355_I2C=m +CONFIG_ADXL355_SPI=m +CONFIG_ADXL367=m +CONFIG_ADXL367_SPI=m +CONFIG_ADXL367_I2C=m +CONFIG_ADXL372=m +CONFIG_ADXL372_SPI=m +CONFIG_ADXL372_I2C=m +CONFIG_BMA220=m +CONFIG_BMA400=m +CONFIG_BMA400_I2C=m +CONFIG_BMA400_SPI=m +CONFIG_BMC150_ACCEL=m +CONFIG_BMC150_ACCEL_I2C=m +CONFIG_BMC150_ACCEL_SPI=m +CONFIG_BMI088_ACCEL=m +CONFIG_BMI088_ACCEL_SPI=m +CONFIG_DA280=m +CONFIG_DA311=m +CONFIG_DMARD06=m +CONFIG_DMARD09=m +CONFIG_DMARD10=m +CONFIG_FXLS8962AF=m +CONFIG_FXLS8962AF_I2C=m +CONFIG_FXLS8962AF_SPI=m +CONFIG_HID_SENSOR_ACCEL_3D=m +CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m +CONFIG_IIO_ST_ACCEL_3AXIS=m +CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m +CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m +CONFIG_IIO_KX022A=m +CONFIG_IIO_KX022A_SPI=m +CONFIG_IIO_KX022A_I2C=m +CONFIG_KXSD9=m +CONFIG_KXSD9_SPI=m +CONFIG_KXSD9_I2C=m +CONFIG_KXCJK1013=m +CONFIG_MC3230=m +CONFIG_MMA7455=m +CONFIG_MMA7455_I2C=m +CONFIG_MMA7455_SPI=m +CONFIG_MMA7660=m +CONFIG_MMA8452=m +CONFIG_MMA9551_CORE=m +CONFIG_MMA9551=m +CONFIG_MMA9553=m +CONFIG_MSA311=m +CONFIG_MXC4005=m +CONFIG_MXC6255=m +CONFIG_SCA3000=m +CONFIG_SCA3300=m +CONFIG_STK8312=m +CONFIG_STK8BA50=m +# end of Accelerometers + +# +# Analog to digital converters +# +CONFIG_AD_SIGMA_DELTA=m +CONFIG_AD4130=m +CONFIG_AD7091R5=m +CONFIG_AD7124=m +CONFIG_AD7192=m +CONFIG_AD7266=m +CONFIG_AD7280=m +CONFIG_AD7291=m +CONFIG_AD7292=m +CONFIG_AD7298=m +CONFIG_AD7476=m +CONFIG_AD7606=m +CONFIG_AD7606_IFACE_PARALLEL=m +CONFIG_AD7606_IFACE_SPI=m +CONFIG_AD7766=m +CONFIG_AD7768_1=m +CONFIG_AD7780=m +CONFIG_AD7791=m +CONFIG_AD7793=m +CONFIG_AD7887=m +CONFIG_AD7923=m +CONFIG_AD7949=m +CONFIG_AD799X=m +CONFIG_AXP20X_ADC=m +CONFIG_AXP288_ADC=m +CONFIG_CC10001_ADC=m +CONFIG_DA9150_GPADC=m +CONFIG_DLN2_ADC=m +CONFIG_ENVELOPE_DETECTOR=m +CONFIG_HI8435=m +CONFIG_HX711=m +CONFIG_INA2XX_ADC=m +CONFIG_INTEL_MRFLD_ADC=m +CONFIG_LP8788_ADC=m +CONFIG_LTC2471=m +CONFIG_LTC2485=m +CONFIG_LTC2496=m +CONFIG_LTC2497=m +CONFIG_MAX1027=m +CONFIG_MAX11100=m +CONFIG_MAX1118=m +CONFIG_MAX11205=m +CONFIG_MAX11410=m +CONFIG_MAX1241=m +CONFIG_MAX1363=m +CONFIG_MAX9611=m +CONFIG_MCP320X=m +CONFIG_MCP3422=m +CONFIG_MCP3911=m +CONFIG_MEDIATEK_MT6360_ADC=m +CONFIG_MEDIATEK_MT6370_ADC=m +CONFIG_MEN_Z188_ADC=m +CONFIG_MP2629_ADC=m +CONFIG_NAU7802=m +CONFIG_PALMAS_GPADC=m +# CONFIG_QCOM_SPMI_IADC is not set +# CONFIG_QCOM_SPMI_VADC is not set +# CONFIG_QCOM_SPMI_ADC5 is not set +CONFIG_RICHTEK_RTQ6056=m +CONFIG_SD_ADC_MODULATOR=m +CONFIG_TI_ADC081C=m +CONFIG_TI_ADC0832=m +CONFIG_TI_ADC084S021=m +CONFIG_TI_ADC12138=m +CONFIG_TI_ADC108S102=m +CONFIG_TI_ADC128S052=m +CONFIG_TI_ADC161S626=m +CONFIG_TI_ADS1015=m +CONFIG_TI_ADS7924=m +# CONFIG_TI_ADS1100 is not set +CONFIG_TI_ADS7950=m +CONFIG_TI_ADS8344=m +CONFIG_TI_ADS8688=m +CONFIG_TI_ADS124S08=m +CONFIG_TI_ADS131E08=m +CONFIG_TI_AM335X_ADC=m +CONFIG_TI_LMP92064=m +CONFIG_TI_TLC4541=m +CONFIG_TI_TSC2046=m +CONFIG_TWL4030_MADC=m +CONFIG_TWL6030_GPADC=m +CONFIG_VF610_ADC=m +CONFIG_VIPERBOARD_ADC=m +CONFIG_XILINX_XADC=m +# end of Analog to digital converters + +# +# Analog to digital and digital to analog converters +# +CONFIG_AD74115=m +CONFIG_AD74413R=m +# end of Analog to digital and digital to analog converters + +# +# Analog Front Ends +# +CONFIG_IIO_RESCALE=m +# end of Analog Front Ends + +# +# Amplifiers +# +CONFIG_AD8366=m +CONFIG_ADA4250=m +CONFIG_HMC425=m +# end of Amplifiers + +# +# Capacitance to digital converters +# +CONFIG_AD7150=m +CONFIG_AD7746=m +# end of Capacitance to digital converters + +# +# Chemical Sensors +# +CONFIG_ATLAS_PH_SENSOR=m +CONFIG_ATLAS_EZO_SENSOR=m +CONFIG_BME680=m +CONFIG_BME680_I2C=m +CONFIG_BME680_SPI=m +CONFIG_CCS811=m +CONFIG_IAQCORE=m +CONFIG_PMS7003=m +CONFIG_SCD30_CORE=m +CONFIG_SCD30_I2C=m +CONFIG_SCD30_SERIAL=m +CONFIG_SCD4X=m +CONFIG_SENSIRION_SGP30=m +CONFIG_SENSIRION_SGP40=m +CONFIG_SPS30=m +CONFIG_SPS30_I2C=m +CONFIG_SPS30_SERIAL=m +CONFIG_SENSEAIR_SUNRISE_CO2=m +CONFIG_VZ89X=m +# end of Chemical Sensors + +CONFIG_IIO_CROS_EC_SENSORS_CORE=m +CONFIG_IIO_CROS_EC_SENSORS=m +CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m + +# +# Hid Sensor IIO Common +# +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +# end of Hid Sensor IIO Common + +CONFIG_IIO_MS_SENSORS_I2C=m + +# +# IIO SCMI Sensors +# +# end of IIO SCMI Sensors + +# +# SSP Sensor Common +# +CONFIG_IIO_SSP_SENSORS_COMMONS=m +CONFIG_IIO_SSP_SENSORHUB=m +# end of SSP Sensor Common + +CONFIG_IIO_ST_SENSORS_I2C=m +CONFIG_IIO_ST_SENSORS_SPI=m +CONFIG_IIO_ST_SENSORS_CORE=m + +# +# Digital to analog converters +# +CONFIG_AD3552R=m +CONFIG_AD5064=m +CONFIG_AD5360=m +CONFIG_AD5380=m +CONFIG_AD5421=m +CONFIG_AD5446=m +CONFIG_AD5449=m +CONFIG_AD5592R_BASE=m +CONFIG_AD5592R=m +CONFIG_AD5593R=m +CONFIG_AD5504=m +CONFIG_AD5624R_SPI=m +CONFIG_LTC2688=m +CONFIG_AD5686=m +CONFIG_AD5686_SPI=m +CONFIG_AD5696_I2C=m +CONFIG_AD5755=m +CONFIG_AD5758=m +CONFIG_AD5761=m +CONFIG_AD5764=m +CONFIG_AD5766=m +CONFIG_AD5770R=m +CONFIG_AD5791=m +CONFIG_AD7293=m +CONFIG_AD7303=m +CONFIG_AD8801=m +CONFIG_DPOT_DAC=m +CONFIG_DS4424=m +CONFIG_LTC1660=m +CONFIG_LTC2632=m +CONFIG_M62332=m +CONFIG_MAX517=m +CONFIG_MAX5522=m +CONFIG_MAX5821=m +CONFIG_MCP4725=m +CONFIG_MCP4922=m +CONFIG_TI_DAC082S085=m +CONFIG_TI_DAC5571=m +CONFIG_TI_DAC7311=m +CONFIG_TI_DAC7612=m +CONFIG_VF610_DAC=m +# end of Digital to analog converters + +# +# IIO dummy driver +# +# CONFIG_IIO_SIMPLE_DUMMY is not set +# end of IIO dummy driver + +# +# Filters +# +CONFIG_ADMV8818=m +# end of Filters + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +CONFIG_AD9523=m +# end of Clock Generator/Distribution + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +CONFIG_ADF4350=m +CONFIG_ADF4371=m +CONFIG_ADF4377=m +CONFIG_ADMV1013=m +CONFIG_ADMV1014=m +CONFIG_ADMV4420=m +CONFIG_ADRF6780=m +# end of Phase-Locked Loop (PLL) frequency synthesizers +# end of Frequency Synthesizers DDS/PLL + +# +# Digital gyroscope sensors +# +CONFIG_ADIS16080=m +CONFIG_ADIS16130=m +CONFIG_ADIS16136=m +CONFIG_ADIS16260=m +CONFIG_ADXRS290=m +CONFIG_ADXRS450=m +CONFIG_BMG160=m +CONFIG_BMG160_I2C=m +CONFIG_BMG160_SPI=m +CONFIG_FXAS21002C=m +CONFIG_FXAS21002C_I2C=m +CONFIG_FXAS21002C_SPI=m +CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_MPU3050=m +CONFIG_MPU3050_I2C=m +CONFIG_IIO_ST_GYRO_3AXIS=m +CONFIG_IIO_ST_GYRO_I2C_3AXIS=m +CONFIG_IIO_ST_GYRO_SPI_3AXIS=m +CONFIG_ITG3200=m +# end of Digital gyroscope sensors + +# +# Health Sensors +# + +# +# Heart Rate Monitors +# +CONFIG_AFE4403=m +CONFIG_AFE4404=m +CONFIG_MAX30100=m +CONFIG_MAX30102=m +# end of Heart Rate Monitors +# end of Health Sensors + +# +# Humidity sensors +# +CONFIG_AM2315=m +CONFIG_DHT11=m +CONFIG_HDC100X=m +CONFIG_HDC2010=m +CONFIG_HID_SENSOR_HUMIDITY=m +CONFIG_HTS221=m +CONFIG_HTS221_I2C=m +CONFIG_HTS221_SPI=m +CONFIG_HTU21=m +CONFIG_SI7005=m +CONFIG_SI7020=m +# end of Humidity sensors + +# +# Inertial measurement units +# +CONFIG_ADIS16400=m +CONFIG_ADIS16460=m +CONFIG_ADIS16475=m +CONFIG_ADIS16480=m +CONFIG_BMI160=m +CONFIG_BMI160_I2C=m +CONFIG_BMI160_SPI=m +CONFIG_BOSCH_BNO055=m +CONFIG_BOSCH_BNO055_SERIAL=m +CONFIG_BOSCH_BNO055_I2C=m +CONFIG_FXOS8700=m +CONFIG_FXOS8700_I2C=m +CONFIG_FXOS8700_SPI=m +CONFIG_KMX61=m +CONFIG_INV_ICM42600=m +CONFIG_INV_ICM42600_I2C=m +CONFIG_INV_ICM42600_SPI=m +CONFIG_INV_MPU6050_IIO=m +CONFIG_INV_MPU6050_I2C=m +CONFIG_INV_MPU6050_SPI=m +CONFIG_IIO_ST_LSM6DSX=m +CONFIG_IIO_ST_LSM6DSX_I2C=m +CONFIG_IIO_ST_LSM6DSX_SPI=m +CONFIG_IIO_ST_LSM9DS0=m +CONFIG_IIO_ST_LSM9DS0_I2C=m +CONFIG_IIO_ST_LSM9DS0_SPI=m +# end of Inertial measurement units + +CONFIG_IIO_ADIS_LIB=m +CONFIG_IIO_ADIS_LIB_BUFFER=y + +# +# Light sensors +# +CONFIG_ACPI_ALS=m +CONFIG_ADJD_S311=m +CONFIG_ADUX1020=m +CONFIG_AL3010=m +CONFIG_AL3320A=m +CONFIG_APDS9300=m +CONFIG_APDS9960=m +CONFIG_AS73211=m +CONFIG_BH1750=m +CONFIG_BH1780=m +CONFIG_CM32181=m +CONFIG_CM3232=m +CONFIG_CM3323=m +CONFIG_CM3605=m +CONFIG_CM36651=m +CONFIG_IIO_CROS_EC_LIGHT_PROX=m +CONFIG_GP2AP002=m +CONFIG_GP2AP020A00F=m +CONFIG_IQS621_ALS=m +CONFIG_SENSORS_ISL29018=m +CONFIG_SENSORS_ISL29028=m +CONFIG_ISL29125=m +CONFIG_HID_SENSOR_ALS=m +CONFIG_HID_SENSOR_PROX=m +CONFIG_JSA1212=m +# CONFIG_ROHM_BU27008 is not set +# CONFIG_ROHM_BU27034 is not set +CONFIG_RPR0521=m +CONFIG_SENSORS_LM3533=m +CONFIG_LTR501=m +CONFIG_LTRF216A=m +CONFIG_LV0104CS=m +CONFIG_MAX44000=m +CONFIG_MAX44009=m +CONFIG_NOA1305=m +CONFIG_OPT3001=m +# CONFIG_OPT4001 is not set +CONFIG_PA12203001=m +CONFIG_SI1133=m +CONFIG_SI1145=m +CONFIG_STK3310=m +CONFIG_ST_UVIS25=m +CONFIG_ST_UVIS25_I2C=m +CONFIG_ST_UVIS25_SPI=m +CONFIG_TCS3414=m +CONFIG_TCS3472=m +CONFIG_SENSORS_TSL2563=m +CONFIG_TSL2583=m +CONFIG_TSL2591=m +CONFIG_TSL2772=m +CONFIG_TSL4531=m +CONFIG_US5182D=m +CONFIG_VCNL4000=m +CONFIG_VCNL4035=m +CONFIG_VEML6030=m +CONFIG_VEML6070=m +CONFIG_VL6180=m +CONFIG_ZOPT2201=m +# end of Light sensors + +# +# Magnetometer sensors +# +CONFIG_AK8974=m +CONFIG_AK8975=m +CONFIG_AK09911=m +CONFIG_BMC150_MAGN=m +CONFIG_BMC150_MAGN_I2C=m +CONFIG_BMC150_MAGN_SPI=m +CONFIG_MAG3110=m +CONFIG_HID_SENSOR_MAGNETOMETER_3D=m +CONFIG_MMC35240=m +CONFIG_IIO_ST_MAGN_3AXIS=m +CONFIG_IIO_ST_MAGN_I2C_3AXIS=m +CONFIG_IIO_ST_MAGN_SPI_3AXIS=m +CONFIG_SENSORS_HMC5843=m +CONFIG_SENSORS_HMC5843_I2C=m +CONFIG_SENSORS_HMC5843_SPI=m +CONFIG_SENSORS_RM3100=m +CONFIG_SENSORS_RM3100_I2C=m +CONFIG_SENSORS_RM3100_SPI=m +CONFIG_TI_TMAG5273=m +CONFIG_YAMAHA_YAS530=m +# end of Magnetometer sensors + +# +# Multiplexers +# +CONFIG_IIO_MUX=m +# end of Multiplexers + +# +# Inclinometer sensors +# +CONFIG_HID_SENSOR_INCLINOMETER_3D=m +CONFIG_HID_SENSOR_DEVICE_ROTATION=m +# end of Inclinometer sensors + +# +# Triggers - standalone +# +CONFIG_IIO_HRTIMER_TRIGGER=m +CONFIG_IIO_INTERRUPT_TRIGGER=m +CONFIG_IIO_TIGHTLOOP_TRIGGER=m +CONFIG_IIO_SYSFS_TRIGGER=m +# end of Triggers - standalone + +# +# Linear and angular position sensors +# +CONFIG_IQS624_POS=m +CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m +# end of Linear and angular position sensors + +# +# Digital potentiometers +# +CONFIG_AD5110=m +CONFIG_AD5272=m +CONFIG_DS1803=m +CONFIG_MAX5432=m +CONFIG_MAX5481=m +CONFIG_MAX5487=m +CONFIG_MCP4018=m +CONFIG_MCP4131=m +CONFIG_MCP4531=m +CONFIG_MCP41010=m +CONFIG_TPL0102=m +# CONFIG_X9250 is not set +# end of Digital potentiometers + +# +# Digital potentiostats +# +CONFIG_LMP91000=m +# end of Digital potentiostats + +# +# Pressure sensors +# +CONFIG_ABP060MG=m +CONFIG_BMP280=m +CONFIG_BMP280_I2C=m +CONFIG_BMP280_SPI=m +CONFIG_IIO_CROS_EC_BARO=m +CONFIG_DLHL60D=m +CONFIG_DPS310=m +CONFIG_HID_SENSOR_PRESS=m +CONFIG_HP03=m +CONFIG_ICP10100=m +CONFIG_MPL115=m +CONFIG_MPL115_I2C=m +CONFIG_MPL115_SPI=m +CONFIG_MPL3115=m +# CONFIG_MPRLS0025PA is not set +CONFIG_MS5611=m +CONFIG_MS5611_I2C=m +CONFIG_MS5611_SPI=m +CONFIG_MS5637=m +CONFIG_IIO_ST_PRESS=m +CONFIG_IIO_ST_PRESS_I2C=m +CONFIG_IIO_ST_PRESS_SPI=m +CONFIG_T5403=m +CONFIG_HP206C=m +CONFIG_ZPA2326=m +CONFIG_ZPA2326_I2C=m +CONFIG_ZPA2326_SPI=m +# end of Pressure sensors + +# +# Lightning sensors +# +CONFIG_AS3935=m +# end of Lightning sensors + +# +# Proximity and distance sensors +# +CONFIG_CROS_EC_MKBP_PROXIMITY=m +CONFIG_ISL29501=m +CONFIG_LIDAR_LITE_V2=m +CONFIG_MB1232=m +CONFIG_PING=m +CONFIG_RFD77402=m +CONFIG_SRF04=m +CONFIG_SX_COMMON=m +CONFIG_SX9310=m +CONFIG_SX9324=m +CONFIG_SX9360=m +CONFIG_SX9500=m +CONFIG_SRF08=m +CONFIG_VCNL3020=m +CONFIG_VL53L0X_I2C=m +# end of Proximity and distance sensors + +# +# Resolver to digital converters +# +CONFIG_AD2S90=m +CONFIG_AD2S1200=m +# end of Resolver to digital converters + +# +# Temperature sensors +# +CONFIG_IQS620AT_TEMP=m +CONFIG_LTC2983=m +CONFIG_MAXIM_THERMOCOUPLE=m +CONFIG_HID_SENSOR_TEMP=m +CONFIG_MLX90614=m +CONFIG_MLX90632=m +CONFIG_TMP006=m +CONFIG_TMP007=m +CONFIG_TMP117=m +CONFIG_TSYS01=m +CONFIG_TSYS02D=m +CONFIG_MAX30208=m +CONFIG_MAX31856=m +CONFIG_MAX31865=m +# end of Temperature sensors + +CONFIG_NTB=m +CONFIG_NTB_MSI=y +CONFIG_NTB_AMD=m +CONFIG_NTB_IDT=m +CONFIG_NTB_INTEL=m +CONFIG_NTB_EPF=m +CONFIG_NTB_SWITCHTEC=m +# CONFIG_NTB_PINGPONG is not set +# CONFIG_NTB_TOOL is not set +# CONFIG_NTB_PERF is not set +# CONFIG_NTB_MSI_TEST is not set +CONFIG_NTB_TRANSPORT=m +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +# CONFIG_PWM_DEBUG is not set +CONFIG_PWM_CLK=m +CONFIG_PWM_CRC=y +CONFIG_PWM_CROS_EC=m +CONFIG_PWM_DWC=m +CONFIG_PWM_IQS620A=m +CONFIG_PWM_LP3943=m +CONFIG_PWM_LPSS=m +CONFIG_PWM_LPSS_PCI=m +CONFIG_PWM_LPSS_PLATFORM=m +CONFIG_PWM_PCA9685=m +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m + +# +# IRQ chip support +# +CONFIG_MADERA_IRQ=m +# end of IRQ chip support + +CONFIG_IPACK_BUS=m +CONFIG_BOARD_TPCI200=m +CONFIG_SERIAL_IPOCTAL=m +CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_SIMPLE is not set +CONFIG_RESET_TI_SYSCON=m +CONFIG_RESET_TI_TPS380X=m + +# +# PHY Subsystem +# +CONFIG_GENERIC_PHY=y +CONFIG_USB_LGM_PHY=m +CONFIG_PHY_CAN_TRANSCEIVER=m + +# +# PHY drivers for Broadcom platforms +# +CONFIG_BCM_KONA_USB2_PHY=m +# end of PHY drivers for Broadcom platforms + +CONFIG_PHY_PXA_28NM_HSIC=m +CONFIG_PHY_PXA_28NM_USB2=m +CONFIG_PHY_CPCAP_USB=m +CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_HSIC=m +CONFIG_PHY_SAMSUNG_USB2=m +CONFIG_PHY_TUSB1210=m +CONFIG_PHY_INTEL_LGM_EMMC=m +# end of PHY Subsystem + +CONFIG_POWERCAP=y +CONFIG_INTEL_RAPL_CORE=m +CONFIG_INTEL_RAPL=m +# CONFIG_INTEL_RAPL_TPMI is not set +CONFIG_IDLE_INJECT=y +CONFIG_MCB=m +CONFIG_MCB_PCI=m +CONFIG_MCB_LPC=m + +# +# Performance monitor support +# +# end of Performance monitor support + +CONFIG_RAS=y +CONFIG_RAS_CEC=y +# CONFIG_RAS_CEC_DEBUG is not set +CONFIG_USB4=m +# CONFIG_USB4_DEBUGFS_WRITE is not set +# CONFIG_USB4_DMA_TEST is not set + +# +# Android +# +# CONFIG_ANDROID_BINDER_IPC is not set +# end of Android + +CONFIG_LIBNVDIMM=y +CONFIG_BLK_DEV_PMEM=m +CONFIG_ND_CLAIM=y +CONFIG_ND_BTT=m +CONFIG_BTT=y +CONFIG_ND_PFN=m +CONFIG_NVDIMM_PFN=y +CONFIG_NVDIMM_DAX=y +CONFIG_DAX=y +CONFIG_DEV_DAX=m +CONFIG_DEV_DAX_PMEM=m +CONFIG_DEV_DAX_HMEM=m +CONFIG_DEV_DAX_CXL=m +CONFIG_DEV_DAX_HMEM_DEVICES=y +CONFIG_DEV_DAX_KMEM=m +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y + +# +# Layout Types +# +# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set +# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set +# end of Layout Types + +CONFIG_NVMEM_RAVE_SP_EEPROM=m +CONFIG_NVMEM_RMEM=m +# CONFIG_NVMEM_SPMI_SDAM is not set + +# +# HW tracing support +# +CONFIG_STM=m +CONFIG_STM_PROTO_BASIC=m +CONFIG_STM_PROTO_SYS_T=m +# CONFIG_STM_DUMMY is not set +CONFIG_STM_SOURCE_CONSOLE=m +CONFIG_STM_SOURCE_HEARTBEAT=m +CONFIG_STM_SOURCE_FTRACE=m +CONFIG_INTEL_TH=m +CONFIG_INTEL_TH_PCI=m +CONFIG_INTEL_TH_ACPI=m +CONFIG_INTEL_TH_GTH=m +CONFIG_INTEL_TH_STH=m +CONFIG_INTEL_TH_MSU=m +CONFIG_INTEL_TH_PTI=m +# CONFIG_INTEL_TH_DEBUG is not set +# end of HW tracing support + +CONFIG_FPGA=m +CONFIG_ALTERA_PR_IP_CORE=m +CONFIG_FPGA_MGR_ALTERA_PS_SPI=m +CONFIG_FPGA_MGR_ALTERA_CVP=m +CONFIG_FPGA_MGR_XILINX_SPI=m +CONFIG_FPGA_MGR_MACHXO2_SPI=m +CONFIG_FPGA_BRIDGE=m +CONFIG_ALTERA_FREEZE_BRIDGE=m +CONFIG_XILINX_PR_DECOUPLER=m +CONFIG_FPGA_REGION=m +CONFIG_FPGA_DFL=m +CONFIG_FPGA_DFL_FME=m +CONFIG_FPGA_DFL_FME_MGR=m +CONFIG_FPGA_DFL_FME_BRIDGE=m +CONFIG_FPGA_DFL_FME_REGION=m +CONFIG_FPGA_DFL_AFU=m +CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m +CONFIG_FPGA_DFL_PCI=m +CONFIG_FPGA_M10_BMC_SEC_UPDATE=m +CONFIG_FPGA_MGR_MICROCHIP_SPI=m +CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m +CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m +CONFIG_TEE=m +CONFIG_AMDTEE=m +CONFIG_MULTIPLEXER=m + +# +# Multiplexer drivers +# +CONFIG_MUX_ADG792A=m +CONFIG_MUX_ADGS1408=m +CONFIG_MUX_GPIO=m +# end of Multiplexer drivers + +CONFIG_PM_OPP=y +CONFIG_SIOX=m +CONFIG_SIOX_BUS_GPIO=m +CONFIG_SLIMBUS=m +CONFIG_SLIM_QCOM_CTRL=m +CONFIG_INTERCONNECT=y +CONFIG_COUNTER=m +CONFIG_INTEL_QEP=m +CONFIG_INTERRUPT_CNT=m +CONFIG_MOST=m +CONFIG_MOST_USB_HDM=m +CONFIG_MOST_CDEV=m +CONFIG_MOST_SND=m +# CONFIG_PECI is not set +CONFIG_HTE=y +# end of Device Drivers + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_VALIDATE_FS_PARSER=y +CONFIG_FS_IOMAP=y +CONFIG_LEGACY_DIRECT_IO=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_STATISTICS=y +CONFIG_XFS_FS=m +CONFIG_XFS_SUPPORT_V4=y +CONFIG_XFS_SUPPORT_ASCII_CI=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +CONFIG_XFS_DRAIN_INTENTS=y +CONFIG_XFS_ONLINE_SCRUB=y +CONFIG_XFS_ONLINE_REPAIR=y +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_BTRFS_FS=y +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set +CONFIG_NILFS2_FS=m +CONFIG_F2FS_FS=y +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_FS_SECURITY=y +CONFIG_F2FS_CHECK_FS=y +# CONFIG_F2FS_FAULT_INJECTION is not set +CONFIG_F2FS_FS_COMPRESSION=y +CONFIG_F2FS_FS_LZO=y +CONFIG_F2FS_FS_LZORLE=y +CONFIG_F2FS_FS_LZ4=y +CONFIG_F2FS_FS_LZ4HC=y +CONFIG_F2FS_FS_ZSTD=y +CONFIG_F2FS_IOSTAT=y +CONFIG_F2FS_UNFAIR_RWSEM=y +CONFIG_ZONEFS_FS=m +CONFIG_FS_DAX=y +CONFIG_FS_DAX_PMD=y +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_EXPORTFS_BLOCK_OPS=y +CONFIG_FILE_LOCKING=y +CONFIG_FS_ENCRYPTION=y +CONFIG_FS_ENCRYPTION_ALGS=y +CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y +CONFIG_FS_VERITY=y +CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_VIRTIO_FS=m +CONFIG_FUSE_DAX=y +CONFIG_OVERLAY_FS=m +CONFIG_OVERLAY_FS_REDIRECT_DIR=y +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y +# CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set +# CONFIG_OVERLAY_FS_METACOPY is not set + +# +# Caches +# +CONFIG_NETFS_SUPPORT=y +CONFIG_NETFS_STATS=y +CONFIG_FSCACHE=y +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_DEBUG is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_ERROR_INJECTION is not set +CONFIG_CACHEFILES_ONDEMAND=y +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_UTF8=y +CONFIG_EXFAT_FS=m +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +# CONFIG_NTFS_FS is not set +CONFIG_NTFS3_FS=m +# CONFIG_NTFS3_64BIT_CLUSTER is not set +CONFIG_NTFS3_LZX_XPRESS=y +CONFIG_NTFS3_FS_POSIX_ACL=y +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_VMCORE=y +CONFIG_PROC_VMCORE_DEVICE_DUMP=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_CHILDREN=y +CONFIG_PROC_PID_ARCH_STATUS=y +CONFIG_PROC_CPU_RESCTRL=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +CONFIG_TMPFS_INODE64=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_CONFIGFS_FS=y +CONFIG_EFIVAR_FS=y +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +CONFIG_ORANGEFS_FS=m +# CONFIG_ADFS_FS is not set +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS_MESSAGING is not set +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_FS_POSIX_ACL=y +CONFIG_JFFS2_FS_SECURITY=y +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +CONFIG_UBIFS_FS=m +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_UBIFS_FS_ZSTD=y +CONFIG_UBIFS_ATIME_SUPPORT=y +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_SECURITY=y +CONFIG_UBIFS_FS_AUTHENTICATION=y +CONFIG_CRAMFS=m +CONFIG_CRAMFS_BLOCKDEV=y +CONFIG_CRAMFS_MTD=y +CONFIG_SQUASHFS=y +# CONFIG_SQUASHFS_FILE_CACHE is not set +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SQUASHFS_DECOMP_SINGLE=y +CONFIG_SQUASHFS_DECOMP_MULTI=y +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y +CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZSTD=y +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +CONFIG_ROMFS_FS=m +CONFIG_ROMFS_BACKED_BY_BLOCK=y +# CONFIG_ROMFS_BACKED_BY_MTD is not set +# CONFIG_ROMFS_BACKED_BY_BOTH is not set +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_PSTORE=y +CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 +CONFIG_PSTORE_DEFLATE_COMPRESS=m +CONFIG_PSTORE_LZO_COMPRESS=m +CONFIG_PSTORE_LZ4_COMPRESS=m +CONFIG_PSTORE_LZ4HC_COMPRESS=m +# CONFIG_PSTORE_842_COMPRESS is not set +CONFIG_PSTORE_ZSTD_COMPRESS=y +CONFIG_PSTORE_COMPRESS=y +# CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT is not set +# CONFIG_PSTORE_LZO_COMPRESS_DEFAULT is not set +# CONFIG_PSTORE_LZ4_COMPRESS_DEFAULT is not set +# CONFIG_PSTORE_LZ4HC_COMPRESS_DEFAULT is not set +CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y +CONFIG_PSTORE_COMPRESS_DEFAULT="zstd" +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_PMSG is not set +# CONFIG_PSTORE_FTRACE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PSTORE_ZONE=m +CONFIG_PSTORE_BLK=m +CONFIG_PSTORE_BLK_BLKDEV="" +CONFIG_PSTORE_BLK_KMSG_SIZE=64 +CONFIG_PSTORE_BLK_MAX_REASON=2 +# CONFIG_SYSV_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_EROFS_FS=m +# CONFIG_EROFS_FS_DEBUG is not set +CONFIG_EROFS_FS_XATTR=y +CONFIG_EROFS_FS_POSIX_ACL=y +CONFIG_EROFS_FS_SECURITY=y +CONFIG_EROFS_FS_ZIP=y +CONFIG_EROFS_FS_ZIP_LZMA=y +CONFIG_EROFS_FS_ONDEMAND=y +CONFIG_EROFS_FS_PCPU_KTHREAD=y +CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y +CONFIG_VBOXSF_FS=m +CONFIG_NETWORK_FILESYSTEMS=y +# CONFIG_NFS_FS is not set +CONFIG_NFSD=m +# CONFIG_NFSD_V2 is not set +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_PNFS=y +CONFIG_NFSD_BLOCKLAYOUT=y +CONFIG_NFSD_SCSILAYOUT=y +# CONFIG_NFSD_FLEXFILELAYOUT is not set +CONFIG_NFSD_V4_SECURITY_LABEL=y +CONFIG_GRACE_PERIOD=m +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_KRB5_CRYPTOSYSTEM=y +# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_DES is not set +CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y +CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y +CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y +CONFIG_SUNRPC_DEBUG=y +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_CEPH_FS=m +CONFIG_CEPH_FSCACHE=y +CONFIG_CEPH_FS_POSIX_ACL=y +CONFIG_CEPH_FS_SECURITY_LABEL=y +# CONFIG_CIFS is not set +CONFIG_SMB_SERVER=m +CONFIG_SMB_SERVER_SMBDIRECT=y +CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y +CONFIG_SMB_SERVER_KERBEROS5=y +CONFIG_SMBFS=m +CONFIG_CODA_FS=m +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FSCACHE=y +# CONFIG_AFS_DEBUG_CURSOR is not set +CONFIG_9P_FS=m +CONFIG_9P_FSCACHE=y +CONFIG_9P_FS_POSIX_ACL=y +CONFIG_9P_FS_SECURITY=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=y +CONFIG_DLM=m +CONFIG_DLM_DEBUG=y +CONFIG_UNICODE=y +# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set +CONFIG_IO_WQ=y +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_REQUEST_CACHE=y +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_TRUSTED_KEYS=m +CONFIG_TRUSTED_KEYS_TPM=y +CONFIG_TRUSTED_KEYS_TEE=y +CONFIG_ENCRYPTED_KEYS=m +# CONFIG_USER_DECRYPTED_DATA is not set +CONFIG_KEY_DH_OPERATIONS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_INFINIBAND=y +CONFIG_SECURITY_NETWORK_XFRM=y +CONFIG_SECURITY_PATH=y +# CONFIG_INTEL_TXT is not set +CONFIG_LSM_MMAP_MIN_ADDR=65536 +CONFIG_HARDENED_USERCOPY=y +CONFIG_FORTIFY_SOURCE=y +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 +CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 +CONFIG_SECURITY_SMACK=y +CONFIG_SECURITY_SMACK_BRINGUP=y +CONFIG_SECURITY_SMACK_NETFILTER=y +CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 +# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set +CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/usr/bin/tomoyo-init" +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/usr/lib/systemd/systemd" +# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set +CONFIG_SECURITY_APPARMOR=y +# CONFIG_SECURITY_APPARMOR_DEBUG is not set +CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y +CONFIG_SECURITY_APPARMOR_HASH=y +CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y +CONFIG_SECURITY_APPARMOR_EXPORT_BINARY=y +CONFIG_SECURITY_APPARMOR_PARANOID_LOAD=y +CONFIG_SECURITY_LOADPIN=y +CONFIG_SECURITY_LOADPIN_ENFORCE=y +CONFIG_SECURITY_YAMA=y +CONFIG_SECURITY_SAFESETID=y +CONFIG_SECURITY_LOCKDOWN_LSM=y +# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set +CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y +# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set +# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set +CONFIG_SECURITY_LANDLOCK=y +CONFIG_INTEGRITY=y +CONFIG_INTEGRITY_SIGNATURE=y +CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y +CONFIG_INTEGRITY_TRUSTED_KEYRING=y +CONFIG_INTEGRITY_PLATFORM_KEYRING=y +CONFIG_INTEGRITY_MACHINE_KEYRING=y +# CONFIG_INTEGRITY_CA_MACHINE_KEYRING is not set +CONFIG_LOAD_UEFI_KEYS=y +CONFIG_INTEGRITY_AUDIT=y +# CONFIG_IMA is not set +# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set +# CONFIG_EVM is not set +# CONFIG_DEFAULT_SECURITY_SELINUX is not set +# CONFIG_DEFAULT_SECURITY_SMACK is not set +# CONFIG_DEFAULT_SECURITY_TOMOYO is not set +# CONFIG_DEFAULT_SECURITY_APPARMOR is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# CONFIG_ZERO_CALL_USED_REGS is not set +# end of Memory initialization + +CONFIG_RANDSTRUCT_NONE=y +# end of Kernel hardening options +# end of Security options + +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SIG2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=y +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_SIMD=y +CONFIG_CRYPTO_ENGINE=m +# end of Crypto core or helper + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_DH=y +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_ECC=y +CONFIG_CRYPTO_ECDH=m +CONFIG_CRYPTO_ECDSA=y +CONFIG_CRYPTO_ECRDSA=m +CONFIG_CRYPTO_SM2=m +CONFIG_CRYPTO_CURVE25519=m +# end of Public-key cryptography + +# +# Block ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_TI=m +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARIA=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST_COMMON=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SEED is not set +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SM4_GENERIC=m +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +# end of Block ciphers + +# +# Length-preserving ciphers and modes +# +CONFIG_CRYPTO_ADIANTUM=m +# CONFIG_CRYPTO_ARC4 is not set +CONFIG_CRYPTO_CHACHA20=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CFB=m +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_HCTR2=m +CONFIG_CRYPTO_KEYWRAP=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_OFB=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XCTR=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_NHPOLY1305=m +# end of Length-preserving ciphers and modes + +# +# AEAD (authenticated encryption with associated data) ciphers +# +CONFIG_CRYPTO_AEGIS128=m +CONFIG_CRYPTO_CHACHA20POLY1305=m +CONFIG_CRYPTO_CCM=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_GENIV=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_ECHAINIV=m +CONFIG_CRYPTO_ESSIV=m +# end of AEAD (authenticated encryption with associated data) ciphers + +# +# Hashes, digests, and MACs +# +CONFIG_CRYPTO_BLAKE2B=y +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_POLYVAL=m +CONFIG_CRYPTO_POLY1305=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_SHA3=y +CONFIG_CRYPTO_SM3=m +CONFIG_CRYPTO_SM3_GENERIC=m +CONFIG_CRYPTO_STREEBOG=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_XXHASH=y +# end of Hashes, digests, and MACs + +# +# CRCs (cyclic redundancy checks) +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRCT10DIF=y +CONFIG_CRYPTO_CRC64_ROCKSOFT=y +# end of CRCs (cyclic redundancy checks) + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_842=m +CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4HC=m +CONFIG_CRYPTO_ZSTD=y +# end of Compression + +# +# Random number generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +CONFIG_CRYPTO_DRBG_HASH=y +CONFIG_CRYPTO_DRBG_CTR=y +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set +CONFIG_CRYPTO_KDF800108_CTR=y +# end of Random number generation + +# +# Userspace interface +# +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_USER_API_RNG=m +# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set +CONFIG_CRYPTO_USER_API_AEAD=y +CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y +CONFIG_CRYPTO_STATS=y +# end of Userspace interface + +CONFIG_CRYPTO_HASH_INFO=y + +# +# Accelerated Cryptographic Algorithms for CPU (x86) +# +CONFIG_CRYPTO_CURVE25519_X86=m +CONFIG_CRYPTO_AES_NI_INTEL=y +CONFIG_CRYPTO_BLOWFISH_X86_64=m +CONFIG_CRYPTO_CAMELLIA_X86_64=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_CAST5_AVX_X86_64=m +CONFIG_CRYPTO_CAST6_AVX_X86_64=m +CONFIG_CRYPTO_DES3_EDE_X86_64=y +CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m +CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_TWOFISH_X86_64=m +CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m +CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m +CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64=m +CONFIG_CRYPTO_CHACHA20_X86_64=m +CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m +CONFIG_CRYPTO_NHPOLY1305_SSE2=m +CONFIG_CRYPTO_NHPOLY1305_AVX2=m +CONFIG_CRYPTO_BLAKE2S_X86=y +CONFIG_CRYPTO_POLYVAL_CLMUL_NI=m +CONFIG_CRYPTO_POLY1305_X86_64=m +CONFIG_CRYPTO_SHA1_SSSE3=y +CONFIG_CRYPTO_SHA256_SSSE3=y +CONFIG_CRYPTO_SHA512_SSSE3=y +CONFIG_CRYPTO_SM3_AVX_X86_64=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_CRC32_PCLMUL=m +CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m +# end of Accelerated Cryptographic Algorithms for CPU (x86) + +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_PADLOCK=m +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_ATMEL_I2C=m +CONFIG_CRYPTO_DEV_ATMEL_ECC=m +CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m +CONFIG_CRYPTO_DEV_CCP=y +CONFIG_CRYPTO_DEV_CCP_DD=m +CONFIG_CRYPTO_DEV_SP_CCP=y +CONFIG_CRYPTO_DEV_CCP_CRYPTO=m +CONFIG_CRYPTO_DEV_SP_PSP=y +CONFIG_CRYPTO_DEV_CCP_DEBUGFS=y +CONFIG_CRYPTO_DEV_NITROX=m +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +CONFIG_CRYPTO_DEV_QAT=m +CONFIG_CRYPTO_DEV_QAT_DH895xCC=m +CONFIG_CRYPTO_DEV_QAT_C3XXX=m +CONFIG_CRYPTO_DEV_QAT_C62X=m +CONFIG_CRYPTO_DEV_QAT_4XXX=m +CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m +CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m +CONFIG_CRYPTO_DEV_QAT_C62XVF=m +CONFIG_CRYPTO_DEV_CHELSIO=m +CONFIG_CRYPTO_DEV_VIRTIO=m +CONFIG_CRYPTO_DEV_SAFEXCEL=m +CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m +CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG=y +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_PKCS8_PRIVATE_KEY_PARSER=m +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +CONFIG_SIGNED_PE_FILE_VERIFICATION=y +# CONFIG_FIPS_SIGNATURE_SELFTEST is not set + +# +# Certificates for signature checking +# +CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_RSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_ECDSA=y +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +CONFIG_SECONDARY_TRUSTED_KEYRING=y +CONFIG_SYSTEM_BLACKLIST_KEYRING=y +CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" +CONFIG_SYSTEM_REVOCATION_LIST=y +CONFIG_SYSTEM_REVOCATION_KEYS="" +CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE=y +# end of Certificates for signature checking + +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_RAID6_PQ=y +# CONFIG_RAID6_PQ_BENCHMARK is not set +CONFIG_LINEAR_RANGES=y +CONFIG_PACKING=y +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_CORDIC=m +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_UTILS=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=m +CONFIG_CRYPTO_LIB_GF128MUL=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m +CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_DES=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_SHA1=y +CONFIG_CRYPTO_LIB_SHA256=y +# end of Crypto library routines + +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC64_ROCKSOFT=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +CONFIG_CRC64=y +CONFIG_CRC4=m +CONFIG_CRC7=m +CONFIG_LIBCRC32C=y +CONFIG_CRC8=m +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_842_COMPRESS=m +CONFIG_842_DECOMPRESS=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_COMPRESS=y +CONFIG_LZ4HC_COMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMMON=y +CONFIG_ZSTD_COMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_MICROLZMA=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_ZSTD=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_ENC8=y +CONFIG_REED_SOLOMON_DEC8=y +CONFIG_BCH=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_BTREE=y +CONFIG_INTERVAL_TREE=y +CONFIG_INTERVAL_TREE_SPAN_ITER=y +CONFIG_XARRAY_MULTI=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_DMA_OPS=y +CONFIG_NEED_SG_DMA_FLAGS=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y +CONFIG_SWIOTLB=y +CONFIG_DMA_COHERENT_POOL=y +CONFIG_DMA_CMA=y +# CONFIG_DMA_PERNUMA_CMA is not set + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=256 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_SGL_ALLOC=y +CONFIG_IOMMU_HELPER=y +CONFIG_CHECK_SIGNATURE=y +# CONFIG_FORCE_NR_CPUS is not set +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +CONFIG_LRU_CACHE=m +CONFIG_CLZ_TAB=y +CONFIG_IRQ_POLL=y +CONFIG_MPILIB=y +CONFIG_SIGNATURE=y +CONFIG_DIMLIB=y +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_MEMREGION=y +CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y +CONFIG_ARCH_HAS_COPY_MC=y +CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y +CONFIG_SBITMAP=y +CONFIG_PARMAN=m +CONFIG_OBJAGG=m +# end of Library routines + +CONFIG_PLDMFW=y +CONFIG_ASN1_ENCODER=m +CONFIG_POLYNOMIAL=m + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +CONFIG_STACKTRACE_BUILD_ID=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=y +# end of printk and dmesg options + +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_MISC is not set + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +CONFIG_AS_HAS_NON_CONST_LEB128=y +# CONFIG_DEBUG_INFO_NONE is not set +# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +CONFIG_DEBUG_INFO_DWARF5=y +# CONFIG_DEBUG_INFO_REDUCED is not set +CONFIG_DEBUG_INFO_COMPRESSED_NONE=y +# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_FRAME_WARN=1024 +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set +# CONFIG_HEADERS_INSTALL is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set +CONFIG_FRAME_POINTER=y +CONFIG_OBJTOOL=y +CONFIG_STACK_VALIDATION=y +# CONFIG_VMLINUX_MAP is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_HAVE_ARCH_KCSAN=y +CONFIG_HAVE_KCSAN_COMPILER=y +# CONFIG_KCSAN is not set +# end of Generic Kernel Debugging Instruments + +# +# Networking Debugging +# +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +# CONFIG_NET_NS_REFCNT_TRACKER is not set +# CONFIG_DEBUG_NET is not set +# end of Networking Debugging + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_TABLE_CHECK is not set +CONFIG_PAGE_POISONING=y +# CONFIG_DEBUG_PAGE_REF is not set +CONFIG_DEBUG_RODATA_TEST=y +CONFIG_ARCH_HAS_DEBUG_WX=y +CONFIG_DEBUG_WX=y +CONFIG_GENERIC_PTDUMP=y +CONFIG_PTDUMP_CORE=y +# CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_PER_VMA_LOCK_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +CONFIG_SHRINKER_DEBUG=y +# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_SCHED_STACK_END_CHECK=y +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y +# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +CONFIG_KFENCE=y +CONFIG_KFENCE_SAMPLE_INTERVAL=100 +CONFIG_KFENCE_NUM_OBJECTS=255 +CONFIG_KFENCE_DEFERRABLE=y +# CONFIG_KFENCE_STATIC_KEYS is not set +CONFIG_KFENCE_STRESS_TEST_FAULTS=0 +CONFIG_HAVE_ARCH_KMSAN=y +# end of Memory Debugging + +CONFIG_DEBUG_SHIRQ=y + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_HARDLOCKUP_DETECTOR_PREFER_BUDDY is not set +CONFIG_HARDLOCKUP_DETECTOR_PERF=y +# CONFIG_HARDLOCKUP_DETECTOR_BUDDY is not set +# CONFIG_HARDLOCKUP_DETECTOR_ARCH is not set +CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER=y +CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_INFO=y +CONFIG_SCHEDSTATS=y +# end of Scheduler Debugging + +# CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_DEBUG_PREEMPT is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +CONFIG_TRACE_IRQFLAGS=y +CONFIG_TRACE_IRQFLAGS_NMI=y +# CONFIG_NMI_CHECK_CPU is not set +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +CONFIG_DEBUG_LIST=y +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_DEBUG_MAPLE_TREE is not set +# end of Debug kernel data structures + +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 +# CONFIG_RCU_CPU_STALL_CPUTIME is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +CONFIG_LATENCYTOP=y +# CONFIG_DEBUG_CGROUP_REF is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_RETHOOK=y +CONFIG_RETHOOK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_OBJTOOL_MCOUNT=y +CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y +CONFIG_BUILDTIME_MCOUNT_SORT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_PREEMPTIRQ_TRACEPOINTS=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +CONFIG_BOOTTIME_TRACING=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_FUNCTION_GRAPH_RETVAL is not set +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y +CONFIG_FPROBE=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_STACK_TRACER=y +CONFIG_IRQSOFF_TRACER=y +# CONFIG_PREEMPT_TRACER is not set +CONFIG_SCHED_TRACER=y +CONFIG_HWLAT_TRACER=y +CONFIG_OSNOISE_TRACER=y +CONFIG_TIMERLAT_TRACER=y +CONFIG_MMIOTRACE=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_TRACER_SNAPSHOT=y +CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_FPROBE_EVENTS=y +CONFIG_KPROBE_EVENTS=y +# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set +CONFIG_UPROBE_EVENTS=y +CONFIG_BPF_EVENTS=y +CONFIG_DYNAMIC_EVENTS=y +CONFIG_PROBE_EVENTS=y +CONFIG_BPF_KPROBE_OVERRIDE=y +CONFIG_FTRACE_MCOUNT_RECORD=y +CONFIG_FTRACE_MCOUNT_USE_CC=y +CONFIG_TRACING_MAP=y +CONFIG_SYNTH_EVENTS=y +# CONFIG_USER_EVENTS is not set +CONFIG_HIST_TRIGGERS=y +# CONFIG_TRACE_EVENT_INJECT is not set +# CONFIG_TRACEPOINT_BENCHMARK is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_TRACE_EVAL_MAP_FILE is not set +# CONFIG_FTRACE_RECORD_RECURSION is not set +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_FTRACE_SORT_STARTUP_TEST is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set +# CONFIG_MMIOTRACE_TEST is not set +# CONFIG_PREEMPTIRQ_DELAY_TEST is not set +# CONFIG_SYNTH_EVENT_GEN_TEST is not set +# CONFIG_KPROBE_EVENT_GEN_TEST is not set +# CONFIG_HIST_TRIGGERS_DEBUG is not set +# CONFIG_RV is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_IO_STRICT_DEVMEM is not set + +# +# x86 Debugging +# +CONFIG_EARLY_PRINTK_USB=y +# CONFIG_X86_VERBOSE_BOOTUP is not set +CONFIG_EARLY_PRINTK=y +CONFIG_EARLY_PRINTK_DBGP=y +CONFIG_EARLY_PRINTK_USB_XDBC=y +# CONFIG_EFI_PGT_DUMP is not set +# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_IOMMU_DEBUG is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_X86_DECODER_SELFTEST=y +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEBUG_BOOT_PARAMS=y +# CONFIG_CPA_DEBUG is not set +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +# CONFIG_X86_DEBUG_FPU is not set +# CONFIG_PUNIT_ATOM_DEBUG is not set +# CONFIG_UNWINDER_ORC is not set +CONFIG_UNWINDER_FRAME_POINTER=y +# end of x86 Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +CONFIG_FUNCTION_ERROR_INJECTION=y +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_TEST_DHRY is not set +# CONFIG_LKDTM is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_DIV64 is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_TEST_REF_TRACKER is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_STRING_SELFTEST is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_SCANF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_MAPLE_TREE is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_PARMAN is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_BITOPS is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_DYNAMIC_DEBUG is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_OBJAGG is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_HMM is not set +# CONFIG_TEST_FREE_PAGES is not set +# CONFIG_TEST_FPU is not set +# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set +CONFIG_ARCH_USE_MEMTEST=y +CONFIG_MEMTEST=y +# CONFIG_HYPERV_TESTING is not set +# end of Kernel Testing and Coverage + +# +# Rust hacking +# +# end of Rust hacking +# end of Kernel hacking diff --git a/projects/PC/devices/INTEL64/options b/projects/PC/devices/INTEL64/options new file mode 100644 index 000000000..c58c6be64 --- /dev/null +++ b/projects/PC/devices/INTEL64/options @@ -0,0 +1,129 @@ + case ${TARGET_ARCH} in + x86_64|i686) + if [ -z "${TARGET_CPU}" ] + then + TARGET_CPU="haswell" + fi + ;; + esac + + # kernel command line + EXTRA_CMDLINE="quiet console=tty0 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20 intel_pstate=active amd_pstate=active amd_pstate.shared_mem=1 amdgpu.dpm=1" + + # Partition label + PARTITION_TABLE="msdos" + + # OpenGL(X) implementation to use (mesa / no) + OPENGL="mesa" + + # OpenGL-ES implementation to use (mesa / no) + OPENGLES="mesa" + + # Vulkan implementation to use (vulkan-loader / no) + VULKAN="vulkan-loader" + + # VULKAN_SUPPORT + VULKAN_SUPPORT="yes" + + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="wl" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="weston" + + # Default weston terminal font size + WESTONFONTSIZE="18" + + # Mesa 3D Graphic drivers to use (all / crocus,i915,iris,r300,r600,radeonsi,vmware,virtio) + # Space separated list is supported, + # e.g. GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" + GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" + + # additional packages to install + # ADDITIONAL_PACKAGES="" + + # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) + # Space separated list is supported, + # e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware" + FIRMWARE="misc-firmware wlan-firmware asus-firmware" + + # additional drivers to install: + # for a list of additional drivers see packages/linux-drivers + # Space separated list is supported, + # e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" + # ADDITIONAL_DRIVERS="" + ADDITIONAL_DRIVERS="RTL8812AU RTL8814AU RTL8821AU RTL8821CU RTL88x2BU ryzensmu ayn-platform" + + # build and install driver addons (yes / no) + DRIVER_ADDONS_SUPPORT="no" + + # driver addons to install: + # for a list of additinoal drivers see packages/linux-driver-addons + # Space separated list is supported, + DRIVER_ADDONS="" + + # debug tty path + DEBUG_TTY="/dev/ttyFIQ0" + + # Disable 32BIT support + ENABLE_32BIT="false" + + # build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + + # build and install Avahi (Zeroconf) daemon (yes / no) + AVAHI_DAEMON="no" + + # build with NFS support (mounting nfs shares via the OS) (yes / no) + NFS_SUPPORT="no" + + # build with Samba Client support (mounting samba shares via the OS) (yes / no) + SAMBA_SUPPORT="no" + + # build and install Samba Server (yes / no) + SAMBA_SERVER="yes" + + # build and install SFTP Server (yes / no) + SFTP_SERVER="yes" + + # build and install OpenVPN support (yes / no) + OPENVPN_SUPPORT="no" + + # build and install ZeroTier support (yes / no) + ZEROTIER_SUPPORT="yes" + + # build and install diskmounter support (udevil) + # this service provide auto mounting support for external drives in the + # mediacenter also automount internally drives at boottime via udev (yes / no) + UDEVIL="yes" + + # build and install exFAT fuse support (yes / no) + EXFAT="yes" + + # build and install NTFS-3G fuse support (yes / no) + NTFS3G="yes" + + # build and install hfs filesystem utilities (yes / no) + HFSTOOLS="no" + + # Support for partitioning and formating disks in initramfs (yes / no) + # This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage + INITRAMFS_PARTED_SUPPORT="yes" + + # build with swap support (yes / no) + SWAP_SUPPORT="yes" + + # swap support enabled per default (yes / no) + SWAP_ENABLED_DEFAULT="yes" + + # swapfile size if SWAP_SUPPORT=yes in MB + SWAPFILESIZE="1024" + + # cron support (yes / no) + CRON_SUPPORT="no" + + # Settings package name - blank if not required + DISTRO_PKG_SETTINGS="" + + # htop tool (yes / no) + HTOP_TOOL="yes" diff --git a/projects/PC/options b/projects/PC/options index 88dbf9263..6c6619b9d 100644 --- a/projects/PC/options +++ b/projects/PC/options @@ -2,18 +2,6 @@ # setup system defaults ################################################################################ - # The TARGET_CPU variable controls which processor should be targeted for - # generated code. - case ${TARGET_ARCH} in - x86_64) - # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 - # athlon-fx amdfam10 barcelona - # (Intel CPUs) atom core2 nocona - # - TARGET_CPU="x86-64" - ;; - esac - # Bootloader to use (syslinux / u-boot) BOOTLOADER="syslinux" From bbe502f98a2bfc79165563bd2ea7fe4e9cc295ff Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Wed, 8 Nov 2023 13:17:07 -0500 Subject: [PATCH 099/112] Sort, Theme and FullName Updates aligns naming conventions with other distros --- config/emulators/3ds.conf | 4 ++-- config/emulators/channelf.conf | 2 +- config/emulators/cps1.conf | 2 +- config/emulators/cps2.conf | 2 +- config/emulators/cps3.conf | 2 +- config/emulators/imageviewer.conf | 2 +- config/emulators/pc.conf | 2 +- config/emulators/pcenginecd.conf | 2 +- config/emulators/pico-8.conf | 2 +- config/emulators/snesmsu1.conf | 4 ++-- config/emulators/tic-80.conf | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/config/emulators/3ds.conf b/config/emulators/3ds.conf index 779b95ae8..9ea1a9d3f 100644 --- a/config/emulators/3ds.conf +++ b/config/emulators/3ds.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="3ds" -SYSTEM_FULLNAME="3DS" +SYSTEM_FULLNAME="Nintendo 3DS" SYSTEM_MANUFACTURER="Nintendo" SYSTEM_RELEASE="2010" SYSTEM_HARDWARE="portable" @@ -7,5 +7,5 @@ SYSTEM_PATH="/storage/roms/3ds" SYSTEM_EXTENSION=".3ds .3dsx .elf .axf .cci .cxi .app" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="3ds" -SYSTEM_THEME="n3ds" +SYSTEM_THEME="3ds" SYSTEM_WIKI_PATH="3ds" diff --git a/config/emulators/channelf.conf b/config/emulators/channelf.conf index 43716e42d..f5dcbb9d6 100644 --- a/config/emulators/channelf.conf +++ b/config/emulators/channelf.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="channelf" -SYSTEM_FULLNAME="Channel F" +SYSTEM_FULLNAME="Fairchild Channel F" SYSTEM_MANUFACTURER="Fairchild" SYSTEM_RELEASE="1976" SYSTEM_HARDWARE="console" diff --git a/config/emulators/cps1.conf b/config/emulators/cps1.conf index b7717f9f5..a4c1155b8 100644 --- a/config/emulators/cps1.conf +++ b/config/emulators/cps1.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps1" -SYSTEM_FULLNAME="CPS I" +SYSTEM_FULLNAME="CPS-I" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1988" SYSTEM_HARDWARE="arcade" diff --git a/config/emulators/cps2.conf b/config/emulators/cps2.conf index fe1cd44bb..c4a63a22a 100644 --- a/config/emulators/cps2.conf +++ b/config/emulators/cps2.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps2" -SYSTEM_FULLNAME="CPS II" +SYSTEM_FULLNAME="CPS-II" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1993" SYSTEM_HARDWARE="arcade" diff --git a/config/emulators/cps3.conf b/config/emulators/cps3.conf index d38377375..9f969c253 100644 --- a/config/emulators/cps3.conf +++ b/config/emulators/cps3.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="cps3" -SYSTEM_FULLNAME="CPS III" +SYSTEM_FULLNAME="CPS-III" SYSTEM_MANUFACTURER="Capcom" SYSTEM_RELEASE="1996" SYSTEM_HARDWARE="arcade" diff --git a/config/emulators/imageviewer.conf b/config/emulators/imageviewer.conf index 7befe2fee..e1647b249 100644 --- a/config/emulators/imageviewer.conf +++ b/config/emulators/imageviewer.conf @@ -7,5 +7,5 @@ SYSTEM_PATH="/storage/roms/screenshots" SYSTEM_EXTENSION=".jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi" SYSTEM_COMMAND="/usr/bin/true" SYSTEM_PLATFORM="imageviewer" -SYSTEM_THEME="screenshots" +SYSTEM_THEME="imageviewer" SYSTEM_WIKI_PATH="screenshots" diff --git a/config/emulators/pc.conf b/config/emulators/pc.conf index c19426c9e..a3066b13e 100644 --- a/config/emulators/pc.conf +++ b/config/emulators/pc.conf @@ -7,5 +7,5 @@ SYSTEM_PATH="/storage/roms/pc" SYSTEM_EXTENSION=".com .bat .exe .dosz" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pc" -SYSTEM_THEME="dos" +SYSTEM_THEME="pc" SYSTEM_WIKI_PATH="dos" diff --git a/config/emulators/pcenginecd.conf b/config/emulators/pcenginecd.conf index 35b6ae93e..ea1dae12d 100644 --- a/config/emulators/pcenginecd.conf +++ b/config/emulators/pcenginecd.conf @@ -7,5 +7,5 @@ SYSTEM_PATH="/storage/roms/pcenginecd" SYSTEM_EXTENSION=".cue .ccd .chd .toc .m3u" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pcenginecd" -SYSTEM_THEME="pcenginecd" +SYSTEM_THEME="pce-cd" SYSTEM_WIKI_PATH="pcengine" diff --git a/config/emulators/pico-8.conf b/config/emulators/pico-8.conf index bfc744f84..151d3cc9f 100644 --- a/config/emulators/pico-8.conf +++ b/config/emulators/pico-8.conf @@ -7,5 +7,5 @@ SYSTEM_PATH="/storage/roms/pico-8" SYSTEM_EXTENSION=".p8 .png" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="pico-8" -SYSTEM_THEME="pico-8" +SYSTEM_THEME="pico8" SYSTEM_WIKI_PATH="pico-8" diff --git a/config/emulators/snesmsu1.conf b/config/emulators/snesmsu1.conf index b4a45ddaf..8e1c6b6af 100644 --- a/config/emulators/snesmsu1.conf +++ b/config/emulators/snesmsu1.conf @@ -1,5 +1,5 @@ SYSTEM_NAME="snesmsu1" -SYSTEM_FULLNAME="MSU-1" +SYSTEM_FULLNAME="Super NES MSU-1" SYSTEM_MANUFACTURER="Nintendo" SYSTEM_RELEASE="2012" SYSTEM_HARDWARE="console" @@ -7,5 +7,5 @@ SYSTEM_PATH="/storage/roms/snesmsu1" SYSTEM_EXTENSION=".smc .fig .sfc .swc .zip .7z" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="snesmsu1 snes" -SYSTEM_THEME="snesmsu1" +SYSTEM_THEME="snes-msu1" SYSTEM_WIKI_PATH="snes" diff --git a/config/emulators/tic-80.conf b/config/emulators/tic-80.conf index 0bd92ff03..b6af37bfc 100644 --- a/config/emulators/tic-80.conf +++ b/config/emulators/tic-80.conf @@ -7,5 +7,5 @@ SYSTEM_PATH="/storage/roms/tic-80" SYSTEM_EXTENSION=".tic" SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\"" SYSTEM_PLATFORM="tic80" -SYSTEM_THEME="tic-80" +SYSTEM_THEME="tic80" SYSTEM_WIKI_PATH="tic-80" From 311e884c1c8fef37a40a6f58c612e1cec8f8e4f4 Mon Sep 17 00:00:00 2001 From: adamg Date: Wed, 8 Nov 2023 18:29:06 +0000 Subject: [PATCH 100/112] rtk_hciattach: do not attempt to start systemd service if the device node is not present as this is blocking bluetooth on other devices --- packages/tools/rtk_hciattach/system.d/hciattach-realtek.service | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/tools/rtk_hciattach/system.d/hciattach-realtek.service b/packages/tools/rtk_hciattach/system.d/hciattach-realtek.service index c48dad498..36c903463 100644 --- a/packages/tools/rtk_hciattach/system.d/hciattach-realtek.service +++ b/packages/tools/rtk_hciattach/system.d/hciattach-realtek.service @@ -2,6 +2,7 @@ Description=Attach /dev/ttyS1 to BlueZ stack Before=bluetooth-agent.service PartOf=bluetooth.service +ConditionPathExists=/dev/ttyS1 [Service] Type=simple From 4b68e2bbc7a2076e8ccd3d32bf49156c52ccde89 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Tue, 7 Nov 2023 17:18:27 +0100 Subject: [PATCH 101/112] Fix 351 usb controller find and replace --- .../standalone/mednafen/scripts/mednafen_gen_config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh index af492c456..54b4367e4 100644 --- a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -100,7 +100,7 @@ for CONTROL in DEVICE_BTN_AL_DOWN DEVICE_BTN_AL_UP DEVICE_BTN_AL_LEFT \ DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT do - sed -i -e "s/@${CONTROL}@//g" $MEDNAFEN_HOME/mednafen.cfg + sed -i -e "s/@${CONTROL}@/${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg done else From 40e8e6df2eb6927a2437235f726276fb57698d04 Mon Sep 17 00:00:00 2001 From: "asoderq/sydarn(2)" Date: Wed, 8 Nov 2023 22:00:00 +0100 Subject: [PATCH 102/112] mednafen bugfixes --- .../mednafen/config/common/mednafen.cfg | 42 +++++++++---------- .../mednafen/scripts/mednafen_gen_config.sh | 8 ++-- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg index eac60471c..c22b40558 100644 --- a/packages/emulators/standalone/mednafen/config/common/mednafen.cfg +++ b/packages/emulators/standalone/mednafen/config/common/mednafen.cfg @@ -546,19 +546,19 @@ ffspeed 15 fftoggle 1 ;Format string for movie filename. -filesys.fname_movie %f.%M%p.%x +filesys.fname_movie %f.%M%p.mednafen.%x ;Format string for save games filename. -filesys.fname_sav %f.%M%x +filesys.fname_sav %f.mednafen.%M%x ;Format string for save game backups filename. -filesys.fname_savbackup %f.%m%z%p.%x +filesys.fname_savbackup %f.%m%z%p.mednafen.%x ;Format string for screen snapshot filenames. -filesys.fname_snap %f-%p.%x +filesys.fname_snap %f-%p.mednafen.%x ;Format string for state filename. -filesys.fname_state %f.%M%X +filesys.fname_state %f.mednafen.%M%X ;Enable old handling of .gz file extensions with respect to data file path construction. filesys.old_gz_naming 0 @@ -726,7 +726,7 @@ gb.yscale 6.000000 gb.yscalefs 1.000000 ;Path to optional GBA BIOS ROM image. -gba.bios /storage/roms/bios/gba_bios.bin +gba.bios gba_bios.bin ;Enable (automatic) usage of this module. gba.enable 1 @@ -1047,7 +1047,7 @@ lynx.yscale 6.000000 lynx.yscalefs 1.000000 ;Path to the CD BIOS -md.cdbios /storage/roms/bios/us_scd1_9210.bin +md.cdbios us_scd1_9210.bin ;Correct the aspect ratio. md.correct_aspect 1 @@ -3306,7 +3306,7 @@ pce.adpcmvolume 100 pce.arcadecard 1 ;Path to the CD BIOS -pce.cdbios /storage/roms/bios/syscard3.pce +pce.cdbios syscard3.pce ;CD-DA volume. pce.cddavolume 100 @@ -3339,7 +3339,7 @@ pce.forcemono 0 pce.forcesgx 0 ;Path to the GE CD BIOS -pce.gecdbios /storage/roms/bios/gecard.pce +pce.gecdbios gecard.pce ;Show horizontal overscan area. pce.h_overscan 0 @@ -4125,7 +4125,7 @@ pce_fast.adpcmvolume 100 pce_fast.arcadecard 1 ;Path to the CD BIOS -pce_fast.cdbios /storage/roms/bios/syscard3.pce +pce_fast.cdbios syscard3.pce ;CD-DA volume. pce_fast.cddavolume 100 @@ -4608,7 +4608,7 @@ pcfx.adpcm.emulate_buggy_codec 0 pcfx.adpcm.suppress_channel_reset_clicks 1 ;Path to the ROM BIOS -pcfx.bios /storage/roms/bios/pcfx.rom +pcfx.bios pcfx.rom ;Emulated CD-ROM speed. pcfx.cdspeed 2 @@ -7363,11 +7363,11 @@ apple2.yscale 4.000000 apple2.yscalefs 1.000000 -psx.bios_eu /storage/roms/bios/scph5502.bin +psx.bios_eu scph5502.bin -psx.bios_jp /storage/roms/bios/scph5500.bin +psx.bios_jp scph5500.bin -psx.bios_na /storage/roms/bios/scph5501.bin +psx.bios_na scph5501.bin psx.bios_sanity 1 @@ -9815,25 +9815,25 @@ sasplay.yscalefs 1.000000 ss.affinity.vdp2 0 -ss.bios_jp /storage/roms/bios/sega_101.bin +ss.bios_jp sega_101.bin -ss.bios_na_eu /storage/roms/bios/mpr-17933.bin +ss.bios_na_eu mpr-17933.bin ss.bios_sanity 1 -ss.bios_stv_eu /storage/roms/bios/epr-17954a.ic8 +ss.bios_stv_eu epr-17954a.ic8 -ss.bios_stv_jp /storage/roms/bios/epr-20091.ic8 +ss.bios_stv_jp epr-20091.ic8 -ss.bios_stv_na /storage/roms/bios/epr-17952a.ic8 +ss.bios_stv_na epr-17952a.ic8 ss.cart auto ss.cart.auto_default backup -ss.cart.kof95_path /storage/roms/bios/mpr-18811-mx.ic1 +ss.cart.kof95_path mpr-18811-mx.ic1 -ss.cart.ultraman_path /storage/roms/bios/mpr-19367-mx.ic1 +ss.cart.ultraman_path mpr-19367-mx.ic1 ss.cd_sanity 1 diff --git a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh index 54b4367e4..357c46854 100644 --- a/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh +++ b/packages/emulators/standalone/mednafen/scripts/mednafen_gen_config.sh @@ -76,10 +76,10 @@ do sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg done -DEVICE_BTN_DPAD_UP="abs_7-" -DEVICE_BTN_DPAD_DOWN="abs_7+" -DEVICE_BTN_DPAD_LEFT="abs_6-" -DEVICE_BTN_DPAD_RIGHT="abs_6+" +DEVICE_BTN_DPAD_UP="abs_6-" +DEVICE_BTN_DPAD_DOWN="abs_6+" +DEVICE_BTN_DPAD_LEFT="abs_5-" +DEVICE_BTN_DPAD_RIGHT="abs_5+" # These inputs are probably prefixed with something else than button_ # Just null out the sticks until it is supported in the controller profile From 1e6acd5cb74c1fc2d9477881f5d229e85a9381a4 Mon Sep 17 00:00:00 2001 From: anthonycaccese Date: Wed, 8 Nov 2023 16:46:09 -0500 Subject: [PATCH 103/112] Update package.mk --- packages/themes/es-theme-art-book-next/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index 92bc37d56..b21f1b279 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="es-theme-art-book-next" -PKG_VERSION="81a1a9bc1985e5ba40c081fd1eec0544d7f7556c" +PKG_VERSION="5b34520a1c54e229596f07c91525dff4a8e08762" PKG_ARCH="any" PKG_LICENSE="CUSTOM" PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos" From 4c9421b4228aa2213c6b785f52ebfc64534543cf Mon Sep 17 00:00:00 2001 From: mason Date: Wed, 8 Nov 2023 23:46:18 +0000 Subject: [PATCH 104/112] RK3399 kernel config cleanup --- .../devices/RK3399/linux/linux.aarch64.conf | 735 ++++-------------- 1 file changed, 137 insertions(+), 598 deletions(-) diff --git a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf index 2957660a5..9c6baf34d 100644 --- a/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RK3399/linux/linux.aarch64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.1.61 Kernel Configuration +# Linux/arm64 6.1.62 Kernel Configuration # CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnueabi-gcc-12.3.0 (GCC) 12.3.0" CONFIG_CC_IS_GCC=y @@ -82,7 +82,7 @@ CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y # CONFIG_NO_HZ_FULL is not set -# CONFIG_NO_HZ is not set +CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem @@ -163,11 +163,11 @@ CONFIG_BLK_CGROUP=y CONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y -CONFIG_CFS_BANDWIDTH=y +# CONFIG_CFS_BANDWIDTH is not set # CONFIG_RT_GROUP_SCHED is not set CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set -CONFIG_CGROUP_FREEZER=y +# CONFIG_CGROUP_FREEZER is not set CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y @@ -218,7 +218,7 @@ CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y -CONFIG_SGETMASK_SYSCALL=y +# CONFIG_SGETMASK_SYSCALL is not set CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y @@ -495,14 +495,14 @@ CONFIG_CMDLINE="" # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -CONFIG_SUSPEND_SKIP_SYNC=y +# CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y -CONFIG_HIBERNATION_SNAPSHOT_DEV=y +# CONFIG_HIBERNATION_SNAPSHOT_DEV is not set CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_AUTOSLEEP=y +# CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y @@ -689,9 +689,9 @@ CONFIG_GCC_PLUGINS=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y -CONFIG_MODULE_FORCE_LOAD=y +# CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set @@ -920,53 +920,31 @@ CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_UNIX_SCM=y CONFIG_AF_UNIX_OOB=y -CONFIG_UNIX_DIAG=m +# CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set -CONFIG_XFRM=y -CONFIG_XFRM_ALGO=y -CONFIG_XFRM_USER=y -# CONFIG_XFRM_INTERFACE is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -CONFIG_XFRM_AH=y -CONFIG_XFRM_ESP=y -CONFIG_XFRM_IPCOMP=y -CONFIG_NET_KEY=y -# CONFIG_NET_KEY_MIGRATE is not set +# CONFIG_XFRM_USER is not set +# CONFIG_NET_KEY is not set # CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_ROUTE_CLASSID=y +# CONFIG_IP_ADVANCED_ROUTER is not set # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m # CONFIG_NET_IPGRE_BROADCAST is not set -CONFIG_IP_MROUTE_COMMON=y -CONFIG_IP_MROUTE=y -CONFIG_IP_MROUTE_MULTIPLE_TABLES=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_SYN_COOKIES=y +# CONFIG_IP_MROUTE is not set +# CONFIG_SYN_COOKIES is not set # CONFIG_NET_IPVTI is not set CONFIG_NET_UDP_TUNNEL=m # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set -CONFIG_INET_AH=y -CONFIG_INET_ESP=y -# CONFIG_INET_ESP_OFFLOAD is not set -# CONFIG_INET_ESPINTCP is not set -CONFIG_INET_IPCOMP=y +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set CONFIG_INET_TABLE_PERTURB_ORDER=16 -CONFIG_INET_XFRM_TUNNEL=y -CONFIG_INET_TUNNEL=y +CONFIG_INET_TUNNEL=m # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m @@ -1021,23 +999,20 @@ CONFIG_BRIDGE_NETFILTER=m # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y -CONFIG_NETFILTER_FAMILY_ARP=y -CONFIG_NETFILTER_NETLINK_ACCT=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_NETLINK_OSF=m +# CONFIG_NETFILTER_NETLINK_ACCT is not set +# CONFIG_NETFILTER_NETLINK_QUEUE is not set +# CONFIG_NETFILTER_NETLINK_LOG is not set +# CONFIG_NETFILTER_NETLINK_OSF is not set CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_SYSLOG=m -CONFIG_NETFILTER_CONNCOUNT=m -CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_MARK is not set # CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y # CONFIG_NF_CONNTRACK_TIMEOUT is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set -CONFIG_NF_CONNTRACK_LABELS=y +# CONFIG_NF_CONNTRACK_LABELS is not set CONFIG_NF_CT_PROTO_DCCP=y CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y @@ -1053,9 +1028,7 @@ CONFIG_NF_CT_PROTO_UDPLITE=y # CONFIG_NF_CONNTRACK_TFTP is not set # CONFIG_NF_CT_NETLINK is not set CONFIG_NF_NAT=m -CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_MASQUERADE=y -CONFIG_NETFILTER_SYNPROXY=m # CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=y CONFIG_NETFILTER_XTABLES_COMPAT=y @@ -1063,167 +1036,114 @@ CONFIG_NETFILTER_XTABLES_COMPAT=y # # Xtables combined modules # -CONFIG_NETFILTER_XT_MARK=m -CONFIG_NETFILTER_XT_CONNMARK=m +# CONFIG_NETFILTER_XT_MARK is not set +# CONFIG_NETFILTER_XT_CONNMARK is not set # # Xtables targets # CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_CT=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HL=m -CONFIG_NETFILTER_XT_TARGET_HMARK=m -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m -CONFIG_NETFILTER_XT_TARGET_LED=m +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set +# CONFIG_NETFILTER_XT_TARGET_HL is not set +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set +# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set +# CONFIG_NETFILTER_XT_TARGET_LED is not set CONFIG_NETFILTER_XT_TARGET_LOG=m -CONFIG_NETFILTER_XT_TARGET_MARK=m +# CONFIG_NETFILTER_XT_TARGET_MARK is not set CONFIG_NETFILTER_XT_NAT=m -CONFIG_NETFILTER_XT_TARGET_NETMAP=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m -CONFIG_NETFILTER_XT_TARGET_TEE=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set # # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_BPF=m -CONFIG_NETFILTER_XT_MATCH_CGROUP=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +# CONFIG_NETFILTER_XT_MATCH_BPF is not set +# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_CPU=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ECN=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPCOMP=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m -CONFIG_NETFILTER_XT_MATCH_L2TP=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_NFACCT=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +# CONFIG_NETFILTER_XT_MATCH_ECN is not set +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_HELPER is not set +# CONFIG_NETFILTER_XT_MATCH_HL is not set +# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set +# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set +# CONFIG_NETFILTER_XT_MATCH_L2TP is not set +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_MAC is not set +# CONFIG_NETFILTER_XT_MATCH_MARK is not set +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set +# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set +# CONFIG_NETFILTER_XT_MATCH_STATE is not set +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set +# CONFIG_NETFILTER_XT_MATCH_STRING is not set +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +# CONFIG_NETFILTER_XT_MATCH_TIME is not set +# CONFIG_NETFILTER_XT_MATCH_U32 is not set # end of Core Netfilter Configuration # CONFIG_IP_SET is not set -CONFIG_IP_VS=m -# CONFIG_IP_VS_IPV6 is not set -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_AH_ESP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_SCTP=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_FO=m -CONFIG_IP_VS_OVF=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -# CONFIG_IP_VS_MH is not set -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m -# CONFIG_IP_VS_TWOS is not set - -# -# IPVS SH scheduler -# -CONFIG_IP_VS_SH_TAB_BITS=8 - -# -# IPVS MH scheduler -# -CONFIG_IP_VS_MH_TAB_INDEX=12 - -# -# IPVS application helper -# -CONFIG_IP_VS_NFCT=y +# CONFIG_IP_VS is not set # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_SOCKET_IPV4=m -CONFIG_NF_TPROXY_IPV4=m -CONFIG_NF_DUP_IPV4=m -CONFIG_NF_LOG_ARP=m +# CONFIG_NF_SOCKET_IPV4 is not set +# CONFIG_NF_TPROXY_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set +# CONFIG_NF_LOG_ARP is not set CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_RPFILTER=m -CONFIG_IP_NF_MATCH_TTL=m +# CONFIG_IP_NF_MATCH_AH is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_RPFILTER is not set +# CONFIG_IP_NF_MATCH_TTL is not set CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_SYNPROXY=m +# CONFIG_IP_NF_TARGET_SYNPROXY is not set CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m +# CONFIG_IP_NF_TARGET_NETMAP is not set +# CONFIG_IP_NF_TARGET_REDIRECT is not set CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_TTL is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_ARPTABLES is not set # end of IP: Netfilter Configuration # @@ -1250,13 +1170,10 @@ CONFIG_NF_DEFRAG_IPV6=m CONFIG_STP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y -# CONFIG_BRIDGE_VLAN_FILTERING is not set # CONFIG_BRIDGE_MRP is not set # CONFIG_BRIDGE_CFM is not set # CONFIG_NET_DSA is not set -CONFIG_VLAN_8021Q=y -# CONFIG_VLAN_8021Q_GVRP is not set -# CONFIG_VLAN_8021Q_MVRP is not set +# CONFIG_VLAN_8021Q is not set CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_ATALK is not set @@ -1269,18 +1186,14 @@ CONFIG_LLC=m # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set -CONFIG_OPENVSWITCH=m -CONFIG_OPENVSWITCH_GRE=m -CONFIG_OPENVSWITCH_VXLAN=m +# CONFIG_OPENVSWITCH is not set # CONFIG_VSOCKETS is not set # CONFIG_NETLINK_DIAG is not set -CONFIG_MPLS=y -CONFIG_NET_MPLS_GSO=m -# CONFIG_MPLS_ROUTING is not set -CONFIG_NET_NSH=m +# CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set -CONFIG_NET_L3_MASTER_DEV=y +# CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set CONFIG_PCPU_DEV_REFCNT=y @@ -1288,8 +1201,8 @@ CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_SOCK_RX_QUEUE_MAPPING=y CONFIG_XPS=y -CONFIG_CGROUP_NET_PRIO=y -CONFIG_CGROUP_NET_CLASSID=y +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_NET_CLASSID is not set CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y # CONFIG_BPF_STREAM_PARSER is not set @@ -1303,18 +1216,12 @@ CONFIG_NET_FLOW_LIMIT=y # end of Networking options # CONFIG_HAMRADIO is not set -CONFIG_CAN=y -CONFIG_CAN_RAW=y -CONFIG_CAN_BCM=y -CONFIG_CAN_GW=y -# CONFIG_CAN_J1939 is not set -# CONFIG_CAN_ISOTP is not set +# CONFIG_CAN is not set CONFIG_BT=m CONFIG_BT_BREDR=y CONFIG_BT_RFCOMM=y # CONFIG_BT_RFCOMM_TTY is not set # CONFIG_BT_BNEP is not set -# CONFIG_BT_CMTP is not set CONFIG_BT_HIDP=y CONFIG_BT_HS=y CONFIG_BT_LE=y @@ -1356,7 +1263,6 @@ CONFIG_BT_MRVL_SDIO=m # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set # CONFIG_MCTP is not set -CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y @@ -1394,9 +1300,7 @@ CONFIG_RFKILL_INPUT=y CONFIG_RFKILL_GPIO=m # CONFIG_NET_9P is not set # CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set # CONFIG_PSAMPLE is not set # CONFIG_NET_IFE is not set @@ -1521,7 +1425,6 @@ CONFIG_OF_OVERLAY=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set -CONFIG_CDROM=y CONFIG_ZRAM=y CONFIG_ZRAM_DEF_COMP_LZORLE=y # CONFIG_ZRAM_DEF_COMP_LZ4 is not set @@ -1535,8 +1438,8 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_BLK_DEV_RBD=m +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_RBD is not set # CONFIG_BLK_DEV_UBLK is not set # @@ -1563,7 +1466,7 @@ CONFIG_BLK_DEV_RBD=m # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set -CONFIG_SRAM=y +# CONFIG_SRAM is not set # CONFIG_XILINX_SDFEC is not set # CONFIG_HISI_HIKEY_USB is not set # CONFIG_OPEN_DICE is not set @@ -1577,7 +1480,7 @@ CONFIG_SRAM=y # CONFIG_EEPROM_AT25 is not set # CONFIG_EEPROM_LEGACY is not set # CONFIG_EEPROM_MAX6875 is not set -CONFIG_EEPROM_93CX6=y +CONFIG_EEPROM_93CX6=m # CONFIG_EEPROM_93XX46 is not set # CONFIG_EEPROM_IDT_89HPESX is not set # CONFIG_EEPROM_EE1004 is not set @@ -1613,7 +1516,7 @@ CONFIG_SCSI_DMA=y # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set -CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR is not set # CONFIG_CHR_DEV_SG is not set CONFIG_BLK_DEV_BSG=y # CONFIG_CHR_DEV_SCH is not set @@ -1651,12 +1554,9 @@ CONFIG_WIREGUARD=m # CONFIG_WIREGUARD_DEBUG is not set # CONFIG_EQUALIZER is not set # CONFIG_NET_TEAM is not set -CONFIG_MACVLAN=y -# CONFIG_MACVTAP is not set -CONFIG_IPVLAN_L3S=y -CONFIG_IPVLAN=m -# CONFIG_IPVTAP is not set -CONFIG_VXLAN=m +# CONFIG_MACVLAN is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set # CONFIG_GENEVE is not set # CONFIG_BAREUDP is not set # CONFIG_GTP is not set @@ -1726,49 +1626,6 @@ CONFIG_ROCKCHIP_PHY=y # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set # CONFIG_PSE_CONTROLLER is not set -CONFIG_CAN_DEV=y -# CONFIG_CAN_VCAN is not set -# CONFIG_CAN_VXCAN is not set -CONFIG_CAN_NETLINK=y -CONFIG_CAN_CALC_BITTIMING=y -# CONFIG_CAN_CAN327 is not set -# CONFIG_CAN_FLEXCAN is not set -# CONFIG_CAN_GRCAN is not set -# CONFIG_CAN_SLCAN is not set -# CONFIG_CAN_XILINXCAN is not set -# CONFIG_CAN_C_CAN is not set -# CONFIG_CAN_CC770 is not set -# CONFIG_CAN_CTUCANFD_PLATFORM is not set -# CONFIG_CAN_IFI_CANFD is not set -# CONFIG_CAN_M_CAN is not set -CONFIG_CAN_SJA1000=y -# CONFIG_CAN_SJA1000_ISA is not set -# CONFIG_CAN_SJA1000_PLATFORM is not set -# CONFIG_CAN_SOFTING is not set - -# -# CAN SPI interfaces -# -# CONFIG_CAN_HI311X is not set -# CONFIG_CAN_MCP251X is not set -# CONFIG_CAN_MCP251XFD is not set -# end of CAN SPI interfaces - -# -# CAN USB interfaces -# -# CONFIG_CAN_8DEV_USB is not set -# CONFIG_CAN_EMS_USB is not set -# CONFIG_CAN_ESD_USB is not set -# CONFIG_CAN_ETAS_ES58X is not set -# CONFIG_CAN_GS_USB is not set -# CONFIG_CAN_KVASER_USB is not set -# CONFIG_CAN_MCBA_USB is not set -# CONFIG_CAN_PEAK_USB is not set -# CONFIG_CAN_UCAN is not set -# end of CAN USB interfaces - -# CONFIG_CAN_DEBUG_DEVICES is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y CONFIG_FWNODE_MDIO=y @@ -1911,7 +1768,7 @@ CONFIG_LIBERTAS_THINFIRM=m # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set # CONFIG_LIBERTAS_THINFIRM_USB is not set CONFIG_MWIFIEX=m -CONFIG_MWIFIEX_SDIO=m +# CONFIG_MWIFIEX_SDIO is not set CONFIG_MWIFIEX_USB=m CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m @@ -1986,9 +1843,7 @@ CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_NETDEVSIM is not set # CONFIG_NET_FAILOVER is not set -CONFIG_ISDN=y -CONFIG_ISDN_CAPI=y -# CONFIG_MISDN is not set +# CONFIG_ISDN is not set # # Input device support @@ -1999,7 +1854,6 @@ CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=y # CONFIG_INPUT_SPARSEKMAP is not set CONFIG_INPUT_MATRIXKMAP=y -CONFIG_INPUT_VIVALDIFMAP=y # # Userland interfaces @@ -2016,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADC=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set -CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_ATKBD is not set # CONFIG_KEYBOARD_QT1050 is not set # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set @@ -2087,13 +1941,7 @@ CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_JOYSTICK_FSIA6B is not set CONFIG_JOYSTICK_SINGLEADCJOY=y # CONFIG_JOYSTICK_SENSEHAT is not set -CONFIG_INPUT_TABLET=y -# CONFIG_TABLET_USB_ACECAD is not set -# CONFIG_TABLET_USB_AIPTEK is not set -# CONFIG_TABLET_USB_HANWANG is not set -# CONFIG_TABLET_USB_KBTAB is not set -# CONFIG_TABLET_USB_PEGASUS is not set -# CONFIG_TABLET_SERIAL_WACOM4 is not set +# CONFIG_INPUT_TABLET is not set CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_AD7877 is not set @@ -2204,7 +2052,7 @@ CONFIG_INPUT_RK805_PWRKEY=y CONFIG_SERIO=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_AMBAKMI is not set -CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_LIBPS2 is not set # CONFIG_SERIO_RAW is not set # CONFIG_SERIO_ALTERA_PS2 is not set # CONFIG_SERIO_PS2MULT is not set @@ -2259,8 +2107,7 @@ CONFIG_SERIAL_OF_PLATFORM=y # Non-8250 serial port support # # CONFIG_SERIAL_AMBA_PL010 is not set -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_SERIAL_AMBA_PL011 is not set # CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set @@ -2572,7 +2419,7 @@ CONFIG_BATTERY_CW2015=y # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SAMSUNG_SDI is not set -CONFIG_BATTERY_SBS=y +# CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_MANAGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set @@ -3010,35 +2857,15 @@ CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_TPS6507X is not set # CONFIG_REGULATOR_TPS65132 is not set # CONFIG_REGULATOR_TPS6524X is not set -CONFIG_REGULATOR_VCTRL=y -CONFIG_RC_CORE=y -# CONFIG_BPF_LIRC_MODE2 is not set -CONFIG_LIRC=y -CONFIG_RC_MAP=y -CONFIG_RC_DECODERS=y -# CONFIG_IR_IMON_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_RCMM_DECODER is not set -# CONFIG_IR_SANYO_DECODER is not set -# CONFIG_IR_SHARP_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_XMP_DECODER is not set -# CONFIG_RC_DEVICES is not set +# CONFIG_REGULATOR_VCTRL is not set +# CONFIG_RC_CORE is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y # # CEC support # -# CONFIG_MEDIA_CEC_RC is not set -CONFIG_MEDIA_CEC_SUPPORT=y -# CONFIG_CEC_CH7322 is not set -CONFIG_USB_PULSE8_CEC=m -CONFIG_USB_RAINSHADOW_CEC=m +# CONFIG_MEDIA_CEC_SUPPORT is not set # end of CEC support CONFIG_MEDIA_SUPPORT=y @@ -3048,10 +2875,10 @@ CONFIG_MEDIA_SUBDRV_AUTOSELECT=y # # Media device types # -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_ANALOG_TV_SUPPORT=y -CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -CONFIG_MEDIA_RADIO_SUPPORT=y +# CONFIG_MEDIA_CAMERA_SUPPORT is not set +# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set +# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set +# CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_PLATFORM_SUPPORT=y # CONFIG_MEDIA_TEST_SUPPORT is not set @@ -3059,7 +2886,6 @@ CONFIG_MEDIA_PLATFORM_SUPPORT=y CONFIG_VIDEO_DEV=y CONFIG_MEDIA_CONTROLLER=y -CONFIG_DVB_CORE=y # # Video4Linux options @@ -3076,20 +2902,8 @@ CONFIG_V4L2_ASYNC=y # # Media controller options # -# CONFIG_MEDIA_CONTROLLER_DVB is not set # end of Media controller options -# -# Digital TV options -# -# CONFIG_DVB_MMAP is not set -# CONFIG_DVB_NET is not set -CONFIG_DVB_MAX_ADAPTERS=16 -# CONFIG_DVB_DYNAMIC_MINORS is not set -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -# CONFIG_DVB_ULE_DEBUG is not set -# end of Digital TV options - # # Media drivers # @@ -3102,23 +2916,8 @@ CONFIG_DVB_MAX_ADAPTERS=16 # Media drivers # # CONFIG_MEDIA_USB_SUPPORT is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_SHARK is not set -# CONFIG_RADIO_SHARK2 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_WL1273 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_KEENE is not set -# CONFIG_USB_MA901 is not set -# CONFIG_USB_MR800 is not set -# CONFIG_USB_RAREMONO is not set -# CONFIG_RADIO_SI470X is not set CONFIG_MEDIA_PLATFORM_DRIVERS=y CONFIG_V4L_PLATFORM_DRIVERS=y -# CONFIG_DVB_PLATFORM_DRIVERS is not set CONFIG_V4L_MEM2MEM_DRIVERS=y # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set # CONFIG_VIDEO_MUX is not set @@ -3217,11 +3016,6 @@ CONFIG_VIDEO_ROCKCHIP_ISP1=y # Xilinx media platform drivers # # CONFIG_VIDEO_XILINX is not set - -# -# MMC/SDIO DVB adapters -# -# CONFIG_SMS_SDIO_DRV is not set CONFIG_VIDEOBUF2_CORE=y CONFIG_VIDEOBUF2_V4L2=y CONFIG_VIDEOBUF2_MEMOPS=y @@ -3233,36 +3027,11 @@ CONFIG_VIDEOBUF2_DMA_SG=y # # Media ancillary drivers # -CONFIG_MEDIA_ATTACH=y - -# -# IR I2C driver auto-selected by 'Autoselect ancillary drivers' -# -# CONFIG_VIDEO_IR_I2C is not set -# CONFIG_VIDEO_CAMERA_SENSOR is not set - -# -# Lens drivers -# -# CONFIG_VIDEO_AD5820 is not set -# CONFIG_VIDEO_AK7375 is not set -# CONFIG_VIDEO_DW9714 is not set -# CONFIG_VIDEO_DW9768 is not set -# CONFIG_VIDEO_DW9807_VCM is not set -# end of Lens drivers - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set -# CONFIG_VIDEO_LM3560 is not set -# CONFIG_VIDEO_LM3646 is not set -# end of Flash devices # # Audio decoders, processors and mixers # -CONFIG_VIDEO_CS3308=m +# CONFIG_VIDEO_CS3308 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set CONFIG_VIDEO_MSP3400=m @@ -3365,214 +3134,8 @@ CONFIG_VIDEO_MSP3400=m # # Media SPI Adapters # -# CONFIG_CXD2880_SPI_DRV is not set # CONFIG_VIDEO_GS1662 is not set # end of Media SPI Adapters - -CONFIG_MEDIA_TUNER=y - -# -# Customize TV tuners -# -# CONFIG_MEDIA_TUNER_E4000 is not set -# CONFIG_MEDIA_TUNER_FC0011 is not set -# CONFIG_MEDIA_TUNER_FC0012 is not set -# CONFIG_MEDIA_TUNER_FC0013 is not set -# CONFIG_MEDIA_TUNER_FC2580 is not set -# CONFIG_MEDIA_TUNER_IT913X is not set -# CONFIG_MEDIA_TUNER_M88RS6000T is not set -# CONFIG_MEDIA_TUNER_MAX2165 is not set -CONFIG_MEDIA_TUNER_MC44S803=y -# CONFIG_MEDIA_TUNER_MSI001 is not set -# CONFIG_MEDIA_TUNER_MT2060 is not set -# CONFIG_MEDIA_TUNER_MT2063 is not set -CONFIG_MEDIA_TUNER_MT20XX=y -# CONFIG_MEDIA_TUNER_MT2131 is not set -# CONFIG_MEDIA_TUNER_MT2266 is not set -# CONFIG_MEDIA_TUNER_MXL301RF is not set -# CONFIG_MEDIA_TUNER_MXL5005S is not set -# CONFIG_MEDIA_TUNER_MXL5007T is not set -# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set -# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set -# CONFIG_MEDIA_TUNER_QT1010 is not set -# CONFIG_MEDIA_TUNER_R820T is not set -# CONFIG_MEDIA_TUNER_SI2157 is not set -CONFIG_MEDIA_TUNER_SIMPLE=y -# CONFIG_MEDIA_TUNER_TDA18212 is not set -# CONFIG_MEDIA_TUNER_TDA18218 is not set -# CONFIG_MEDIA_TUNER_TDA18250 is not set -CONFIG_MEDIA_TUNER_TDA18271=y -CONFIG_MEDIA_TUNER_TDA827X=y -CONFIG_MEDIA_TUNER_TDA8290=y -CONFIG_MEDIA_TUNER_TDA9887=y -CONFIG_MEDIA_TUNER_TEA5761=y -CONFIG_MEDIA_TUNER_TEA5767=y -# CONFIG_MEDIA_TUNER_TUA9001 is not set -CONFIG_MEDIA_TUNER_XC2028=y -CONFIG_MEDIA_TUNER_XC4000=y -CONFIG_MEDIA_TUNER_XC5000=y -# end of Customize TV tuners - -# -# Customise DVB Frontends -# - -# -# Multistandard (satellite) frontends -# -# CONFIG_DVB_M88DS3103 is not set -# CONFIG_DVB_MXL5XX is not set -# CONFIG_DVB_STB0899 is not set -# CONFIG_DVB_STB6100 is not set -# CONFIG_DVB_STV090x is not set -# CONFIG_DVB_STV0910 is not set -# CONFIG_DVB_STV6110x is not set -# CONFIG_DVB_STV6111 is not set - -# -# Multistandard (cable + terrestrial) frontends -# -# CONFIG_DVB_DRXK is not set -# CONFIG_DVB_MN88472 is not set -# CONFIG_DVB_MN88473 is not set -# CONFIG_DVB_SI2165 is not set -# CONFIG_DVB_TDA18271C2DD is not set - -# -# DVB-S (satellite) frontends -# -# CONFIG_DVB_CX24110 is not set -# CONFIG_DVB_CX24116 is not set -# CONFIG_DVB_CX24117 is not set -# CONFIG_DVB_CX24120 is not set -# CONFIG_DVB_CX24123 is not set -# CONFIG_DVB_DS3000 is not set -# CONFIG_DVB_MB86A16 is not set -# CONFIG_DVB_MT312 is not set -# CONFIG_DVB_S5H1420 is not set -# CONFIG_DVB_SI21XX is not set -# CONFIG_DVB_STB6000 is not set -# CONFIG_DVB_STV0288 is not set -# CONFIG_DVB_STV0299 is not set -# CONFIG_DVB_STV0900 is not set -# CONFIG_DVB_STV6110 is not set -# CONFIG_DVB_TDA10071 is not set -# CONFIG_DVB_TDA10086 is not set -# CONFIG_DVB_TDA8083 is not set -# CONFIG_DVB_TDA8261 is not set -# CONFIG_DVB_TDA826X is not set -# CONFIG_DVB_TS2020 is not set -# CONFIG_DVB_TUA6100 is not set -# CONFIG_DVB_TUNER_CX24113 is not set -# CONFIG_DVB_TUNER_ITD1000 is not set -# CONFIG_DVB_VES1X93 is not set -# CONFIG_DVB_ZL10036 is not set -# CONFIG_DVB_ZL10039 is not set - -# -# DVB-T (terrestrial) frontends -# -# CONFIG_DVB_AF9013 is not set -# CONFIG_DVB_CX22700 is not set -# CONFIG_DVB_CX22702 is not set -# CONFIG_DVB_CXD2820R is not set -# CONFIG_DVB_CXD2841ER is not set -# CONFIG_DVB_DIB3000MB is not set -# CONFIG_DVB_DIB3000MC is not set -# CONFIG_DVB_DIB7000M is not set -# CONFIG_DVB_DIB7000P is not set -# CONFIG_DVB_DIB9000 is not set -# CONFIG_DVB_DRXD is not set -# CONFIG_DVB_EC100 is not set -# CONFIG_DVB_L64781 is not set -# CONFIG_DVB_MT352 is not set -# CONFIG_DVB_NXT6000 is not set -# CONFIG_DVB_RTL2830 is not set -# CONFIG_DVB_RTL2832 is not set -# CONFIG_DVB_S5H1432 is not set -# CONFIG_DVB_SI2168 is not set -# CONFIG_DVB_SP887X is not set -# CONFIG_DVB_STV0367 is not set -# CONFIG_DVB_TDA10048 is not set -# CONFIG_DVB_TDA1004X is not set -# CONFIG_DVB_ZD1301_DEMOD is not set -# CONFIG_DVB_ZL10353 is not set -# CONFIG_DVB_CXD2880 is not set - -# -# DVB-C (cable) frontends -# -# CONFIG_DVB_STV0297 is not set -# CONFIG_DVB_TDA10021 is not set -# CONFIG_DVB_TDA10023 is not set -# CONFIG_DVB_VES1820 is not set - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# -# CONFIG_DVB_AU8522_DTV is not set -# CONFIG_DVB_AU8522_V4L is not set -# CONFIG_DVB_BCM3510 is not set -# CONFIG_DVB_LG2160 is not set -# CONFIG_DVB_LGDT3305 is not set -# CONFIG_DVB_LGDT3306A is not set -# CONFIG_DVB_LGDT330X is not set -# CONFIG_DVB_MXL692 is not set -# CONFIG_DVB_NXT200X is not set -# CONFIG_DVB_OR51132 is not set -# CONFIG_DVB_OR51211 is not set -# CONFIG_DVB_S5H1409 is not set -# CONFIG_DVB_S5H1411 is not set - -# -# ISDB-T (terrestrial) frontends -# -# CONFIG_DVB_DIB8000 is not set -# CONFIG_DVB_MB86A20S is not set -# CONFIG_DVB_S921 is not set - -# -# ISDB-S (satellite) & ISDB-T (terrestrial) frontends -# -# CONFIG_DVB_MN88443X is not set -# CONFIG_DVB_TC90522 is not set - -# -# Digital terrestrial only tuners/PLL -# -# CONFIG_DVB_PLL is not set -# CONFIG_DVB_TUNER_DIB0070 is not set -# CONFIG_DVB_TUNER_DIB0090 is not set - -# -# SEC control devices for DVB-S -# -# CONFIG_DVB_A8293 is not set -# CONFIG_DVB_AF9033 is not set -# CONFIG_DVB_ASCOT2E is not set -# CONFIG_DVB_ATBM8830 is not set -# CONFIG_DVB_HELENE is not set -# CONFIG_DVB_HORUS3A is not set -# CONFIG_DVB_ISL6405 is not set -# CONFIG_DVB_ISL6421 is not set -# CONFIG_DVB_ISL6423 is not set -# CONFIG_DVB_IX2505V is not set -# CONFIG_DVB_LGS8GL5 is not set -# CONFIG_DVB_LGS8GXX is not set -# CONFIG_DVB_LNBH25 is not set -# CONFIG_DVB_LNBH29 is not set -# CONFIG_DVB_LNBP21 is not set -# CONFIG_DVB_LNBP22 is not set -# CONFIG_DVB_M88RS2000 is not set -# CONFIG_DVB_TDA665x is not set -# CONFIG_DVB_DRX39XYJ is not set - -# -# Common Interface (EN50221) controller drivers -# -CONFIG_DVB_CXD2099=m -CONFIG_DVB_SP2=m -# end of Customise DVB Frontends # end of Media ancillary drivers # @@ -4426,27 +3989,7 @@ CONFIG_USB_F_ACM=y CONFIG_USB_U_SERIAL=y CONFIG_USB_F_SERIAL=y CONFIG_USB_F_OBEX=y -CONFIG_USB_F_MASS_STORAGE=y -CONFIG_USB_F_FS=y -CONFIG_USB_CONFIGFS=y -# CONFIG_USB_CONFIGFS_SERIAL is not set -CONFIG_USB_CONFIGFS_ACM=y -# CONFIG_USB_CONFIGFS_OBEX is not set -# CONFIG_USB_CONFIGFS_NCM is not set -# CONFIG_USB_CONFIGFS_ECM is not set -# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set -# CONFIG_USB_CONFIGFS_RNDIS is not set -# CONFIG_USB_CONFIGFS_EEM is not set -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -# CONFIG_USB_CONFIGFS_F_LB_SS is not set -CONFIG_USB_CONFIGFS_F_FS=y -# CONFIG_USB_CONFIGFS_F_UAC1 is not set -# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set -# CONFIG_USB_CONFIGFS_F_UAC2 is not set -# CONFIG_USB_CONFIGFS_F_MIDI is not set -# CONFIG_USB_CONFIGFS_F_HID is not set -# CONFIG_USB_CONFIGFS_F_UVC is not set -# CONFIG_USB_CONFIGFS_F_PRINTER is not set +# CONFIG_USB_CONFIGFS is not set # # USB Gadget precomposed configurations @@ -6268,10 +5811,6 @@ CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_DECOMPRESS_ZSTD=y CONFIG_GENERIC_ALLOCATOR=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y From f2c7160b89951e08efeb8c77dd523cc1da734256 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 9 Nov 2023 11:28:10 +0000 Subject: [PATCH 105/112] Improve AMD64 optimization without breaking compatibility. --- config/arch.x86_64 | 9 +- .../libretro/vitaquake2-lr/package.mk | 1 + .../{ => aarch64}/001-set-platform.patch | 0 .../patches/x86_64/001-set-platform.patch | 18 + .../PC/devices/AMD64/linux/linux.x86_64.conf | 10 +- projects/PC/devices/AMD64/options | 11 +- .../PC/devices/INTEL64/linux/linux.i686.conf | 1 - .../devices/INTEL64/linux/linux.x86_64.conf | 11487 ---------------- projects/PC/devices/INTEL64/options | 129 - 9 files changed, 36 insertions(+), 11630 deletions(-) rename packages/emulators/libretro/vitaquake2-lr/patches/{ => aarch64}/001-set-platform.patch (100%) create mode 100644 packages/emulators/libretro/vitaquake2-lr/patches/x86_64/001-set-platform.patch delete mode 120000 projects/PC/devices/INTEL64/linux/linux.i686.conf delete mode 100644 projects/PC/devices/INTEL64/linux/linux.x86_64.conf delete mode 100644 projects/PC/devices/INTEL64/options diff --git a/config/arch.x86_64 b/config/arch.x86_64 index 5448560ff..5d5922aed 100644 --- a/config/arch.x86_64 +++ b/config/arch.x86_64 @@ -1,6 +1,6 @@ # determines TARGET_CPU, if not forced by user if [ -z "${TARGET_CPU}" ]; then - TARGET_CPU=core2 + TARGET_CPU="x86-64-v3" fi # 64bit userland @@ -17,8 +17,9 @@ TARGET_KERNEL_ARCH=x86 # setup ARCH specific *FLAGS - TARGET_CFLAGS="-march=${TARGET_CPU} -mtune=${TARGET_CPU}" - TARGET_LDFLAGS="-march=${TARGET_CPU} -mtune=${TARGET_CPU}" + TARGET_CFLAGS="-march=${TARGET_CPU} -mtune=generic" + TARGET_CXXFLAGS="${TARGET_CFLAGS}" + TARGET_LDFLAGS="${TARGET_CFLAGS}" # build with SIMD support ( yes / no ) - TARGET_FEATURES+=" mmx sse sse2" +# TARGET_FEATURES+=" mmx sse sse2" diff --git a/packages/emulators/libretro/vitaquake2-lr/package.mk b/packages/emulators/libretro/vitaquake2-lr/package.mk index 24e1c4bcd..ed07e5db1 100644 --- a/packages/emulators/libretro/vitaquake2-lr/package.mk +++ b/packages/emulators/libretro/vitaquake2-lr/package.mk @@ -8,6 +8,7 @@ PKG_SITE="https://github.com/libretro/vitaquake2" PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_SHORTDESC="Libretro port of VitaQuakeII (Quake 2 engine)" +PKG_PATCH_DIRS+="${TARGET_ARCH}" if [ "${OPENGL_SUPPORT}" = "yes" ]; then PKG_DEPENDS_TARGET+=" ${OPENGL}" diff --git a/packages/emulators/libretro/vitaquake2-lr/patches/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/patches/aarch64/001-set-platform.patch similarity index 100% rename from packages/emulators/libretro/vitaquake2-lr/patches/001-set-platform.patch rename to packages/emulators/libretro/vitaquake2-lr/patches/aarch64/001-set-platform.patch diff --git a/packages/emulators/libretro/vitaquake2-lr/patches/x86_64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/patches/x86_64/001-set-platform.patch new file mode 100644 index 000000000..fdb106c44 --- /dev/null +++ b/packages/emulators/libretro/vitaquake2-lr/patches/x86_64/001-set-platform.patch @@ -0,0 +1,18 @@ +diff -rupN vitaquake2.orig/Makefile vitaquake2/Makefile +--- vitaquake2.orig/Makefile 2023-09-15 16:57:45.991890996 +0000 ++++ vitaquake2/Makefile 2023-09-15 20:08:45.856895708 +0000 +@@ -76,6 +76,14 @@ else ifeq ($(platform), linux-portable) + SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T + LIBM := + ++else ifeq ($(platform), @DEVICE@) ++ TARGET := $(TARGET_NAME)_libretro.so ++ fpic := -fPIC ++ SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T -Wl,--no-undefined ++ CFLAGS += -D_POSIX_C_SOURCE=199309L ++ GLES := 1 ++ GLES31 := 1 ++ + else ifneq (,$(findstring rockchip,$(platform))) + EXT ?= so + TARGET := $(TARGET_NAME)_libretro.$(EXT) diff --git a/projects/PC/devices/AMD64/linux/linux.x86_64.conf b/projects/PC/devices/AMD64/linux/linux.x86_64.conf index 121ae2502..823d20754 100644 --- a/projects/PC/devices/AMD64/linux/linux.x86_64.conf +++ b/projects/PC/devices/AMD64/linux/linux.x86_64.conf @@ -123,9 +123,9 @@ CONFIG_BPF_SYSCALL=y # end of BPF subsystem CONFIG_PREEMPT_BUILD=y -CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set +CONFIG_PREEMPT=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y @@ -350,15 +350,13 @@ CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_JAILHOUSE_GUEST=y CONFIG_ACRN_GUEST=y CONFIG_INTEL_TDX_GUEST=y -CONFIG_MK8=y +# CONFIG_MK8 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set -# CONFIG_GENERIC_CPU is not set +CONFIG_GENERIC_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_INTEL_USERCOPY=y -CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y diff --git a/projects/PC/devices/AMD64/options b/projects/PC/devices/AMD64/options index c343a38c2..22c1060f3 100644 --- a/projects/PC/devices/AMD64/options +++ b/projects/PC/devices/AMD64/options @@ -1,9 +1,14 @@ case ${TARGET_ARCH} in - x86_64|i686) + x86_64) if [ -z "${TARGET_CPU}" ] then - # Zen version 1 - TARGET_CPU="znver1" + TARGET_CPU="x86-64-v3" + fi + ;; + i686) + if [ -z "${TARGET_CPU}" ] + then + TARGET_CPU="i686" fi ;; esac diff --git a/projects/PC/devices/INTEL64/linux/linux.i686.conf b/projects/PC/devices/INTEL64/linux/linux.i686.conf deleted file mode 120000 index cfe5f551c..000000000 --- a/projects/PC/devices/INTEL64/linux/linux.i686.conf +++ /dev/null @@ -1 +0,0 @@ -linux.x86_64.conf \ No newline at end of file diff --git a/projects/PC/devices/INTEL64/linux/linux.x86_64.conf b/projects/PC/devices/INTEL64/linux/linux.x86_64.conf deleted file mode 100644 index d425b5f1b..000000000 --- a/projects/PC/devices/INTEL64/linux/linux.x86_64.conf +++ /dev/null @@ -1,11487 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Linux/x86 6.5.10 Kernel Configuration -# -CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" -CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=110400 -CONFIG_CLANG_VERSION=0 -CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23800 -CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23800 -CONFIG_LLD_VERSION=0 -CONFIG_CC_CAN_LINK=y -CONFIG_CC_CAN_LINK_STATIC=y -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y -CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y -CONFIG_TOOLS_SUPPORT_RELR=y -CONFIG_CC_HAS_ASM_INLINE=y -CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_PAHOLE_VERSION=0 -CONFIG_IRQ_WORK=y -CONFIG_BUILDTIME_TABLE_SORT=y -CONFIG_THREAD_INFO_IN_TASK=y - -# -# General setup -# -CONFIG_INIT_ENV_ARG_LIMIT=32 -# CONFIG_COMPILE_TEST is not set -# CONFIG_WERROR is not set -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_BUILD_SALT="" -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_XZ=y -CONFIG_HAVE_KERNEL_LZO=y -CONFIG_HAVE_KERNEL_LZ4=y -CONFIG_HAVE_KERNEL_ZSTD=y -# CONFIG_KERNEL_GZIP is not set -# CONFIG_KERNEL_BZIP2 is not set -# CONFIG_KERNEL_LZMA is not set -CONFIG_KERNEL_XZ=y -# CONFIG_KERNEL_LZO is not set -# CONFIG_KERNEL_LZ4 is not set -# CONFIG_KERNEL_ZSTD is not set -CONFIG_DEFAULT_INIT="" -CONFIG_DEFAULT_HOSTNAME="@DEVICENAME@" -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_SYSVIPC_COMPAT=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -# CONFIG_WATCH_QUEUE is not set -CONFIG_CROSS_MEMORY_ATTACH=y -# CONFIG_USELIB is not set -CONFIG_AUDIT=y -CONFIG_HAVE_ARCH_AUDITSYSCALL=y -CONFIG_AUDITSYSCALL=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_IRQ_INJECTION=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_SIM=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_IRQ_MSI_IOMMU=y -CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y -CONFIG_GENERIC_IRQ_RESERVATION_MODE=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set -# end of IRQ subsystem - -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_ARCH_CLOCKSOURCE_INIT=y -CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y - -# -# Timers subsystem -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ_COMMON=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_NO_HZ_IDLE=y -# CONFIG_NO_HZ_FULL is not set -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 -# end of Timers subsystem - -CONFIG_BPF=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y - -# -# BPF subsystem -# -CONFIG_BPF_SYSCALL=y -# CONFIG_BPF_JIT is not set -# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set -# CONFIG_BPF_PRELOAD is not set -# end of BPF subsystem - -CONFIG_PREEMPT_BUILD=y -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -CONFIG_PREEMPT_COUNT=y -CONFIG_PREEMPTION=y -CONFIG_PREEMPT_DYNAMIC=y -# CONFIG_SCHED_CORE is not set - -# -# CPU/Task time and stats accounting -# -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set -# CONFIG_IRQ_TIME_ACCOUNTING is not set -CONFIG_HAVE_SCHED_AVG_IRQ=y -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set -# CONFIG_TASKSTATS is not set -# CONFIG_PSI is not set -# end of CPU/Task time and stats accounting - -CONFIG_CPU_ISOLATION=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -CONFIG_PREEMPT_RCU=y -# CONFIG_RCU_EXPERT is not set -CONFIG_TREE_SRCU=y -CONFIG_TASKS_RCU_GENERIC=y -CONFIG_TASKS_RCU=y -CONFIG_TASKS_RUDE_RCU=y -CONFIG_TASKS_TRACE_RCU=y -CONFIG_RCU_STALL_COMMON=y -CONFIG_RCU_NEED_SEGCBLIST=y -# end of RCU Subsystem - -CONFIG_IKCONFIG=m -CONFIG_IKCONFIG_PROC=y -# CONFIG_IKHEADERS is not set -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -# CONFIG_PRINTK_INDEX is not set -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y - -# -# Scheduler features -# -# CONFIG_UCLAMP_TASK is not set -# end of Scheduler features - -CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y -CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y -CONFIG_CC_HAS_INT128=y -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC11_NO_ARRAY_BOUNDS=y -CONFIG_CC_NO_ARRAY_BOUNDS=y -CONFIG_ARCH_SUPPORTS_INT128=y -CONFIG_NUMA_BALANCING=y -CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y -CONFIG_CGROUPS=y -CONFIG_PAGE_COUNTER=y -# CONFIG_CGROUP_FAVOR_DYNMODS is not set -CONFIG_MEMCG=y -CONFIG_MEMCG_KMEM=y -CONFIG_BLK_CGROUP=y -CONFIG_CGROUP_WRITEBACK=y -CONFIG_CGROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_CFS_BANDWIDTH=y -# CONFIG_RT_GROUP_SCHED is not set -CONFIG_SCHED_MM_CID=y -# CONFIG_CGROUP_PIDS is not set -# CONFIG_CGROUP_RDMA is not set -CONFIG_CGROUP_FREEZER=y -# CONFIG_CGROUP_HUGETLB is not set -CONFIG_CPUSETS=y -CONFIG_PROC_PID_CPUSET=y -CONFIG_CGROUP_DEVICE=y -CONFIG_CGROUP_CPUACCT=y -CONFIG_CGROUP_PERF=y -CONFIG_CGROUP_BPF=y -# CONFIG_CGROUP_MISC is not set -# CONFIG_CGROUP_DEBUG is not set -CONFIG_SOCK_CGROUP_DATA=y -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_TIME_NS=y -CONFIG_IPC_NS=y -CONFIG_USER_NS=y -CONFIG_PID_NS=y -CONFIG_NET_NS=y -# CONFIG_CHECKPOINT_RESTORE is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_INITRAMFS_ROOT_UID=0 -CONFIG_INITRAMFS_ROOT_GID=0 -# CONFIG_RD_GZIP is not set -# CONFIG_RD_BZIP2 is not set -# CONFIG_RD_LZMA is not set -# CONFIG_RD_XZ is not set -# CONFIG_RD_LZO is not set -# CONFIG_RD_LZ4 is not set -CONFIG_RD_ZSTD=y -# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set -CONFIG_INITRAMFS_COMPRESSION_NONE=y -CONFIG_BOOT_CONFIG=y -# CONFIG_BOOT_CONFIG_FORCE is not set -# CONFIG_BOOT_CONFIG_EMBED is not set -# CONFIG_INITRAMFS_PRESERVE_MTIME is not set -CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_LD_ORPHAN_WARN=y -CONFIG_LD_ORPHAN_WARN_LEVEL="warn" -CONFIG_SYSCTL=y -CONFIG_HAVE_UID16=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_HAVE_PCSPKR_PLATFORM=y -CONFIG_EXPERT=y -# CONFIG_UID16 is not set -CONFIG_MULTIUSER=y -# CONFIG_SGETMASK_SYSCALL is not set -# CONFIG_SYSFS_SYSCALL is not set -CONFIG_FHANDLE=y -CONFIG_POSIX_TIMERS=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -# CONFIG_PCSPKR_PLATFORM is not set -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_FUTEX_PI=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -CONFIG_IO_URING=y -CONFIG_ADVISE_SYSCALLS=y -CONFIG_MEMBARRIER=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_SELFTEST is not set -CONFIG_KALLSYMS_ALL=y -CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y -CONFIG_KALLSYMS_BASE_RELATIVE=y -CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y -CONFIG_KCMP=y -CONFIG_RSEQ=y -CONFIG_CACHESTAT_SYSCALL=y -# CONFIG_DEBUG_RSEQ is not set -# CONFIG_EMBEDDED is not set -CONFIG_HAVE_PERF_EVENTS=y -# CONFIG_PC104 is not set - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -# end of Kernel Performance Events And Counters - -CONFIG_SYSTEM_DATA_VERIFICATION=y -# CONFIG_PROFILING is not set -CONFIG_TRACEPOINTS=y -# end of General setup - -CONFIG_64BIT=y -CONFIG_X86_64=y -CONFIG_X86=y -CONFIG_INSTRUCTION_DECODER=y -CONFIG_OUTPUT_FORMAT="elf64-x86-64" -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_MMU=y -CONFIG_ARCH_MMAP_RND_BITS_MIN=28 -CONFIG_ARCH_MMAP_RND_BITS_MAX=32 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_AUDIT_ARCH=y -CONFIG_HAVE_INTEL_TXT=y -CONFIG_X86_64_SMP=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DYNAMIC_PHYSICAL_MASK=y -CONFIG_PGTABLE_LEVELS=5 -CONFIG_CC_HAS_SANE_STACKPROTECTOR=y - -# -# Processor type and features -# -CONFIG_SMP=y -CONFIG_X86_X2APIC=y -CONFIG_X86_MPPARSE=y -# CONFIG_GOLDFISH is not set -CONFIG_X86_CPU_RESCTRL=y -# CONFIG_X86_EXTENDED_PLATFORM is not set -CONFIG_X86_INTEL_LPSS=y -CONFIG_X86_AMD_PLATFORM_DEVICE=y -CONFIG_IOSF_MBI=y -# CONFIG_IOSF_MBI_DEBUG is not set -CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_HYPERVISOR_GUEST=y -CONFIG_PARAVIRT=y -# CONFIG_PARAVIRT_DEBUG is not set -CONFIG_PARAVIRT_SPINLOCKS=y -CONFIG_X86_HV_CALLBACK_VECTOR=y -# CONFIG_XEN is not set -# CONFIG_KVM_GUEST is not set -CONFIG_ARCH_CPUIDLE_HALTPOLL=y -CONFIG_PVH=y -CONFIG_PARAVIRT_TIME_ACCOUNTING=y -CONFIG_JAILHOUSE_GUEST=y -CONFIG_ACRN_GUEST=y -CONFIG_INTEL_TDX_GUEST=y -# CONFIG_MK8 is not set -# CONFIG_MPSC is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -CONFIG_GENERIC_CPU=y -CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_TSC=y -CONFIG_X86_CMPXCHG64=y -CONFIG_X86_CMOV=y -CONFIG_X86_MINIMUM_CPU_FAMILY=64 -CONFIG_X86_DEBUGCTLMSR=y -CONFIG_IA32_FEAT_CTL=y -CONFIG_X86_VMX_FEATURE_NAMES=y -# CONFIG_PROCESSOR_SELECT is not set -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_HYGON=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_ZHAOXIN=y -CONFIG_HPET_TIMER=y -CONFIG_HPET_EMULATE_RTC=y -CONFIG_DMI=y -CONFIG_GART_IOMMU=y -CONFIG_BOOT_VESA_SUPPORT=y -# CONFIG_MAXSMP is not set -CONFIG_NR_CPUS_RANGE_BEGIN=2 -CONFIG_NR_CPUS_RANGE_END=512 -CONFIG_NR_CPUS_DEFAULT=64 -CONFIG_NR_CPUS=16 -CONFIG_SCHED_CLUSTER=y -CONFIG_SCHED_SMT=y -CONFIG_SCHED_MC=y -CONFIG_SCHED_MC_PRIO=y -CONFIG_X86_LOCAL_APIC=y -CONFIG_X86_IO_APIC=y -CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y -CONFIG_X86_MCE=y -# CONFIG_X86_MCELOG_LEGACY is not set -CONFIG_X86_MCE_INTEL=y -CONFIG_X86_MCE_AMD=y -CONFIG_X86_MCE_THRESHOLD=y -CONFIG_X86_MCE_INJECT=m - -# -# Performance monitoring -# -CONFIG_PERF_EVENTS_INTEL_UNCORE=y -CONFIG_PERF_EVENTS_INTEL_RAPL=y -CONFIG_PERF_EVENTS_INTEL_CSTATE=y -CONFIG_PERF_EVENTS_AMD_POWER=y -CONFIG_PERF_EVENTS_AMD_UNCORE=y -CONFIG_PERF_EVENTS_AMD_BRS=y -# end of Performance monitoring - -CONFIG_X86_16BIT=y -CONFIG_X86_ESPFIX64=y -CONFIG_X86_VSYSCALL_EMULATION=y -CONFIG_X86_IOPL_IOPERM=y -CONFIG_MICROCODE=y -CONFIG_MICROCODE_INTEL=y -CONFIG_MICROCODE_AMD=y -# CONFIG_MICROCODE_LATE_LOADING is not set -CONFIG_X86_MSR=y -CONFIG_X86_CPUID=y -CONFIG_X86_5LEVEL=y -CONFIG_X86_DIRECT_GBPAGES=y -CONFIG_X86_CPA_STATISTICS=y -CONFIG_X86_MEM_ENCRYPT=y -CONFIG_AMD_MEM_ENCRYPT=y -# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set -CONFIG_NUMA=y -CONFIG_AMD_NUMA=y -CONFIG_X86_64_ACPI_NUMA=y -# CONFIG_NUMA_EMU is not set -CONFIG_NODES_SHIFT=6 -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_DEFAULT=y -# CONFIG_ARCH_MEMORY_PROBE is not set -CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_X86_PMEM_LEGACY_DEVICE=y -CONFIG_X86_PMEM_LEGACY=m -CONFIG_X86_CHECK_BIOS_CORRUPTION=y -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -CONFIG_MTRR=y -CONFIG_MTRR_SANITIZER=y -CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 -CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 -CONFIG_X86_PAT=y -CONFIG_ARCH_USES_PG_UNCACHED=y -CONFIG_X86_UMIP=y -CONFIG_CC_HAS_IBT=y -CONFIG_X86_KERNEL_IBT=y -CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y -CONFIG_X86_INTEL_TSX_MODE_OFF=y -# CONFIG_X86_INTEL_TSX_MODE_ON is not set -# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set -CONFIG_X86_SGX=y -CONFIG_EFI=y -CONFIG_EFI_STUB=y -CONFIG_EFI_HANDOVER_PROTOCOL=y -CONFIG_EFI_MIXED=y -# CONFIG_EFI_FAKE_MEMMAP is not set -CONFIG_EFI_RUNTIME_MAP=y -# CONFIG_HZ_100 is not set -# CONFIG_HZ_250 is not set -CONFIG_HZ_300=y -# CONFIG_HZ_1000 is not set -CONFIG_HZ=300 -CONFIG_SCHED_HRTICK=y -CONFIG_KEXEC=y -CONFIG_KEXEC_FILE=y -CONFIG_ARCH_HAS_KEXEC_PURGATORY=y -CONFIG_KEXEC_SIG=y -# CONFIG_KEXEC_SIG_FORCE is not set -CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y -CONFIG_CRASH_DUMP=y -CONFIG_KEXEC_JUMP=y -CONFIG_PHYSICAL_START=0x1000000 -CONFIG_RELOCATABLE=y -CONFIG_RANDOMIZE_BASE=y -CONFIG_X86_NEED_RELOCS=y -CONFIG_PHYSICAL_ALIGN=0x1000000 -CONFIG_DYNAMIC_MEMORY_LAYOUT=y -CONFIG_RANDOMIZE_MEMORY=y -CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa -# CONFIG_ADDRESS_MASKING is not set -CONFIG_HOTPLUG_CPU=y -# CONFIG_COMPAT_VDSO is not set -CONFIG_LEGACY_VSYSCALL_XONLY=y -# CONFIG_LEGACY_VSYSCALL_NONE is not set -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.authorized_default=1" -# CONFIG_CMDLINE_OVERRIDE is not set -CONFIG_MODIFY_LDT_SYSCALL=y -# CONFIG_STRICT_SIGALTSTACK_SIZE is not set -CONFIG_HAVE_LIVEPATCH=y -# CONFIG_LIVEPATCH is not set -# end of Processor type and features - -CONFIG_CC_HAS_SLS=y -CONFIG_CC_HAS_RETURN_THUNK=y -CONFIG_CC_HAS_ENTRY_PADDING=y -CONFIG_FUNCTION_PADDING_CFI=11 -CONFIG_FUNCTION_PADDING_BYTES=16 -CONFIG_CALL_PADDING=y -CONFIG_HAVE_CALL_THUNKS=y -CONFIG_CALL_THUNKS=y -CONFIG_PREFIX_SYMBOLS=y -CONFIG_SPECULATION_MITIGATIONS=y -CONFIG_PAGE_TABLE_ISOLATION=y -CONFIG_RETPOLINE=y -CONFIG_RETHUNK=y -CONFIG_CPU_UNRET_ENTRY=y -CONFIG_CALL_DEPTH_TRACKING=y -# CONFIG_CALL_THUNKS_DEBUG is not set -CONFIG_CPU_IBPB_ENTRY=y -CONFIG_CPU_IBRS_ENTRY=y -CONFIG_CPU_SRSO=y -CONFIG_SLS=y -# CONFIG_GDS_FORCE_MITIGATION is not set -CONFIG_ARCH_HAS_ADD_PAGES=y -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y - -# -# Power management and ACPI options -# -CONFIG_ARCH_HIBERNATION_HEADER=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_SUSPEND_SKIP_SYNC is not set -CONFIG_HIBERNATE_CALLBACKS=y -CONFIG_HIBERNATION=y -CONFIG_HIBERNATION_SNAPSHOT_DEV=y -CONFIG_PM_STD_PARTITION="" -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_AUTOSLEEP=y -# CONFIG_PM_USERSPACE_AUTOSLEEP is not set -CONFIG_PM_WAKELOCKS=y -CONFIG_PM_WAKELOCKS_LIMIT=100 -CONFIG_PM_WAKELOCKS_GC=y -CONFIG_PM=y -CONFIG_PM_DEBUG=y -# CONFIG_PM_ADVANCED_DEBUG is not set -# CONFIG_PM_TEST_SUSPEND is not set -CONFIG_PM_SLEEP_DEBUG=y -# CONFIG_DPM_WATCHDOG is not set -CONFIG_PM_TRACE=y -CONFIG_PM_TRACE_RTC=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_ENERGY_MODEL=y -CONFIG_ARCH_SUPPORTS_ACPI=y -CONFIG_ACPI=y -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_TABLE_LIB=y -# CONFIG_ACPI_DEBUGGER is not set -CONFIG_ACPI_SPCR_TABLE=y -CONFIG_ACPI_FPDT=y -CONFIG_ACPI_LPIT=y -CONFIG_ACPI_SLEEP=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -CONFIG_ACPI_EC_DEBUGFS=m -CONFIG_ACPI_AC=y -CONFIG_ACPI_BATTERY=y -CONFIG_ACPI_BUTTON=y -CONFIG_ACPI_VIDEO=y -CONFIG_ACPI_FAN=y -CONFIG_ACPI_TAD=m -CONFIG_ACPI_DOCK=y -CONFIG_ACPI_CPU_FREQ_PSS=y -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_CPPC_LIB=y -CONFIG_ACPI_PROCESSOR=y -CONFIG_ACPI_IPMI=m -CONFIG_ACPI_HOTPLUG_CPU=y -CONFIG_ACPI_PROCESSOR_AGGREGATOR=y -CONFIG_ACPI_THERMAL=y -CONFIG_ACPI_PLATFORM_PROFILE=y -CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y -CONFIG_ACPI_TABLE_UPGRADE=y -# CONFIG_ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD is not set -CONFIG_ACPI_DEBUG=y -CONFIG_ACPI_PCI_SLOT=y -CONFIG_ACPI_CONTAINER=y -CONFIG_ACPI_HOTPLUG_MEMORY=y -CONFIG_ACPI_HOTPLUG_IOAPIC=y -CONFIG_ACPI_SBS=m -CONFIG_ACPI_HED=y -CONFIG_ACPI_CUSTOM_METHOD=m -CONFIG_ACPI_BGRT=y -# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set -CONFIG_ACPI_NFIT=m -# CONFIG_NFIT_SECURITY_DEBUG is not set -CONFIG_ACPI_NUMA=y -CONFIG_ACPI_HMAT=y -CONFIG_HAVE_ACPI_APEI=y -CONFIG_HAVE_ACPI_APEI_NMI=y -CONFIG_ACPI_APEI=y -CONFIG_ACPI_APEI_GHES=y -CONFIG_ACPI_APEI_PCIEAER=y -CONFIG_ACPI_APEI_MEMORY_FAILURE=y -CONFIG_ACPI_APEI_EINJ=m -CONFIG_ACPI_APEI_ERST_DEBUG=m -CONFIG_ACPI_DPTF=y -CONFIG_DPTF_POWER=m -CONFIG_DPTF_PCH_FIVR=m -CONFIG_ACPI_WATCHDOG=y -CONFIG_ACPI_EXTLOG=m -CONFIG_ACPI_ADXL=y -CONFIG_ACPI_CONFIGFS=m -CONFIG_ACPI_PFRUT=m -CONFIG_ACPI_PCC=y -CONFIG_ACPI_FFH=y -CONFIG_PMIC_OPREGION=y -CONFIG_BYTCRC_PMIC_OPREGION=y -CONFIG_CHTCRC_PMIC_OPREGION=y -CONFIG_XPOWER_PMIC_OPREGION=y -CONFIG_BXT_WC_PMIC_OPREGION=y -CONFIG_CHT_WC_PMIC_OPREGION=y -CONFIG_CHT_DC_TI_PMIC_OPREGION=y -CONFIG_TPS68470_PMIC_OPREGION=y -CONFIG_ACPI_VIOT=y -CONFIG_ACPI_PRMT=y -CONFIG_X86_PM_TIMER=y - -# -# CPU Frequency scaling -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_STAT=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y - -# -# CPU frequency scaling drivers -# -CONFIG_X86_INTEL_PSTATE=y -CONFIG_X86_PCC_CPUFREQ=m -CONFIG_X86_AMD_PSTATE=y -CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 -CONFIG_X86_AMD_PSTATE_UT=y -CONFIG_X86_ACPI_CPUFREQ=y -CONFIG_X86_ACPI_CPUFREQ_CPB=y -CONFIG_X86_POWERNOW_K8=y -CONFIG_X86_AMD_FREQ_SENSITIVITY=m -# CONFIG_X86_SPEEDSTEP_CENTRINO is not set -CONFIG_X86_P4_CLOCKMOD=y - -# -# shared options -# -CONFIG_X86_SPEEDSTEP_LIB=y -# end of CPU Frequency scaling - -# -# CPU Idle -# -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_IDLE_GOV_TEO=y -# end of CPU Idle - -CONFIG_INTEL_IDLE=y -# end of Power management and ACPI options - -# -# Bus options (PCI etc.) -# -CONFIG_PCI_DIRECT=y -CONFIG_PCI_MMCONFIG=y -CONFIG_MMCONF_FAM10H=y -# CONFIG_PCI_CNB20LE_QUIRK is not set -# CONFIG_ISA_BUS is not set -CONFIG_ISA_DMA_API=y -CONFIG_AMD_NB=y -# end of Bus options (PCI etc.) - -# -# Binary Emulations -# -CONFIG_IA32_EMULATION=y -# CONFIG_X86_X32_ABI is not set -CONFIG_COMPAT_32=y -CONFIG_COMPAT=y -CONFIG_COMPAT_FOR_U64_ALIGNMENT=y -# end of Binary Emulations - -CONFIG_HAVE_KVM=y -CONFIG_VIRTUALIZATION=y -# CONFIG_KVM is not set -CONFIG_AS_AVX512=y -CONFIG_AS_SHA1_NI=y -CONFIG_AS_SHA256_NI=y -CONFIG_AS_TPAUSE=y -CONFIG_AS_GFNI=y - -# -# General architecture-dependent options -# -CONFIG_CRASH_CORE=y -CONFIG_KEXEC_CORE=y -CONFIG_HOTPLUG_SMT=y -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_HOTPLUG_CORE_SYNC_FULL=y -CONFIG_HOTPLUG_SPLIT_STARTUP=y -CONFIG_HOTPLUG_PARALLEL=y -CONFIG_GENERIC_ENTRY=y -CONFIG_KPROBES=y -CONFIG_JUMP_LABEL=y -# CONFIG_STATIC_KEYS_SELFTEST is not set -# CONFIG_STATIC_CALL_SELFTEST is not set -CONFIG_OPTPROBES=y -CONFIG_KPROBES_ON_FTRACE=y -CONFIG_UPROBES=y -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_KRETPROBES=y -CONFIG_KRETPROBE_ON_RETHOOK=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_KPROBES_ON_FTRACE=y -CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y -CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y -CONFIG_HAVE_NMI=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_ARCH_HAS_FORTIFY_SOURCE=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SET_DIRECT_MAP=y -CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y -CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y -CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_HAVE_ASM_MODVERSIONS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_RUST=y -CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y -CONFIG_HAVE_USER_RETURN_NOTIFIER=y -CONFIG_HAVE_PERF_EVENTS_NMI=y -CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y -CONFIG_MMU_GATHER_TABLE_FREE=y -CONFIG_MMU_GATHER_RCU_TABLE_FREE=y -CONFIG_MMU_GATHER_MERGE_VMAS=y -CONFIG_MMU_LAZY_TLB_REFCOUNT=y -CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y -CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y -CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y -CONFIG_HAVE_CMPXCHG_LOCAL=y -CONFIG_HAVE_CMPXCHG_DOUBLE=y -CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y -CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y -CONFIG_HAVE_ARCH_SECCOMP=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP=y -CONFIG_SECCOMP_FILTER=y -# CONFIG_SECCOMP_CACHE_DEBUG is not set -CONFIG_HAVE_ARCH_STACKLEAK=y -CONFIG_HAVE_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR_STRONG=y -CONFIG_ARCH_SUPPORTS_LTO_CLANG=y -CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y -CONFIG_LTO_NONE=y -CONFIG_ARCH_SUPPORTS_CFI_CLANG=y -CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y -CONFIG_HAVE_CONTEXT_TRACKING_USER=y -CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MOVE_PUD=y -CONFIG_HAVE_MOVE_PMD=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y -CONFIG_HAVE_ARCH_HUGE_VMAP=y -CONFIG_HAVE_ARCH_HUGE_VMALLOC=y -CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y -CONFIG_HAVE_ARCH_SOFT_DIRTY=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y -CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y -CONFIG_SOFTIRQ_ON_OWN_STACK=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_HAVE_ARCH_MMAP_RND_BITS=y -CONFIG_HAVE_EXIT_THREAD=y -CONFIG_ARCH_MMAP_RND_BITS=28 -CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y -CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 -CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_HAVE_OBJTOOL=y -CONFIG_HAVE_JUMP_LABEL_HACK=y -CONFIG_HAVE_NOINSTR_HACK=y -CONFIG_HAVE_NOINSTR_VALIDATION=y -CONFIG_HAVE_UACCESS_VALIDATION=y -CONFIG_HAVE_STACK_VALIDATION=y -CONFIG_HAVE_RELIABLE_STACKTRACE=y -CONFIG_ISA_BUS_API=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_COMPAT_OLD_SIGACTION=y -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_HAVE_ARCH_VMAP_STACK=y -CONFIG_VMAP_STACK=y -CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y -CONFIG_RANDOMIZE_KSTACK_OFFSET=y -CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y -CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -CONFIG_LOCK_EVENT_COUNTS=y -CONFIG_ARCH_HAS_MEM_ENCRYPT=y -CONFIG_ARCH_HAS_CC_PLATFORM=y -CONFIG_HAVE_STATIC_CALL=y -CONFIG_HAVE_STATIC_CALL_INLINE=y -CONFIG_HAVE_PREEMPT_DYNAMIC=y -CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y -CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y -CONFIG_ARCH_HAS_ELFCORE_COMPAT=y -CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y -CONFIG_DYNAMIC_SIGFRAME=y -CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y -CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y - -# -# GCOV-based kernel profiling -# -# CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -# end of GCOV-based kernel profiling - -CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_FUNCTION_ALIGNMENT_4B=y -CONFIG_FUNCTION_ALIGNMENT_16B=y -CONFIG_FUNCTION_ALIGNMENT=16 -# end of General architecture-dependent options - -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULE_SIG_FORMAT=y -CONFIG_MODULES=y -CONFIG_MODULE_DEBUGFS=y -# CONFIG_MODULE_DEBUG is not set -CONFIG_MODULE_FORCE_LOAD=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y -# CONFIG_MODVERSIONS is not set -CONFIG_MODULE_SRCVERSION_ALL=y -CONFIG_MODULE_SIG=y -# CONFIG_MODULE_SIG_FORCE is not set -CONFIG_MODULE_SIG_ALL=y -# CONFIG_MODULE_SIG_SHA1 is not set -# CONFIG_MODULE_SIG_SHA224 is not set -# CONFIG_MODULE_SIG_SHA256 is not set -# CONFIG_MODULE_SIG_SHA384 is not set -CONFIG_MODULE_SIG_SHA512=y -CONFIG_MODULE_SIG_HASH="sha512" -CONFIG_MODULE_COMPRESS_NONE=y -# CONFIG_MODULE_COMPRESS_GZIP is not set -# CONFIG_MODULE_COMPRESS_XZ is not set -# CONFIG_MODULE_COMPRESS_ZSTD is not set -CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y -CONFIG_MODPROBE_PATH="/sbin/modprobe" -# CONFIG_TRIM_UNUSED_KSYMS is not set -CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_BLOCK=y -CONFIG_BLOCK_LEGACY_AUTOLOAD=y -CONFIG_BLK_RQ_ALLOC_TIME=y -CONFIG_BLK_CGROUP_RWSTAT=y -CONFIG_BLK_CGROUP_PUNT_BIO=y -CONFIG_BLK_DEV_BSG_COMMON=y -CONFIG_BLK_ICQ=y -CONFIG_BLK_DEV_BSGLIB=y -CONFIG_BLK_DEV_INTEGRITY=y -CONFIG_BLK_DEV_INTEGRITY_T10=y -CONFIG_BLK_DEV_ZONED=y -CONFIG_BLK_DEV_THROTTLING=y -CONFIG_BLK_DEV_THROTTLING_LOW=y -CONFIG_BLK_WBT=y -CONFIG_BLK_WBT_MQ=y -CONFIG_BLK_CGROUP_IOLATENCY=y -CONFIG_BLK_CGROUP_FC_APPID=y -CONFIG_BLK_CGROUP_IOCOST=y -CONFIG_BLK_CGROUP_IOPRIO=y -CONFIG_BLK_DEBUG_FS=y -CONFIG_BLK_DEBUG_FS_ZONED=y -CONFIG_BLK_SED_OPAL=y -CONFIG_BLK_INLINE_ENCRYPTION=y -CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -CONFIG_AIX_PARTITION=y -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -CONFIG_MAC_PARTITION=y -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -CONFIG_MINIX_SUBPARTITION=y -CONFIG_SOLARIS_X86_PARTITION=y -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -CONFIG_KARMA_PARTITION=y -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set -# CONFIG_CMDLINE_PARTITION is not set -# end of Partition Types - -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_BLK_PM=y -CONFIG_BLOCK_HOLDER_DEPRECATED=y -CONFIG_BLK_MQ_STACKING=y - -# -# IO Schedulers -# -CONFIG_MQ_IOSCHED_DEADLINE=y -CONFIG_MQ_IOSCHED_KYBER=y -CONFIG_IOSCHED_BFQ=y -CONFIG_BFQ_GROUP_IOSCHED=y -# CONFIG_BFQ_CGROUP_DEBUG is not set -# end of IO Schedulers - -CONFIG_PADATA=y -CONFIG_ASN1=y -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y -CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y -CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y -CONFIG_FREEZER=y - -# -# Executable file formats -# -CONFIG_BINFMT_ELF=y -CONFIG_COMPAT_BINFMT_ELF=y -CONFIG_ELFCORE=y -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y -CONFIG_BINFMT_SCRIPT=y -CONFIG_BINFMT_MISC=y -CONFIG_COREDUMP=y -# end of Executable file formats - -# -# Memory Management options -# -CONFIG_ZPOOL=y -CONFIG_SWAP=y -CONFIG_ZSWAP=y -CONFIG_ZSWAP_DEFAULT_ON=y -# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set -CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y -CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd" -# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set -# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set -CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y -CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc" -CONFIG_ZBUD=y -CONFIG_Z3FOLD=y -CONFIG_ZSMALLOC=y -CONFIG_ZSMALLOC_STAT=y -CONFIG_ZSMALLOC_CHAIN_SIZE=8 - -# -# SLAB allocator options -# -# CONFIG_SLAB_DEPRECATED is not set -CONFIG_SLUB=y -# CONFIG_SLUB_TINY is not set -CONFIG_SLAB_MERGE_DEFAULT=y -CONFIG_SLAB_FREELIST_RANDOM=y -CONFIG_SLAB_FREELIST_HARDENED=y -# CONFIG_SLUB_STATS is not set -CONFIG_SLUB_CPU_PARTIAL=y -# end of SLAB allocator options - -CONFIG_SHUFFLE_PAGE_ALLOCATOR=y -# CONFIG_COMPAT_BRK is not set -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_ARCH_WANT_OPTIMIZE_VMEMMAP=y -CONFIG_HAVE_FAST_GUP=y -CONFIG_NUMA_KEEP_MEMINFO=y -CONFIG_MEMORY_ISOLATION=y -CONFIG_EXCLUSIVE_SYSTEM_RAM=y -CONFIG_HAVE_BOOTMEM_INFO_NODE=y -CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y -CONFIG_MEMORY_HOTPLUG=y -CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y -CONFIG_MEMORY_HOTREMOVE=y -CONFIG_MHP_MEMMAP_ON_MEMORY=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_MEMORY_BALLOON=y -CONFIG_BALLOON_COMPACTION=y -CONFIG_COMPACTION=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -CONFIG_PAGE_REPORTING=y -CONFIG_MIGRATION=y -CONFIG_DEVICE_MIGRATION=y -CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_ARCH_ENABLE_THP_MIGRATION=y -CONFIG_CONTIG_ALLOC=y -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_MMU_NOTIFIER=y -CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -CONFIG_MEMORY_FAILURE=y -CONFIG_HWPOISON_INJECT=m -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ARCH_WANTS_THP_SWAP=y -CONFIG_TRANSPARENT_HUGEPAGE=y -CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y -# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set -CONFIG_THP_SWAP=y -CONFIG_READ_ONLY_THP_FOR_FS=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_FRONTSWAP=y -CONFIG_CMA=y -# CONFIG_CMA_DEBUG is not set -CONFIG_CMA_DEBUGFS=y -CONFIG_CMA_SYSFS=y -CONFIG_CMA_AREAS=19 -CONFIG_GENERIC_EARLY_IOREMAP=y -# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set -CONFIG_PAGE_IDLE_FLAG=y -CONFIG_IDLE_PAGE_TRACKING=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y -CONFIG_ARCH_HAS_PTE_DEVMAP=y -CONFIG_ARCH_HAS_ZONE_DMA_SET=y -CONFIG_ZONE_DMA=y -CONFIG_ZONE_DMA32=y -CONFIG_ZONE_DEVICE=y -CONFIG_HMM_MIRROR=y -CONFIG_GET_FREE_REGION=y -CONFIG_DEVICE_PRIVATE=y -CONFIG_VMAP_PFN=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_HAS_PKEYS=y -CONFIG_VM_EVENT_COUNTERS=y -# CONFIG_PERCPU_STATS is not set -# CONFIG_GUP_TEST is not set -# CONFIG_DMAPOOL_TEST is not set -CONFIG_ARCH_HAS_PTE_SPECIAL=y -CONFIG_MAPPING_DIRTY_HELPERS=y -CONFIG_SECRETMEM=y -CONFIG_ANON_VMA_NAME=y -CONFIG_USERFAULTFD=y -CONFIG_HAVE_ARCH_USERFAULTFD_WP=y -CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y -CONFIG_PTE_MARKER_UFFD_WP=y -CONFIG_LRU_GEN=y -CONFIG_LRU_GEN_ENABLED=y -# CONFIG_LRU_GEN_STATS is not set -CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y -CONFIG_PER_VMA_LOCK=y -CONFIG_LOCK_MM_AND_FIND_VMA=y - -# -# Data Access Monitoring -# -CONFIG_DAMON=y -CONFIG_DAMON_VADDR=y -CONFIG_DAMON_PADDR=y -CONFIG_DAMON_SYSFS=y -CONFIG_DAMON_DBGFS=y -CONFIG_DAMON_RECLAIM=y -CONFIG_DAMON_LRU_SORT=y -# end of Data Access Monitoring -# end of Memory Management options - -CONFIG_NET=y -CONFIG_COMPAT_NETLINK_MESSAGES=y -CONFIG_NET_INGRESS=y -CONFIG_NET_EGRESS=y -CONFIG_NET_REDIRECT=y -CONFIG_SKB_EXTENSIONS=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_PACKET_DIAG=m -CONFIG_UNIX=y -CONFIG_UNIX_SCM=y -CONFIG_AF_UNIX_OOB=y -CONFIG_UNIX_DIAG=m -CONFIG_TLS=m -CONFIG_TLS_DEVICE=y -# CONFIG_TLS_TOE is not set -CONFIG_XFRM=y -CONFIG_XFRM_OFFLOAD=y -CONFIG_XFRM_ALGO=y -CONFIG_XFRM_USER=y -# CONFIG_XFRM_USER_COMPAT is not set -CONFIG_XFRM_INTERFACE=m -CONFIG_XFRM_SUB_POLICY=y -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_AH=m -CONFIG_XFRM_ESP=m -CONFIG_XFRM_IPCOMP=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_XFRM_ESPINTCP=y -CONFIG_SMC=m -CONFIG_SMC_DIAG=m -CONFIG_XDP_SOCKETS=y -CONFIG_XDP_SOCKETS_DIAG=m -CONFIG_NET_HANDSHAKE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_FIB_TRIE_STATS=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_ROUTE_CLASSID=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE_DEMUX=m -CONFIG_NET_IP_TUNNEL=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE_COMMON=y -CONFIG_IP_MROUTE=y -CONFIG_IP_MROUTE_MULTIPLE_TABLES=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_SYN_COOKIES=y -CONFIG_NET_IPVTI=m -CONFIG_NET_UDP_TUNNEL=m -CONFIG_NET_FOU=m -CONFIG_NET_FOU_IP_TUNNELS=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_ESP_OFFLOAD=m -CONFIG_INET_ESPINTCP=y -CONFIG_INET_IPCOMP=m -CONFIG_INET_TABLE_PERTURB_ORDER=16 -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -CONFIG_INET_UDP_DIAG=m -CONFIG_INET_RAW_DIAG=m -CONFIG_INET_DIAG_DESTROY=y -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=y -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_NV=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_CONG_ILLINOIS=m -CONFIG_TCP_CONG_DCTCP=m -CONFIG_TCP_CONG_CDG=m -CONFIG_TCP_CONG_BBR=m -CONFIG_DEFAULT_CUBIC=y -# CONFIG_DEFAULT_RENO is not set -CONFIG_DEFAULT_TCP_CONG="cubic" -CONFIG_TCP_MD5SIG=y -CONFIG_IPV6=y -CONFIG_IPV6_ROUTER_PREF=y -CONFIG_IPV6_ROUTE_INFO=y -CONFIG_IPV6_OPTIMISTIC_DAD=y -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_ESP_OFFLOAD=m -CONFIG_INET6_ESPINTCP=y -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_MIP6=m -CONFIG_IPV6_ILA=m -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_IPV6_VTI=m -CONFIG_IPV6_SIT=m -CONFIG_IPV6_SIT_6RD=y -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_GRE=m -CONFIG_IPV6_FOU=m -CONFIG_IPV6_FOU_TUNNEL=m -CONFIG_IPV6_MULTIPLE_TABLES=y -CONFIG_IPV6_SUBTREES=y -CONFIG_IPV6_MROUTE=y -CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y -CONFIG_IPV6_PIMSM_V2=y -CONFIG_IPV6_SEG6_LWTUNNEL=y -CONFIG_IPV6_SEG6_HMAC=y -CONFIG_IPV6_SEG6_BPF=y -CONFIG_IPV6_RPL_LWTUNNEL=y -CONFIG_IPV6_IOAM6_LWTUNNEL=y -CONFIG_NETLABEL=y -CONFIG_MPTCP=y -CONFIG_INET_MPTCP_DIAG=m -CONFIG_MPTCP_IPV6=y -CONFIG_NETWORK_SECMARK=y -CONFIG_NET_PTP_CLASSIFY=y -CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETFILTER=y -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=m - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=y -CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_SKIP_EGRESS=y -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_FAMILY_BRIDGE=y -CONFIG_NETFILTER_FAMILY_ARP=y -CONFIG_NETFILTER_BPF_LINK=y -CONFIG_NETFILTER_NETLINK_HOOK=m -CONFIG_NETFILTER_NETLINK_ACCT=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_NETLINK_OSF=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_LOG_SYSLOG=m -CONFIG_NETFILTER_CONNCOUNT=m -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_SECMARK=y -CONFIG_NF_CONNTRACK_ZONES=y -CONFIG_NF_CONNTRACK_PROCFS=y -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CONNTRACK_TIMEOUT=y -CONFIG_NF_CONNTRACK_TIMESTAMP=y -CONFIG_NF_CONNTRACK_LABELS=y -CONFIG_NF_CONNTRACK_OVS=y -CONFIG_NF_CT_PROTO_DCCP=y -CONFIG_NF_CT_PROTO_GRE=y -CONFIG_NF_CT_PROTO_SCTP=y -CONFIG_NF_CT_PROTO_UDPLITE=y -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_BROADCAST=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_SNMP=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NF_CT_NETLINK_TIMEOUT=m -CONFIG_NF_CT_NETLINK_HELPER=m -CONFIG_NETFILTER_NETLINK_GLUE_CT=y -CONFIG_NF_NAT=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_SIP=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_REDIRECT=y -CONFIG_NF_NAT_MASQUERADE=y -CONFIG_NF_NAT_OVS=y -CONFIG_NETFILTER_SYNPROXY=m -CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_INET=y -CONFIG_NF_TABLES_NETDEV=y -CONFIG_NFT_NUMGEN=m -CONFIG_NFT_CT=m -CONFIG_NFT_FLOW_OFFLOAD=m -CONFIG_NFT_CONNLIMIT=m -CONFIG_NFT_LOG=m -CONFIG_NFT_LIMIT=m -CONFIG_NFT_MASQ=m -CONFIG_NFT_REDIR=m -CONFIG_NFT_NAT=m -CONFIG_NFT_TUNNEL=m -CONFIG_NFT_QUEUE=m -CONFIG_NFT_QUOTA=m -CONFIG_NFT_REJECT=m -CONFIG_NFT_REJECT_INET=m -CONFIG_NFT_COMPAT=m -CONFIG_NFT_HASH=m -CONFIG_NFT_FIB=m -CONFIG_NFT_FIB_INET=m -CONFIG_NFT_XFRM=m -CONFIG_NFT_SOCKET=m -CONFIG_NFT_OSF=m -CONFIG_NFT_TPROXY=m -CONFIG_NFT_SYNPROXY=m -CONFIG_NF_DUP_NETDEV=m -CONFIG_NFT_DUP_NETDEV=m -CONFIG_NFT_FWD_NETDEV=m -CONFIG_NFT_FIB_NETDEV=m -CONFIG_NFT_REJECT_NETDEV=m -CONFIG_NF_FLOW_TABLE_INET=m -CONFIG_NF_FLOW_TABLE=m -CONFIG_NF_FLOW_TABLE_PROCFS=y -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XTABLES_COMPAT=y - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=m -CONFIG_NETFILTER_XT_CONNMARK=m -CONFIG_NETFILTER_XT_SET=m - -# -# Xtables targets -# -CONFIG_NETFILTER_XT_TARGET_AUDIT=m -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m -CONFIG_NETFILTER_XT_TARGET_CT=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HL=m -CONFIG_NETFILTER_XT_TARGET_HMARK=m -CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_LOG=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_NAT=m -CONFIG_NETFILTER_XT_TARGET_NETMAP=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_REDIRECT=m -CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m -CONFIG_NETFILTER_XT_TARGET_TEE=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER_XT_TARGET_SECMARK=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_BPF=m -CONFIG_NETFILTER_XT_MATCH_CGROUP=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_CPU=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ECN=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPCOMP=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_IPVS=m -CONFIG_NETFILTER_XT_MATCH_L2TP=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_NFACCT=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -# end of Core Netfilter Configuration - -CONFIG_IP_SET=m -CONFIG_IP_SET_MAX=256 -CONFIG_IP_SET_BITMAP_IP=m -CONFIG_IP_SET_BITMAP_IPMAC=m -CONFIG_IP_SET_BITMAP_PORT=m -CONFIG_IP_SET_HASH_IP=m -CONFIG_IP_SET_HASH_IPMARK=m -CONFIG_IP_SET_HASH_IPPORT=m -CONFIG_IP_SET_HASH_IPPORTIP=m -CONFIG_IP_SET_HASH_IPPORTNET=m -CONFIG_IP_SET_HASH_IPMAC=m -CONFIG_IP_SET_HASH_MAC=m -CONFIG_IP_SET_HASH_NETPORTNET=m -CONFIG_IP_SET_HASH_NET=m -CONFIG_IP_SET_HASH_NETNET=m -CONFIG_IP_SET_HASH_NETPORT=m -CONFIG_IP_SET_HASH_NETIFACE=m -CONFIG_IP_SET_LIST_SET=m -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=15 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_AH_ESP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_SCTP=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_FO=m -CONFIG_IP_VS_OVF=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_MH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m -CONFIG_IP_VS_TWOS=m - -# -# IPVS SH scheduler -# -CONFIG_IP_VS_SH_TAB_BITS=8 - -# -# IPVS MH scheduler -# -CONFIG_IP_VS_MH_TAB_INDEX=12 - -# -# IPVS application helper -# -CONFIG_IP_VS_FTP=m -CONFIG_IP_VS_NFCT=y -CONFIG_IP_VS_PE_SIP=m - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_SOCKET_IPV4=m -CONFIG_NF_TPROXY_IPV4=m -CONFIG_NF_TABLES_IPV4=y -CONFIG_NFT_REJECT_IPV4=m -CONFIG_NFT_DUP_IPV4=m -CONFIG_NFT_FIB_IPV4=m -CONFIG_NF_TABLES_ARP=y -CONFIG_NF_DUP_IPV4=m -CONFIG_NF_LOG_ARP=m -CONFIG_NF_LOG_IPV4=m -CONFIG_NF_REJECT_IPV4=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_RPFILTER=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_SYNPROXY=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_SECURITY=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -# end of IP: Netfilter Configuration - -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_SOCKET_IPV6=m -CONFIG_NF_TPROXY_IPV6=m -CONFIG_NF_TABLES_IPV6=y -CONFIG_NFT_REJECT_IPV6=m -CONFIG_NFT_DUP_IPV6=m -CONFIG_NFT_FIB_IPV6=m -CONFIG_NF_DUP_IPV6=m -CONFIG_NF_REJECT_IPV6=m -CONFIG_NF_LOG_IPV6=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RPFILTER=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_SRH=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_TARGET_SYNPROXY=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_IP6_NF_SECURITY=m -CONFIG_IP6_NF_NAT=m -CONFIG_IP6_NF_TARGET_MASQUERADE=m -CONFIG_IP6_NF_TARGET_NPT=m -# end of IPv6: Netfilter Configuration - -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_TABLES_BRIDGE=m -CONFIG_NFT_BRIDGE_META=m -CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NF_CONNTRACK_BRIDGE=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_NFLOG=m -# CONFIG_BPFILTER is not set -# CONFIG_IP_DCCP is not set -CONFIG_IP_SCTP=m -# CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set -CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y -# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set -CONFIG_SCTP_COOKIE_HMAC_MD5=y -CONFIG_SCTP_COOKIE_HMAC_SHA1=y -CONFIG_INET_SCTP_DIAG=m -CONFIG_RDS=m -CONFIG_RDS_RDMA=m -CONFIG_RDS_TCP=m -# CONFIG_RDS_DEBUG is not set -CONFIG_TIPC=m -CONFIG_TIPC_MEDIA_IB=y -CONFIG_TIPC_MEDIA_UDP=y -CONFIG_TIPC_CRYPTO=y -CONFIG_TIPC_DIAG=m -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -# CONFIG_ATM_CLIP_NO_ICMP is not set -CONFIG_ATM_LANE=m -CONFIG_ATM_MPOA=m -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_L2TP=m -CONFIG_L2TP_DEBUGFS=m -CONFIG_L2TP_V3=y -CONFIG_L2TP_IP=m -CONFIG_L2TP_ETH=m -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_MRP=m -CONFIG_BRIDGE=m -CONFIG_BRIDGE_IGMP_SNOOPING=y -CONFIG_BRIDGE_VLAN_FILTERING=y -CONFIG_BRIDGE_MRP=y -CONFIG_BRIDGE_CFM=y -CONFIG_NET_DSA=m -CONFIG_NET_DSA_TAG_NONE=m -CONFIG_NET_DSA_TAG_AR9331=m -CONFIG_NET_DSA_TAG_BRCM_COMMON=m -CONFIG_NET_DSA_TAG_BRCM=m -CONFIG_NET_DSA_TAG_BRCM_LEGACY=m -CONFIG_NET_DSA_TAG_BRCM_PREPEND=m -CONFIG_NET_DSA_TAG_HELLCREEK=m -CONFIG_NET_DSA_TAG_GSWIP=m -CONFIG_NET_DSA_TAG_DSA_COMMON=m -CONFIG_NET_DSA_TAG_DSA=m -CONFIG_NET_DSA_TAG_EDSA=m -CONFIG_NET_DSA_TAG_MTK=m -CONFIG_NET_DSA_TAG_KSZ=m -CONFIG_NET_DSA_TAG_OCELOT=m -CONFIG_NET_DSA_TAG_OCELOT_8021Q=m -CONFIG_NET_DSA_TAG_QCA=m -CONFIG_NET_DSA_TAG_RTL4_A=m -CONFIG_NET_DSA_TAG_RTL8_4=m -CONFIG_NET_DSA_TAG_RZN1_A5PSW=m -CONFIG_NET_DSA_TAG_LAN9303=m -CONFIG_NET_DSA_TAG_SJA1105=m -CONFIG_NET_DSA_TAG_TRAILER=m -CONFIG_NET_DSA_TAG_XRS700X=m -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_GVRP=y -CONFIG_VLAN_8021Q_MVRP=y -CONFIG_LLC=m -CONFIG_LLC2=m -CONFIG_ATALK=m -CONFIG_DEV_APPLETALK=m -CONFIG_IPDDP=m -CONFIG_IPDDP_ENCAP=y -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -CONFIG_PHONET=m -CONFIG_6LOWPAN=m -CONFIG_6LOWPAN_DEBUGFS=y -CONFIG_6LOWPAN_NHC=m -CONFIG_6LOWPAN_NHC_DEST=m -CONFIG_6LOWPAN_NHC_FRAGMENT=m -CONFIG_6LOWPAN_NHC_HOP=m -CONFIG_6LOWPAN_NHC_IPV6=m -CONFIG_6LOWPAN_NHC_MOBILITY=m -CONFIG_6LOWPAN_NHC_ROUTING=m -CONFIG_6LOWPAN_NHC_UDP=m -CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m -CONFIG_6LOWPAN_GHC_UDP=m -CONFIG_6LOWPAN_GHC_ICMPV6=m -CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m -CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m -CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m -CONFIG_IEEE802154=m -CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y -CONFIG_IEEE802154_SOCKET=m -CONFIG_IEEE802154_6LOWPAN=m -CONFIG_MAC802154=m -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFB=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_CBS=m -CONFIG_NET_SCH_ETF=m -CONFIG_NET_SCH_MQPRIO_LIB=m -CONFIG_NET_SCH_TAPRIO=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_MQPRIO=m -CONFIG_NET_SCH_SKBPRIO=m -CONFIG_NET_SCH_CHOKE=m -CONFIG_NET_SCH_QFQ=m -CONFIG_NET_SCH_CODEL=m -CONFIG_NET_SCH_FQ_CODEL=y -CONFIG_NET_SCH_CAKE=m -CONFIG_NET_SCH_FQ=m -CONFIG_NET_SCH_HHF=m -CONFIG_NET_SCH_PIE=m -CONFIG_NET_SCH_FQ_PIE=m -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_SCH_PLUG=m -CONFIG_NET_SCH_ETS=m -CONFIG_NET_SCH_DEFAULT=y -# CONFIG_DEFAULT_FQ is not set -# CONFIG_DEFAULT_CODEL is not set -CONFIG_DEFAULT_FQ_CODEL=y -# CONFIG_DEFAULT_FQ_PIE is not set -# CONFIG_DEFAULT_SFQ is not set -# CONFIG_DEFAULT_PFIFO_FAST is not set -CONFIG_DEFAULT_NET_SCH="fq_codel" - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_CLS_CGROUP=m -CONFIG_NET_CLS_BPF=m -CONFIG_NET_CLS_FLOWER=m -CONFIG_NET_CLS_MATCHALL=m -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_EMATCH_CANID=m -CONFIG_NET_EMATCH_IPSET=m -CONFIG_NET_EMATCH_IPT=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_GACT=m -CONFIG_GACT_PROB=y -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_SAMPLE=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -CONFIG_NET_ACT_SIMP=m -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_ACT_CSUM=m -CONFIG_NET_ACT_MPLS=m -CONFIG_NET_ACT_VLAN=m -CONFIG_NET_ACT_BPF=m -CONFIG_NET_ACT_CONNMARK=m -CONFIG_NET_ACT_CTINFO=m -CONFIG_NET_ACT_SKBMOD=m -CONFIG_NET_ACT_IFE=m -CONFIG_NET_ACT_TUNNEL_KEY=m -CONFIG_NET_ACT_CT=m -CONFIG_NET_ACT_GATE=m -CONFIG_NET_IFE_SKBMARK=m -CONFIG_NET_IFE_SKBPRIO=m -CONFIG_NET_IFE_SKBTCINDEX=m -CONFIG_NET_TC_SKB_EXT=y -CONFIG_NET_SCH_FIFO=y -CONFIG_DCB=y -CONFIG_DNS_RESOLVER=y -CONFIG_BATMAN_ADV=m -CONFIG_BATMAN_ADV_BATMAN_V=y -CONFIG_BATMAN_ADV_BLA=y -CONFIG_BATMAN_ADV_DAT=y -CONFIG_BATMAN_ADV_NC=y -CONFIG_BATMAN_ADV_MCAST=y -# CONFIG_BATMAN_ADV_DEBUG is not set -# CONFIG_BATMAN_ADV_TRACING is not set -CONFIG_OPENVSWITCH=m -CONFIG_OPENVSWITCH_GRE=m -CONFIG_OPENVSWITCH_VXLAN=m -CONFIG_OPENVSWITCH_GENEVE=m -CONFIG_VSOCKETS=m -CONFIG_VSOCKETS_DIAG=m -CONFIG_VSOCKETS_LOOPBACK=m -CONFIG_VMWARE_VMCI_VSOCKETS=m -CONFIG_VIRTIO_VSOCKETS=m -CONFIG_VIRTIO_VSOCKETS_COMMON=m -CONFIG_HYPERV_VSOCKETS=m -CONFIG_NETLINK_DIAG=m -CONFIG_MPLS=y -CONFIG_NET_MPLS_GSO=m -CONFIG_MPLS_ROUTING=m -CONFIG_MPLS_IPTUNNEL=m -CONFIG_NET_NSH=m -CONFIG_HSR=m -CONFIG_NET_SWITCHDEV=y -CONFIG_NET_L3_MASTER_DEV=y -CONFIG_QRTR=m -CONFIG_QRTR_SMD=m -CONFIG_QRTR_TUN=m -CONFIG_QRTR_MHI=m -CONFIG_NET_NCSI=y -CONFIG_NCSI_OEM_CMD_GET_MAC=y -CONFIG_NCSI_OEM_CMD_KEEP_PHY=y -CONFIG_PCPU_DEV_REFCNT=y -CONFIG_MAX_SKB_FRAGS=17 -CONFIG_RPS=y -CONFIG_RFS_ACCEL=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_XPS=y -CONFIG_CGROUP_NET_PRIO=y -CONFIG_CGROUP_NET_CLASSID=y -CONFIG_NET_RX_BUSY_POLL=y -CONFIG_BQL=y -CONFIG_BPF_STREAM_PARSER=y -CONFIG_NET_FLOW_LIMIT=y - -# -# Network testing -# -CONFIG_NET_PKTGEN=m -CONFIG_NET_DROP_MONITOR=y -# end of Network testing -# end of Networking options - -CONFIG_HAMRADIO=y - -# -# Packet Radio protocols -# -CONFIG_AX25=m -CONFIG_AX25_DAMA_SLAVE=y -CONFIG_NETROM=m -CONFIG_ROSE=m - -# -# AX.25 network device drivers -# -CONFIG_MKISS=m -CONFIG_6PACK=m -CONFIG_BPQETHER=m -CONFIG_BAYCOM_SER_FDX=m -CONFIG_BAYCOM_SER_HDX=m -CONFIG_BAYCOM_PAR=m -CONFIG_YAM=m -# end of AX.25 network device drivers - -CONFIG_CAN=m -CONFIG_CAN_RAW=m -CONFIG_CAN_BCM=m -CONFIG_CAN_GW=m -CONFIG_CAN_J1939=m -CONFIG_CAN_ISOTP=m -CONFIG_BT=m -CONFIG_BT_BREDR=y -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_CMTP=m -CONFIG_BT_HIDP=m -CONFIG_BT_HS=y -CONFIG_BT_LE=y -CONFIG_BT_LE_L2CAP_ECRED=y -CONFIG_BT_6LOWPAN=m -CONFIG_BT_LEDS=y -CONFIG_BT_MSFTEXT=y -CONFIG_BT_AOSPEXT=y -CONFIG_BT_DEBUGFS=y -# CONFIG_BT_SELFTEST is not set - -# -# Bluetooth device drivers -# -CONFIG_BT_INTEL=m -CONFIG_BT_BCM=m -CONFIG_BT_RTL=m -CONFIG_BT_QCA=m -CONFIG_BT_MTK=m -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y -CONFIG_BT_HCIBTUSB_POLL_SYNC=y -CONFIG_BT_HCIBTUSB_BCM=y -CONFIG_BT_HCIBTUSB_MTK=y -CONFIG_BT_HCIBTUSB_RTL=y -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_SERDEV=y -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_NOKIA=m -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_ATH3K=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIUART_3WIRE=y -CONFIG_BT_HCIUART_INTEL=y -CONFIG_BT_HCIUART_BCM=y -CONFIG_BT_HCIUART_RTL=y -CONFIG_BT_HCIUART_QCA=y -CONFIG_BT_HCIUART_AG6XX=y -CONFIG_BT_HCIUART_MRVL=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBCM4377=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIVHCI=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_BT_ATH3K=m -CONFIG_BT_MTKSDIO=m -CONFIG_BT_MTKUART=m -CONFIG_BT_HCIRSI=m -CONFIG_BT_VIRTIO=m -# CONFIG_BT_NXPUART is not set -# end of Bluetooth device drivers - -CONFIG_AF_RXRPC=m -CONFIG_AF_RXRPC_IPV6=y -# CONFIG_AF_RXRPC_INJECT_LOSS is not set -# CONFIG_AF_RXRPC_INJECT_RX_DELAY is not set -CONFIG_AF_RXRPC_DEBUG=y -CONFIG_RXKAD=y -# CONFIG_RXPERF is not set -CONFIG_AF_KCM=m -CONFIG_STREAM_PARSER=y -CONFIG_MCTP=y -CONFIG_MCTP_FLOWS=y -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_WIRELESS_EXT=y -CONFIG_WEXT_CORE=y -CONFIG_WEXT_PROC=y -CONFIG_WEXT_SPY=y -CONFIG_WEXT_PRIV=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_CERTIFICATION_ONUS is not set -CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y -CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y -CONFIG_CFG80211_DEFAULT_PS=y -CONFIG_CFG80211_DEBUGFS=y -CONFIG_CFG80211_CRDA_SUPPORT=y -CONFIG_CFG80211_WEXT=y -CONFIG_CFG80211_WEXT_EXPORT=y -CONFIG_LIB80211=m -CONFIG_LIB80211_CRYPT_WEP=m -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=m -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -CONFIG_MAC80211_MESH=y -CONFIG_MAC80211_LEDS=y -CONFIG_MAC80211_DEBUGFS=y -# CONFIG_MAC80211_MESSAGE_TRACING is not set -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_GPIO=m -CONFIG_NET_9P=m -CONFIG_NET_9P_FD=m -CONFIG_NET_9P_VIRTIO=m -CONFIG_NET_9P_RDMA=m -# CONFIG_NET_9P_DEBUG is not set -# CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -CONFIG_CEPH_LIB_PRETTYDEBUG=y -CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y -CONFIG_NFC=m -CONFIG_NFC_DIGITAL=m -CONFIG_NFC_NCI=m -CONFIG_NFC_NCI_SPI=m -CONFIG_NFC_NCI_UART=m -CONFIG_NFC_HCI=m -CONFIG_NFC_SHDLC=y - -# -# Near Field Communication (NFC) devices -# -CONFIG_NFC_TRF7970A=m -CONFIG_NFC_MEI_PHY=m -CONFIG_NFC_SIM=m -CONFIG_NFC_PORT100=m -CONFIG_NFC_VIRTUAL_NCI=m -CONFIG_NFC_FDP=m -CONFIG_NFC_FDP_I2C=m -CONFIG_NFC_PN544=m -CONFIG_NFC_PN544_I2C=m -CONFIG_NFC_PN544_MEI=m -CONFIG_NFC_PN533=m -CONFIG_NFC_PN533_USB=m -CONFIG_NFC_PN533_I2C=m -CONFIG_NFC_PN532_UART=m -CONFIG_NFC_MICROREAD=m -CONFIG_NFC_MICROREAD_I2C=m -CONFIG_NFC_MICROREAD_MEI=m -CONFIG_NFC_MRVL=m -CONFIG_NFC_MRVL_USB=m -CONFIG_NFC_MRVL_UART=m -CONFIG_NFC_MRVL_I2C=m -CONFIG_NFC_MRVL_SPI=m -CONFIG_NFC_ST21NFCA=m -CONFIG_NFC_ST21NFCA_I2C=m -CONFIG_NFC_ST_NCI=m -CONFIG_NFC_ST_NCI_I2C=m -CONFIG_NFC_ST_NCI_SPI=m -CONFIG_NFC_NXP_NCI=m -CONFIG_NFC_NXP_NCI_I2C=m -CONFIG_NFC_S3FWRN5=m -CONFIG_NFC_S3FWRN5_I2C=m -CONFIG_NFC_S3FWRN82_UART=m -CONFIG_NFC_ST95HF=m -# end of Near Field Communication (NFC) devices - -CONFIG_PSAMPLE=m -CONFIG_NET_IFE=m -CONFIG_LWTUNNEL=y -CONFIG_LWTUNNEL_BPF=y -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y -CONFIG_SOCK_VALIDATE_XMIT=y -CONFIG_NET_SELFTESTS=y -CONFIG_NET_SOCK_MSG=y -CONFIG_NET_DEVLINK=y -CONFIG_PAGE_POOL=y -# CONFIG_PAGE_POOL_STATS is not set -CONFIG_FAILOVER=y -CONFIG_ETHTOOL_NETLINK=y - -# -# Device Drivers -# -CONFIG_HAVE_EISA=y -# CONFIG_EISA is not set -CONFIG_HAVE_PCI=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCIEPORTBUS=y -CONFIG_HOTPLUG_PCI_PCIE=y -CONFIG_PCIEAER=y -CONFIG_PCIEAER_INJECT=m -CONFIG_PCIE_ECRC=y -CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEFAULT is not set -# CONFIG_PCIEASPM_POWERSAVE is not set -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -CONFIG_PCIEASPM_PERFORMANCE=y -CONFIG_PCIE_PME=y -CONFIG_PCIE_DPC=y -CONFIG_PCIE_PTM=y -CONFIG_PCIE_EDR=y -CONFIG_PCI_MSI=y -CONFIG_PCI_QUIRKS=y -# CONFIG_PCI_DEBUG is not set -# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set -CONFIG_PCI_STUB=y -CONFIG_PCI_PF_STUB=m -CONFIG_PCI_ATS=y -CONFIG_PCI_DOE=y -CONFIG_PCI_LOCKLESS_CONFIG=y -CONFIG_PCI_IOV=y -CONFIG_PCI_PRI=y -CONFIG_PCI_PASID=y -CONFIG_PCI_P2PDMA=y -CONFIG_PCI_LABEL=y -CONFIG_PCI_HYPERV=m -# CONFIG_PCIE_BUS_TUNE_OFF is not set -CONFIG_PCIE_BUS_DEFAULT=y -# CONFIG_PCIE_BUS_SAFE is not set -# CONFIG_PCIE_BUS_PERFORMANCE is not set -# CONFIG_PCIE_BUS_PEER2PEER is not set -CONFIG_VGA_ARB=y -CONFIG_VGA_ARB_MAX_GPUS=16 -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG_PCI_ACPI=y -CONFIG_HOTPLUG_PCI_ACPI_IBM=m -CONFIG_HOTPLUG_PCI_CPCI=y -CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m -CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m -CONFIG_HOTPLUG_PCI_SHPC=y - -# -# PCI controller drivers -# -CONFIG_VMD=m -CONFIG_PCI_HYPERV_INTERFACE=m - -# -# Cadence-based PCIe controllers -# -# end of Cadence-based PCIe controllers - -# -# DesignWare-based PCIe controllers -# -CONFIG_PCIE_DW=y -CONFIG_PCIE_DW_HOST=y -CONFIG_PCI_MESON=y -CONFIG_PCIE_DW_PLAT=y -CONFIG_PCIE_DW_PLAT_HOST=y -# end of DesignWare-based PCIe controllers - -# -# Mobiveil-based PCIe controllers -# -# end of Mobiveil-based PCIe controllers -# end of PCI controller drivers - -# -# PCI Endpoint -# -# CONFIG_PCI_ENDPOINT is not set -# end of PCI Endpoint - -# -# PCI switch controller drivers -# -CONFIG_PCI_SW_SWITCHTEC=m -# end of PCI switch controller drivers - -CONFIG_CXL_BUS=m -CONFIG_CXL_PCI=m -# CONFIG_CXL_MEM_RAW_COMMANDS is not set -CONFIG_CXL_ACPI=m -CONFIG_CXL_PMEM=m -CONFIG_CXL_MEM=m -CONFIG_CXL_PORT=m -CONFIG_CXL_SUSPEND=y -CONFIG_CXL_REGION=y -# CONFIG_CXL_REGION_INVALIDATION_TEST is not set -CONFIG_CXL_PMU=m -CONFIG_PCCARD=m -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=y -# CONFIG_RAPIDIO is not set - -# -# Generic Driver Options -# -CONFIG_AUXILIARY_BUS=y -# CONFIG_UEVENT_HELPER is not set -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -CONFIG_DEVTMPFS_SAFE=y -CONFIG_STANDALONE=y -# CONFIG_PREVENT_FIRMWARE_BUILD is not set - -# -# Firmware loader -# -CONFIG_FW_LOADER=y -CONFIG_FW_LOADER_DEBUG=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_FW_LOADER_SYSFS=y -CONFIG_EXTRA_FIRMWARE="" -CONFIG_EXTRA_FIRMWARE_DIR="external-firmware" -# CONFIG_FW_LOADER_USER_HELPER is not set -# CONFIG_FW_LOADER_COMPRESS is not set -CONFIG_FW_CACHE=y -CONFIG_FW_UPLOAD=y -# end of Firmware loader - -CONFIG_WANT_DEV_COREDUMP=y -CONFIG_ALLOW_DEV_COREDUMP=y -CONFIG_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -CONFIG_HMEM_REPORTING=y -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_SOC_BUS=y -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_SLIMBUS=m -CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_W1=m -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_IRQ=y -CONFIG_REGMAP_SOUNDWIRE=m -CONFIG_REGMAP_SOUNDWIRE_MBQ=m -CONFIG_REGMAP_SCCB=m -CONFIG_REGMAP_SPI_AVMM=m -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_DMA_FENCE_TRACE is not set -# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set -# end of Generic Driver Options - -# -# Bus devices -# -CONFIG_MHI_BUS=m -# CONFIG_MHI_BUS_DEBUG is not set -CONFIG_MHI_BUS_PCI_GENERIC=m -CONFIG_MHI_BUS_EP=m -# end of Bus devices - -CONFIG_CONNECTOR=y -CONFIG_PROC_EVENTS=y - -# -# Firmware Drivers -# - -# -# ARM System Control and Management Interface Protocol -# -# end of ARM System Control and Management Interface Protocol - -CONFIG_EDD=m -# CONFIG_EDD_OFF is not set -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_DMIID=y -CONFIG_DMI_SYSFS=m -CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -# CONFIG_ISCSI_IBFT is not set -CONFIG_FW_CFG_SYSFS=m -# CONFIG_FW_CFG_SYSFS_CMDLINE is not set -CONFIG_SYSFB=y -# CONFIG_SYSFB_SIMPLEFB is not set -CONFIG_FW_CS_DSP=m -CONFIG_GOOGLE_FIRMWARE=y -# CONFIG_GOOGLE_SMI is not set -CONFIG_GOOGLE_CBMEM=m -CONFIG_GOOGLE_COREBOOT_TABLE=m -CONFIG_GOOGLE_MEMCONSOLE=m -# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set -CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=m -CONFIG_GOOGLE_VPD=m - -# -# EFI (Extensible Firmware Interface) Support -# -CONFIG_EFI_ESRT=y -CONFIG_EFI_VARS_PSTORE=y -CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y -CONFIG_EFI_SOFT_RESERVE=y -CONFIG_EFI_DXE_MEM_ATTRIBUTES=y -CONFIG_EFI_RUNTIME_WRAPPERS=y -CONFIG_EFI_BOOTLOADER_CONTROL=m -CONFIG_EFI_CAPSULE_LOADER=m -# CONFIG_EFI_TEST is not set -CONFIG_EFI_DEV_PATH_PARSER=y -CONFIG_APPLE_PROPERTIES=y -# CONFIG_RESET_ATTACK_MITIGATION is not set -CONFIG_EFI_RCI2_TABLE=y -# CONFIG_EFI_DISABLE_PCI_DMA is not set -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y -# CONFIG_EFI_DISABLE_RUNTIME is not set -CONFIG_EFI_COCO_SECRET=y -CONFIG_UNACCEPTED_MEMORY=y -CONFIG_EFI_EMBEDDED_FIRMWARE=y -# end of EFI (Extensible Firmware Interface) Support - -CONFIG_UEFI_CPER=y -CONFIG_UEFI_CPER_X86=y - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - -CONFIG_GNSS=m -CONFIG_GNSS_SERIAL=m -CONFIG_GNSS_MTK_SERIAL=m -CONFIG_GNSS_SIRF_SERIAL=m -CONFIG_GNSS_UBX_SERIAL=m -CONFIG_GNSS_USB=m -CONFIG_MTD=m -# CONFIG_MTD_TESTS is not set - -# -# Partition parsers -# -# CONFIG_MTD_AR7_PARTS is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_REDBOOT_PARTS is not set -# end of Partition parsers - -# -# User Modules And Translation Layers -# -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set - -# -# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK. -# -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_SM_FTL is not set -# CONFIG_MTD_OOPS is not set -CONFIG_MTD_PSTORE=m -# CONFIG_MTD_SWAP is not set -CONFIG_MTD_PARTITIONED_MASTER=y - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_RAM is not set -CONFIG_MTD_ROM=m -# CONFIG_MTD_ABSENT is not set -# end of RAM/ROM/Flash chip drivers - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set -# end of Mapping drivers for chip access - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_MCHP23K256 is not set -# CONFIG_MTD_MCHP48L640 is not set -# CONFIG_MTD_SST25L is not set -# CONFIG_MTD_SLRAM is not set -CONFIG_MTD_PHRAM=m -CONFIG_MTD_MTDRAM=m -CONFIG_MTDRAM_TOTAL_SIZE=4096 -CONFIG_MTDRAM_ERASE_SIZE=128 -CONFIG_MTD_BLOCK2MTD=m - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOCG3 is not set -# end of Self-contained MTD device drivers - -# -# NAND -# -CONFIG_MTD_NAND_CORE=m -# CONFIG_MTD_ONENAND is not set -CONFIG_MTD_RAW_NAND=m - -# -# Raw/parallel NAND flash controllers -# -# CONFIG_MTD_NAND_DENALI_PCI is not set -# CONFIG_MTD_NAND_CAFE is not set -# CONFIG_MTD_NAND_MXIC is not set -# CONFIG_MTD_NAND_GPIO is not set -# CONFIG_MTD_NAND_PLATFORM is not set -# CONFIG_MTD_NAND_ARASAN is not set - -# -# Misc -# -CONFIG_MTD_NAND_NANDSIM=m -# CONFIG_MTD_NAND_RICOH is not set -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_SPI_NAND is not set - -# -# ECC engine support -# -CONFIG_MTD_NAND_ECC=y -CONFIG_MTD_NAND_ECC_SW_HAMMING=y -CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC=y -CONFIG_MTD_NAND_ECC_SW_BCH=y -CONFIG_MTD_NAND_ECC_MXIC=y -# end of ECC engine support -# end of NAND - -# -# LPDDR & LPDDR2 PCM memory drivers -# -# CONFIG_MTD_LPDDR is not set -# end of LPDDR & LPDDR2 PCM memory drivers - -CONFIG_MTD_SPI_NOR=m -CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y -# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set -CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y -# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_LIMIT=20 -# CONFIG_MTD_UBI_FASTMAP is not set -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UBI_BLOCK is not set -# CONFIG_MTD_HYPERBUS is not set -# CONFIG_OF is not set -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_PARPORT=m -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y -CONFIG_PARPORT_PC_PCMCIA=m -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y -CONFIG_PNP=y -CONFIG_PNP_DEBUG_MESSAGES=y - -# -# Protocols -# -CONFIG_PNPACPI=y -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_NULL_BLK=m -CONFIG_BLK_DEV_FD=m -# CONFIG_BLK_DEV_FD_RAWCMD is not set -CONFIG_CDROM=y -CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m -CONFIG_ZRAM=m -# CONFIG_ZRAM_DEF_COMP_LZORLE is not set -CONFIG_ZRAM_DEF_COMP_ZSTD=y -# CONFIG_ZRAM_DEF_COMP_LZ4 is not set -# CONFIG_ZRAM_DEF_COMP_LZO is not set -# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set -# CONFIG_ZRAM_DEF_COMP_842 is not set -CONFIG_ZRAM_DEF_COMP="zstd" -CONFIG_ZRAM_WRITEBACK=y -# CONFIG_ZRAM_MEMORY_TRACKING is not set -CONFIG_ZRAM_MULTI_COMP=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 -CONFIG_BLK_DEV_DRBD=m -# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_BLK_DEV_NBD=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=16384 -CONFIG_CDROM_PKTCDVD=m -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -# CONFIG_CDROM_PKTCDVD_WCACHE is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_VIRTIO_BLK=y -CONFIG_BLK_DEV_RBD=m -CONFIG_BLK_DEV_UBLK=m -CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y -CONFIG_BLK_DEV_RNBD=y -CONFIG_BLK_DEV_RNBD_CLIENT=m -CONFIG_BLK_DEV_RNBD_SERVER=m - -# -# NVME Support -# -CONFIG_NVME_COMMON=y -CONFIG_NVME_CORE=y -CONFIG_BLK_DEV_NVME=y -CONFIG_NVME_MULTIPATH=y -CONFIG_NVME_VERBOSE_ERRORS=y -CONFIG_NVME_HWMON=y -CONFIG_NVME_FABRICS=m -CONFIG_NVME_RDMA=m -CONFIG_NVME_FC=m -CONFIG_NVME_TCP=m -CONFIG_NVME_AUTH=y -CONFIG_NVME_TARGET=m -CONFIG_NVME_TARGET_PASSTHRU=y -CONFIG_NVME_TARGET_LOOP=m -CONFIG_NVME_TARGET_RDMA=m -CONFIG_NVME_TARGET_FC=m -CONFIG_NVME_TARGET_FCLOOP=m -CONFIG_NVME_TARGET_TCP=m -CONFIG_NVME_TARGET_AUTH=y -# end of NVME Support - -# -# Misc devices -# -CONFIG_SENSORS_LIS3LV02D=m -CONFIG_AD525X_DPOT=m -CONFIG_AD525X_DPOT_I2C=m -CONFIG_AD525X_DPOT_SPI=m -# CONFIG_DUMMY_IRQ is not set -CONFIG_IBM_ASM=m -CONFIG_PHANTOM=m -CONFIG_TIFM_CORE=m -CONFIG_TIFM_7XX1=m -CONFIG_ICS932S401=m -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_SMPRO_ERRMON=m -CONFIG_SMPRO_MISC=m -CONFIG_HP_ILO=m -CONFIG_APDS9802ALS=m -CONFIG_ISL29003=m -CONFIG_ISL29020=m -CONFIG_SENSORS_TSL2550=m -CONFIG_SENSORS_BH1770=m -CONFIG_SENSORS_APDS990X=m -CONFIG_HMC6352=m -CONFIG_DS1682=m -CONFIG_VMWARE_BALLOON=m -CONFIG_LATTICE_ECP3_CONFIG=m -# CONFIG_SRAM is not set -CONFIG_DW_XDATA_PCIE=m -CONFIG_PCI_ENDPOINT_TEST=m -CONFIG_XILINX_SDFEC=m -CONFIG_MISC_RTSX=y -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=m -# CONFIG_EEPROM_AT25 is not set -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -CONFIG_EEPROM_93CX6=m -# CONFIG_EEPROM_93XX46 is not set -CONFIG_EEPROM_IDT_89HPESX=m -CONFIG_EEPROM_EE1004=y -# end of EEPROM support - -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -CONFIG_CB710_DEBUG_ASSUMPTIONS=y - -# -# Texas Instruments shared transport line discipline -# -CONFIG_TI_ST=m -# end of Texas Instruments shared transport line discipline - -CONFIG_SENSORS_LIS3_I2C=m -CONFIG_ALTERA_STAPL=m -CONFIG_INTEL_MEI=m -CONFIG_INTEL_MEI_ME=m -CONFIG_INTEL_MEI_TXE=m -CONFIG_INTEL_MEI_GSC=m -CONFIG_INTEL_MEI_HDCP=m -CONFIG_INTEL_MEI_PXP=m -# CONFIG_INTEL_MEI_GSC_PROXY is not set -CONFIG_VMWARE_VMCI=m -CONFIG_GENWQE=m -CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 -CONFIG_ECHO=m -CONFIG_BCM_VK=m -CONFIG_BCM_VK_TTY=y -CONFIG_MISC_ALCOR_PCI=m -CONFIG_MISC_RTSX_PCI=y -CONFIG_MISC_RTSX_USB=y -CONFIG_UACCE=m -CONFIG_PVPANIC=y -CONFIG_PVPANIC_MMIO=m -CONFIG_PVPANIC_PCI=m -CONFIG_GP_PCI1XXXX=m -# end of Misc devices - -# -# SCSI device support -# -CONFIG_SCSI_MOD=y -CONFIG_RAID_ATTRS=m -CONFIG_SCSI_COMMON=y -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -CONFIG_SCSI_NETLINK=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -CONFIG_CHR_DEV_ST=m -CONFIG_BLK_DEV_SR=y -CONFIG_CHR_DEV_SG=y -CONFIG_BLK_DEV_BSG=y -CONFIG_CHR_DEV_SCH=m -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_CONSTANTS=y -CONFIG_SCSI_LOGGING=y -CONFIG_SCSI_SCAN_ASYNC=y - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_ATTRS=y -CONFIG_SCSI_SAS_LIBSAS=y -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SRP_ATTRS=m -# end of SCSI Transports - -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_ISCSI_TCP is not set -CONFIG_ISCSI_BOOT_SYSFS=m -CONFIG_SCSI_CXGB3_ISCSI=m -CONFIG_SCSI_CXGB4_ISCSI=m -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_SCSI_BNX2X_FCOE=m -CONFIG_BE2ISCSI=m -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_HPSA=m -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_3W_SAS=m -CONFIG_SCSI_ACARD=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -CONFIG_AIC7XXX_DEBUG_ENABLE=y -CONFIG_AIC7XXX_DEBUG_MASK=0 -CONFIG_AIC7XXX_REG_PRETTY_PRINT=y -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set -CONFIG_AIC79XX_DEBUG_ENABLE=y -CONFIG_AIC79XX_DEBUG_MASK=0 -CONFIG_AIC79XX_REG_PRETTY_PRINT=y -CONFIG_SCSI_AIC94XX=m -CONFIG_AIC94XX_DEBUG=y -CONFIG_SCSI_MVSAS=y -CONFIG_SCSI_MVSAS_DEBUG=y -CONFIG_SCSI_MVSAS_TASKLET=y -CONFIG_SCSI_MVUMI=m -CONFIG_SCSI_ADVANSYS=m -CONFIG_SCSI_ARCMSR=m -CONFIG_SCSI_ESAS2R=m -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_SAS=y -CONFIG_SCSI_MPT3SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -CONFIG_SCSI_MPT3SAS_MAX_SGE=128 -CONFIG_SCSI_MPT2SAS=m -CONFIG_SCSI_MPI3MR=m -CONFIG_SCSI_SMARTPQI=m -CONFIG_SCSI_HPTIOP=m -CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y -CONFIG_SCSI_MYRB=m -CONFIG_SCSI_MYRS=m -CONFIG_VMWARE_PVSCSI=m -CONFIG_HYPERV_STORAGE=m -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -CONFIG_FCOE=m -CONFIG_FCOE_FNIC=m -CONFIG_SCSI_SNIC=m -# CONFIG_SCSI_SNIC_DEBUG_FS is not set -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_FDOMAIN=m -CONFIG_SCSI_FDOMAIN_PCI=m -CONFIG_SCSI_ISCI=m -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_PPA=m -CONFIG_SCSI_IMM=m -# CONFIG_SCSI_IZIP_EPP16 is not set -# CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_QLA_FC=m -CONFIG_TCM_QLA2XXX=m -# CONFIG_TCM_QLA2XXX_DEBUG is not set -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_QEDI=m -CONFIG_QEDF=m -CONFIG_SCSI_LPFC=m -# CONFIG_SCSI_LPFC_DEBUG_FS is not set -CONFIG_SCSI_EFCT=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_AM53C974=m -CONFIG_SCSI_WD719X=m -CONFIG_SCSI_DEBUG=m -CONFIG_SCSI_PMCRAID=m -CONFIG_SCSI_PM8001=m -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_VIRTIO=m -CONFIG_SCSI_CHELSIO_FCOE=m -CONFIG_SCSI_LOWLEVEL_PCMCIA=y -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=y -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m -# end of SCSI device support - -CONFIG_ATA=y -CONFIG_SATA_HOST=y -CONFIG_PATA_TIMINGS=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_FORCE=y -CONFIG_ATA_ACPI=y -CONFIG_SATA_ZPODD=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=y -CONFIG_SATA_MOBILE_LPM_POLICY=0 -CONFIG_SATA_AHCI_PLATFORM=y -CONFIG_AHCI_DWC=m -CONFIG_SATA_INIC162X=m -CONFIG_SATA_ACARD_AHCI=m -CONFIG_SATA_SIL24=y -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SX4=m -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_ATA_PIIX=y -CONFIG_SATA_DWC=m -# CONFIG_SATA_DWC_OLD_DMA is not set -CONFIG_SATA_MV=m -CONFIG_SATA_NV=y -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SIL=y -CONFIG_SATA_SIS=y -CONFIG_SATA_SVW=m -CONFIG_SATA_ULI=y -CONFIG_SATA_VIA=y -CONFIG_SATA_VITESSE=m - -# -# PATA SFF controllers with BMDMA -# -CONFIG_PATA_ALI=y -CONFIG_PATA_AMD=y -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=y -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=y -CONFIG_PATA_MARVELL=y -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m -CONFIG_PATA_RDC=m -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=y -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=y -CONFIG_PATA_WINBOND=m - -# -# PIO-only SFF controllers -# -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_PCMCIA=m -CONFIG_PATA_RZ1000=m -CONFIG_PATA_PARPORT=m - -# -# Parallel IDE protocol modules -# -CONFIG_PATA_PARPORT_ATEN=m -CONFIG_PATA_PARPORT_BPCK=m -# CONFIG_PATA_PARPORT_BPCK6 is not set -CONFIG_PATA_PARPORT_COMM=m -CONFIG_PATA_PARPORT_DSTR=m -CONFIG_PATA_PARPORT_FIT2=m -CONFIG_PATA_PARPORT_FIT3=m -CONFIG_PATA_PARPORT_EPAT=m -CONFIG_PATA_PARPORT_EPATC8=y -CONFIG_PATA_PARPORT_EPIA=m -CONFIG_PATA_PARPORT_FRIQ=m -CONFIG_PATA_PARPORT_FRPW=m -CONFIG_PATA_PARPORT_KBIC=m -CONFIG_PATA_PARPORT_KTTI=m -CONFIG_PATA_PARPORT_ON20=m -CONFIG_PATA_PARPORT_ON26=m - -# -# Generic fallback / legacy drivers -# -CONFIG_PATA_ACPI=y -CONFIG_ATA_GENERIC=y -CONFIG_PATA_LEGACY=m -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID456=m -CONFIG_MD_MULTIPATH=m -CONFIG_MD_FAULTY=m -CONFIG_MD_CLUSTER=m -CONFIG_BCACHE=m -# CONFIG_BCACHE_DEBUG is not set -# CONFIG_BCACHE_CLOSURES_DEBUG is not set -CONFIG_BCACHE_ASYNC_REGISTRATION=y -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_DM=m -CONFIG_DM_DEBUG=y -CONFIG_DM_BUFIO=m -CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set -CONFIG_DM_BIO_PRISON=m -CONFIG_DM_PERSISTENT_DATA=m -CONFIG_DM_UNSTRIPED=m -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_THIN_PROVISIONING=m -CONFIG_DM_CACHE=m -CONFIG_DM_CACHE_SMQ=m -CONFIG_DM_WRITECACHE=m -CONFIG_DM_EBS=m -CONFIG_DM_ERA=m -CONFIG_DM_CLONE=m -CONFIG_DM_MIRROR=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_RAID=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_MULTIPATH_HST=m -CONFIG_DM_MULTIPATH_IOA=m -CONFIG_DM_DELAY=m -CONFIG_DM_DUST=m -CONFIG_DM_UEVENT=y -CONFIG_DM_FLAKEY=m -CONFIG_DM_VERITY=m -CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y -CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING=y -CONFIG_DM_VERITY_FEC=y -CONFIG_DM_SWITCH=m -CONFIG_DM_LOG_WRITES=m -CONFIG_DM_INTEGRITY=m -CONFIG_DM_ZONED=m -CONFIG_DM_AUDIT=y -CONFIG_TARGET_CORE=m -CONFIG_TCM_IBLOCK=m -CONFIG_TCM_FILEIO=m -CONFIG_TCM_PSCSI=m -CONFIG_TCM_USER2=m -CONFIG_LOOPBACK_TARGET=m -CONFIG_TCM_FC=m -CONFIG_ISCSI_TARGET=m -CONFIG_ISCSI_TARGET_CXGB4=m -CONFIG_SBP_TARGET=m -# CONFIG_REMOTE_TARGET is not set -CONFIG_FUSION=y -CONFIG_FUSION_SPI=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_CTL=m -CONFIG_FUSION_LAN=m -# CONFIG_FUSION_LOGGING is not set - -# -# IEEE 1394 (FireWire) support -# -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m -CONFIG_FIREWIRE_NOSY=m -# end of IEEE 1394 (FireWire) support - -CONFIG_MACINTOSH_DRIVERS=y -CONFIG_MAC_EMUMOUSEBTN=m -CONFIG_NETDEVICES=y -CONFIG_MII=y -CONFIG_NET_CORE=y -CONFIG_BONDING=m -CONFIG_DUMMY=m -CONFIG_WIREGUARD=m -# CONFIG_WIREGUARD_DEBUG is not set -CONFIG_EQUALIZER=m -CONFIG_NET_FC=y -CONFIG_IFB=m -CONFIG_NET_TEAM=m -CONFIG_NET_TEAM_MODE_BROADCAST=m -CONFIG_NET_TEAM_MODE_ROUNDROBIN=m -CONFIG_NET_TEAM_MODE_RANDOM=m -CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m -CONFIG_NET_TEAM_MODE_LOADBALANCE=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -CONFIG_IPVLAN_L3S=y -CONFIG_IPVLAN=m -CONFIG_IPVTAP=m -CONFIG_VXLAN=m -CONFIG_GENEVE=m -CONFIG_BAREUDP=m -CONFIG_GTP=m -CONFIG_AMT=m -CONFIG_MACSEC=m -CONFIG_NETCONSOLE=m -CONFIG_NETCONSOLE_DYNAMIC=y -CONFIG_NETPOLL=y -CONFIG_NET_POLL_CONTROLLER=y -CONFIG_NTB_NETDEV=m -CONFIG_TUN=y -CONFIG_TAP=m -# CONFIG_TUN_VNET_CROSS_LE is not set -CONFIG_VETH=m -CONFIG_VIRTIO_NET=y -CONFIG_NLMON=m -CONFIG_NET_VRF=m -CONFIG_VSOCKMON=m -CONFIG_MHI_NET=m -CONFIG_SUNGEM_PHY=m -# CONFIG_ARCNET is not set -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -# CONFIG_ATM_ENI_DEBUG is not set -# CONFIG_ATM_ENI_TUNE_BURST is not set -CONFIG_ATM_NICSTAR=m -# CONFIG_ATM_NICSTAR_USE_SUNI is not set -# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y -CONFIG_ATM_SOLOS=m - -# -# Distributed Switch Architecture drivers -# -CONFIG_B53=m -CONFIG_B53_SPI_DRIVER=m -CONFIG_B53_MDIO_DRIVER=m -CONFIG_B53_MMAP_DRIVER=m -CONFIG_B53_SRAB_DRIVER=m -CONFIG_B53_SERDES=m -CONFIG_NET_DSA_BCM_SF2=m -CONFIG_NET_DSA_LOOP=m -CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m -# CONFIG_NET_DSA_LANTIQ_GSWIP is not set -CONFIG_NET_DSA_MT7530=m -CONFIG_NET_DSA_MT7530_MDIO=m -CONFIG_NET_DSA_MT7530_MMIO=m -CONFIG_NET_DSA_MV88E6060=m -CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m -CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m -CONFIG_NET_DSA_MICROCHIP_KSZ_SPI=m -CONFIG_NET_DSA_MICROCHIP_KSZ_PTP=y -CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=m -CONFIG_NET_DSA_MV88E6XXX=m -CONFIG_NET_DSA_MV88E6XXX_PTP=y -CONFIG_NET_DSA_MSCC_FELIX_DSA_LIB=m -CONFIG_NET_DSA_MSCC_OCELOT_EXT=m -CONFIG_NET_DSA_MSCC_SEVILLE=m -CONFIG_NET_DSA_AR9331=m -CONFIG_NET_DSA_QCA8K=m -# CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT is not set -CONFIG_NET_DSA_SJA1105=m -CONFIG_NET_DSA_SJA1105_PTP=y -CONFIG_NET_DSA_SJA1105_TAS=y -CONFIG_NET_DSA_SJA1105_VL=y -CONFIG_NET_DSA_XRS700X=m -CONFIG_NET_DSA_XRS700X_I2C=m -CONFIG_NET_DSA_XRS700X_MDIO=m -CONFIG_NET_DSA_REALTEK=m -# CONFIG_NET_DSA_REALTEK_MDIO is not set -# CONFIG_NET_DSA_REALTEK_SMI is not set -CONFIG_NET_DSA_REALTEK_RTL8365MB=m -CONFIG_NET_DSA_REALTEK_RTL8366RB=m -CONFIG_NET_DSA_SMSC_LAN9303=m -CONFIG_NET_DSA_SMSC_LAN9303_I2C=m -CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m -CONFIG_NET_DSA_VITESSE_VSC73XX=m -CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m -CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m -# end of Distributed Switch Architecture drivers - -CONFIG_ETHERNET=y -CONFIG_MDIO=y -CONFIG_NET_VENDOR_3COM=y -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_3C589=m -CONFIG_VORTEX=y -CONFIG_TYPHOON=m -CONFIG_NET_VENDOR_ADAPTEC=y -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_NET_VENDOR_AGERE=y -CONFIG_ET131X=m -CONFIG_NET_VENDOR_ALACRITECH=y -CONFIG_SLICOSS=m -CONFIG_NET_VENDOR_ALTEON=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_ALTERA_TSE=m -CONFIG_NET_VENDOR_AMAZON=y -CONFIG_ENA_ETHERNET=m -CONFIG_NET_VENDOR_AMD=y -CONFIG_AMD8111_ETH=m -CONFIG_PCNET32=y -CONFIG_PCMCIA_NMCLAN=m -CONFIG_AMD_XGBE=m -CONFIG_AMD_XGBE_DCB=y -CONFIG_AMD_XGBE_HAVE_ECC=y -# CONFIG_PDS_CORE is not set -CONFIG_NET_VENDOR_AQUANTIA=y -CONFIG_AQTION=m -CONFIG_NET_VENDOR_ARC=y -CONFIG_NET_VENDOR_ASIX=y -CONFIG_SPI_AX88796C=m -CONFIG_SPI_AX88796C_COMPRESSION=y -CONFIG_NET_VENDOR_ATHEROS=y -CONFIG_ATL2=y -CONFIG_ATL1=y -CONFIG_ATL1E=y -CONFIG_ATL1C=y -CONFIG_ALX=y -CONFIG_CX_ECAT=m -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_B44=y -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_BCMGENET=m -CONFIG_BNX2=y -CONFIG_CNIC=y -CONFIG_TIGON3=y -CONFIG_TIGON3_HWMON=y -CONFIG_BNX2X=m -CONFIG_BNX2X_SRIOV=y -CONFIG_SYSTEMPORT=m -CONFIG_BNXT=m -CONFIG_BNXT_SRIOV=y -CONFIG_BNXT_FLOWER_OFFLOAD=y -CONFIG_BNXT_DCB=y -CONFIG_BNXT_HWMON=y -CONFIG_NET_VENDOR_CADENCE=y -CONFIG_MACB=m -CONFIG_MACB_USE_HWSTAMP=y -CONFIG_MACB_PCI=m -CONFIG_NET_VENDOR_CAVIUM=y -CONFIG_THUNDER_NIC_PF=m -CONFIG_THUNDER_NIC_VF=m -CONFIG_THUNDER_NIC_BGX=m -CONFIG_THUNDER_NIC_RGX=m -CONFIG_CAVIUM_PTP=m -CONFIG_LIQUIDIO_CORE=m -CONFIG_LIQUIDIO=m -CONFIG_LIQUIDIO_VF=m -CONFIG_NET_VENDOR_CHELSIO=y -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3=m -CONFIG_CHELSIO_T4=m -CONFIG_CHELSIO_T4_DCB=y -CONFIG_CHELSIO_T4_FCOE=y -CONFIG_CHELSIO_T4VF=m -CONFIG_CHELSIO_LIB=m -CONFIG_CHELSIO_INLINE_CRYPTO=y -CONFIG_CHELSIO_IPSEC_INLINE=m -CONFIG_CHELSIO_TLS_DEVICE=m -CONFIG_NET_VENDOR_CISCO=y -CONFIG_ENIC=m -CONFIG_NET_VENDOR_CORTINA=y -CONFIG_NET_VENDOR_DAVICOM=y -CONFIG_DM9051=m -CONFIG_DNET=m -CONFIG_NET_VENDOR_DEC=y -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_DE2104X_DSL=0 -CONFIG_TULIP=m -CONFIG_TULIP_MWI=y -CONFIG_TULIP_MMIO=y -CONFIG_TULIP_NAPI=y -CONFIG_TULIP_NAPI_HW_MITIGATION=y -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_ULI526X=y -CONFIG_PCMCIA_XIRCOM=m -CONFIG_NET_VENDOR_DLINK=y -CONFIG_DL2K=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_NET_VENDOR_EMULEX=y -CONFIG_BE2NET=m -CONFIG_BE2NET_HWMON=y -CONFIG_BE2NET_BE2=y -CONFIG_BE2NET_BE3=y -CONFIG_BE2NET_LANCER=y -CONFIG_BE2NET_SKYHAWK=y -CONFIG_NET_VENDOR_ENGLEDER=y -CONFIG_TSNEP=m -# CONFIG_TSNEP_SELFTESTS is not set -CONFIG_NET_VENDOR_EZCHIP=y -CONFIG_NET_VENDOR_FUJITSU=y -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_NET_VENDOR_FUNGIBLE=y -CONFIG_FUN_CORE=m -CONFIG_FUN_ETH=m -CONFIG_NET_VENDOR_GOOGLE=y -CONFIG_GVE=m -CONFIG_NET_VENDOR_HUAWEI=y -CONFIG_HINIC=m -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_E100=y -CONFIG_E1000=y -CONFIG_E1000E=y -CONFIG_E1000E_HWTS=y -CONFIG_IGB=y -CONFIG_IGB_HWMON=y -CONFIG_IGBVF=m -CONFIG_IXGBE=y -CONFIG_IXGBE_HWMON=y -CONFIG_IXGBE_DCB=y -# CONFIG_IXGBE_IPSEC is not set -CONFIG_IXGBEVF=m -CONFIG_IXGBEVF_IPSEC=y -CONFIG_I40E=m -CONFIG_I40E_DCB=y -CONFIG_IAVF=m -CONFIG_I40EVF=m -CONFIG_ICE=m -CONFIG_ICE_SWITCHDEV=y -CONFIG_ICE_HWTS=y -CONFIG_FM10K=m -CONFIG_IGC=y -CONFIG_JME=y -CONFIG_NET_VENDOR_ADI=y -CONFIG_ADIN1110=m -CONFIG_NET_VENDOR_LITEX=y -CONFIG_NET_VENDOR_MARVELL=y -CONFIG_MVMDIO=m -CONFIG_SKGE=y -# CONFIG_SKGE_DEBUG is not set -CONFIG_SKGE_GENESIS=y -CONFIG_SKY2=y -# CONFIG_SKY2_DEBUG is not set -CONFIG_OCTEON_EP=m -CONFIG_PRESTERA=m -CONFIG_PRESTERA_PCI=m -CONFIG_NET_VENDOR_MELLANOX=y -CONFIG_MLX4_EN=m -CONFIG_MLX4_EN_DCB=y -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_MLX4_CORE_GEN2=y -CONFIG_MLX5_CORE=m -CONFIG_MLX5_FPGA=y -CONFIG_MLX5_CORE_EN=y -CONFIG_MLX5_EN_ARFS=y -CONFIG_MLX5_EN_RXNFC=y -CONFIG_MLX5_MPFS=y -CONFIG_MLX5_ESWITCH=y -CONFIG_MLX5_BRIDGE=y -CONFIG_MLX5_CLS_ACT=y -CONFIG_MLX5_TC_CT=y -CONFIG_MLX5_TC_SAMPLE=y -CONFIG_MLX5_CORE_EN_DCB=y -CONFIG_MLX5_CORE_IPOIB=y -CONFIG_MLX5_EN_MACSEC=y -CONFIG_MLX5_EN_IPSEC=y -CONFIG_MLX5_EN_TLS=y -CONFIG_MLX5_SW_STEERING=y -CONFIG_MLX5_SF=y -CONFIG_MLX5_SF_MANAGER=y -CONFIG_MLXSW_CORE=m -CONFIG_MLXSW_CORE_HWMON=y -CONFIG_MLXSW_CORE_THERMAL=y -CONFIG_MLXSW_PCI=m -CONFIG_MLXSW_I2C=m -CONFIG_MLXSW_SPECTRUM=m -CONFIG_MLXSW_SPECTRUM_DCB=y -CONFIG_MLXSW_MINIMAL=m -CONFIG_MLXFW=m -CONFIG_NET_VENDOR_MICREL=y -CONFIG_KS8842=m -CONFIG_KS8851=m -CONFIG_KS8851_MLL=m -CONFIG_KSZ884X_PCI=m -CONFIG_NET_VENDOR_MICROCHIP=y -CONFIG_ENC28J60=m -# CONFIG_ENC28J60_WRITEVERIFY is not set -CONFIG_ENCX24J600=m -CONFIG_LAN743X=y -CONFIG_VCAP=y -CONFIG_NET_VENDOR_MICROSEMI=y -CONFIG_MSCC_OCELOT_SWITCH_LIB=m -CONFIG_NET_VENDOR_MICROSOFT=y -CONFIG_MICROSOFT_MANA=m -CONFIG_NET_VENDOR_MYRI=y -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_FEALNX=m -CONFIG_NET_VENDOR_NI=y -CONFIG_NI_XGE_MANAGEMENT_ENET=m -CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_NATSEMI=m -CONFIG_NS83820=m -CONFIG_NET_VENDOR_NETERION=y -CONFIG_S2IO=m -CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NFP=m -CONFIG_NFP_APP_FLOWER=y -CONFIG_NFP_APP_ABM_NIC=y -CONFIG_NFP_NET_IPSEC=y -# CONFIG_NFP_DEBUG is not set -CONFIG_NET_VENDOR_8390=y -CONFIG_PCMCIA_AXNET=m -CONFIG_NE2K_PCI=m -CONFIG_PCMCIA_PCNET=m -CONFIG_NET_VENDOR_NVIDIA=y -CONFIG_FORCEDETH=y -CONFIG_NET_VENDOR_OKI=y -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_PACKET_ENGINES=y -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_NET_VENDOR_PENSANDO=y -CONFIG_IONIC=m -CONFIG_NET_VENDOR_QLOGIC=y -CONFIG_QLA3XXX=y -CONFIG_QLCNIC=m -CONFIG_QLCNIC_SRIOV=y -CONFIG_QLCNIC_DCB=y -CONFIG_QLCNIC_HWMON=y -CONFIG_NETXEN_NIC=m -CONFIG_QED=m -CONFIG_QED_LL2=y -CONFIG_QED_SRIOV=y -CONFIG_QEDE=m -CONFIG_QED_RDMA=y -CONFIG_QED_ISCSI=y -CONFIG_QED_FCOE=y -CONFIG_QED_OOO=y -CONFIG_NET_VENDOR_BROCADE=y -CONFIG_BNA=m -CONFIG_NET_VENDOR_QUALCOMM=y -CONFIG_QCOM_EMAC=m -CONFIG_RMNET=m -CONFIG_NET_VENDOR_RDC=y -CONFIG_R6040=m -CONFIG_NET_VENDOR_REALTEK=y -CONFIG_ATP=m -CONFIG_8139CP=m -CONFIG_8139TOO=y -# CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y -CONFIG_8139TOO_8129=y -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R8169=y -CONFIG_NET_VENDOR_RENESAS=y -CONFIG_NET_VENDOR_ROCKER=y -CONFIG_ROCKER=m -CONFIG_NET_VENDOR_SAMSUNG=y -CONFIG_SXGBE_ETH=m -CONFIG_NET_VENDOR_SEEQ=y -CONFIG_NET_VENDOR_SILAN=y -CONFIG_SC92031=m -CONFIG_NET_VENDOR_SIS=y -CONFIG_SIS900=y -CONFIG_SIS190=y -CONFIG_NET_VENDOR_SOLARFLARE=y -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_SFC_MCDI_MON=y -CONFIG_SFC_SRIOV=y -CONFIG_SFC_MCDI_LOGGING=y -CONFIG_SFC_FALCON=m -CONFIG_SFC_FALCON_MTD=y -CONFIG_SFC_SIENA=m -CONFIG_SFC_SIENA_MTD=y -CONFIG_SFC_SIENA_MCDI_MON=y -CONFIG_SFC_SIENA_SRIOV=y -CONFIG_SFC_SIENA_MCDI_LOGGING=y -CONFIG_NET_VENDOR_SMSC=y -CONFIG_PCMCIA_SMC91C92=m -CONFIG_EPIC100=m -CONFIG_SMSC911X=m -CONFIG_SMSC9420=m -CONFIG_NET_VENDOR_SOCIONEXT=y -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_STMMAC_ETH=m -# CONFIG_STMMAC_SELFTESTS is not set -CONFIG_STMMAC_PLATFORM=m -CONFIG_DWMAC_GENERIC=m -CONFIG_DWMAC_INTEL=m -CONFIG_DWMAC_LOONGSON=m -CONFIG_STMMAC_PCI=m -CONFIG_NET_VENDOR_SUN=y -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m -CONFIG_NIU=m -CONFIG_NET_VENDOR_SYNOPSYS=y -CONFIG_DWC_XLGMAC=m -CONFIG_DWC_XLGMAC_PCI=m -CONFIG_NET_VENDOR_TEHUTI=y -CONFIG_TEHUTI=m -CONFIG_NET_VENDOR_TI=y -# CONFIG_TI_CPSW_PHY_SEL is not set -CONFIG_TLAN=m -CONFIG_NET_VENDOR_VERTEXCOM=y -CONFIG_MSE102X=m -CONFIG_NET_VENDOR_VIA=y -CONFIG_VIA_RHINE=y -CONFIG_VIA_RHINE_MMIO=y -CONFIG_VIA_VELOCITY=y -CONFIG_NET_VENDOR_WANGXUN=y -CONFIG_LIBWX=m -CONFIG_NGBE=m -CONFIG_TXGBE=m -CONFIG_NET_VENDOR_WIZNET=y -CONFIG_WIZNET_W5100=m -CONFIG_WIZNET_W5300=m -# CONFIG_WIZNET_BUS_DIRECT is not set -# CONFIG_WIZNET_BUS_INDIRECT is not set -CONFIG_WIZNET_BUS_ANY=y -CONFIG_WIZNET_W5100_SPI=m -CONFIG_NET_VENDOR_XILINX=y -CONFIG_XILINX_EMACLITE=m -CONFIG_XILINX_AXI_EMAC=m -CONFIG_XILINX_LL_TEMAC=m -CONFIG_NET_VENDOR_XIRCOM=y -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_FDDI=m -CONFIG_DEFXX=m -CONFIG_SKFP=m -# CONFIG_HIPPI is not set -CONFIG_NET_SB1000=m -CONFIG_PHYLINK=m -CONFIG_PHYLIB=y -CONFIG_SWPHY=y -CONFIG_LED_TRIGGER_PHY=y -CONFIG_FIXED_PHY=y -CONFIG_SFP=m - -# -# MII PHY device drivers -# -CONFIG_AMD_PHY=y -CONFIG_ADIN_PHY=m -CONFIG_ADIN1100_PHY=m -CONFIG_AQUANTIA_PHY=m -CONFIG_AX88796B_PHY=m -CONFIG_BROADCOM_PHY=y -CONFIG_BCM54140_PHY=m -CONFIG_BCM7XXX_PHY=m -CONFIG_BCM84881_PHY=m -CONFIG_BCM87XX_PHY=m -CONFIG_BCM_NET_PHYLIB=y -CONFIG_BCM_NET_PHYPTP=y -CONFIG_CICADA_PHY=m -CONFIG_CORTINA_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_LXT_PHY=m -CONFIG_INTEL_XWAY_PHY=m -CONFIG_LSI_ET1011C_PHY=m -CONFIG_MARVELL_PHY=y -CONFIG_MARVELL_10G_PHY=m -CONFIG_MARVELL_88X2222_PHY=m -CONFIG_MAXLINEAR_GPHY=m -CONFIG_MEDIATEK_GE_PHY=m -CONFIG_MICREL_PHY=m -# CONFIG_MICROCHIP_T1S_PHY is not set -CONFIG_MICROCHIP_PHY=m -CONFIG_MICROCHIP_T1_PHY=m -CONFIG_MICROSEMI_PHY=m -CONFIG_MOTORCOMM_PHY=m -CONFIG_NATIONAL_PHY=m -# CONFIG_NXP_CBTX_PHY is not set -CONFIG_NXP_C45_TJA11XX_PHY=m -CONFIG_NXP_TJA11XX_PHY=m -CONFIG_NCN26000_PHY=m -CONFIG_AT803X_PHY=y -CONFIG_QSEMI_PHY=m -CONFIG_REALTEK_PHY=y -CONFIG_RENESAS_PHY=m -# CONFIG_ROCKCHIP_PHY is not set -CONFIG_SMSC_PHY=m -CONFIG_STE10XP=m -CONFIG_TERANETICS_PHY=m -CONFIG_DP83822_PHY=m -CONFIG_DP83TC811_PHY=m -CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m -CONFIG_DP83869_PHY=m -CONFIG_DP83TD510_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_XILINX_GMII2RGMII=m -CONFIG_MICREL_KS8995MA=m -CONFIG_PSE_CONTROLLER=y -CONFIG_PSE_REGULATOR=m -CONFIG_CAN_DEV=m -CONFIG_CAN_VCAN=m -CONFIG_CAN_VXCAN=m -CONFIG_CAN_NETLINK=y -CONFIG_CAN_CALC_BITTIMING=y -CONFIG_CAN_RX_OFFLOAD=y -CONFIG_CAN_CAN327=m -CONFIG_CAN_JANZ_ICAN3=m -CONFIG_CAN_KVASER_PCIEFD=m -CONFIG_CAN_SLCAN=m -CONFIG_CAN_C_CAN=m -CONFIG_CAN_C_CAN_PLATFORM=m -CONFIG_CAN_C_CAN_PCI=m -CONFIG_CAN_CC770=m -# CONFIG_CAN_CC770_ISA is not set -CONFIG_CAN_CC770_PLATFORM=m -CONFIG_CAN_CTUCANFD=m -CONFIG_CAN_CTUCANFD_PCI=m -CONFIG_CAN_IFI_CANFD=m -CONFIG_CAN_M_CAN=m -CONFIG_CAN_M_CAN_PCI=m -CONFIG_CAN_M_CAN_PLATFORM=m -CONFIG_CAN_M_CAN_TCAN4X5X=m -CONFIG_CAN_PEAK_PCIEFD=m -CONFIG_CAN_SJA1000=m -CONFIG_CAN_EMS_PCI=m -# CONFIG_CAN_EMS_PCMCIA is not set -CONFIG_CAN_F81601=m -CONFIG_CAN_KVASER_PCI=m -CONFIG_CAN_PEAK_PCI=m -CONFIG_CAN_PEAK_PCIEC=y -CONFIG_CAN_PEAK_PCMCIA=m -CONFIG_CAN_PLX_PCI=m -# CONFIG_CAN_SJA1000_ISA is not set -CONFIG_CAN_SJA1000_PLATFORM=m -CONFIG_CAN_SOFTING=m -CONFIG_CAN_SOFTING_CS=m - -# -# CAN SPI interfaces -# -CONFIG_CAN_HI311X=m -CONFIG_CAN_MCP251X=m -CONFIG_CAN_MCP251XFD=m -# CONFIG_CAN_MCP251XFD_SANITY is not set -# end of CAN SPI interfaces - -# -# CAN USB interfaces -# -CONFIG_CAN_8DEV_USB=m -CONFIG_CAN_EMS_USB=m -CONFIG_CAN_ESD_USB=m -CONFIG_CAN_ETAS_ES58X=m -# CONFIG_CAN_F81604 is not set -CONFIG_CAN_GS_USB=m -CONFIG_CAN_KVASER_USB=m -CONFIG_CAN_MCBA_USB=m -CONFIG_CAN_PEAK_USB=m -CONFIG_CAN_UCAN=m -# end of CAN USB interfaces - -# CONFIG_CAN_DEBUG_DEVICES is not set - -# -# MCTP Device Drivers -# -CONFIG_MCTP_SERIAL=m -CONFIG_MCTP_TRANSPORT_I2C=m -# end of MCTP Device Drivers - -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_BUS=y -CONFIG_FWNODE_MDIO=y -CONFIG_ACPI_MDIO=y -CONFIG_MDIO_DEVRES=y -CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_BCM_UNIMAC=m -CONFIG_MDIO_CAVIUM=m -CONFIG_MDIO_GPIO=m -CONFIG_MDIO_I2C=m -CONFIG_MDIO_MVUSB=m -CONFIG_MDIO_MSCC_MIIM=m -CONFIG_MDIO_REGMAP=m -CONFIG_MDIO_THUNDER=m - -# -# MDIO Multiplexers -# - -# -# PCS device drivers -# -CONFIG_PCS_XPCS=m -CONFIG_PCS_LYNX=m -CONFIG_PCS_MTK_LYNXI=m -# end of PCS device drivers - -CONFIG_PLIP=m -CONFIG_PPP=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_FILTER=y -CONFIG_PPP_MPPE=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPPOATM=m -CONFIG_PPPOE=m -# CONFIG_PPPOE_HASH_BITS_1 is not set -# CONFIG_PPPOE_HASH_BITS_2 is not set -CONFIG_PPPOE_HASH_BITS_4=y -# CONFIG_PPPOE_HASH_BITS_8 is not set -CONFIG_PPPOE_HASH_BITS=4 -CONFIG_PPTP=m -CONFIG_PPPOL2TP=m -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_SLIP=m -CONFIG_SLHC=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_RTL8152=m -CONFIG_USB_LAN78XX=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_AX88179_178A=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_NCM=m -CONFIG_USB_NET_HUAWEI_CDC_NCM=m -CONFIG_USB_NET_CDC_MBIM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SR9700=m -CONFIG_USB_NET_SR9800=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET_ENABLE=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_NET_CX82310_ETH=m -CONFIG_USB_NET_KALMIA=m -CONFIG_USB_NET_QMI_WWAN=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -CONFIG_USB_CDC_PHONET=m -CONFIG_USB_IPHETH=m -CONFIG_USB_SIERRA_NET=m -CONFIG_USB_VL600=m -CONFIG_USB_NET_CH9200=m -CONFIG_USB_NET_AQC111=m -CONFIG_USB_RTL8153_ECM=m -CONFIG_WLAN=y -CONFIG_WLAN_VENDOR_ADMTEK=y -CONFIG_ADM8211=m -CONFIG_ATH_COMMON=m -CONFIG_WLAN_VENDOR_ATH=y -# CONFIG_ATH_DEBUG is not set -CONFIG_ATH5K=m -CONFIG_ATH5K_DEBUG=y -CONFIG_ATH5K_TRACER=y -CONFIG_ATH5K_PCI=y -CONFIG_ATH9K_HW=m -CONFIG_ATH9K_COMMON=m -CONFIG_ATH9K_COMMON_DEBUG=y -CONFIG_ATH9K_BTCOEX_SUPPORT=y -CONFIG_ATH9K=m -CONFIG_ATH9K_PCI=y -CONFIG_ATH9K_AHB=y -CONFIG_ATH9K_DEBUGFS=y -CONFIG_ATH9K_STATION_STATISTICS=y -CONFIG_ATH9K_DYNACK=y -CONFIG_ATH9K_WOW=y -CONFIG_ATH9K_RFKILL=y -CONFIG_ATH9K_CHANNEL_CONTEXT=y -CONFIG_ATH9K_PCOEM=y -CONFIG_ATH9K_PCI_NO_EEPROM=m -CONFIG_ATH9K_HTC=m -CONFIG_ATH9K_HTC_DEBUGFS=y -CONFIG_ATH9K_HWRNG=y -CONFIG_ATH9K_COMMON_SPECTRAL=y -CONFIG_CARL9170=m -CONFIG_CARL9170_LEDS=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_CARL9170_WPC=y -# CONFIG_CARL9170_HWRNG is not set -CONFIG_ATH6KL=m -CONFIG_ATH6KL_SDIO=m -CONFIG_ATH6KL_USB=m -CONFIG_ATH6KL_DEBUG=y -CONFIG_ATH6KL_TRACING=y -CONFIG_AR5523=m -CONFIG_WIL6210=m -CONFIG_WIL6210_ISR_COR=y -CONFIG_WIL6210_TRACING=y -CONFIG_WIL6210_DEBUGFS=y -CONFIG_ATH10K=m -CONFIG_ATH10K_CE=y -CONFIG_ATH10K_PCI=m -CONFIG_ATH10K_SDIO=m -CONFIG_ATH10K_USB=m -CONFIG_ATH10K_DEBUG=y -CONFIG_ATH10K_DEBUGFS=y -CONFIG_ATH10K_SPECTRAL=y -CONFIG_ATH10K_TRACING=y -CONFIG_WCN36XX=m -CONFIG_WCN36XX_DEBUGFS=y -CONFIG_ATH11K=m -CONFIG_ATH11K_AHB=m -CONFIG_ATH11K_PCI=m -CONFIG_ATH11K_DEBUG=y -CONFIG_ATH11K_DEBUGFS=y -# CONFIG_ATH11K_TRACING is not set -CONFIG_ATH11K_SPECTRAL=y -CONFIG_ATH12K=m -CONFIG_ATH12K_DEBUG=y -CONFIG_ATH12K_TRACING=y -CONFIG_WLAN_VENDOR_ATMEL=y -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_WLAN_VENDOR_BROADCOM=y -CONFIG_B43=m -CONFIG_B43_BCMA=y -CONFIG_B43_SSB=y -CONFIG_B43_BUSES_BCMA_AND_SSB=y -# CONFIG_B43_BUSES_BCMA is not set -# CONFIG_B43_BUSES_SSB is not set -CONFIG_B43_PCI_AUTOSELECT=y -CONFIG_B43_PCICORE_AUTOSELECT=y -CONFIG_B43_SDIO=y -CONFIG_B43_BCMA_PIO=y -CONFIG_B43_PIO=y -CONFIG_B43_PHY_G=y -CONFIG_B43_PHY_N=y -CONFIG_B43_PHY_LP=y -CONFIG_B43_PHY_HT=y -CONFIG_B43_LEDS=y -CONFIG_B43_HWRNG=y -# CONFIG_B43_DEBUG is not set -CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_PCI_AUTOSELECT=y -CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y -CONFIG_B43LEGACY_LEDS=y -CONFIG_B43LEGACY_HWRNG=y -CONFIG_B43LEGACY_DEBUG=y -CONFIG_B43LEGACY_DMA=y -CONFIG_B43LEGACY_PIO=y -CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y -# CONFIG_B43LEGACY_DMA_MODE is not set -# CONFIG_B43LEGACY_PIO_MODE is not set -CONFIG_BRCMUTIL=m -CONFIG_BRCMSMAC=m -CONFIG_BRCMSMAC_LEDS=y -CONFIG_BRCMFMAC=m -CONFIG_BRCMFMAC_PROTO_BCDC=y -CONFIG_BRCMFMAC_PROTO_MSGBUF=y -CONFIG_BRCMFMAC_SDIO=y -CONFIG_BRCMFMAC_USB=y -CONFIG_BRCMFMAC_PCIE=y -CONFIG_BRCM_TRACING=y -CONFIG_BRCMDBG=y -CONFIG_WLAN_VENDOR_CISCO=y -CONFIG_AIRO=m -CONFIG_AIRO_CS=m -CONFIG_WLAN_VENDOR_INTEL=y -CONFIG_IPW2100=m -CONFIG_IPW2100_MONITOR=y -# CONFIG_IPW2100_DEBUG is not set -CONFIG_IPW2200=m -CONFIG_IPW2200_MONITOR=y -CONFIG_IPW2200_RADIOTAP=y -CONFIG_IPW2200_PROMISCUOUS=y -CONFIG_IPW2200_QOS=y -# CONFIG_IPW2200_DEBUG is not set -CONFIG_LIBIPW=m -# CONFIG_LIBIPW_DEBUG is not set -CONFIG_IWLEGACY=m -CONFIG_IWL4965=m -CONFIG_IWL3945=m - -# -# iwl3945 / iwl4965 Debugging Options -# -CONFIG_IWLEGACY_DEBUG=y -CONFIG_IWLEGACY_DEBUGFS=y -# end of iwl3945 / iwl4965 Debugging Options - -CONFIG_IWLWIFI=m -CONFIG_IWLWIFI_LEDS=y -CONFIG_IWLDVM=m -CONFIG_IWLMVM=m -CONFIG_IWLWIFI_OPMODE_MODULAR=y - -# -# Debugging Options -# -# CONFIG_IWLWIFI_DEBUG is not set -# CONFIG_IWLWIFI_DEBUGFS is not set -# CONFIG_IWLWIFI_DEVICE_TRACING is not set -# end of Debugging Options - -CONFIG_WLAN_VENDOR_INTERSIL=y -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -CONFIG_HOSTAP_FIRMWARE_NVRAM=y -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -CONFIG_HERMES=m -CONFIG_HERMES_PRISM=y -CONFIG_HERMES_CACHE_FW_ON_INIT=y -CONFIG_PLX_HERMES=m -CONFIG_TMD_HERMES=m -CONFIG_NORTEL_HERMES=m -CONFIG_PCI_HERMES=m -CONFIG_PCMCIA_HERMES=m -CONFIG_PCMCIA_SPECTRUM=m -CONFIG_ORINOCO_USB=m -CONFIG_P54_COMMON=m -CONFIG_P54_USB=m -CONFIG_P54_PCI=m -CONFIG_P54_SPI=m -# CONFIG_P54_SPI_DEFAULT_EEPROM is not set -CONFIG_P54_LEDS=y -CONFIG_WLAN_VENDOR_MARVELL=y -CONFIG_LIBERTAS=m -CONFIG_LIBERTAS_USB=m -CONFIG_LIBERTAS_CS=m -CONFIG_LIBERTAS_SDIO=m -CONFIG_LIBERTAS_SPI=m -# CONFIG_LIBERTAS_DEBUG is not set -CONFIG_LIBERTAS_MESH=y -CONFIG_LIBERTAS_THINFIRM=m -# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set -CONFIG_LIBERTAS_THINFIRM_USB=m -CONFIG_MWIFIEX=m -CONFIG_MWIFIEX_SDIO=m -CONFIG_MWIFIEX_PCIE=m -CONFIG_MWIFIEX_USB=m -CONFIG_MWL8K=m -CONFIG_WLAN_VENDOR_MEDIATEK=y -CONFIG_MT7601U=m -CONFIG_MT76_CORE=m -CONFIG_MT76_LEDS=y -CONFIG_MT76_USB=m -CONFIG_MT76_SDIO=m -CONFIG_MT76x02_LIB=m -CONFIG_MT76x02_USB=m -CONFIG_MT76_CONNAC_LIB=m -CONFIG_MT76x0_COMMON=m -CONFIG_MT76x0U=m -CONFIG_MT76x0E=m -CONFIG_MT76x2_COMMON=m -CONFIG_MT76x2E=m -CONFIG_MT76x2U=m -CONFIG_MT7603E=m -CONFIG_MT7615_COMMON=m -CONFIG_MT7615E=m -CONFIG_MT7663_USB_SDIO_COMMON=m -CONFIG_MT7663U=m -CONFIG_MT7663S=m -CONFIG_MT7915E=m -CONFIG_MT7921_COMMON=m -CONFIG_MT7921E=m -CONFIG_MT7921S=m -CONFIG_MT7921U=m -CONFIG_MT7996E=m -CONFIG_WLAN_VENDOR_MICROCHIP=y -CONFIG_WILC1000=m -CONFIG_WILC1000_SDIO=m -CONFIG_WILC1000_SPI=m -# CONFIG_WILC1000_HW_OOB_INTR is not set -CONFIG_WLAN_VENDOR_PURELIFI=y -CONFIG_PLFXLC=m -CONFIG_WLAN_VENDOR_RALINK=y -CONFIG_RT2X00=m -CONFIG_RT2400PCI=m -CONFIG_RT2500PCI=m -CONFIG_RT61PCI=m -CONFIG_RT2800PCI=m -CONFIG_RT2800PCI_RT33XX=y -CONFIG_RT2800PCI_RT35XX=y -CONFIG_RT2800PCI_RT53XX=y -CONFIG_RT2800PCI_RT3290=y -CONFIG_RT2500USB=m -CONFIG_RT73USB=m -CONFIG_RT2800USB=m -CONFIG_RT2800USB_RT33XX=y -CONFIG_RT2800USB_RT35XX=y -CONFIG_RT2800USB_RT3573=y -CONFIG_RT2800USB_RT53XX=y -CONFIG_RT2800USB_RT55XX=y -CONFIG_RT2800USB_UNKNOWN=y -CONFIG_RT2800_LIB=m -CONFIG_RT2800_LIB_MMIO=m -CONFIG_RT2X00_LIB_MMIO=m -CONFIG_RT2X00_LIB_PCI=m -CONFIG_RT2X00_LIB_USB=m -CONFIG_RT2X00_LIB=m -CONFIG_RT2X00_LIB_FIRMWARE=y -CONFIG_RT2X00_LIB_CRYPTO=y -CONFIG_RT2X00_LIB_LEDS=y -CONFIG_RT2X00_LIB_DEBUGFS=y -# CONFIG_RT2X00_DEBUG is not set -CONFIG_WLAN_VENDOR_REALTEK=y -CONFIG_RTL8180=m -CONFIG_RTL8187=m -CONFIG_RTL8187_LEDS=y -CONFIG_RTL_CARDS=m -CONFIG_RTL8192CE=m -CONFIG_RTL8192SE=m -CONFIG_RTL8192DE=m -CONFIG_RTL8723AE=m -CONFIG_RTL8723BE=m -CONFIG_RTL8188EE=m -CONFIG_RTL8192EE=m -CONFIG_RTL8821AE=m -CONFIG_RTL8192CU=m -CONFIG_RTLWIFI=m -CONFIG_RTLWIFI_PCI=m -CONFIG_RTLWIFI_USB=m -CONFIG_RTLWIFI_DEBUG=y -CONFIG_RTL8192C_COMMON=m -CONFIG_RTL8723_COMMON=m -CONFIG_RTLBTCOEXIST=m -CONFIG_RTL8XXXU=m -CONFIG_RTL8XXXU_UNTESTED=y -CONFIG_RTW88=m -CONFIG_RTW88_CORE=m -CONFIG_RTW88_PCI=m -CONFIG_RTW88_USB=m -CONFIG_RTW88_8822B=m -CONFIG_RTW88_8822C=m -CONFIG_RTW88_8723D=m -CONFIG_RTW88_8821C=m -CONFIG_RTW88_8822BE=m -# CONFIG_RTW88_8822BS is not set -CONFIG_RTW88_8822BU=m -CONFIG_RTW88_8822CE=m -# CONFIG_RTW88_8822CS is not set -CONFIG_RTW88_8822CU=m -CONFIG_RTW88_8723DE=m -# CONFIG_RTW88_8723DS is not set -CONFIG_RTW88_8723DU=m -CONFIG_RTW88_8821CE=m -# CONFIG_RTW88_8821CS is not set -CONFIG_RTW88_8821CU=m -CONFIG_RTW88_DEBUG=y -CONFIG_RTW88_DEBUGFS=y -CONFIG_RTW89=m -CONFIG_RTW89_CORE=m -CONFIG_RTW89_PCI=m -CONFIG_RTW89_8852A=m -CONFIG_RTW89_8852B=m -CONFIG_RTW89_8852C=m -# CONFIG_RTW89_8851BE is not set -CONFIG_RTW89_8852AE=m -CONFIG_RTW89_8852BE=m -CONFIG_RTW89_8852CE=m -CONFIG_RTW89_DEBUG=y -CONFIG_RTW89_DEBUGMSG=y -CONFIG_RTW89_DEBUGFS=y -CONFIG_WLAN_VENDOR_RSI=y -CONFIG_RSI_91X=m -CONFIG_RSI_DEBUGFS=y -CONFIG_RSI_SDIO=m -CONFIG_RSI_USB=m -CONFIG_RSI_COEX=y -CONFIG_WLAN_VENDOR_SILABS=y -CONFIG_WFX=m -CONFIG_WLAN_VENDOR_ST=y -CONFIG_CW1200=m -CONFIG_CW1200_WLAN_SDIO=m -CONFIG_CW1200_WLAN_SPI=m -CONFIG_WLAN_VENDOR_TI=y -CONFIG_WL1251=m -CONFIG_WL1251_SPI=m -CONFIG_WL1251_SDIO=m -CONFIG_WL12XX=m -CONFIG_WL18XX=m -CONFIG_WLCORE=m -CONFIG_WLCORE_SDIO=m -CONFIG_WLAN_VENDOR_ZYDAS=y -CONFIG_USB_ZD1201=m -CONFIG_ZD1211RW=m -# CONFIG_ZD1211RW_DEBUG is not set -CONFIG_WLAN_VENDOR_QUANTENNA=y -CONFIG_QTNFMAC=m -CONFIG_QTNFMAC_PCIE=m -CONFIG_PCMCIA_RAYCS=m -CONFIG_PCMCIA_WL3501=m -CONFIG_USB_NET_RNDIS_WLAN=m -CONFIG_MAC80211_HWSIM=m -CONFIG_VIRT_WIFI=m -# CONFIG_WAN is not set -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKELB=m -CONFIG_IEEE802154_AT86RF230=m -CONFIG_IEEE802154_MRF24J40=m -CONFIG_IEEE802154_CC2520=m -CONFIG_IEEE802154_ATUSB=m -CONFIG_IEEE802154_ADF7242=m -CONFIG_IEEE802154_CA8210=m -# CONFIG_IEEE802154_CA8210_DEBUGFS is not set -CONFIG_IEEE802154_MCR20A=m -CONFIG_IEEE802154_HWSIM=m - -# -# Wireless WAN -# -CONFIG_WWAN=y -CONFIG_WWAN_DEBUGFS=y -CONFIG_WWAN_HWSIM=m -CONFIG_MHI_WWAN_CTRL=m -CONFIG_MHI_WWAN_MBIM=m -CONFIG_RPMSG_WWAN_CTRL=m -CONFIG_IOSM=m -CONFIG_MTK_T7XX=m -# end of Wireless WAN - -CONFIG_VMXNET3=m -CONFIG_FUJITSU_ES=m -CONFIG_USB4_NET=m -CONFIG_HYPERV_NET=m -CONFIG_NETDEVSIM=m -CONFIG_NET_FAILOVER=y -CONFIG_ISDN=y -CONFIG_ISDN_CAPI=y -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_HDLC=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_LEDS=y -CONFIG_INPUT_FF_MEMLESS=y -CONFIG_INPUT_SPARSEKMAP=m -CONFIG_INPUT_MATRIXKMAP=m -CONFIG_INPUT_VIVALDIFMAP=y - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INPUT_JOYDEV=y -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADC=m -CONFIG_KEYBOARD_ADP5520=m -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ADP5589=m -CONFIG_KEYBOARD_APPLESPI=m -CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_QT1050=m -CONFIG_KEYBOARD_QT1070=m -CONFIG_KEYBOARD_QT2160=m -CONFIG_KEYBOARD_DLINK_DIR685=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_GPIO_POLLED=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_TCA8418=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_LM8333=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_MPR121=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_PINEPHONE=m -CONFIG_KEYBOARD_SAMSUNG=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_IQS62X=m -CONFIG_KEYBOARD_TM2_TOUCHKEY=m -CONFIG_KEYBOARD_TWL4030=m -CONFIG_KEYBOARD_XTKBD=m -CONFIG_KEYBOARD_CROS_EC=m -CONFIG_KEYBOARD_MTK_PMIC=m -CONFIG_KEYBOARD_CYPRESS_SF=m -CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_PS2_ALPS=y -CONFIG_MOUSE_PS2_BYD=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y -CONFIG_MOUSE_PS2_CYPRESS=y -CONFIG_MOUSE_PS2_LIFEBOOK=y -CONFIG_MOUSE_PS2_TRACKPOINT=y -CONFIG_MOUSE_PS2_ELANTECH=y -CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y -CONFIG_MOUSE_PS2_SENTELIC=y -CONFIG_MOUSE_PS2_TOUCHKIT=y -CONFIG_MOUSE_PS2_FOCALTECH=y -CONFIG_MOUSE_PS2_VMMOUSE=y -CONFIG_MOUSE_PS2_SMBUS=y -CONFIG_MOUSE_SERIAL=m -CONFIG_MOUSE_APPLETOUCH=m -CONFIG_MOUSE_BCM5974=m -CONFIG_MOUSE_CYAPA=m -CONFIG_MOUSE_ELAN_I2C=m -CONFIG_MOUSE_ELAN_I2C_I2C=y -CONFIG_MOUSE_ELAN_I2C_SMBUS=y -CONFIG_MOUSE_VSXXXAA=m -CONFIG_MOUSE_GPIO=m -CONFIG_MOUSE_SYNAPTICS_I2C=m -CONFIG_MOUSE_SYNAPTICS_USB=m -CONFIG_INPUT_JOYSTICK=y -CONFIG_JOYSTICK_ANALOG=m -CONFIG_JOYSTICK_A3D=m -CONFIG_JOYSTICK_ADC=m -CONFIG_JOYSTICK_ADI=m -CONFIG_JOYSTICK_COBRA=m -CONFIG_JOYSTICK_GF2K=m -CONFIG_JOYSTICK_GRIP=m -CONFIG_JOYSTICK_GRIP_MP=m -CONFIG_JOYSTICK_GUILLEMOT=m -CONFIG_JOYSTICK_INTERACT=m -CONFIG_JOYSTICK_SIDEWINDER=m -CONFIG_JOYSTICK_TMDC=m -CONFIG_JOYSTICK_IFORCE=m -CONFIG_JOYSTICK_IFORCE_USB=m -CONFIG_JOYSTICK_IFORCE_232=m -CONFIG_JOYSTICK_WARRIOR=m -CONFIG_JOYSTICK_MAGELLAN=m -CONFIG_JOYSTICK_SPACEORB=m -CONFIG_JOYSTICK_SPACEBALL=m -CONFIG_JOYSTICK_STINGER=m -CONFIG_JOYSTICK_TWIDJOY=m -CONFIG_JOYSTICK_ZHENHUA=m -CONFIG_JOYSTICK_DB9=m -CONFIG_JOYSTICK_GAMECON=m -CONFIG_JOYSTICK_TURBOGRAFX=m -CONFIG_JOYSTICK_AS5011=m -CONFIG_JOYSTICK_JOYDUMP=m -CONFIG_JOYSTICK_XPAD=m -CONFIG_JOYSTICK_XPAD_FF=y -CONFIG_JOYSTICK_XPAD_LEDS=y -CONFIG_JOYSTICK_WALKERA0701=m -CONFIG_JOYSTICK_PSXPAD_SPI=m -CONFIG_JOYSTICK_PSXPAD_SPI_FF=y -CONFIG_JOYSTICK_PXRC=m -CONFIG_JOYSTICK_QWIIC=m -CONFIG_JOYSTICK_FSIA6B=m -CONFIG_JOYSTICK_SENSEHAT=m -CONFIG_INPUT_TABLET=y -CONFIG_TABLET_USB_ACECAD=m -CONFIG_TABLET_USB_AIPTEK=m -CONFIG_TABLET_USB_HANWANG=m -CONFIG_TABLET_USB_KBTAB=m -CONFIG_TABLET_USB_PEGASUS=m -CONFIG_TABLET_SERIAL_WACOM4=m -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_88PM860X=m -CONFIG_TOUCHSCREEN_ADS7846=m -CONFIG_TOUCHSCREEN_AD7877=m -CONFIG_TOUCHSCREEN_AD7879=m -CONFIG_TOUCHSCREEN_AD7879_I2C=m -CONFIG_TOUCHSCREEN_AD7879_SPI=m -CONFIG_TOUCHSCREEN_ADC=m -CONFIG_TOUCHSCREEN_ATMEL_MXT=m -CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y -CONFIG_TOUCHSCREEN_AUO_PIXCIR=m -CONFIG_TOUCHSCREEN_BU21013=m -CONFIG_TOUCHSCREEN_BU21029=m -CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m -CONFIG_TOUCHSCREEN_CY8CTMA140=m -CONFIG_TOUCHSCREEN_CY8CTMG110=m -CONFIG_TOUCHSCREEN_CYTTSP_CORE=m -CONFIG_TOUCHSCREEN_CYTTSP_I2C=m -CONFIG_TOUCHSCREEN_CYTTSP_SPI=m -CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m -CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m -CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m -CONFIG_TOUCHSCREEN_CYTTSP5=m -CONFIG_TOUCHSCREEN_DA9034=m -CONFIG_TOUCHSCREEN_DA9052=m -CONFIG_TOUCHSCREEN_DYNAPRO=m -CONFIG_TOUCHSCREEN_HAMPSHIRE=m -CONFIG_TOUCHSCREEN_EETI=m -CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m -CONFIG_TOUCHSCREEN_EXC3000=m -CONFIG_TOUCHSCREEN_FUJITSU=m -CONFIG_TOUCHSCREEN_GOODIX=y -CONFIG_TOUCHSCREEN_HIDEEP=m -CONFIG_TOUCHSCREEN_HYCON_HY46XX=m -CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=m -CONFIG_TOUCHSCREEN_ILI210X=m -CONFIG_TOUCHSCREEN_ILITEK=m -CONFIG_TOUCHSCREEN_S6SY761=m -CONFIG_TOUCHSCREEN_GUNZE=m -CONFIG_TOUCHSCREEN_EKTF2127=m -CONFIG_TOUCHSCREEN_ELAN=y -CONFIG_TOUCHSCREEN_ELO=m -CONFIG_TOUCHSCREEN_WACOM_W8001=m -CONFIG_TOUCHSCREEN_WACOM_I2C=m -CONFIG_TOUCHSCREEN_MAX11801=m -CONFIG_TOUCHSCREEN_MCS5000=m -CONFIG_TOUCHSCREEN_MMS114=m -CONFIG_TOUCHSCREEN_MELFAS_MIP4=m -CONFIG_TOUCHSCREEN_MSG2638=m -CONFIG_TOUCHSCREEN_MTOUCH=m -# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set -CONFIG_TOUCHSCREEN_IMAGIS=m -CONFIG_TOUCHSCREEN_INEXIO=m -CONFIG_TOUCHSCREEN_PENMOUNT=m -CONFIG_TOUCHSCREEN_EDT_FT5X06=m -CONFIG_TOUCHSCREEN_TOUCHRIGHT=m -CONFIG_TOUCHSCREEN_TOUCHWIN=m -CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m -CONFIG_TOUCHSCREEN_PIXCIR=m -CONFIG_TOUCHSCREEN_WDT87XX_I2C=m -CONFIG_TOUCHSCREEN_WM831X=m -CONFIG_TOUCHSCREEN_WM97XX=m -CONFIG_TOUCHSCREEN_WM9705=y -CONFIG_TOUCHSCREEN_WM9712=y -CONFIG_TOUCHSCREEN_WM9713=y -CONFIG_TOUCHSCREEN_USB_COMPOSITE=m -CONFIG_TOUCHSCREEN_MC13783=m -CONFIG_TOUCHSCREEN_USB_EGALAX=y -CONFIG_TOUCHSCREEN_USB_PANJIT=y -CONFIG_TOUCHSCREEN_USB_3M=y -CONFIG_TOUCHSCREEN_USB_ITM=y -CONFIG_TOUCHSCREEN_USB_ETURBO=y -CONFIG_TOUCHSCREEN_USB_GUNZE=y -CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y -CONFIG_TOUCHSCREEN_USB_IRTOUCH=y -CONFIG_TOUCHSCREEN_USB_IDEALTEK=y -CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y -CONFIG_TOUCHSCREEN_USB_GOTOP=y -CONFIG_TOUCHSCREEN_USB_JASTEC=y -CONFIG_TOUCHSCREEN_USB_ELO=y -CONFIG_TOUCHSCREEN_USB_E2I=y -CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y -CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y -CONFIG_TOUCHSCREEN_USB_NEXIO=y -CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y -CONFIG_TOUCHSCREEN_TOUCHIT213=m -CONFIG_TOUCHSCREEN_TSC_SERIO=m -CONFIG_TOUCHSCREEN_TSC200X_CORE=m -CONFIG_TOUCHSCREEN_TSC2004=m -CONFIG_TOUCHSCREEN_TSC2005=m -CONFIG_TOUCHSCREEN_TSC2007=m -CONFIG_TOUCHSCREEN_TSC2007_IIO=y -CONFIG_TOUCHSCREEN_PCAP=m -CONFIG_TOUCHSCREEN_RM_TS=m -CONFIG_TOUCHSCREEN_SILEAD=m -CONFIG_TOUCHSCREEN_SIS_I2C=m -CONFIG_TOUCHSCREEN_ST1232=m -CONFIG_TOUCHSCREEN_STMFTS=m -CONFIG_TOUCHSCREEN_SUR40=m -CONFIG_TOUCHSCREEN_SURFACE3_SPI=m -CONFIG_TOUCHSCREEN_SX8654=m -CONFIG_TOUCHSCREEN_TPS6507X=m -CONFIG_TOUCHSCREEN_ZET6223=m -CONFIG_TOUCHSCREEN_ZFORCE=m -CONFIG_TOUCHSCREEN_COLIBRI_VF50=m -CONFIG_TOUCHSCREEN_ROHM_BU21023=m -CONFIG_TOUCHSCREEN_IQS5XX=m -CONFIG_TOUCHSCREEN_ZINITIX=m -CONFIG_TOUCHSCREEN_HIMAX_HX83112B=m -CONFIG_INPUT_MISC=y -CONFIG_INPUT_88PM860X_ONKEY=m -CONFIG_INPUT_88PM80X_ONKEY=m -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_AD714X_SPI=m -CONFIG_INPUT_ARIZONA_HAPTICS=m -CONFIG_INPUT_ATC260X_ONKEY=m -CONFIG_INPUT_BMA150=m -CONFIG_INPUT_E3X0_BUTTON=m -CONFIG_INPUT_MAX77693_HAPTIC=m -CONFIG_INPUT_MAX8925_ONKEY=m -CONFIG_INPUT_MAX8997_HAPTIC=m -CONFIG_INPUT_MC13783_PWRBUTTON=m -CONFIG_INPUT_MMA8450=m -CONFIG_INPUT_APANEL=m -CONFIG_INPUT_GPIO_BEEPER=m -CONFIG_INPUT_GPIO_DECODER=m -CONFIG_INPUT_GPIO_VIBRA=m -CONFIG_INPUT_ATLAS_BTNS=m -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_KEYSPAN_REMOTE=m -CONFIG_INPUT_KXTJ9=m -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m -CONFIG_INPUT_REGULATOR_HAPTIC=m -CONFIG_INPUT_RETU_PWRBUTTON=m -CONFIG_INPUT_AXP20X_PEK=m -CONFIG_INPUT_TWL4030_PWRBUTTON=m -CONFIG_INPUT_TWL4030_VIBRA=m -CONFIG_INPUT_TWL6040_VIBRA=m -CONFIG_INPUT_UINPUT=y -CONFIG_INPUT_PALMAS_PWRBUTTON=m -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_PCF8574=m -CONFIG_INPUT_PWM_BEEPER=m -CONFIG_INPUT_PWM_VIBRA=m -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_DA7280_HAPTICS=m -CONFIG_INPUT_DA9052_ONKEY=m -CONFIG_INPUT_DA9055_ONKEY=m -CONFIG_INPUT_DA9063_ONKEY=m -CONFIG_INPUT_WM831X_ON=m -CONFIG_INPUT_PCAP=m -CONFIG_INPUT_ADXL34X=m -CONFIG_INPUT_ADXL34X_I2C=m -CONFIG_INPUT_ADXL34X_SPI=m -CONFIG_INPUT_IBM_PANEL=m -CONFIG_INPUT_IMS_PCU=m -CONFIG_INPUT_IQS269A=m -CONFIG_INPUT_IQS626A=m -CONFIG_INPUT_IQS7222=m -CONFIG_INPUT_CMA3000=m -CONFIG_INPUT_CMA3000_I2C=m -CONFIG_INPUT_IDEAPAD_SLIDEBAR=m -CONFIG_INPUT_SOC_BUTTON_ARRAY=m -CONFIG_INPUT_DRV260X_HAPTICS=m -CONFIG_INPUT_DRV2665_HAPTICS=m -CONFIG_INPUT_DRV2667_HAPTICS=m -CONFIG_INPUT_RAVE_SP_PWRBUTTON=m -CONFIG_INPUT_RT5120_PWRKEY=m -CONFIG_RMI4_CORE=y -CONFIG_RMI4_I2C=m -CONFIG_RMI4_SPI=m -CONFIG_RMI4_SMB=m -CONFIG_RMI4_F03=y -CONFIG_RMI4_F03_SERIO=y -CONFIG_RMI4_2D_SENSOR=y -CONFIG_RMI4_F11=y -CONFIG_RMI4_F12=y -CONFIG_RMI4_F30=y -CONFIG_RMI4_F34=y -CONFIG_RMI4_F3A=y -CONFIG_RMI4_F55=y - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=y -CONFIG_SERIO_CT82C710=m -CONFIG_SERIO_PARKBD=m -CONFIG_SERIO_PCIPS2=m -CONFIG_SERIO_LIBPS2=y -CONFIG_SERIO_RAW=m -CONFIG_SERIO_ALTERA_PS2=m -CONFIG_SERIO_PS2MULT=m -CONFIG_SERIO_ARC_PS2=m -CONFIG_HYPERV_KEYBOARD=m -CONFIG_SERIO_GPIO_PS2=m -CONFIG_USERIO=m -CONFIG_GAMEPORT=m -CONFIG_GAMEPORT_NS558=m -CONFIG_GAMEPORT_L4=m -CONFIG_GAMEPORT_EMU10K1=m -CONFIG_GAMEPORT_FM801=m -# end of Hardware I/O ports -# end of Input device support - -# -# Character devices -# -CONFIG_TTY=y -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_LEGACY_TIOCSTI=y -CONFIG_LDISC_AUTOLOAD=y - -# -# Serial drivers -# -CONFIG_SERIAL_EARLYCON=y -CONFIG_SERIAL_8250=y -# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set -CONFIG_SERIAL_8250_PNP=y -# CONFIG_SERIAL_8250_16550A_VARIANTS is not set -CONFIG_SERIAL_8250_FINTEK=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_DMA=y -CONFIG_SERIAL_8250_PCILIB=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_EXAR=y -CONFIG_SERIAL_8250_CS=m -CONFIG_SERIAL_8250_MEN_MCB=m -CONFIG_SERIAL_8250_NR_UARTS=32 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_PCI1XXXX=m -CONFIG_SERIAL_8250_SHARE_IRQ=y -# CONFIG_SERIAL_8250_DETECT_IRQ is not set -CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_DWLIB=y -CONFIG_SERIAL_8250_DFL=m -CONFIG_SERIAL_8250_DW=y -CONFIG_SERIAL_8250_RT288X=y -CONFIG_SERIAL_8250_LPSS=y -CONFIG_SERIAL_8250_MID=y -CONFIG_SERIAL_8250_PERICOM=y - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_MAX3100=m -CONFIG_SERIAL_MAX310X=m -CONFIG_SERIAL_UARTLITE=m -CONFIG_SERIAL_UARTLITE_NR_UARTS=1 -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_SERIAL_JSM=m -# CONFIG_SERIAL_LANTIQ is not set -CONFIG_SERIAL_SCCNXP=m -CONFIG_SERIAL_SC16IS7XX_CORE=m -CONFIG_SERIAL_SC16IS7XX=m -CONFIG_SERIAL_SC16IS7XX_I2C=y -CONFIG_SERIAL_SC16IS7XX_SPI=y -CONFIG_SERIAL_ALTERA_JTAGUART=m -CONFIG_SERIAL_ALTERA_UART=m -CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 -CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_ARC=m -CONFIG_SERIAL_ARC_NR_PORTS=1 -CONFIG_SERIAL_RP2=m -CONFIG_SERIAL_RP2_NR_UARTS=32 -CONFIG_SERIAL_FSL_LPUART=m -CONFIG_SERIAL_FSL_LINFLEXUART=m -CONFIG_SERIAL_MEN_Z135=m -CONFIG_SERIAL_SPRD=m -# end of Serial drivers - -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SERIAL_NONSTANDARD=y -CONFIG_MOXA_INTELLIO=m -CONFIG_MOXA_SMARTIO=m -CONFIG_SYNCLINK_GT=m -CONFIG_N_HDLC=m -CONFIG_IPWIRELESS=m -CONFIG_N_GSM=m -CONFIG_NOZOMI=m -CONFIG_NULL_TTY=m -CONFIG_HVC_DRIVER=y -CONFIG_RPMSG_TTY=m -CONFIG_SERIAL_DEV_BUS=y -CONFIG_SERIAL_DEV_CTRL_TTYPORT=y -# CONFIG_TTY_PRINTK is not set -CONFIG_PRINTER=m -CONFIG_LP_CONSOLE=y -CONFIG_PPDEV=m -CONFIG_VIRTIO_CONSOLE=y -CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_DMI_DECODE=y -CONFIG_IPMI_PLAT_DATA=y -# CONFIG_IPMI_PANIC_EVENT is not set -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_SSIF=m -CONFIG_IPMI_IPMB=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IPMI_POWEROFF=m -CONFIG_SSIF_IPMI_BMC=m -CONFIG_IPMB_DEVICE_INTERFACE=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_AMD=m -CONFIG_HW_RANDOM_BA431=m -CONFIG_HW_RANDOM_VIA=m -CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_HW_RANDOM_XIPHERA=m -CONFIG_APPLICOM=m -CONFIG_MWAVE=m -CONFIG_DEVMEM=y -CONFIG_NVRAM=y -CONFIG_DEVPORT=y -CONFIG_HPET=y -# CONFIG_HPET_MMAP is not set -CONFIG_HANGCHECK_TIMER=m -CONFIG_TCG_TPM=y -CONFIG_TCG_TIS_CORE=y -CONFIG_TCG_TIS=y -CONFIG_TCG_TIS_SPI=m -CONFIG_TCG_TIS_SPI_CR50=y -CONFIG_TCG_TIS_I2C=m -CONFIG_TCG_TIS_I2C_CR50=m -CONFIG_TCG_TIS_I2C_ATMEL=m -CONFIG_TCG_TIS_I2C_INFINEON=m -CONFIG_TCG_TIS_I2C_NUVOTON=m -CONFIG_TCG_NSC=m -CONFIG_TCG_ATMEL=m -CONFIG_TCG_INFINEON=m -CONFIG_TCG_CRB=y -CONFIG_TCG_VTPM_PROXY=m -CONFIG_TCG_TIS_ST33ZP24=m -CONFIG_TCG_TIS_ST33ZP24_I2C=m -CONFIG_TCG_TIS_ST33ZP24_SPI=m -CONFIG_TELCLOCK=m -CONFIG_XILLYBUS_CLASS=m -CONFIG_XILLYBUS=m -CONFIG_XILLYBUS_PCIE=m -CONFIG_XILLYUSB=m -# end of Character devices - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_ACPI_I2C_OPREGION=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_LTC4306=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m -CONFIG_I2C_MUX_REG=m -CONFIG_I2C_MUX_MLXCPLD=m -# end of Multiplexer I2C Chip support - -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_SMBUS=y -CONFIG_I2C_ALGOBIT=y -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -CONFIG_I2C_CCGX_UCSI=y -CONFIG_I2C_ALI1535=m -CONFIG_I2C_ALI1563=m -CONFIG_I2C_ALI15X3=m -CONFIG_I2C_AMD756=m -CONFIG_I2C_AMD756_S4882=m -CONFIG_I2C_AMD8111=m -CONFIG_I2C_AMD_MP2=m -CONFIG_I2C_I801=y -CONFIG_I2C_ISCH=y -CONFIG_I2C_ISMT=m -CONFIG_I2C_PIIX4=y -CONFIG_I2C_CHT_WC=m -CONFIG_I2C_NFORCE2=y -CONFIG_I2C_NFORCE2_S4985=m -CONFIG_I2C_NVIDIA_GPU=m -CONFIG_I2C_SIS5595=m -CONFIG_I2C_SIS630=m -CONFIG_I2C_SIS96X=m -CONFIG_I2C_VIA=y -CONFIG_I2C_VIAPRO=y - -# -# ACPI drivers -# -CONFIG_I2C_SCMI=m - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -CONFIG_I2C_CBUS_GPIO=y -CONFIG_I2C_DESIGNWARE_CORE=y -CONFIG_I2C_DESIGNWARE_SLAVE=y -CONFIG_I2C_DESIGNWARE_PLATFORM=y -CONFIG_I2C_DESIGNWARE_BAYTRAIL=y -CONFIG_I2C_DESIGNWARE_PCI=y -CONFIG_I2C_EMEV2=m -CONFIG_I2C_GPIO=m -# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set -CONFIG_I2C_KEMPLD=m -CONFIG_I2C_OCORES=m -CONFIG_I2C_PCA_PLATFORM=m -CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m - -# -# External I2C/SMBus adapter drivers -# -CONFIG_I2C_DIOLAN_U2C=m -CONFIG_I2C_DLN2=m -CONFIG_I2C_CP2615=m -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PCI1XXXX=m -CONFIG_I2C_ROBOTFUZZ_OSIF=m -CONFIG_I2C_TAOS_EVM=m -CONFIG_I2C_TINY_USB=m -CONFIG_I2C_VIPERBOARD=m - -# -# Other I2C/SMBus bus drivers -# -CONFIG_I2C_MLXCPLD=m -CONFIG_I2C_CROS_EC_TUNNEL=m -CONFIG_I2C_VIRTIO=m -# end of I2C Hardware Bus support - -CONFIG_I2C_STUB=m -CONFIG_I2C_SLAVE=y -CONFIG_I2C_SLAVE_EEPROM=m -CONFIG_I2C_SLAVE_TESTUNIT=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# end of I2C support - -# CONFIG_I3C is not set -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y -CONFIG_SPI_MEM=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_ALTERA=m -CONFIG_SPI_ALTERA_CORE=m -CONFIG_SPI_ALTERA_DFL=m -CONFIG_SPI_AXI_SPI_ENGINE=m -CONFIG_SPI_BITBANG=m -CONFIG_SPI_BUTTERFLY=m -CONFIG_SPI_CADENCE=m -CONFIG_SPI_DESIGNWARE=m -CONFIG_SPI_DW_DMA=y -CONFIG_SPI_DW_PCI=m -CONFIG_SPI_DW_MMIO=m -CONFIG_SPI_DLN2=m -CONFIG_SPI_GPIO=m -CONFIG_SPI_INTEL=m -CONFIG_SPI_INTEL_PCI=m -CONFIG_SPI_INTEL_PLATFORM=m -CONFIG_SPI_LM70_LLP=m -CONFIG_SPI_MICROCHIP_CORE=m -CONFIG_SPI_MICROCHIP_CORE_QSPI=m -# CONFIG_SPI_LANTIQ_SSC is not set -CONFIG_SPI_OC_TINY=m -CONFIG_SPI_PCI1XXXX=m -CONFIG_SPI_PXA2XX=m -CONFIG_SPI_PXA2XX_PCI=m -CONFIG_SPI_SC18IS602=m -CONFIG_SPI_SIFIVE=m -CONFIG_SPI_MXIC=m -CONFIG_SPI_XCOMM=m -CONFIG_SPI_XILINX=m -CONFIG_SPI_ZYNQMP_GQSPI=m -CONFIG_SPI_AMD=m - -# -# SPI Multiplexer support -# -CONFIG_SPI_MUX=m - -# -# SPI Protocol Masters -# -CONFIG_SPI_SPIDEV=m -CONFIG_SPI_LOOPBACK_TEST=m -CONFIG_SPI_TLE62X0=m -CONFIG_SPI_SLAVE=y -CONFIG_SPI_SLAVE_TIME=m -CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m -CONFIG_SPI_DYNAMIC=y -CONFIG_SPMI=m -# CONFIG_SPMI_HISI3670 is not set -CONFIG_HSI=m -CONFIG_HSI_BOARDINFO=y - -# -# HSI controllers -# - -# -# HSI clients -# -CONFIG_HSI_CHAR=m -CONFIG_PPS=y -# CONFIG_PPS_DEBUG is not set - -# -# PPS clients support -# -CONFIG_PPS_CLIENT_KTIMER=m -CONFIG_PPS_CLIENT_LDISC=m -CONFIG_PPS_CLIENT_PARPORT=m -CONFIG_PPS_CLIENT_GPIO=m - -# -# PPS generators support -# - -# -# PTP clock support -# -CONFIG_PTP_1588_CLOCK=y -CONFIG_PTP_1588_CLOCK_OPTIONAL=y -CONFIG_DP83640_PHY=m -CONFIG_PTP_1588_CLOCK_INES=m -CONFIG_PTP_1588_CLOCK_IDT82P33=m -CONFIG_PTP_1588_CLOCK_IDTCM=m -CONFIG_PTP_1588_CLOCK_VMW=m -CONFIG_PTP_1588_CLOCK_OCP=m -# CONFIG_PTP_DFL_TOD is not set -# end of PTP clock support - -CONFIG_PINCTRL=y -CONFIG_PINMUX=y -CONFIG_PINCONF=y -CONFIG_GENERIC_PINCONF=y -# CONFIG_DEBUG_PINCTRL is not set -CONFIG_PINCTRL_AMD=y -CONFIG_PINCTRL_CY8C95X0=m -CONFIG_PINCTRL_DA9062=m -CONFIG_PINCTRL_MCP23S08_I2C=y -CONFIG_PINCTRL_MCP23S08_SPI=y -CONFIG_PINCTRL_MCP23S08=y -CONFIG_PINCTRL_SX150X=y -CONFIG_PINCTRL_MADERA=m -CONFIG_PINCTRL_CS47L15=y -CONFIG_PINCTRL_CS47L35=y -CONFIG_PINCTRL_CS47L85=y -CONFIG_PINCTRL_CS47L90=y -CONFIG_PINCTRL_CS47L92=y - -# -# Intel pinctrl drivers -# -CONFIG_PINCTRL_BAYTRAIL=y -CONFIG_PINCTRL_CHERRYVIEW=y -CONFIG_PINCTRL_LYNXPOINT=y -CONFIG_PINCTRL_INTEL=y -CONFIG_PINCTRL_ALDERLAKE=y -CONFIG_PINCTRL_BROXTON=y -CONFIG_PINCTRL_CANNONLAKE=y -CONFIG_PINCTRL_CEDARFORK=y -CONFIG_PINCTRL_DENVERTON=y -CONFIG_PINCTRL_ELKHARTLAKE=y -CONFIG_PINCTRL_EMMITSBURG=y -CONFIG_PINCTRL_GEMINILAKE=y -CONFIG_PINCTRL_ICELAKE=y -CONFIG_PINCTRL_JASPERLAKE=y -CONFIG_PINCTRL_LAKEFIELD=y -CONFIG_PINCTRL_LEWISBURG=y -CONFIG_PINCTRL_METEORLAKE=y -CONFIG_PINCTRL_SUNRISEPOINT=y -CONFIG_PINCTRL_TIGERLAKE=y -# end of Intel pinctrl drivers - -# -# Renesas pinctrl drivers -# -# end of Renesas pinctrl drivers - -CONFIG_GPIOLIB=y -CONFIG_GPIOLIB_FASTPATH_LIMIT=512 -CONFIG_GPIO_ACPI=y -CONFIG_GPIOLIB_IRQCHIP=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_CDEV_V1=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m -CONFIG_GPIO_IDIO_16=m - -# -# Memory mapped GPIO drivers -# -CONFIG_GPIO_AMDPT=m -CONFIG_GPIO_DWAPB=m -CONFIG_GPIO_EXAR=m -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_ICH=m -CONFIG_GPIO_MB86S7X=m -CONFIG_GPIO_MENZ127=m -CONFIG_GPIO_SIOX=m -CONFIG_GPIO_AMD_FCH=m -# end of Memory mapped GPIO drivers - -# -# Port-mapped I/O GPIO drivers -# -CONFIG_GPIO_VX855=m -CONFIG_GPIO_F7188X=m -CONFIG_GPIO_IT87=m -CONFIG_GPIO_SCH=m -CONFIG_GPIO_SCH311X=m -CONFIG_GPIO_WINBOND=m -CONFIG_GPIO_WS16C48=m -# end of Port-mapped I/O GPIO drivers - -# -# I2C GPIO expanders -# -# CONFIG_GPIO_FXL6408 is not set -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCA953X_IRQ=y -CONFIG_GPIO_PCA9570=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_TPIC2810=m -# end of I2C GPIO expanders - -# -# MFD GPIO expanders -# -CONFIG_GPIO_ADP5520=m -CONFIG_GPIO_ARIZONA=m -CONFIG_GPIO_BD9571MWV=m -CONFIG_GPIO_CRYSTAL_COVE=m -CONFIG_GPIO_DA9052=m -CONFIG_GPIO_DA9055=m -CONFIG_GPIO_DLN2=m -# CONFIG_GPIO_ELKHARTLAKE is not set -CONFIG_GPIO_JANZ_TTL=m -CONFIG_GPIO_KEMPLD=m -CONFIG_GPIO_LP3943=m -CONFIG_GPIO_LP873X=m -CONFIG_GPIO_MADERA=m -CONFIG_GPIO_PALMAS=y -CONFIG_GPIO_RC5T583=y -CONFIG_GPIO_TPS65086=m -CONFIG_GPIO_TPS6586X=y -CONFIG_GPIO_TPS65910=y -CONFIG_GPIO_TPS65912=m -CONFIG_GPIO_TPS68470=m -CONFIG_GPIO_TQMX86=m -CONFIG_GPIO_TWL4030=m -CONFIG_GPIO_TWL6040=m -CONFIG_GPIO_WHISKEY_COVE=m -CONFIG_GPIO_WM831X=m -CONFIG_GPIO_WM8350=m -CONFIG_GPIO_WM8994=m -# end of MFD GPIO expanders - -# -# PCI GPIO expanders -# -CONFIG_GPIO_AMD8111=m -CONFIG_GPIO_ML_IOH=m -CONFIG_GPIO_PCI_IDIO_16=m -CONFIG_GPIO_PCIE_IDIO_24=m -CONFIG_GPIO_RDC321X=m -# end of PCI GPIO expanders - -# -# SPI GPIO expanders -# -CONFIG_GPIO_MAX3191X=m -CONFIG_GPIO_MAX7301=m -CONFIG_GPIO_MC33880=m -CONFIG_GPIO_PISOSR=m -CONFIG_GPIO_XRA1403=m -# end of SPI GPIO expanders - -# -# USB GPIO expanders -# -CONFIG_GPIO_VIPERBOARD=m -# end of USB GPIO expanders - -# -# Virtual GPIO drivers -# -CONFIG_GPIO_AGGREGATOR=m -CONFIG_GPIO_LATCH=m -CONFIG_GPIO_MOCKUP=m -CONFIG_GPIO_VIRTIO=m -CONFIG_GPIO_SIM=m -# end of Virtual GPIO drivers - -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_MATROX=m -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_GPIO=m -CONFIG_W1_MASTER_SGI=m -# end of 1-wire Bus Masters - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2405=m -CONFIG_W1_SLAVE_DS2408=m -# CONFIG_W1_SLAVE_DS2408_READBACK is not set -CONFIG_W1_SLAVE_DS2413=m -CONFIG_W1_SLAVE_DS2406=m -CONFIG_W1_SLAVE_DS2423=m -CONFIG_W1_SLAVE_DS2805=m -CONFIG_W1_SLAVE_DS2430=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -# CONFIG_W1_SLAVE_DS2433_CRC is not set -CONFIG_W1_SLAVE_DS2438=m -CONFIG_W1_SLAVE_DS250X=m -CONFIG_W1_SLAVE_DS2780=m -CONFIG_W1_SLAVE_DS2781=m -CONFIG_W1_SLAVE_DS28E04=m -CONFIG_W1_SLAVE_DS28E17=m -# end of 1-wire Slaves - -CONFIG_POWER_RESET=y -CONFIG_POWER_RESET_ATC260X=m -CONFIG_POWER_RESET_MT6323=y -CONFIG_POWER_RESET_RESTART=y -CONFIG_POWER_RESET_TPS65086=y -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_POWER_SUPPLY_HWMON=y -CONFIG_GENERIC_ADC_BATTERY=m -CONFIG_IP5XXX_POWER=m -CONFIG_MAX8925_POWER=m -CONFIG_WM831X_BACKUP=m -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m -CONFIG_TEST_POWER=m -CONFIG_BATTERY_88PM860X=m -CONFIG_CHARGER_ADP5061=m -CONFIG_BATTERY_CW2015=m -CONFIG_BATTERY_DS2760=m -CONFIG_BATTERY_DS2780=m -CONFIG_BATTERY_DS2781=m -CONFIG_BATTERY_DS2782=m -# CONFIG_BATTERY_SAMSUNG_SDI is not set -CONFIG_BATTERY_SBS=m -CONFIG_CHARGER_SBS=m -CONFIG_MANAGER_SBS=m -CONFIG_BATTERY_BQ27XXX=m -CONFIG_BATTERY_BQ27XXX_I2C=m -CONFIG_BATTERY_BQ27XXX_HDQ=m -# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set -CONFIG_BATTERY_DA9030=m -CONFIG_BATTERY_DA9052=m -CONFIG_CHARGER_DA9150=m -CONFIG_BATTERY_DA9150=m -CONFIG_CHARGER_AXP20X=m -CONFIG_BATTERY_AXP20X=m -CONFIG_AXP20X_POWER=m -CONFIG_AXP288_CHARGER=m -CONFIG_AXP288_FUEL_GAUGE=m -CONFIG_BATTERY_MAX17040=m -CONFIG_BATTERY_MAX17042=m -CONFIG_BATTERY_MAX1721X=m -CONFIG_BATTERY_TWL4030_MADC=m -CONFIG_CHARGER_88PM860X=m -CONFIG_CHARGER_PCF50633=m -CONFIG_BATTERY_RX51=m -CONFIG_CHARGER_ISP1704=m -CONFIG_CHARGER_MAX8903=m -CONFIG_CHARGER_TWL4030=m -CONFIG_CHARGER_LP8727=m -CONFIG_CHARGER_LP8788=m -CONFIG_CHARGER_GPIO=m -CONFIG_CHARGER_MANAGER=y -CONFIG_CHARGER_LT3651=m -CONFIG_CHARGER_LTC4162L=m -CONFIG_CHARGER_MAX14577=m -CONFIG_CHARGER_MAX77693=m -CONFIG_CHARGER_MAX77976=m -CONFIG_CHARGER_MAX8997=m -CONFIG_CHARGER_MAX8998=m -CONFIG_CHARGER_MP2629=m -CONFIG_CHARGER_MT6360=m -CONFIG_CHARGER_MT6370=m -CONFIG_CHARGER_BQ2415X=m -CONFIG_CHARGER_BQ24190=m -CONFIG_CHARGER_BQ24257=m -CONFIG_CHARGER_BQ24735=m -CONFIG_CHARGER_BQ2515X=m -CONFIG_CHARGER_BQ25890=m -CONFIG_CHARGER_BQ25980=m -CONFIG_CHARGER_BQ256XX=m -CONFIG_CHARGER_SMB347=m -CONFIG_CHARGER_TPS65090=m -CONFIG_BATTERY_GAUGE_LTC2941=m -CONFIG_BATTERY_GOLDFISH=m -CONFIG_BATTERY_RT5033=m -# CONFIG_CHARGER_RT5033 is not set -CONFIG_CHARGER_RT9455=m -CONFIG_CHARGER_RT9467=m -CONFIG_CHARGER_RT9471=m -CONFIG_CHARGER_CROS_USBPD=m -CONFIG_CHARGER_CROS_PCHG=m -CONFIG_CHARGER_BD99954=m -CONFIG_CHARGER_WILCO=m -CONFIG_BATTERY_SURFACE=m -CONFIG_CHARGER_SURFACE=m -CONFIG_BATTERY_UG3105=m -CONFIG_HWMON=y -CONFIG_HWMON_VID=y -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -CONFIG_SENSORS_ABITUGURU=m -CONFIG_SENSORS_ABITUGURU3=m -CONFIG_SENSORS_SMPRO=m -CONFIG_SENSORS_AD7314=m -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM1177=m -CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADT7X10=m -CONFIG_SENSORS_ADT7310=m -CONFIG_SENSORS_ADT7410=m -CONFIG_SENSORS_ADT7411=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_AHT10=m -CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m -CONFIG_SENSORS_AS370=m -CONFIG_SENSORS_ASC7621=m -CONFIG_SENSORS_AXI_FAN_CONTROL=m -CONFIG_SENSORS_K8TEMP=m -CONFIG_SENSORS_K10TEMP=m -CONFIG_SENSORS_FAM15H_POWER=m -CONFIG_SENSORS_APPLESMC=m -CONFIG_SENSORS_ASB100=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_CORSAIR_CPRO=m -CONFIG_SENSORS_CORSAIR_PSU=m -CONFIG_SENSORS_DRIVETEMP=m -CONFIG_SENSORS_DS620=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_DELL_SMM=m -CONFIG_I8K=y -CONFIG_SENSORS_DA9052_ADC=m -CONFIG_SENSORS_DA9055=m -CONFIG_SENSORS_I5K_AMB=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_MC13783_ADC=m -CONFIG_SENSORS_FSCHMD=m -CONFIG_SENSORS_FTSTEUTATES=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_G762=m -CONFIG_SENSORS_HIH6130=m -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IIO_HWMON=m -CONFIG_SENSORS_I5500=m -CONFIG_SENSORS_CORETEMP=y -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_JC42=m -CONFIG_SENSORS_POWR1220=m -CONFIG_SENSORS_LINEAGE=m -CONFIG_SENSORS_LTC2945=m -CONFIG_SENSORS_LTC2947=m -CONFIG_SENSORS_LTC2947_I2C=m -CONFIG_SENSORS_LTC2947_SPI=m -CONFIG_SENSORS_LTC2990=m -CONFIG_SENSORS_LTC2992=m -CONFIG_SENSORS_LTC4151=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4222=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LTC4260=m -CONFIG_SENSORS_LTC4261=m -CONFIG_SENSORS_MAX1111=m -CONFIG_SENSORS_MAX127=m -CONFIG_SENSORS_MAX16065=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX1668=m -CONFIG_SENSORS_MAX197=m -CONFIG_SENSORS_MAX31722=m -CONFIG_SENSORS_MAX31730=m -CONFIG_SENSORS_MAX31760=m -# CONFIG_MAX31827 is not set -CONFIG_SENSORS_MAX6620=m -CONFIG_SENSORS_MAX6621=m -CONFIG_SENSORS_MAX6639=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_MAX6697=m -CONFIG_SENSORS_MAX31790=m -CONFIG_SENSORS_MC34VR500=m -CONFIG_SENSORS_MCP3021=m -CONFIG_SENSORS_MLXREG_FAN=m -CONFIG_SENSORS_TC654=m -CONFIG_SENSORS_TPS23861=m -CONFIG_SENSORS_MENF21BMC_HWMON=m -CONFIG_SENSORS_MR75203=m -CONFIG_SENSORS_ADCXX=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM70=m -CONFIG_SENSORS_LM73=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LM95234=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_LM95245=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_NTC_THERMISTOR=m -CONFIG_SENSORS_NCT6683=m -CONFIG_SENSORS_NCT6775_CORE=m -CONFIG_SENSORS_NCT6775=m -CONFIG_SENSORS_NCT6775_I2C=m -CONFIG_SENSORS_NCT7802=m -CONFIG_SENSORS_NCT7904=m -CONFIG_SENSORS_NPCM7XX=m -CONFIG_SENSORS_NZXT_KRAKEN2=m -CONFIG_SENSORS_NZXT_SMART2=m -CONFIG_SENSORS_OCC_P8_I2C=m -CONFIG_SENSORS_OCC=m -CONFIG_SENSORS_OXP=m -CONFIG_SENSORS_PCF8591=m -CONFIG_PMBUS=m -CONFIG_SENSORS_PMBUS=m -# CONFIG_SENSORS_ACBEL_FSG032 is not set -CONFIG_SENSORS_ADM1266=m -CONFIG_SENSORS_ADM1275=m -CONFIG_SENSORS_BEL_PFE=m -CONFIG_SENSORS_BPA_RS600=m -CONFIG_SENSORS_DELTA_AHE50DC_FAN=m -CONFIG_SENSORS_FSP_3Y=m -CONFIG_SENSORS_IBM_CFFPS=m -CONFIG_SENSORS_DPS920AB=m -CONFIG_SENSORS_INSPUR_IPSPS=m -CONFIG_SENSORS_IR35221=m -CONFIG_SENSORS_IR36021=m -CONFIG_SENSORS_IR38064=m -CONFIG_SENSORS_IR38064_REGULATOR=y -CONFIG_SENSORS_IRPS5401=m -CONFIG_SENSORS_ISL68137=m -CONFIG_SENSORS_LM25066=m -CONFIG_SENSORS_LM25066_REGULATOR=y -CONFIG_SENSORS_LT7182S=m -CONFIG_SENSORS_LTC2978=m -# CONFIG_SENSORS_LTC2978_REGULATOR is not set -CONFIG_SENSORS_LTC3815=m -CONFIG_SENSORS_MAX15301=m -CONFIG_SENSORS_MAX16064=m -CONFIG_SENSORS_MAX16601=m -CONFIG_SENSORS_MAX20730=m -CONFIG_SENSORS_MAX20751=m -CONFIG_SENSORS_MAX31785=m -CONFIG_SENSORS_MAX34440=m -CONFIG_SENSORS_MAX8688=m -CONFIG_SENSORS_MP2888=m -CONFIG_SENSORS_MP2975=m -CONFIG_SENSORS_MP5023=m -CONFIG_SENSORS_MPQ7932_REGULATOR=y -CONFIG_SENSORS_MPQ7932=m -CONFIG_SENSORS_PIM4328=m -CONFIG_SENSORS_PLI1209BC=m -CONFIG_SENSORS_PLI1209BC_REGULATOR=y -CONFIG_SENSORS_PM6764TR=m -CONFIG_SENSORS_PXE1610=m -CONFIG_SENSORS_Q54SJ108A2=m -CONFIG_SENSORS_STPDDC60=m -CONFIG_SENSORS_TDA38640=m -CONFIG_SENSORS_TDA38640_REGULATOR=y -CONFIG_SENSORS_TPS40422=m -CONFIG_SENSORS_TPS53679=m -CONFIG_SENSORS_TPS546D24=m -CONFIG_SENSORS_UCD9000=m -CONFIG_SENSORS_UCD9200=m -CONFIG_SENSORS_XDPE152=m -CONFIG_SENSORS_XDPE122=m -CONFIG_SENSORS_XDPE122_REGULATOR=y -CONFIG_SENSORS_ZL6100=m -CONFIG_SENSORS_SBTSI=m -CONFIG_SENSORS_SBRMI=m -CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SHT21=m -CONFIG_SENSORS_SHT3x=m -CONFIG_SENSORS_SHT4x=m -CONFIG_SENSORS_SHTC1=m -CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SY7636A=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_EMC1403=m -CONFIG_SENSORS_EMC2103=m -CONFIG_SENSORS_EMC2305=m -CONFIG_SENSORS_EMC6W201=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_SCH56XX_COMMON=m -CONFIG_SENSORS_SCH5627=m -CONFIG_SENSORS_SCH5636=m -CONFIG_SENSORS_STTS751=m -CONFIG_SENSORS_SMM665=m -CONFIG_SENSORS_ADC128D818=m -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_ADS7871=m -CONFIG_SENSORS_AMC6821=m -CONFIG_SENSORS_INA209=m -CONFIG_SENSORS_INA2XX=m -CONFIG_SENSORS_INA238=m -CONFIG_SENSORS_INA3221=m -CONFIG_SENSORS_TC74=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP102=m -CONFIG_SENSORS_TMP103=m -CONFIG_SENSORS_TMP108=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_TMP464=m -CONFIG_SENSORS_TMP513=m -CONFIG_SENSORS_VIA_CPUTEMP=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m -CONFIG_SENSORS_W83773G=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -CONFIG_SENSORS_W83795=m -# CONFIG_SENSORS_W83795_FANCTRL is not set -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83627EHF=y -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_SENSORS_XGENE=m -CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m - -# -# ACPI drivers -# -CONFIG_SENSORS_ACPI_POWER=m -CONFIG_SENSORS_ATK0110=m -CONFIG_SENSORS_ASUS_WMI=m -CONFIG_SENSORS_ASUS_EC=m -# CONFIG_SENSORS_HP_WMI is not set -CONFIG_THERMAL=y -CONFIG_THERMAL_NETLINK=y -CONFIG_THERMAL_STATISTICS=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_ACPI=y -CONFIG_THERMAL_WRITABLE_TRIPS=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set -# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_FAIR_SHARE=y -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_GOV_BANG_BANG=y -CONFIG_THERMAL_GOV_USER_SPACE=y -CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y -CONFIG_DEVFREQ_THERMAL=y -# CONFIG_THERMAL_EMULATION is not set - -# -# Intel thermal drivers -# -CONFIG_INTEL_POWERCLAMP=m -CONFIG_X86_THERMAL_VECTOR=y -CONFIG_INTEL_TCC=y -CONFIG_X86_PKG_TEMP_THERMAL=m -CONFIG_INTEL_SOC_DTS_IOSF_CORE=m -CONFIG_INTEL_SOC_DTS_THERMAL=m - -# -# ACPI INT340X thermal drivers -# -CONFIG_INT340X_THERMAL=m -CONFIG_ACPI_THERMAL_REL=m -CONFIG_INT3406_THERMAL=m -CONFIG_PROC_THERMAL_MMIO_RAPL=m -# end of ACPI INT340X thermal drivers - -CONFIG_INTEL_BXT_PMIC_THERMAL=m -CONFIG_INTEL_PCH_THERMAL=m -CONFIG_INTEL_TCC_COOLING=m -CONFIG_INTEL_HFI_THERMAL=y -# end of Intel thermal drivers - -CONFIG_GENERIC_ADC_THERMAL=m -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -CONFIG_WATCHDOG_OPEN_TIMEOUT=0 -CONFIG_WATCHDOG_SYSFS=y -# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set - -# -# Watchdog Pretimeout Governors -# -CONFIG_WATCHDOG_PRETIMEOUT_GOV=y -CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m -CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m -CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y -# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP is not set -CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m -# CONFIG_SOFT_WATCHDOG_PRETIMEOUT is not set -CONFIG_DA9052_WATCHDOG=m -CONFIG_DA9055_WATCHDOG=m -CONFIG_DA9063_WATCHDOG=m -CONFIG_DA9062_WATCHDOG=m -CONFIG_MENF21BMC_WATCHDOG=m -CONFIG_MENZ069_WATCHDOG=m -CONFIG_WDAT_WDT=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m -CONFIG_XILINX_WATCHDOG=m -CONFIG_ZIIRAVE_WATCHDOG=m -CONFIG_RAVE_SP_WATCHDOG=m -CONFIG_MLX_WDT=m -CONFIG_CADENCE_WATCHDOG=m -CONFIG_DW_WATCHDOG=m -CONFIG_TWL4030_WATCHDOG=m -CONFIG_MAX63XX_WATCHDOG=m -CONFIG_RETU_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m -CONFIG_ADVANTECH_EC_WDT=m -CONFIG_ALIM1535_WDT=m -CONFIG_ALIM7101_WDT=m -CONFIG_EBC_C384_WDT=m -CONFIG_EXAR_WDT=m -CONFIG_F71808E_WDT=m -CONFIG_SP5100_TCO=m -CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m -CONFIG_IB700_WDT=m -CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m -CONFIG_I6300ESB_WDT=m -CONFIG_IE6XX_WDT=m -CONFIG_ITCO_WDT=m -CONFIG_ITCO_VENDOR_SUPPORT=y -CONFIG_IT8712F_WDT=m -CONFIG_IT87_WDT=m -CONFIG_HP_WATCHDOG=m -CONFIG_HPWDT_NMI_DECODING=y -CONFIG_KEMPLD_WDT=m -CONFIG_SC1200_WDT=m -CONFIG_PC87413_WDT=m -CONFIG_NV_TCO=m -CONFIG_60XX_WDT=m -CONFIG_CPU5_WDT=m -CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m -CONFIG_TQMX86_WDT=m -CONFIG_VIA_WDT=m -CONFIG_W83627HF_WDT=m -CONFIG_W83877F_WDT=m -CONFIG_W83977F_WDT=m -CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m -CONFIG_INTEL_MEI_WDT=m -CONFIG_NI903X_WDT=m -CONFIG_NIC7018_WDT=m -CONFIG_SIEMENS_SIMATIC_IPC_WDT=m -CONFIG_MEN_A21_WDT=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_SSB_POSSIBLE=y -CONFIG_SSB=y -CONFIG_SSB_SPROM=y -CONFIG_SSB_BLOCKIO=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y -CONFIG_SSB_SDIOHOST_POSSIBLE=y -CONFIG_SSB_SDIOHOST=y -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y -CONFIG_SSB_DRIVER_GPIO=y -CONFIG_BCMA_POSSIBLE=y -CONFIG_BCMA=m -CONFIG_BCMA_BLOCKIO=y -CONFIG_BCMA_HOST_PCI_POSSIBLE=y -CONFIG_BCMA_HOST_PCI=y -# CONFIG_BCMA_HOST_SOC is not set -CONFIG_BCMA_DRIVER_PCI=y -CONFIG_BCMA_DRIVER_GMAC_CMN=y -CONFIG_BCMA_DRIVER_GPIO=y -# CONFIG_BCMA_DEBUG is not set - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=y -CONFIG_MFD_AS3711=y -CONFIG_MFD_SMPRO=m -CONFIG_PMIC_ADP5520=y -CONFIG_MFD_AAT2870_CORE=y -CONFIG_MFD_BCM590XX=m -CONFIG_MFD_BD9571MWV=m -CONFIG_MFD_AXP20X=m -CONFIG_MFD_AXP20X_I2C=m -CONFIG_MFD_CROS_EC_DEV=m -CONFIG_MFD_MADERA=m -CONFIG_MFD_MADERA_I2C=m -CONFIG_MFD_MADERA_SPI=m -CONFIG_MFD_CS47L15=y -CONFIG_MFD_CS47L35=y -CONFIG_MFD_CS47L85=y -CONFIG_MFD_CS47L90=y -CONFIG_MFD_CS47L92=y -CONFIG_PMIC_DA903X=y -CONFIG_PMIC_DA9052=y -CONFIG_MFD_DA9052_SPI=y -CONFIG_MFD_DA9052_I2C=y -CONFIG_MFD_DA9055=y -CONFIG_MFD_DA9062=m -CONFIG_MFD_DA9063=m -CONFIG_MFD_DA9150=m -CONFIG_MFD_DLN2=m -CONFIG_MFD_MC13XXX=m -CONFIG_MFD_MC13XXX_SPI=m -CONFIG_MFD_MC13XXX_I2C=m -CONFIG_MFD_MP2629=m -CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m -CONFIG_LPC_ICH=m -CONFIG_LPC_SCH=y -CONFIG_INTEL_SOC_PMIC=y -CONFIG_INTEL_SOC_PMIC_BXTWC=m -CONFIG_INTEL_SOC_PMIC_CHTWC=y -CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m -CONFIG_INTEL_SOC_PMIC_MRFLD=m -CONFIG_MFD_INTEL_LPSS=y -CONFIG_MFD_INTEL_LPSS_ACPI=y -CONFIG_MFD_INTEL_LPSS_PCI=y -CONFIG_MFD_INTEL_PMC_BXT=m -CONFIG_MFD_IQS62X=m -CONFIG_MFD_JANZ_CMODIO=m -CONFIG_MFD_KEMPLD=m -CONFIG_MFD_88PM800=m -CONFIG_MFD_88PM805=m -CONFIG_MFD_88PM860X=y -CONFIG_MFD_MAX14577=m -# CONFIG_MFD_MAX77541 is not set -CONFIG_MFD_MAX77693=m -CONFIG_MFD_MAX77843=y -CONFIG_MFD_MAX8907=m -CONFIG_MFD_MAX8925=y -CONFIG_MFD_MAX8997=y -CONFIG_MFD_MAX8998=y -CONFIG_MFD_MT6360=m -CONFIG_MFD_MT6370=m -CONFIG_MFD_MT6397=m -CONFIG_MFD_MENF21BMC=m -CONFIG_MFD_OCELOT=m -CONFIG_EZX_PCAP=y -CONFIG_MFD_VIPERBOARD=m -CONFIG_MFD_RETU=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -CONFIG_MFD_SY7636A=m -CONFIG_MFD_RDC321X=m -CONFIG_MFD_RT4831=m -CONFIG_MFD_RT5033=m -CONFIG_MFD_RT5120=m -CONFIG_MFD_RC5T583=y -CONFIG_MFD_SI476X_CORE=m -CONFIG_MFD_SIMPLE_MFD_I2C=m -CONFIG_MFD_SM501=m -CONFIG_MFD_SM501_GPIO=y -CONFIG_MFD_SKY81452=m -CONFIG_MFD_SYSCON=y -CONFIG_MFD_TI_AM335X_TSCADC=m -CONFIG_MFD_LP3943=m -CONFIG_MFD_LP8788=y -CONFIG_MFD_TI_LMU=m -CONFIG_MFD_PALMAS=y -CONFIG_TPS6105X=m -CONFIG_TPS65010=m -CONFIG_TPS6507X=m -CONFIG_MFD_TPS65086=m -CONFIG_MFD_TPS65090=y -CONFIG_MFD_TI_LP873X=m -CONFIG_MFD_TPS6586X=y -CONFIG_MFD_TPS65910=y -CONFIG_MFD_TPS65912=m -CONFIG_MFD_TPS65912_I2C=m -CONFIG_MFD_TPS65912_SPI=m -# CONFIG_MFD_TPS6594_I2C is not set -# CONFIG_MFD_TPS6594_SPI is not set -CONFIG_TWL4030_CORE=y -CONFIG_MFD_TWL4030_AUDIO=y -CONFIG_TWL6040_CORE=y -CONFIG_MFD_WL1273_CORE=m -CONFIG_MFD_LM3533=m -CONFIG_MFD_TQMX86=m -CONFIG_MFD_VX855=m -CONFIG_MFD_ARIZONA=m -CONFIG_MFD_ARIZONA_I2C=m -CONFIG_MFD_ARIZONA_SPI=m -CONFIG_MFD_CS47L24=y -CONFIG_MFD_WM5102=y -CONFIG_MFD_WM5110=y -CONFIG_MFD_WM8997=y -CONFIG_MFD_WM8998=y -CONFIG_MFD_WM8400=y -CONFIG_MFD_WM831X=y -CONFIG_MFD_WM831X_I2C=y -CONFIG_MFD_WM831X_SPI=y -CONFIG_MFD_WM8350=y -CONFIG_MFD_WM8350_I2C=y -CONFIG_MFD_WM8994=m -CONFIG_MFD_WCD934X=m -CONFIG_MFD_ATC260X=m -CONFIG_MFD_ATC260X_I2C=m -CONFIG_RAVE_SP_CORE=m -CONFIG_MFD_INTEL_M10_BMC_CORE=m -CONFIG_MFD_INTEL_M10_BMC_SPI=m -CONFIG_MFD_INTEL_M10_BMC_PMCI=m -# end of Multifunction device drivers - -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m -CONFIG_REGULATOR_VIRTUAL_CONSUMER=m -CONFIG_REGULATOR_USERSPACE_CONSUMER=m -CONFIG_REGULATOR_88PG86X=m -CONFIG_REGULATOR_88PM800=m -CONFIG_REGULATOR_88PM8607=m -CONFIG_REGULATOR_ACT8865=m -CONFIG_REGULATOR_AD5398=m -CONFIG_REGULATOR_AAT2870=m -CONFIG_REGULATOR_ARIZONA_LDO1=m -CONFIG_REGULATOR_ARIZONA_MICSUPP=m -CONFIG_REGULATOR_AS3711=m -CONFIG_REGULATOR_ATC260X=m -CONFIG_REGULATOR_AXP20X=m -CONFIG_REGULATOR_BCM590XX=m -CONFIG_REGULATOR_BD9571MWV=m -CONFIG_REGULATOR_DA903X=m -CONFIG_REGULATOR_DA9052=m -CONFIG_REGULATOR_DA9055=m -CONFIG_REGULATOR_DA9062=m -CONFIG_REGULATOR_DA9210=m -CONFIG_REGULATOR_DA9211=m -CONFIG_REGULATOR_FAN53555=m -CONFIG_REGULATOR_GPIO=m -CONFIG_REGULATOR_ISL9305=m -CONFIG_REGULATOR_ISL6271A=m -CONFIG_REGULATOR_LM363X=m -CONFIG_REGULATOR_LP3971=m -CONFIG_REGULATOR_LP3972=m -CONFIG_REGULATOR_LP872X=m -CONFIG_REGULATOR_LP8755=m -CONFIG_REGULATOR_LP8788=m -CONFIG_REGULATOR_LTC3589=m -CONFIG_REGULATOR_LTC3676=m -CONFIG_REGULATOR_MAX14577=m -CONFIG_REGULATOR_MAX1586=m -CONFIG_REGULATOR_MAX8649=m -CONFIG_REGULATOR_MAX8660=m -CONFIG_REGULATOR_MAX8893=m -CONFIG_REGULATOR_MAX8907=m -CONFIG_REGULATOR_MAX8925=m -CONFIG_REGULATOR_MAX8952=m -CONFIG_REGULATOR_MAX8997=m -CONFIG_REGULATOR_MAX8998=m -CONFIG_REGULATOR_MAX20086=m -CONFIG_REGULATOR_MAX20411=m -CONFIG_REGULATOR_MAX77693=m -CONFIG_REGULATOR_MAX77826=m -CONFIG_REGULATOR_MC13XXX_CORE=m -CONFIG_REGULATOR_MC13783=m -CONFIG_REGULATOR_MC13892=m -CONFIG_REGULATOR_MP8859=m -CONFIG_REGULATOR_MT6311=m -# CONFIG_REGULATOR_MT6315 is not set -CONFIG_REGULATOR_MT6323=m -CONFIG_REGULATOR_MT6331=m -CONFIG_REGULATOR_MT6332=m -CONFIG_REGULATOR_MT6357=m -CONFIG_REGULATOR_MT6358=m -CONFIG_REGULATOR_MT6359=m -CONFIG_REGULATOR_MT6360=m -CONFIG_REGULATOR_MT6370=m -CONFIG_REGULATOR_MT6397=m -CONFIG_REGULATOR_PALMAS=m -CONFIG_REGULATOR_PCA9450=m -CONFIG_REGULATOR_PCAP=m -CONFIG_REGULATOR_PCF50633=m -CONFIG_REGULATOR_PV88060=m -CONFIG_REGULATOR_PV88080=m -CONFIG_REGULATOR_PV88090=m -CONFIG_REGULATOR_PWM=m -# CONFIG_REGULATOR_QCOM_SPMI is not set -# CONFIG_REGULATOR_QCOM_USB_VBUS is not set -# CONFIG_REGULATOR_RAA215300 is not set -CONFIG_REGULATOR_RC5T583=m -CONFIG_REGULATOR_RT4801=m -# CONFIG_REGULATOR_RT4803 is not set -CONFIG_REGULATOR_RT4831=m -CONFIG_REGULATOR_RT5033=m -CONFIG_REGULATOR_RT5120=m -CONFIG_REGULATOR_RT5190A=m -# CONFIG_REGULATOR_RT5739 is not set -CONFIG_REGULATOR_RT5759=m -CONFIG_REGULATOR_RT6160=m -CONFIG_REGULATOR_RT6190=m -CONFIG_REGULATOR_RT6245=m -CONFIG_REGULATOR_RTQ2134=m -CONFIG_REGULATOR_RTMV20=m -CONFIG_REGULATOR_RTQ6752=m -CONFIG_REGULATOR_SKY81452=m -CONFIG_REGULATOR_SLG51000=m -CONFIG_REGULATOR_SY7636A=m -CONFIG_REGULATOR_TPS51632=m -CONFIG_REGULATOR_TPS6105X=m -CONFIG_REGULATOR_TPS62360=m -CONFIG_REGULATOR_TPS65023=m -CONFIG_REGULATOR_TPS6507X=m -CONFIG_REGULATOR_TPS65086=m -CONFIG_REGULATOR_TPS65090=m -CONFIG_REGULATOR_TPS65132=m -CONFIG_REGULATOR_TPS6524X=m -CONFIG_REGULATOR_TPS6586X=m -CONFIG_REGULATOR_TPS65910=m -CONFIG_REGULATOR_TPS65912=m -CONFIG_REGULATOR_TPS68470=m -CONFIG_REGULATOR_TWL4030=m -CONFIG_REGULATOR_WM831X=m -CONFIG_REGULATOR_WM8350=m -CONFIG_REGULATOR_WM8400=m -CONFIG_REGULATOR_WM8994=m -# CONFIG_REGULATOR_QCOM_LABIBB is not set -CONFIG_RC_CORE=y -CONFIG_BPF_LIRC_MODE2=y -CONFIG_LIRC=y -CONFIG_RC_MAP=m -CONFIG_RC_DECODERS=y -CONFIG_IR_IMON_DECODER=m -CONFIG_IR_JVC_DECODER=m -CONFIG_IR_MCE_KBD_DECODER=m -CONFIG_IR_NEC_DECODER=m -CONFIG_IR_RC5_DECODER=m -CONFIG_IR_RC6_DECODER=m -CONFIG_IR_RCMM_DECODER=m -CONFIG_IR_SANYO_DECODER=m -CONFIG_IR_SHARP_DECODER=m -CONFIG_IR_SONY_DECODER=m -CONFIG_IR_XMP_DECODER=m -CONFIG_RC_DEVICES=y -CONFIG_IR_ENE=m -CONFIG_IR_FINTEK=m -CONFIG_IR_IGORPLUGUSB=m -CONFIG_IR_IGUANA=m -CONFIG_IR_IMON=m -CONFIG_IR_IMON_RAW=m -CONFIG_IR_ITE_CIR=m -CONFIG_IR_MCEUSB=m -CONFIG_IR_NUVOTON=m -CONFIG_IR_REDRAT3=m -CONFIG_IR_SERIAL=m -CONFIG_IR_SERIAL_TRANSMITTER=y -CONFIG_IR_STREAMZAP=m -CONFIG_IR_TOY=m -CONFIG_IR_TTUSBIR=m -CONFIG_IR_WINBOND_CIR=m -CONFIG_RC_ATI_REMOTE=m -CONFIG_RC_LOOPBACK=m -CONFIG_RC_XBOX_DVD=m -CONFIG_CEC_CORE=y -CONFIG_CEC_NOTIFIER=y -CONFIG_CEC_PIN=y - -# -# CEC support -# -CONFIG_MEDIA_CEC_RC=y -# CONFIG_CEC_PIN_ERROR_INJ is not set -CONFIG_MEDIA_CEC_SUPPORT=y -CONFIG_CEC_CH7322=m -CONFIG_CEC_CROS_EC=m -CONFIG_CEC_GPIO=m -CONFIG_CEC_SECO=m -CONFIG_CEC_SECO_RC=y -CONFIG_USB_PULSE8_CEC=m -CONFIG_USB_RAINSHADOW_CEC=m -# end of CEC support - -CONFIG_MEDIA_SUPPORT=m -CONFIG_MEDIA_SUPPORT_FILTER=y -CONFIG_MEDIA_SUBDRV_AUTOSELECT=y - -# -# Media device types -# -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_ANALOG_TV_SUPPORT=y -CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_MEDIA_SDR_SUPPORT=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_TEST_SUPPORT=y -# end of Media device types - -CONFIG_VIDEO_DEV=m -CONFIG_MEDIA_CONTROLLER=y -CONFIG_DVB_CORE=m - -# -# Video4Linux options -# -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VIDEO_V4L2_SUBDEV_API=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_TUNER=m -CONFIG_V4L2_MEM2MEM_DEV=m -CONFIG_V4L2_FLASH_LED_CLASS=m -CONFIG_V4L2_FWNODE=m -CONFIG_V4L2_ASYNC=m -CONFIG_VIDEOBUF_GEN=m -CONFIG_VIDEOBUF_DMA_SG=m -# end of Video4Linux options - -# -# Media controller options -# -CONFIG_MEDIA_CONTROLLER_DVB=y -CONFIG_MEDIA_CONTROLLER_REQUEST_API=y -# end of Media controller options - -# -# Digital TV options -# -CONFIG_DVB_MMAP=y -CONFIG_DVB_NET=y -CONFIG_DVB_MAX_ADAPTERS=64 -CONFIG_DVB_DYNAMIC_MINORS=y -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -# CONFIG_DVB_ULE_DEBUG is not set -# end of Digital TV options - -# -# Media drivers -# - -# -# Drivers filtered as selected at 'Filter media drivers' -# - -# -# Media drivers -# -CONFIG_MEDIA_USB_SUPPORT=y - -# -# Webcam devices -# -CONFIG_USB_GSPCA=m -CONFIG_USB_GSPCA_BENQ=m -CONFIG_USB_GSPCA_CONEX=m -CONFIG_USB_GSPCA_CPIA1=m -CONFIG_USB_GSPCA_DTCS033=m -CONFIG_USB_GSPCA_ETOMS=m -CONFIG_USB_GSPCA_FINEPIX=m -CONFIG_USB_GSPCA_JEILINJ=m -CONFIG_USB_GSPCA_JL2005BCD=m -CONFIG_USB_GSPCA_KINECT=m -CONFIG_USB_GSPCA_KONICA=m -CONFIG_USB_GSPCA_MARS=m -CONFIG_USB_GSPCA_MR97310A=m -CONFIG_USB_GSPCA_NW80X=m -CONFIG_USB_GSPCA_OV519=m -CONFIG_USB_GSPCA_OV534=m -CONFIG_USB_GSPCA_OV534_9=m -CONFIG_USB_GSPCA_PAC207=m -CONFIG_USB_GSPCA_PAC7302=m -CONFIG_USB_GSPCA_PAC7311=m -CONFIG_USB_GSPCA_SE401=m -CONFIG_USB_GSPCA_SN9C2028=m -CONFIG_USB_GSPCA_SN9C20X=m -CONFIG_USB_GSPCA_SONIXB=m -CONFIG_USB_GSPCA_SONIXJ=m -CONFIG_USB_GSPCA_SPCA1528=m -CONFIG_USB_GSPCA_SPCA500=m -CONFIG_USB_GSPCA_SPCA501=m -CONFIG_USB_GSPCA_SPCA505=m -CONFIG_USB_GSPCA_SPCA506=m -CONFIG_USB_GSPCA_SPCA508=m -CONFIG_USB_GSPCA_SPCA561=m -CONFIG_USB_GSPCA_SQ905=m -CONFIG_USB_GSPCA_SQ905C=m -CONFIG_USB_GSPCA_SQ930X=m -CONFIG_USB_GSPCA_STK014=m -CONFIG_USB_GSPCA_STK1135=m -CONFIG_USB_GSPCA_STV0680=m -CONFIG_USB_GSPCA_SUNPLUS=m -CONFIG_USB_GSPCA_T613=m -CONFIG_USB_GSPCA_TOPRO=m -CONFIG_USB_GSPCA_TOUPTEK=m -CONFIG_USB_GSPCA_TV8532=m -CONFIG_USB_GSPCA_VC032X=m -CONFIG_USB_GSPCA_VICAM=m -CONFIG_USB_GSPCA_XIRLINK_CIT=m -CONFIG_USB_GSPCA_ZC3XX=m -CONFIG_USB_GL860=m -CONFIG_USB_M5602=m -CONFIG_USB_STV06XX=m -CONFIG_USB_PWC=m -# CONFIG_USB_PWC_DEBUG is not set -CONFIG_USB_PWC_INPUT_EVDEV=y -CONFIG_USB_S2255=m -CONFIG_VIDEO_USBTV=m -CONFIG_USB_VIDEO_CLASS=m -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y - -# -# Analog TV USB devices -# -CONFIG_VIDEO_GO7007=m -CONFIG_VIDEO_GO7007_USB=m -CONFIG_VIDEO_GO7007_LOADER=m -CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m -CONFIG_VIDEO_HDPVR=m -CONFIG_VIDEO_PVRUSB2=m -CONFIG_VIDEO_PVRUSB2_SYSFS=y -CONFIG_VIDEO_PVRUSB2_DVB=y -# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set -CONFIG_VIDEO_STK1160=m - -# -# Analog/digital TV USB devices -# -CONFIG_VIDEO_AU0828=m -CONFIG_VIDEO_AU0828_V4L2=y -CONFIG_VIDEO_AU0828_RC=y -CONFIG_VIDEO_CX231XX=m -CONFIG_VIDEO_CX231XX_RC=y -CONFIG_VIDEO_CX231XX_ALSA=m -CONFIG_VIDEO_CX231XX_DVB=m - -# -# Digital TV USB devices -# -CONFIG_DVB_AS102=m -CONFIG_DVB_B2C2_FLEXCOP_USB=m -# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set -CONFIG_DVB_USB_V2=m -CONFIG_DVB_USB_AF9015=m -CONFIG_DVB_USB_AF9035=m -CONFIG_DVB_USB_ANYSEE=m -CONFIG_DVB_USB_AU6610=m -CONFIG_DVB_USB_AZ6007=m -CONFIG_DVB_USB_CE6230=m -CONFIG_DVB_USB_DVBSKY=m -CONFIG_DVB_USB_EC168=m -CONFIG_DVB_USB_GL861=m -CONFIG_DVB_USB_LME2510=m -CONFIG_DVB_USB_MXL111SF=m -CONFIG_DVB_USB_RTL28XXU=m -CONFIG_DVB_USB_ZD1301=m -CONFIG_DVB_USB=m -# CONFIG_DVB_USB_DEBUG is not set -CONFIG_DVB_USB_A800=m -CONFIG_DVB_USB_AF9005=m -CONFIG_DVB_USB_AF9005_REMOTE=m -CONFIG_DVB_USB_AZ6027=m -CONFIG_DVB_USB_CINERGY_T2=m -CONFIG_DVB_USB_CXUSB=m -CONFIG_DVB_USB_CXUSB_ANALOG=y -CONFIG_DVB_USB_DIB0700=m -CONFIG_DVB_USB_DIB3000MC=m -CONFIG_DVB_USB_DIBUSB_MB=m -CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y -CONFIG_DVB_USB_DIBUSB_MC=m -CONFIG_DVB_USB_DIGITV=m -CONFIG_DVB_USB_DTT200U=m -CONFIG_DVB_USB_DTV5100=m -CONFIG_DVB_USB_DW2102=m -CONFIG_DVB_USB_GP8PSK=m -CONFIG_DVB_USB_M920X=m -CONFIG_DVB_USB_NOVA_T_USB2=m -CONFIG_DVB_USB_OPERA1=m -CONFIG_DVB_USB_PCTV452E=m -CONFIG_DVB_USB_TECHNISAT_USB2=m -CONFIG_DVB_USB_TTUSB2=m -CONFIG_DVB_USB_UMT_010=m -CONFIG_DVB_USB_VP702X=m -CONFIG_DVB_USB_VP7045=m -CONFIG_SMS_USB_DRV=m -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m - -# -# Webcam, TV (analog/digital) USB devices -# -CONFIG_VIDEO_EM28XX=m -CONFIG_VIDEO_EM28XX_V4L2=m -CONFIG_VIDEO_EM28XX_ALSA=m -CONFIG_VIDEO_EM28XX_DVB=m -CONFIG_VIDEO_EM28XX_RC=m - -# -# Software defined radio USB devices -# -# CONFIG_USB_AIRSPY is not set -# CONFIG_USB_HACKRF is not set -# CONFIG_USB_MSI2500 is not set -CONFIG_MEDIA_PCI_SUPPORT=y - -# -# Media capture support -# -CONFIG_VIDEO_SOLO6X10=m -CONFIG_VIDEO_TW5864=m -CONFIG_VIDEO_TW68=m -CONFIG_VIDEO_TW686X=m -# CONFIG_VIDEO_ZORAN is not set - -# -# Media capture/analog TV support -# -CONFIG_VIDEO_DT3155=m -CONFIG_VIDEO_IVTV=m -CONFIG_VIDEO_IVTV_ALSA=m -# CONFIG_VIDEO_FB_IVTV is not set -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_HEXIUM_ORION=m -CONFIG_VIDEO_MXB=m - -# -# Media capture/analog/hybrid TV support -# -CONFIG_VIDEO_BT848=m -CONFIG_DVB_BT8XX=m -CONFIG_VIDEO_CX18=m -CONFIG_VIDEO_CX18_ALSA=m -CONFIG_VIDEO_CX23885=m -CONFIG_MEDIA_ALTERA_CI=m -CONFIG_VIDEO_CX25821=m -CONFIG_VIDEO_CX25821_ALSA=m -CONFIG_VIDEO_CX88=m -CONFIG_VIDEO_CX88_ALSA=m -CONFIG_VIDEO_CX88_BLACKBIRD=m -CONFIG_VIDEO_CX88_DVB=m -CONFIG_VIDEO_CX88_ENABLE_VP3054=y -CONFIG_VIDEO_CX88_VP3054=m -CONFIG_VIDEO_CX88_MPEG=m -CONFIG_VIDEO_SAA7134=m -CONFIG_VIDEO_SAA7134_ALSA=m -CONFIG_VIDEO_SAA7134_RC=y -CONFIG_VIDEO_SAA7134_DVB=m -CONFIG_VIDEO_SAA7134_GO7007=m -CONFIG_VIDEO_SAA7164=m - -# -# Media digital TV PCI Adapters -# -CONFIG_DVB_B2C2_FLEXCOP_PCI=m -# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set -CONFIG_DVB_DDBRIDGE=m -# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set -CONFIG_DVB_DM1105=m -CONFIG_MANTIS_CORE=m -CONFIG_DVB_MANTIS=m -CONFIG_DVB_HOPPER=m -CONFIG_DVB_NETUP_UNIDVB=m -CONFIG_DVB_NGENE=m -CONFIG_DVB_PLUTO2=m -CONFIG_DVB_PT1=m -CONFIG_DVB_PT3=m -CONFIG_DVB_SMIPCIE=m -CONFIG_DVB_BUDGET_CORE=m -CONFIG_DVB_BUDGET=m -CONFIG_DVB_BUDGET_CI=m -CONFIG_DVB_BUDGET_AV=m -CONFIG_IPU_BRIDGE=m -CONFIG_VIDEO_IPU3_CIO2=m -CONFIG_CIO2_BRIDGE=y -CONFIG_RADIO_ADAPTERS=m -CONFIG_RADIO_MAXIRADIO=m -CONFIG_RADIO_SAA7706H=m -CONFIG_RADIO_SHARK=m -CONFIG_RADIO_SHARK2=m -CONFIG_RADIO_SI4713=m -CONFIG_RADIO_SI476X=m -CONFIG_RADIO_TEA575X=m -CONFIG_RADIO_TEA5764=m -CONFIG_RADIO_TEF6862=m -CONFIG_RADIO_WL1273=m -CONFIG_USB_DSBR=m -CONFIG_USB_KEENE=m -CONFIG_USB_MA901=m -CONFIG_USB_MR800=m -CONFIG_USB_RAREMONO=m -CONFIG_RADIO_SI470X=m -CONFIG_USB_SI470X=m -CONFIG_I2C_SI470X=m -CONFIG_USB_SI4713=m -CONFIG_PLATFORM_SI4713=m -CONFIG_I2C_SI4713=m -CONFIG_RADIO_WL128X=m -CONFIG_MEDIA_PLATFORM_DRIVERS=y -CONFIG_V4L_PLATFORM_DRIVERS=y -# CONFIG_SDR_PLATFORM_DRIVERS is not set -CONFIG_DVB_PLATFORM_DRIVERS=y -CONFIG_V4L_MEM2MEM_DRIVERS=y -CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m - -# -# Allegro DVT media platform drivers -# - -# -# Amlogic media platform drivers -# - -# -# Amphion drivers -# - -# -# Aspeed media platform drivers -# - -# -# Atmel media platform drivers -# - -# -# Cadence media platform drivers -# -CONFIG_VIDEO_CADENCE_CSI2RX=m -CONFIG_VIDEO_CADENCE_CSI2TX=m - -# -# Chips&Media media platform drivers -# - -# -# Intel media platform drivers -# - -# -# Marvell media platform drivers -# -CONFIG_VIDEO_CAFE_CCIC=m - -# -# Mediatek media platform drivers -# - -# -# Microchip Technology, Inc. media platform drivers -# - -# -# NVidia media platform drivers -# - -# -# NXP media platform drivers -# - -# -# Qualcomm media platform drivers -# - -# -# Renesas media platform drivers -# - -# -# Rockchip media platform drivers -# - -# -# Samsung media platform drivers -# - -# -# STMicroelectronics media platform drivers -# - -# -# Sunxi media platform drivers -# - -# -# Texas Instruments drivers -# - -# -# Verisilicon media platform drivers -# - -# -# VIA media platform drivers -# - -# -# Xilinx media platform drivers -# - -# -# MMC/SDIO DVB adapters -# -CONFIG_SMS_SDIO_DRV=m -CONFIG_V4L_TEST_DRIVERS=y -CONFIG_VIDEO_VIM2M=m -CONFIG_VIDEO_VICODEC=m -CONFIG_VIDEO_VIMC=m -CONFIG_VIDEO_VIVID=m -CONFIG_VIDEO_VIVID_CEC=y -CONFIG_VIDEO_VIVID_MAX_DEVS=64 -CONFIG_VIDEO_VISL=m -# CONFIG_VISL_DEBUGFS is not set -CONFIG_DVB_TEST_DRIVERS=y -CONFIG_DVB_VIDTV=m - -# -# FireWire (IEEE 1394) Adapters -# -CONFIG_DVB_FIREDTV=m -CONFIG_DVB_FIREDTV_INPUT=y -CONFIG_MEDIA_COMMON_OPTIONS=y - -# -# common driver options -# -CONFIG_CYPRESS_FIRMWARE=m -CONFIG_TTPCI_EEPROM=m -CONFIG_UVC_COMMON=m -CONFIG_VIDEO_CX2341X=m -CONFIG_VIDEO_TVEEPROM=m -CONFIG_DVB_B2C2_FLEXCOP=m -CONFIG_VIDEO_SAA7146=m -CONFIG_VIDEO_SAA7146_VV=m -CONFIG_SMS_SIANO_MDTV=m -CONFIG_SMS_SIANO_RC=y -# CONFIG_SMS_SIANO_DEBUGFS is not set -CONFIG_VIDEO_V4L2_TPG=m -CONFIG_VIDEOBUF2_CORE=m -CONFIG_VIDEOBUF2_V4L2=m -CONFIG_VIDEOBUF2_MEMOPS=m -CONFIG_VIDEOBUF2_DMA_CONTIG=m -CONFIG_VIDEOBUF2_VMALLOC=m -CONFIG_VIDEOBUF2_DMA_SG=m -CONFIG_VIDEOBUF2_DVB=m -# end of Media drivers - -# -# Media ancillary drivers -# -CONFIG_MEDIA_ATTACH=y - -# -# IR I2C driver auto-selected by 'Autoselect ancillary drivers' -# -CONFIG_VIDEO_IR_I2C=m -CONFIG_VIDEO_CAMERA_SENSOR=y -CONFIG_VIDEO_APTINA_PLL=m -CONFIG_VIDEO_CCS_PLL=m -CONFIG_VIDEO_AR0521=m -CONFIG_VIDEO_HI556=m -CONFIG_VIDEO_HI846=m -CONFIG_VIDEO_HI847=m -CONFIG_VIDEO_IMX208=m -CONFIG_VIDEO_IMX214=m -CONFIG_VIDEO_IMX219=m -CONFIG_VIDEO_IMX258=m -CONFIG_VIDEO_IMX274=m -CONFIG_VIDEO_IMX290=m -CONFIG_VIDEO_IMX296=m -CONFIG_VIDEO_IMX319=m -CONFIG_VIDEO_IMX355=m -CONFIG_VIDEO_MAX9271_LIB=m -CONFIG_VIDEO_MT9M001=m -CONFIG_VIDEO_MT9M111=m -CONFIG_VIDEO_MT9P031=m -CONFIG_VIDEO_MT9T112=m -CONFIG_VIDEO_MT9V011=m -CONFIG_VIDEO_MT9V032=m -CONFIG_VIDEO_MT9V111=m -CONFIG_VIDEO_OG01A1B=m -# CONFIG_VIDEO_OV01A10 is not set -CONFIG_VIDEO_OV02A10=m -CONFIG_VIDEO_OV08D10=m -CONFIG_VIDEO_OV08X40=m -CONFIG_VIDEO_OV13858=m -CONFIG_VIDEO_OV13B10=m -CONFIG_VIDEO_OV2640=m -CONFIG_VIDEO_OV2659=m -CONFIG_VIDEO_OV2680=m -CONFIG_VIDEO_OV2685=m -CONFIG_VIDEO_OV2740=m -CONFIG_VIDEO_OV4689=m -CONFIG_VIDEO_OV5647=m -CONFIG_VIDEO_OV5648=m -CONFIG_VIDEO_OV5670=m -CONFIG_VIDEO_OV5675=m -CONFIG_VIDEO_OV5693=m -CONFIG_VIDEO_OV5695=m -CONFIG_VIDEO_OV6650=m -CONFIG_VIDEO_OV7251=m -CONFIG_VIDEO_OV7640=m -CONFIG_VIDEO_OV7670=m -CONFIG_VIDEO_OV772X=m -CONFIG_VIDEO_OV7740=m -CONFIG_VIDEO_OV8856=m -CONFIG_VIDEO_OV8858=m -CONFIG_VIDEO_OV8865=m -CONFIG_VIDEO_OV9640=m -CONFIG_VIDEO_OV9650=m -CONFIG_VIDEO_OV9734=m -CONFIG_VIDEO_RDACM20=m -CONFIG_VIDEO_RDACM21=m -CONFIG_VIDEO_RJ54N1=m -CONFIG_VIDEO_S5C73M3=m -CONFIG_VIDEO_S5K5BAF=m -CONFIG_VIDEO_S5K6A3=m -CONFIG_VIDEO_CCS=m -CONFIG_VIDEO_ET8EK8=m - -# -# Lens drivers -# -CONFIG_VIDEO_AD5820=m -CONFIG_VIDEO_AK7375=m -CONFIG_VIDEO_DW9714=m -CONFIG_VIDEO_DW9768=m -CONFIG_VIDEO_DW9807_VCM=m -# end of Lens drivers - -# -# Flash devices -# -CONFIG_VIDEO_ADP1653=m -CONFIG_VIDEO_LM3560=m -CONFIG_VIDEO_LM3646=m -# end of Flash devices - -# -# Audio decoders, processors and mixers -# -CONFIG_VIDEO_CS3308=m -CONFIG_VIDEO_CS5345=m -CONFIG_VIDEO_CS53L32A=m -CONFIG_VIDEO_MSP3400=m -CONFIG_VIDEO_SONY_BTF_MPX=m -# CONFIG_VIDEO_TDA1997X is not set -CONFIG_VIDEO_TDA7432=m -CONFIG_VIDEO_TDA9840=m -CONFIG_VIDEO_TEA6415C=m -CONFIG_VIDEO_TEA6420=m -# CONFIG_VIDEO_TLV320AIC23B is not set -CONFIG_VIDEO_TVAUDIO=m -CONFIG_VIDEO_UDA1342=m -CONFIG_VIDEO_VP27SMPX=m -CONFIG_VIDEO_WM8739=m -CONFIG_VIDEO_WM8775=m -# end of Audio decoders, processors and mixers - -# -# RDS decoders -# -CONFIG_VIDEO_SAA6588=m -# end of RDS decoders - -# -# Video decoders -# -CONFIG_VIDEO_ADV7180=m -# CONFIG_VIDEO_ADV7183 is not set -# CONFIG_VIDEO_ADV7604 is not set -# CONFIG_VIDEO_ADV7842 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_ML86V7667 is not set -# CONFIG_VIDEO_SAA7110 is not set -CONFIG_VIDEO_SAA711X=m -# CONFIG_VIDEO_TC358743 is not set -# CONFIG_VIDEO_TC358746 is not set -# CONFIG_VIDEO_TVP514X is not set -CONFIG_VIDEO_TVP5150=m -# CONFIG_VIDEO_TVP7002 is not set -CONFIG_VIDEO_TW2804=m -CONFIG_VIDEO_TW9903=m -CONFIG_VIDEO_TW9906=m -# CONFIG_VIDEO_TW9910 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -CONFIG_VIDEO_SAA717X=m -CONFIG_VIDEO_CX25840=m -# end of Video decoders - -# -# Video encoders -# -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_ADV7393 is not set -# CONFIG_VIDEO_ADV7511 is not set -# CONFIG_VIDEO_AK881X is not set -CONFIG_VIDEO_SAA7127=m -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_THS8200 is not set -# end of Video encoders - -# -# Video improvement chips -# -CONFIG_VIDEO_UPD64031A=m -CONFIG_VIDEO_UPD64083=m -# end of Video improvement chips - -# -# Audio/Video compression chips -# -CONFIG_VIDEO_SAA6752HS=m -# end of Audio/Video compression chips - -# -# SDR tuner chips -# -CONFIG_SDR_MAX2175=m -# end of SDR tuner chips - -# -# Miscellaneous helper chips -# -# CONFIG_VIDEO_I2C is not set -CONFIG_VIDEO_M52790=m -# CONFIG_VIDEO_ST_MIPID02 is not set -# CONFIG_VIDEO_THS7303 is not set -# end of Miscellaneous helper chips - -# -# Media SPI Adapters -# -CONFIG_CXD2880_SPI_DRV=m -CONFIG_VIDEO_GS1662=m -# end of Media SPI Adapters - -CONFIG_MEDIA_TUNER=m - -# -# Customize TV tuners -# -CONFIG_MEDIA_TUNER_E4000=m -CONFIG_MEDIA_TUNER_FC0011=m -CONFIG_MEDIA_TUNER_FC0012=m -CONFIG_MEDIA_TUNER_FC0013=m -CONFIG_MEDIA_TUNER_FC2580=m -CONFIG_MEDIA_TUNER_IT913X=m -CONFIG_MEDIA_TUNER_M88RS6000T=m -CONFIG_MEDIA_TUNER_MAX2165=m -CONFIG_MEDIA_TUNER_MC44S803=m -# CONFIG_MEDIA_TUNER_MSI001 is not set -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2063=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_MT2131=m -CONFIG_MEDIA_TUNER_MT2266=m -CONFIG_MEDIA_TUNER_MXL301RF=m -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_MEDIA_TUNER_MXL5007T=m -CONFIG_MEDIA_TUNER_QM1D1B0004=m -CONFIG_MEDIA_TUNER_QM1D1C0042=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_R820T=m -CONFIG_MEDIA_TUNER_SI2157=m -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA18212=m -CONFIG_MEDIA_TUNER_TDA18218=m -CONFIG_MEDIA_TUNER_TDA18250=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_TUA9001=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_XC5000=m -# end of Customize TV tuners - -# -# Customise DVB Frontends -# - -# -# Multistandard (satellite) frontends -# -CONFIG_DVB_M88DS3103=m -CONFIG_DVB_MXL5XX=m -CONFIG_DVB_STB0899=m -CONFIG_DVB_STB6100=m -CONFIG_DVB_STV090x=m -CONFIG_DVB_STV0910=m -CONFIG_DVB_STV6110x=m -CONFIG_DVB_STV6111=m - -# -# Multistandard (cable + terrestrial) frontends -# -CONFIG_DVB_DRXK=m -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m -CONFIG_DVB_SI2165=m -CONFIG_DVB_TDA18271C2DD=m - -# -# DVB-S (satellite) frontends -# -CONFIG_DVB_CX24110=m -CONFIG_DVB_CX24116=m -CONFIG_DVB_CX24117=m -CONFIG_DVB_CX24120=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_DS3000=m -CONFIG_DVB_MB86A16=m -CONFIG_DVB_MT312=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_SI21XX=m -CONFIG_DVB_STB6000=m -CONFIG_DVB_STV0288=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_STV0900=m -CONFIG_DVB_STV6110=m -CONFIG_DVB_TDA10071=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA8261=m -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TS2020=m -CONFIG_DVB_TUA6100=m -CONFIG_DVB_TUNER_CX24113=m -CONFIG_DVB_TUNER_ITD1000=m -CONFIG_DVB_VES1X93=m -CONFIG_DVB_ZL10036=m -CONFIG_DVB_ZL10039=m - -# -# DVB-T (terrestrial) frontends -# -CONFIG_DVB_AF9013=m -CONFIG_DVB_AS102_FE=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_CXD2820R=m -CONFIG_DVB_CXD2841ER=m -CONFIG_DVB_DIB3000MB=m -CONFIG_DVB_DIB3000MC=m -CONFIG_DVB_DIB7000M=m -CONFIG_DVB_DIB7000P=m -# CONFIG_DVB_DIB9000 is not set -CONFIG_DVB_DRXD=m -CONFIG_DVB_EC100=m -CONFIG_DVB_GP8PSK_FE=m -CONFIG_DVB_L64781=m -CONFIG_DVB_MT352=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_RTL2830=m -CONFIG_DVB_RTL2832=m -CONFIG_DVB_RTL2832_SDR=m -# CONFIG_DVB_S5H1432 is not set -CONFIG_DVB_SI2168=m -CONFIG_DVB_SP887X=m -CONFIG_DVB_STV0367=m -CONFIG_DVB_TDA10048=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_ZD1301_DEMOD=m -CONFIG_DVB_ZL10353=m -# CONFIG_DVB_CXD2880 is not set - -# -# DVB-C (cable) frontends -# -CONFIG_DVB_STV0297=m -CONFIG_DVB_TDA10021=m -CONFIG_DVB_TDA10023=m -CONFIG_DVB_VES1820=m - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# -CONFIG_DVB_AU8522=m -CONFIG_DVB_AU8522_DTV=m -CONFIG_DVB_AU8522_V4L=m -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LG2160=m -CONFIG_DVB_LGDT3305=m -CONFIG_DVB_LGDT3306A=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_MXL692=m -CONFIG_DVB_NXT200X=m -CONFIG_DVB_OR51132=m -CONFIG_DVB_OR51211=m -CONFIG_DVB_S5H1409=m -CONFIG_DVB_S5H1411=m - -# -# ISDB-T (terrestrial) frontends -# -CONFIG_DVB_DIB8000=m -CONFIG_DVB_MB86A20S=m -CONFIG_DVB_S921=m - -# -# ISDB-S (satellite) & ISDB-T (terrestrial) frontends -# -# CONFIG_DVB_MN88443X is not set -CONFIG_DVB_TC90522=m - -# -# Digital terrestrial only tuners/PLL -# -CONFIG_DVB_PLL=m -CONFIG_DVB_TUNER_DIB0070=m -CONFIG_DVB_TUNER_DIB0090=m - -# -# SEC control devices for DVB-S -# -CONFIG_DVB_A8293=m -CONFIG_DVB_AF9033=m -CONFIG_DVB_ASCOT2E=m -CONFIG_DVB_ATBM8830=m -CONFIG_DVB_HELENE=m -CONFIG_DVB_HORUS3A=m -CONFIG_DVB_ISL6405=m -CONFIG_DVB_ISL6421=m -CONFIG_DVB_ISL6423=m -CONFIG_DVB_IX2505V=m -# CONFIG_DVB_LGS8GL5 is not set -CONFIG_DVB_LGS8GXX=m -CONFIG_DVB_LNBH25=m -# CONFIG_DVB_LNBH29 is not set -CONFIG_DVB_LNBP21=m -CONFIG_DVB_LNBP22=m -CONFIG_DVB_M88RS2000=m -CONFIG_DVB_TDA665x=m -CONFIG_DVB_DRX39XYJ=m - -# -# Common Interface (EN50221) controller drivers -# -CONFIG_DVB_CXD2099=m -CONFIG_DVB_SP2=m -# end of Customise DVB Frontends - -# -# Tools to develop new frontends -# -CONFIG_DVB_DUMMY_FE=m -# end of Media ancillary drivers - -# -# Graphics support -# -CONFIG_APERTURE_HELPERS=y -CONFIG_VIDEO_CMDLINE=y -CONFIG_VIDEO_NOMODESET=y -CONFIG_AGP=y -CONFIG_AGP_AMD64=y -CONFIG_AGP_INTEL=y -CONFIG_AGP_SIS=y -CONFIG_AGP_VIA=y -CONFIG_INTEL_GTT=y -CONFIG_VGA_SWITCHEROO=y -CONFIG_DRM=y -CONFIG_DRM_MIPI_DBI=m -CONFIG_DRM_MIPI_DSI=y -# CONFIG_DRM_DEBUG_MM is not set -CONFIG_DRM_KMS_HELPER=y -# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set -# CONFIG_DRM_DEBUG_MODESET_LOCK is not set -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=200 -# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set -CONFIG_DRM_LOAD_EDID_FIRMWARE=y -CONFIG_DRM_DISPLAY_HELPER=y -CONFIG_DRM_DISPLAY_DP_HELPER=y -CONFIG_DRM_DISPLAY_HDCP_HELPER=y -CONFIG_DRM_DISPLAY_HDMI_HELPER=y -CONFIG_DRM_DP_AUX_CHARDEV=y -CONFIG_DRM_DP_CEC=y -CONFIG_DRM_TTM=y -CONFIG_DRM_BUDDY=y -CONFIG_DRM_VRAM_HELPER=m -CONFIG_DRM_TTM_HELPER=y -CONFIG_DRM_GEM_DMA_HELPER=m -CONFIG_DRM_GEM_SHMEM_HELPER=y -CONFIG_DRM_SUBALLOC_HELPER=y -CONFIG_DRM_SCHED=y - -# -# I2C encoder or helper chips -# -CONFIG_DRM_I2C_CH7006=m -CONFIG_DRM_I2C_SIL164=m -CONFIG_DRM_I2C_NXP_TDA998X=m -CONFIG_DRM_I2C_NXP_TDA9950=m -# end of I2C encoder or helper chips - -# -# ARM devices -# -# end of ARM devices - -CONFIG_DRM_RADEON=y -CONFIG_DRM_RADEON_USERPTR=y -CONFIG_DRM_AMDGPU=y -CONFIG_DRM_AMDGPU_SI=y -CONFIG_DRM_AMDGPU_CIK=y -CONFIG_DRM_AMDGPU_USERPTR=y -# CONFIG_DRM_AMDGPU_WERROR is not set - -# -# ACP (Audio CoProcessor) Configuration -# -CONFIG_DRM_AMD_ACP=y -# end of ACP (Audio CoProcessor) Configuration - -# -# Display Engine Configuration -# -CONFIG_DRM_AMD_DC=y -CONFIG_DRM_AMD_DC_FP=y -CONFIG_DRM_AMD_DC_SI=y -CONFIG_DRM_AMD_SECURE_DISPLAY=y -# end of Display Engine Configuration - -CONFIG_HSA_AMD=y -CONFIG_HSA_AMD_SVM=y -CONFIG_DRM_NOUVEAU=y -CONFIG_NOUVEAU_DEBUG=5 -CONFIG_NOUVEAU_DEBUG_DEFAULT=3 -# CONFIG_NOUVEAU_DEBUG_MMU is not set -# CONFIG_NOUVEAU_DEBUG_PUSH is not set -CONFIG_DRM_NOUVEAU_BACKLIGHT=y -CONFIG_DRM_NOUVEAU_SVM=y -CONFIG_DRM_I915=y -CONFIG_DRM_I915_FORCE_PROBE="*" -CONFIG_DRM_I915_CAPTURE_ERROR=y -CONFIG_DRM_I915_COMPRESS_ERROR=y -CONFIG_DRM_I915_USERPTR=y -CONFIG_DRM_I915_PXP=y - -# -# drm/i915 Debugging -# -# CONFIG_DRM_I915_WERROR is not set -# CONFIG_DRM_I915_DEBUG is not set -# CONFIG_DRM_I915_DEBUG_MMIO is not set -# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set -# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set -# CONFIG_DRM_I915_DEBUG_GUC is not set -# CONFIG_DRM_I915_SELFTEST is not set -# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set -# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set -# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set -# end of drm/i915 Debugging - -# -# drm/i915 Profile Guided Optimisation -# -CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 -CONFIG_DRM_I915_FENCE_TIMEOUT=10000 -CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 -CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 -CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 -CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 -CONFIG_DRM_I915_STOP_TIMEOUT=100 -CONFIG_DRM_I915_TIMESLICE_DURATION=1 -# end of drm/i915 Profile Guided Optimisation - -CONFIG_DRM_VGEM=m -CONFIG_DRM_VKMS=m -CONFIG_DRM_VMWGFX=m -CONFIG_DRM_VMWGFX_MKSSTATS=y -CONFIG_DRM_GMA500=m -CONFIG_DRM_UDL=m -CONFIG_DRM_AST=m -CONFIG_DRM_MGAG200=m -CONFIG_DRM_QXL=m -CONFIG_DRM_VIRTIO_GPU=m -CONFIG_DRM_VIRTIO_GPU_KMS=y -CONFIG_DRM_PANEL=y - -# -# Display Panels -# -CONFIG_DRM_PANEL_AUO_A030JTN01=m -CONFIG_DRM_PANEL_ORISETECH_OTA5601A=m -CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m -CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m -# end of Display Panels - -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_PANEL_BRIDGE=y - -# -# Display Interface Bridges -# -CONFIG_DRM_ANALOGIX_ANX78XX=m -CONFIG_DRM_ANALOGIX_DP=m -# end of Display Interface Bridges - -# CONFIG_DRM_ETNAVIV is not set -CONFIG_DRM_BOCHS=m -CONFIG_DRM_CIRRUS_QEMU=m -CONFIG_DRM_GM12U320=m -CONFIG_DRM_PANEL_MIPI_DBI=m -CONFIG_DRM_SIMPLEDRM=y -CONFIG_TINYDRM_HX8357D=m -CONFIG_TINYDRM_ILI9163=m -CONFIG_TINYDRM_ILI9225=m -CONFIG_TINYDRM_ILI9341=m -CONFIG_TINYDRM_ILI9486=m -CONFIG_TINYDRM_MI0283QT=m -CONFIG_TINYDRM_REPAPER=m -CONFIG_TINYDRM_ST7586=m -CONFIG_TINYDRM_ST7735R=m -CONFIG_DRM_VBOXVIDEO=m -CONFIG_DRM_GUD=m -CONFIG_DRM_SSD130X=m -CONFIG_DRM_SSD130X_I2C=m -CONFIG_DRM_SSD130X_SPI=m -CONFIG_DRM_HYPERV=m -# CONFIG_DRM_LEGACY is not set -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -CONFIG_DRM_PRIVACY_SCREEN=y - -# -# Frame buffer Devices -# -CONFIG_FB_NOTIFY=y -CONFIG_FB=y -# CONFIG_FIRMWARE_EDID is not set -CONFIG_FB_DDC=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_IMAGEBLIT=y -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_IO_HELPERS=y -CONFIG_FB_SYS_HELPERS=y -CONFIG_FB_SYS_HELPERS_DEFERRED=y -CONFIG_FB_BACKLIGHT=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y - -# -# Frame buffer hardware drivers -# -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_ARC is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -# CONFIG_FB_UVESA is not set -CONFIG_FB_VESA=y -CONFIG_FB_EFI=y -# CONFIG_FB_N411 is not set -# CONFIG_FB_HGA is not set -# CONFIG_FB_OPENCORES is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_I740 is not set -# CONFIG_FB_LE80578 is not set -# CONFIG_FB_MATROX is not set -CONFIG_FB_RADEON=y -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_VIA is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_CARMINE is not set -# CONFIG_FB_SM501 is not set -# CONFIG_FB_SMSCUFX is not set -CONFIG_FB_UDL=y -# CONFIG_FB_IBM_GXT4500 is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_HYPERV is not set -# CONFIG_FB_SSD1307 is not set -# CONFIG_FB_SM712 is not set -# end of Frame buffer Devices - -# -# Backlight & LCD device support -# -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_L4F00242T03=m -CONFIG_LCD_LMS283GF05=m -CONFIG_LCD_LTV350QV=m -CONFIG_LCD_ILI922X=m -CONFIG_LCD_ILI9320=m -CONFIG_LCD_TDO24M=m -CONFIG_LCD_VGG2432A4=m -CONFIG_LCD_PLATFORM=m -CONFIG_LCD_AMS369FG06=m -CONFIG_LCD_LMS501KF03=m -CONFIG_LCD_HX8357=m -CONFIG_LCD_OTM3225A=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_KTD253=m -CONFIG_BACKLIGHT_KTZ8866=m -CONFIG_BACKLIGHT_LM3533=m -CONFIG_BACKLIGHT_PWM=m -CONFIG_BACKLIGHT_DA903X=m -CONFIG_BACKLIGHT_DA9052=m -CONFIG_BACKLIGHT_MAX8925=m -CONFIG_BACKLIGHT_MT6370=m -CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_QCOM_WLED=m -CONFIG_BACKLIGHT_RT4831=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m -CONFIG_BACKLIGHT_ADP5520=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m -CONFIG_BACKLIGHT_88PM860X=m -CONFIG_BACKLIGHT_PCF50633=m -CONFIG_BACKLIGHT_AAT2870=m -CONFIG_BACKLIGHT_LM3630A=m -CONFIG_BACKLIGHT_LM3639=m -CONFIG_BACKLIGHT_LP855X=m -CONFIG_BACKLIGHT_LP8788=m -CONFIG_BACKLIGHT_PANDORA=m -CONFIG_BACKLIGHT_SKY81452=m -CONFIG_BACKLIGHT_AS3711=m -CONFIG_BACKLIGHT_GPIO=m -CONFIG_BACKLIGHT_LV5207LP=m -CONFIG_BACKLIGHT_BD6107=m -CONFIG_BACKLIGHT_ARCXCNN=m -CONFIG_BACKLIGHT_RAVE_SP=m -# end of Backlight & LCD device support - -CONFIG_VIDEOMODE_HELPERS=y -CONFIG_HDMI=y - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set -# end of Console display driver support - -# CONFIG_LOGO is not set -# end of Graphics support - -CONFIG_DRM_ACCEL=y -CONFIG_DRM_ACCEL_HABANALABS=m -CONFIG_DRM_ACCEL_IVPU=m -# CONFIG_DRM_ACCEL_QAIC is not set -CONFIG_SOUND=y -CONFIG_SOUND_OSS_CORE=y -# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_PCM_ELD=y -CONFIG_SND_PCM_IEC958=y -CONFIG_SND_DMAENGINE_PCM=y -CONFIG_SND_HWDEP=m -CONFIG_SND_SEQ_DEVICE=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_COMPRESS_OFFLOAD=y -CONFIG_SND_JACK=y -CONFIG_SND_JACK_INPUT_DEV=y -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_PCM_TIMER=y -CONFIG_SND_HRTIMER=y -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_MAX_CARDS=32 -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_PROC_FS=y -CONFIG_SND_VERBOSE_PROCFS=y -CONFIG_SND_VERBOSE_PRINTK=y -CONFIG_SND_CTL_FAST_LOOKUP=y -CONFIG_SND_DEBUG=y -# CONFIG_SND_DEBUG_VERBOSE is not set -# CONFIG_SND_PCM_XRUN_DEBUG is not set -CONFIG_SND_CTL_INPUT_VALIDATION=y -# CONFIG_SND_CTL_DEBUG is not set -# CONFIG_SND_JACK_INJECTION_DEBUG is not set -CONFIG_SND_VMASTER=y -CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_CTL_LED=m -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_SEQUENCER_OSS=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_SEQ_MIDI_EVENT=m -CONFIG_SND_SEQ_MIDI=m -CONFIG_SND_SEQ_MIDI_EMUL=m -CONFIG_SND_SEQ_VIRMIDI=m -# CONFIG_SND_SEQ_UMP is not set -CONFIG_SND_MPU401_UART=m -CONFIG_SND_OPL3_LIB=m -CONFIG_SND_OPL3_LIB_SEQ=m -CONFIG_SND_VX_LIB=m -CONFIG_SND_AC97_CODEC=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_ALOOP=m -# CONFIG_SND_PCMTEST is not set -CONFIG_SND_VIRMIDI=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_MPU401=m -CONFIG_SND_PORTMAN2X4=m -CONFIG_SND_AC97_POWER_SAVE=y -CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 -CONFIG_SND_SB_COMMON=m -CONFIG_SND_PCI=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALS300=m -CONFIG_SND_ALS4000=m -CONFIG_SND_ALI5451=m -CONFIG_SND_ASIHPI=m -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m -CONFIG_SND_AZT3328=m -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_OXYGEN_LIB=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_GINA20=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_DARLA24=m -CONFIG_SND_GINA24=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_MONA=m -CONFIG_SND_MIA=m -CONFIG_SND_ECHO3G=m -CONFIG_SND_INDIGO=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1_SEQ=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968=m -CONFIG_SND_ES1968_INPUT=y -CONFIG_SND_ES1968_RADIO=y -CONFIG_SND_FM801=m -CONFIG_SND_FM801_TEA575X_BOOL=y -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INTEL8X0=m -CONFIG_SND_INTEL8X0M=m -CONFIG_SND_KORG1212=m -CONFIG_SND_LOLA=m -CONFIG_SND_LX6464ES=m -CONFIG_SND_MAESTRO3=m -CONFIG_SND_MAESTRO3_INPUT=y -CONFIG_SND_MIXART=m -CONFIG_SND_NM256=m -CONFIG_SND_PCXHR=m -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME96=m -CONFIG_SND_RME9652=m -CONFIG_SND_SONICVIBES=m -CONFIG_SND_TRIDENT=m -CONFIG_SND_VIA82XX=m -CONFIG_SND_VIA82XX_MODEM=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m - -# -# HD-Audio -# -CONFIG_SND_HDA=m -CONFIG_SND_HDA_GENERIC_LEDS=y -CONFIG_SND_HDA_INTEL=m -CONFIG_SND_HDA_HWDEP=y -CONFIG_SND_HDA_RECONFIG=y -CONFIG_SND_HDA_INPUT_BEEP=y -CONFIG_SND_HDA_INPUT_BEEP_MODE=1 -CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_SCODEC_CS35L41=m -CONFIG_SND_HDA_CS_DSP_CONTROLS=m -CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m -CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m -CONFIG_SND_HDA_CODEC_REALTEK=m -CONFIG_SND_HDA_CODEC_ANALOG=m -CONFIG_SND_HDA_CODEC_SIGMATEL=m -CONFIG_SND_HDA_CODEC_VIA=m -CONFIG_SND_HDA_CODEC_HDMI=m -CONFIG_SND_HDA_CODEC_CIRRUS=m -CONFIG_SND_HDA_CODEC_CS8409=m -CONFIG_SND_HDA_CODEC_CONEXANT=m -CONFIG_SND_HDA_CODEC_CA0110=m -CONFIG_SND_HDA_CODEC_CA0132=m -CONFIG_SND_HDA_CODEC_CA0132_DSP=y -CONFIG_SND_HDA_CODEC_CMEDIA=m -CONFIG_SND_HDA_CODEC_SI3054=m -CONFIG_SND_HDA_GENERIC=m -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 -CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y -# CONFIG_SND_HDA_CTL_DEV_ID is not set -# end of HD-Audio - -CONFIG_SND_HDA_CORE=m -CONFIG_SND_HDA_DSP_LOADER=y -CONFIG_SND_HDA_COMPONENT=y -CONFIG_SND_HDA_I915=y -CONFIG_SND_HDA_EXT_CORE=m -CONFIG_SND_HDA_PREALLOC_SIZE=0 -CONFIG_SND_INTEL_NHLT=y -CONFIG_SND_INTEL_DSP_CONFIG=m -CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m -# CONFIG_SND_INTEL_BYT_PREFER_SOF is not set -CONFIG_SND_SPI=y -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set -CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_USX2Y=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_US122L=m -CONFIG_SND_USB_6FIRE=m -CONFIG_SND_USB_HIFACE=m -CONFIG_SND_BCD2000=m -CONFIG_SND_USB_LINE6=m -CONFIG_SND_USB_POD=m -CONFIG_SND_USB_PODHD=m -CONFIG_SND_USB_TONEPORT=m -CONFIG_SND_USB_VARIAX=m -CONFIG_SND_FIREWIRE=y -CONFIG_SND_FIREWIRE_LIB=m -CONFIG_SND_DICE=m -CONFIG_SND_OXFW=m -CONFIG_SND_ISIGHT=m -CONFIG_SND_FIREWORKS=m -CONFIG_SND_BEBOB=m -CONFIG_SND_FIREWIRE_DIGI00X=m -CONFIG_SND_FIREWIRE_TASCAM=m -CONFIG_SND_FIREWIRE_MOTU=m -CONFIG_SND_FIREFACE=m -CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m -CONFIG_SND_SOC=y -CONFIG_SND_SOC_AC97_BUS=y -CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y -CONFIG_SND_SOC_COMPRESS=y -CONFIG_SND_SOC_TOPOLOGY=y -CONFIG_SND_SOC_ACPI=m -CONFIG_SND_SOC_ADI=m -CONFIG_SND_SOC_ADI_AXI_I2S=m -CONFIG_SND_SOC_ADI_AXI_SPDIF=m -CONFIG_SND_SOC_AMD_ACP=m -CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m -CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m -CONFIG_SND_SOC_AMD_ST_ES8336_MACH=m -CONFIG_SND_SOC_AMD_ACP3x=m -CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m -CONFIG_SND_SOC_AMD_RENOIR=m -CONFIG_SND_SOC_AMD_RENOIR_MACH=m -CONFIG_SND_SOC_AMD_ACP5x=m -CONFIG_SND_SOC_AMD_VANGOGH_MACH=m -CONFIG_SND_SOC_AMD_ACP6x=m -CONFIG_SND_SOC_AMD_YC_MACH=m -CONFIG_SND_AMD_ACP_CONFIG=m -CONFIG_SND_SOC_AMD_ACP_COMMON=m -CONFIG_SND_SOC_AMD_ACP_PDM=m -CONFIG_SND_SOC_AMD_ACP_I2S=m -CONFIG_SND_SOC_AMD_ACP_PCM=m -CONFIG_SND_SOC_AMD_ACP_PCI=m -CONFIG_SND_AMD_ASOC_RENOIR=m -CONFIG_SND_AMD_ASOC_REMBRANDT=m -CONFIG_SND_SOC_AMD_MACH_COMMON=m -CONFIG_SND_SOC_AMD_LEGACY_MACH=m -CONFIG_SND_SOC_AMD_SOF_MACH=m -CONFIG_SND_SOC_AMD_RPL_ACP6x=m -CONFIG_SND_SOC_AMD_PS=m -CONFIG_SND_SOC_AMD_PS_MACH=m -CONFIG_SND_ATMEL_SOC=m -# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set -CONFIG_SND_DESIGNWARE_I2S=m -CONFIG_SND_DESIGNWARE_PCM=y - -# -# SoC Audio for Freescale CPUs -# - -# -# Common SoC Audio options for Freescale CPUs: -# -# CONFIG_SND_SOC_FSL_ASRC is not set -# CONFIG_SND_SOC_FSL_SAI is not set -# CONFIG_SND_SOC_FSL_AUDMIX is not set -# CONFIG_SND_SOC_FSL_SSI is not set -# CONFIG_SND_SOC_FSL_SPDIF is not set -# CONFIG_SND_SOC_FSL_ESAI is not set -# CONFIG_SND_SOC_FSL_MICFIL is not set -CONFIG_SND_SOC_FSL_XCVR=m -CONFIG_SND_SOC_FSL_RPMSG=m -# CONFIG_SND_SOC_IMX_AUDMUX is not set -# end of SoC Audio for Freescale CPUs - -# CONFIG_SND_SOC_CHV3_I2S is not set -CONFIG_SND_I2S_HI6210_I2S=m -CONFIG_SND_SOC_IMG=y -CONFIG_SND_SOC_IMG_I2S_IN=m -CONFIG_SND_SOC_IMG_I2S_OUT=m -CONFIG_SND_SOC_IMG_PARALLEL_OUT=m -CONFIG_SND_SOC_IMG_SPDIF_IN=m -CONFIG_SND_SOC_IMG_SPDIF_OUT=m -CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m -CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y -CONFIG_SND_SOC_INTEL_SST=m -CONFIG_SND_SOC_INTEL_CATPT=m -CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m -CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m -CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m -CONFIG_SND_SOC_INTEL_SKYLAKE=m -CONFIG_SND_SOC_INTEL_SKL=m -CONFIG_SND_SOC_INTEL_APL=m -CONFIG_SND_SOC_INTEL_KBL=m -CONFIG_SND_SOC_INTEL_GLK=m -CONFIG_SND_SOC_INTEL_CNL=m -CONFIG_SND_SOC_INTEL_CFL=m -CONFIG_SND_SOC_INTEL_CML_H=m -CONFIG_SND_SOC_INTEL_CML_LP=m -CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m -CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m -CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y -CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m -CONFIG_SND_SOC_ACPI_INTEL_MATCH=m -CONFIG_SND_SOC_INTEL_AVS=m - -# -# Intel AVS Machine drivers -# - -# -# Available DSP configurations -# -CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m -CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m -CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m -CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m -CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927=m -CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m -CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m -CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m -CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m -CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m -CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m -CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m -CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682=m -CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567=m -# end of Intel AVS Machine drivers - -CONFIG_SND_SOC_INTEL_MACH=y -CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y -CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m -CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m -CONFIG_SND_SOC_INTEL_SOF_REALTEK_COMMON=m -CONFIG_SND_SOC_INTEL_SOF_CIRRUS_COMMON=m -CONFIG_SND_SOC_INTEL_HASWELL_MACH=m -CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m -CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m -CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m -CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m -CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m -CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH=m -CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m -CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m -CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m -CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m -CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m -CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m -CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m -CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m -CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m -CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m -CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m -CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m -CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m -CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m -CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m -CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m -CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m -CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m -CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m -CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m -CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m -CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m -CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m -CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m -CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m -CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m -CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m -CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m -CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH=m -CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m -CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m -CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m -CONFIG_SND_SOC_INTEL_SOF_SSP_AMP_MACH=m -CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m -CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m -CONFIG_SND_SOC_MTK_BTCVSD=m -CONFIG_SND_SOC_SOF_TOPLEVEL=y -CONFIG_SND_SOC_SOF_PCI_DEV=m -CONFIG_SND_SOC_SOF_PCI=m -CONFIG_SND_SOC_SOF_ACPI=m -CONFIG_SND_SOC_SOF_ACPI_DEV=m -CONFIG_SND_SOC_SOF_DEBUG_PROBES=m -CONFIG_SND_SOC_SOF_CLIENT=m -# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set -CONFIG_SND_SOC_SOF=m -CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y -CONFIG_SND_SOC_SOF_IPC3=y -CONFIG_SND_SOC_SOF_INTEL_IPC4=y -CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m -CONFIG_SND_SOC_SOF_AMD_COMMON=m -CONFIG_SND_SOC_SOF_AMD_RENOIR=m -CONFIG_SND_SOC_SOF_AMD_REMBRANDT=m -CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y -CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m -CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m -CONFIG_SND_SOC_SOF_INTEL_COMMON=m -CONFIG_SND_SOC_SOF_BAYTRAIL=m -# CONFIG_SND_SOC_SOF_BROADWELL is not set -CONFIG_SND_SOC_SOF_MERRIFIELD=m -# CONFIG_SND_SOC_SOF_SKYLAKE is not set -# CONFIG_SND_SOC_SOF_KABYLAKE is not set -CONFIG_SND_SOC_SOF_INTEL_APL=m -CONFIG_SND_SOC_SOF_APOLLOLAKE=m -CONFIG_SND_SOC_SOF_GEMINILAKE=m -CONFIG_SND_SOC_SOF_INTEL_CNL=m -CONFIG_SND_SOC_SOF_CANNONLAKE=m -CONFIG_SND_SOC_SOF_COFFEELAKE=m -CONFIG_SND_SOC_SOF_COMETLAKE=m -CONFIG_SND_SOC_SOF_INTEL_ICL=m -CONFIG_SND_SOC_SOF_ICELAKE=m -CONFIG_SND_SOC_SOF_JASPERLAKE=m -CONFIG_SND_SOC_SOF_INTEL_TGL=m -CONFIG_SND_SOC_SOF_TIGERLAKE=m -CONFIG_SND_SOC_SOF_ELKHARTLAKE=m -CONFIG_SND_SOC_SOF_ALDERLAKE=m -CONFIG_SND_SOC_SOF_INTEL_MTL=m -CONFIG_SND_SOC_SOF_METEORLAKE=m -CONFIG_SND_SOC_SOF_HDA_COMMON=m -CONFIG_SND_SOC_SOF_HDA_MLINK=m -CONFIG_SND_SOC_SOF_HDA_LINK=y -CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y -CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m -CONFIG_SND_SOC_SOF_HDA=m -CONFIG_SND_SOC_SOF_HDA_PROBES=m -CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m -CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m -CONFIG_SND_SOC_SOF_XTENSA=m - -# -# STMicroelectronics STM32 SOC audio support -# -# end of STMicroelectronics STM32 SOC audio support - -CONFIG_SND_SOC_XILINX_I2S=m -CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m -CONFIG_SND_SOC_XILINX_SPDIF=m -CONFIG_SND_SOC_XTFPGA_I2S=m -CONFIG_SND_SOC_I2C_AND_SPI=y - -# -# CODEC drivers -# -CONFIG_SND_SOC_ARIZONA=m -CONFIG_SND_SOC_WM_ADSP=m -CONFIG_SND_SOC_AC97_CODEC=m -CONFIG_SND_SOC_ADAU_UTILS=m -CONFIG_SND_SOC_ADAU1372=m -CONFIG_SND_SOC_ADAU1372_I2C=m -CONFIG_SND_SOC_ADAU1372_SPI=m -CONFIG_SND_SOC_ADAU1701=m -CONFIG_SND_SOC_ADAU17X1=m -CONFIG_SND_SOC_ADAU1761=m -CONFIG_SND_SOC_ADAU1761_I2C=m -CONFIG_SND_SOC_ADAU1761_SPI=m -CONFIG_SND_SOC_ADAU7002=m -CONFIG_SND_SOC_ADAU7118=m -CONFIG_SND_SOC_ADAU7118_HW=m -CONFIG_SND_SOC_ADAU7118_I2C=m -CONFIG_SND_SOC_AK4104=m -CONFIG_SND_SOC_AK4118=m -CONFIG_SND_SOC_AK4375=m -CONFIG_SND_SOC_AK4458=m -CONFIG_SND_SOC_AK4554=m -CONFIG_SND_SOC_AK4613=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_AK5386=m -CONFIG_SND_SOC_AK5558=m -CONFIG_SND_SOC_ALC5623=m -CONFIG_SND_SOC_AW8738=m -CONFIG_SND_SOC_AW88395_LIB=m -CONFIG_SND_SOC_AW88395=m -CONFIG_SND_SOC_BD28623=m -# CONFIG_SND_SOC_BT_SCO is not set -# CONFIG_SND_SOC_CHV3_CODEC is not set -CONFIG_SND_SOC_CROS_EC_CODEC=m -CONFIG_SND_SOC_CS35L32=m -CONFIG_SND_SOC_CS35L33=m -CONFIG_SND_SOC_CS35L34=m -CONFIG_SND_SOC_CS35L35=m -CONFIG_SND_SOC_CS35L36=m -CONFIG_SND_SOC_CS35L41_LIB=m -CONFIG_SND_SOC_CS35L41=m -CONFIG_SND_SOC_CS35L41_SPI=m -CONFIG_SND_SOC_CS35L41_I2C=m -CONFIG_SND_SOC_CS35L45=m -CONFIG_SND_SOC_CS35L45_SPI=m -CONFIG_SND_SOC_CS35L45_I2C=m -# CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SPI is not set -# CONFIG_SND_SOC_CS35L56_SDW is not set -CONFIG_SND_SOC_CS42L42_CORE=m -CONFIG_SND_SOC_CS42L42=m -CONFIG_SND_SOC_CS42L42_SDW=m -CONFIG_SND_SOC_CS42L51=m -CONFIG_SND_SOC_CS42L51_I2C=m -CONFIG_SND_SOC_CS42L52=m -CONFIG_SND_SOC_CS42L56=m -CONFIG_SND_SOC_CS42L73=m -CONFIG_SND_SOC_CS42L83=m -CONFIG_SND_SOC_CS4234=m -CONFIG_SND_SOC_CS4265=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_CS4271=m -CONFIG_SND_SOC_CS4271_I2C=m -CONFIG_SND_SOC_CS4271_SPI=m -CONFIG_SND_SOC_CS42XX8=m -CONFIG_SND_SOC_CS42XX8_I2C=m -CONFIG_SND_SOC_CS43130=m -CONFIG_SND_SOC_CS4341=m -CONFIG_SND_SOC_CS4349=m -CONFIG_SND_SOC_CS53L30=m -CONFIG_SND_SOC_CX2072X=m -CONFIG_SND_SOC_DA7213=m -CONFIG_SND_SOC_DA7219=m -CONFIG_SND_SOC_DMIC=m -CONFIG_SND_SOC_HDMI_CODEC=m -CONFIG_SND_SOC_ES7134=m -CONFIG_SND_SOC_ES7241=m -CONFIG_SND_SOC_ES8316=m -CONFIG_SND_SOC_ES8326=m -CONFIG_SND_SOC_ES8328=m -CONFIG_SND_SOC_ES8328_I2C=m -CONFIG_SND_SOC_ES8328_SPI=m -CONFIG_SND_SOC_GTM601=m -CONFIG_SND_SOC_HDAC_HDMI=m -CONFIG_SND_SOC_HDAC_HDA=m -CONFIG_SND_SOC_HDA=m -CONFIG_SND_SOC_ICS43432=m -CONFIG_SND_SOC_IDT821034=m -CONFIG_SND_SOC_INNO_RK3036=m -CONFIG_SND_SOC_MAX98088=m -CONFIG_SND_SOC_MAX98090=m -CONFIG_SND_SOC_MAX98357A=m -CONFIG_SND_SOC_MAX98504=m -CONFIG_SND_SOC_MAX9867=m -CONFIG_SND_SOC_MAX98927=m -CONFIG_SND_SOC_MAX98520=m -CONFIG_SND_SOC_MAX98363=m -CONFIG_SND_SOC_MAX98373=m -CONFIG_SND_SOC_MAX98373_I2C=m -CONFIG_SND_SOC_MAX98373_SDW=m -# CONFIG_SND_SOC_MAX98388 is not set -CONFIG_SND_SOC_MAX98390=m -CONFIG_SND_SOC_MAX98396=m -CONFIG_SND_SOC_MAX9860=m -# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set -CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m -CONFIG_SND_SOC_PCM1681=m -CONFIG_SND_SOC_PCM1789=m -CONFIG_SND_SOC_PCM1789_I2C=m -CONFIG_SND_SOC_PCM179X=m -CONFIG_SND_SOC_PCM179X_I2C=m -CONFIG_SND_SOC_PCM179X_SPI=m -CONFIG_SND_SOC_PCM186X=m -CONFIG_SND_SOC_PCM186X_I2C=m -CONFIG_SND_SOC_PCM186X_SPI=m -CONFIG_SND_SOC_PCM3060=m -CONFIG_SND_SOC_PCM3060_I2C=m -CONFIG_SND_SOC_PCM3060_SPI=m -CONFIG_SND_SOC_PCM3168A=m -CONFIG_SND_SOC_PCM3168A_I2C=m -CONFIG_SND_SOC_PCM3168A_SPI=m -CONFIG_SND_SOC_PCM5102A=m -CONFIG_SND_SOC_PCM512x=m -CONFIG_SND_SOC_PCM512x_I2C=m -CONFIG_SND_SOC_PCM512x_SPI=m -CONFIG_SND_SOC_PEB2466=m -CONFIG_SND_SOC_RK3328=m -CONFIG_SND_SOC_RL6231=m -CONFIG_SND_SOC_RL6347A=m -CONFIG_SND_SOC_RT274=m -CONFIG_SND_SOC_RT286=m -CONFIG_SND_SOC_RT298=m -CONFIG_SND_SOC_RT1011=m -CONFIG_SND_SOC_RT1015=m -CONFIG_SND_SOC_RT1015P=m -CONFIG_SND_SOC_RT1019=m -CONFIG_SND_SOC_RT1308=m -CONFIG_SND_SOC_RT1308_SDW=m -CONFIG_SND_SOC_RT1316_SDW=m -CONFIG_SND_SOC_RT1318_SDW=m -CONFIG_SND_SOC_RT5514=m -CONFIG_SND_SOC_RT5514_SPI=m -CONFIG_SND_SOC_RT5616=m -CONFIG_SND_SOC_RT5631=m -CONFIG_SND_SOC_RT5640=m -CONFIG_SND_SOC_RT5645=m -CONFIG_SND_SOC_RT5651=m -CONFIG_SND_SOC_RT5659=m -CONFIG_SND_SOC_RT5660=m -CONFIG_SND_SOC_RT5663=m -CONFIG_SND_SOC_RT5670=m -CONFIG_SND_SOC_RT5677=m -CONFIG_SND_SOC_RT5677_SPI=m -CONFIG_SND_SOC_RT5682=m -CONFIG_SND_SOC_RT5682_I2C=m -CONFIG_SND_SOC_RT5682_SDW=m -CONFIG_SND_SOC_RT5682S=m -CONFIG_SND_SOC_RT700=m -CONFIG_SND_SOC_RT700_SDW=m -CONFIG_SND_SOC_RT711=m -CONFIG_SND_SOC_RT711_SDW=m -CONFIG_SND_SOC_RT711_SDCA_SDW=m -CONFIG_SND_SOC_RT712_SDCA_SDW=m -CONFIG_SND_SOC_RT712_SDCA_DMIC_SDW=m -# CONFIG_SND_SOC_RT722_SDCA_SDW is not set -CONFIG_SND_SOC_RT715=m -CONFIG_SND_SOC_RT715_SDW=m -CONFIG_SND_SOC_RT715_SDCA_SDW=m -CONFIG_SND_SOC_RT9120=m -# CONFIG_SND_SOC_SDW_MOCKUP is not set -CONFIG_SND_SOC_SGTL5000=m -CONFIG_SND_SOC_SI476X=m -CONFIG_SND_SOC_SIGMADSP=m -CONFIG_SND_SOC_SIGMADSP_I2C=m -CONFIG_SND_SOC_SIGMADSP_REGMAP=m -CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m -CONFIG_SND_SOC_SIMPLE_MUX=m -CONFIG_SND_SOC_SMA1303=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SRC4XXX_I2C=m -CONFIG_SND_SOC_SRC4XXX=m -CONFIG_SND_SOC_SSM2305=m -CONFIG_SND_SOC_SSM2518=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_SSM2602_SPI=m -CONFIG_SND_SOC_SSM2602_I2C=m -CONFIG_SND_SOC_SSM4567=m -CONFIG_SND_SOC_STA32X=m -CONFIG_SND_SOC_STA350=m -CONFIG_SND_SOC_STI_SAS=m -CONFIG_SND_SOC_TAS2552=m -CONFIG_SND_SOC_TAS2562=m -CONFIG_SND_SOC_TAS2764=m -CONFIG_SND_SOC_TAS2770=m -CONFIG_SND_SOC_TAS2780=m -# CONFIG_SND_SOC_TAS2781_I2C is not set -CONFIG_SND_SOC_TAS5086=m -CONFIG_SND_SOC_TAS571X=m -CONFIG_SND_SOC_TAS5720=m -CONFIG_SND_SOC_TAS5805M=m -CONFIG_SND_SOC_TAS6424=m -CONFIG_SND_SOC_TDA7419=m -CONFIG_SND_SOC_TFA9879=m -CONFIG_SND_SOC_TFA989X=m -CONFIG_SND_SOC_TLV320ADC3XXX=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC23_I2C=m -CONFIG_SND_SOC_TLV320AIC23_SPI=m -CONFIG_SND_SOC_TLV320AIC31XX=m -CONFIG_SND_SOC_TLV320AIC32X4=m -CONFIG_SND_SOC_TLV320AIC32X4_I2C=m -CONFIG_SND_SOC_TLV320AIC32X4_SPI=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_TLV320AIC3X_I2C=m -CONFIG_SND_SOC_TLV320AIC3X_SPI=m -CONFIG_SND_SOC_TLV320ADCX140=m -CONFIG_SND_SOC_TS3A227E=m -CONFIG_SND_SOC_TSCS42XX=m -CONFIG_SND_SOC_TSCS454=m -CONFIG_SND_SOC_UDA1334=m -CONFIG_SND_SOC_WCD9335=m -CONFIG_SND_SOC_WCD_MBHC=m -CONFIG_SND_SOC_WCD934X=m -CONFIG_SND_SOC_WCD938X=m -CONFIG_SND_SOC_WCD938X_SDW=m -CONFIG_SND_SOC_WM5102=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8524=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8711=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8731_I2C=m -CONFIG_SND_SOC_WM8731_SPI=m -CONFIG_SND_SOC_WM8737=m -CONFIG_SND_SOC_WM8741=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8770=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8782=m -CONFIG_SND_SOC_WM8804=m -CONFIG_SND_SOC_WM8804_I2C=m -CONFIG_SND_SOC_WM8804_SPI=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8904=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8962=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8978=m -CONFIG_SND_SOC_WM8985=m -CONFIG_SND_SOC_WSA881X=m -CONFIG_SND_SOC_WSA883X=m -# CONFIG_SND_SOC_WSA884X is not set -CONFIG_SND_SOC_ZL38060=m -CONFIG_SND_SOC_MAX9759=m -CONFIG_SND_SOC_MT6351=m -CONFIG_SND_SOC_MT6358=m -CONFIG_SND_SOC_MT6660=m -CONFIG_SND_SOC_NAU8315=m -CONFIG_SND_SOC_NAU8540=m -CONFIG_SND_SOC_NAU8810=m -CONFIG_SND_SOC_NAU8821=m -CONFIG_SND_SOC_NAU8822=m -CONFIG_SND_SOC_NAU8824=m -CONFIG_SND_SOC_NAU8825=m -CONFIG_SND_SOC_TPA6130A2=m -CONFIG_SND_SOC_LPASS_MACRO_COMMON=m -CONFIG_SND_SOC_LPASS_WSA_MACRO=m -CONFIG_SND_SOC_LPASS_VA_MACRO=m -CONFIG_SND_SOC_LPASS_RX_MACRO=m -CONFIG_SND_SOC_LPASS_TX_MACRO=m -# end of CODEC drivers - -CONFIG_SND_SIMPLE_CARD_UTILS=m -CONFIG_SND_SIMPLE_CARD=m -CONFIG_SND_X86=y -CONFIG_HDMI_LPE_AUDIO=m -CONFIG_SND_SYNTH_EMUX=m -CONFIG_SND_VIRTIO=m -CONFIG_AC97_BUS=y -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -CONFIG_HID_BATTERY_STRENGTH=y -CONFIG_HIDRAW=y -CONFIG_UHID=y -CONFIG_HID_GENERIC=y - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=m -CONFIG_HID_ACCUTOUCH=m -CONFIG_HID_ACRUX=m -CONFIG_HID_ACRUX_FF=y -CONFIG_HID_APPLE=m -CONFIG_HID_APPLEIR=m -CONFIG_HID_ASUS=m -CONFIG_HID_AUREAL=m -CONFIG_HID_BELKIN=m -CONFIG_HID_BETOP_FF=m -CONFIG_HID_BIGBEN_FF=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_CORSAIR=m -CONFIG_HID_COUGAR=m -CONFIG_HID_MACALLY=m -CONFIG_HID_PRODIKEYS=m -CONFIG_HID_CMEDIA=m -CONFIG_HID_CP2112=m -CONFIG_HID_CREATIVE_SB0540=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y -CONFIG_HID_EMS_FF=m -CONFIG_HID_ELAN=m -CONFIG_HID_ELECOM=m -CONFIG_HID_ELO=m -CONFIG_HID_EVISION=m -CONFIG_HID_EZKEY=m -CONFIG_HID_FT260=m -CONFIG_HID_GEMBIRD=m -CONFIG_HID_GFRM=m -CONFIG_HID_GLORIOUS=m -CONFIG_HID_HOLTEK=m -CONFIG_HOLTEK_FF=y -CONFIG_HID_VIVALDI_COMMON=m -CONFIG_HID_GOOGLE_HAMMER=m -CONFIG_HID_VIVALDI=m -CONFIG_HID_GT683R=m -CONFIG_HID_KEYTOUCH=m -CONFIG_HID_KYE=m -CONFIG_HID_UCLOGIC=m -CONFIG_HID_WALTOP=m -CONFIG_HID_VIEWSONIC=m -CONFIG_HID_VRC2=m -CONFIG_HID_XIAOMI=m -CONFIG_HID_GYRATION=m -CONFIG_HID_ICADE=m -CONFIG_HID_ITE=m -CONFIG_HID_JABRA=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_LCPOWER=m -CONFIG_HID_LED=m -CONFIG_HID_LENOVO=m -CONFIG_HID_LETSKETCH=m -CONFIG_HID_LOGITECH=m -CONFIG_HID_LOGITECH_DJ=m -CONFIG_HID_LOGITECH_HIDPP=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_LOGIG940_FF=y -CONFIG_LOGIWHEELS_FF=y -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MALTRON=m -CONFIG_HID_MAYFLASH=m -CONFIG_HID_MEGAWORLD_FF=m -CONFIG_HID_REDRAGON=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NINTENDO=m -CONFIG_NINTENDO_FF=y -CONFIG_HID_NTI=m -CONFIG_HID_NTRIG=m -# CONFIG_HID_NVIDIA_SHIELD is not set -CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y -CONFIG_HID_PENMOUNT=m -CONFIG_HID_PETALYNX=m -CONFIG_HID_PICOLCD=m -CONFIG_HID_PICOLCD_FB=y -CONFIG_HID_PICOLCD_BACKLIGHT=y -CONFIG_HID_PICOLCD_LCD=y -CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PICOLCD_CIR=y -CONFIG_HID_PLANTRONICS=m -CONFIG_HID_PLAYSTATION=m -CONFIG_PLAYSTATION_FF=y -CONFIG_HID_PXRC=m -CONFIG_HID_RAZER=m -CONFIG_HID_PRIMAX=m -CONFIG_HID_RETRODE=m -CONFIG_HID_ROCCAT=m -CONFIG_HID_SAITEK=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SEMITEK=m -CONFIG_HID_SIGMAMICRO=m -CONFIG_HID_SONY=m -CONFIG_SONY_FF=y -CONFIG_HID_SPEEDLINK=m -CONFIG_HID_STEAM=m -CONFIG_STEAM_FF=y -CONFIG_HID_STEELSERIES=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_RMI=m -CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y -CONFIG_HID_HYPERV_MOUSE=m -CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_HID_TIVO=m -CONFIG_HID_TOPSEED=m -CONFIG_HID_TOPRE=m -CONFIG_HID_THINGM=m -CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y -CONFIG_HID_UDRAW_PS3=m -CONFIG_HID_U2FZERO=m -CONFIG_HID_WACOM=m -CONFIG_HID_WIIMOTE=m -CONFIG_HID_XINMO=m -CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y -CONFIG_HID_ZYDACRON=m -CONFIG_HID_SENSOR_HUB=m -CONFIG_HID_SENSOR_CUSTOM_SENSOR=m -CONFIG_HID_ALPS=m -CONFIG_HID_MCP2221=m -# end of Special HID drivers - -# -# HID-BPF support -# -CONFIG_HID_BPF=y -# end of HID-BPF support - -# -# USB HID support -# -CONFIG_USB_HID=y -CONFIG_HID_PID=y -CONFIG_USB_HIDDEV=y -# end of USB HID support - -CONFIG_I2C_HID=y -CONFIG_I2C_HID_ACPI=m -# CONFIG_I2C_HID_OF is not set -CONFIG_I2C_HID_CORE=m - -# -# Intel ISH HID support -# -CONFIG_INTEL_ISH_HID=m -CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m -# end of Intel ISH HID support - -# -# AMD SFH HID Support -# -CONFIG_AMD_SFH_HID=m -# end of AMD SFH HID Support - -# -# Surface System Aggregator Module HID support -# -CONFIG_SURFACE_HID=m -CONFIG_SURFACE_KBD=m -# end of Surface System Aggregator Module HID support - -CONFIG_SURFACE_HID_CORE=m -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_LED_TRIG=y -CONFIG_USB_ULPI_BUS=m -CONFIG_USB_CONN_GPIO=m -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB=y -CONFIG_USB_PCI=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEFAULT_PERSIST=y -# CONFIG_USB_FEW_INIT_RETRIES is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_PRODUCTLIST is not set -# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set -CONFIG_USB_LEDS_TRIGGER_USBPORT=m -CONFIG_USB_AUTOSUSPEND_DELAY=2 -CONFIG_USB_MON=m - -# -# USB Host Controller Drivers -# -CONFIG_USB_C67X00_HCD=m -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_DBGCAP is not set -CONFIG_USB_XHCI_PCI=y -CONFIG_USB_XHCI_PCI_RENESAS=y -CONFIG_USB_XHCI_PLATFORM=m -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_PCI=y -CONFIG_USB_EHCI_FSL=m -CONFIG_USB_EHCI_HCD_PLATFORM=m -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m -CONFIG_USB_MAX3421_HCD=m -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_PCI=y -# CONFIG_USB_OHCI_HCD_SSB is not set -CONFIG_USB_OHCI_HCD_PLATFORM=m -CONFIG_USB_UHCI_HCD=y -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_HCD_ISO is not set -CONFIG_USB_SL811_CS=m -CONFIG_USB_R8A66597_HCD=m -CONFIG_USB_HCD_BCMA=m -CONFIG_USB_HCD_SSB=m -# CONFIG_USB_HCD_TEST_MODE is not set - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m -CONFIG_USB_TMC=m - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_REALTEK=m -CONFIG_REALTEK_AUTOPM=y -CONFIG_USB_STORAGE_DATAFAB=m -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -CONFIG_USB_STORAGE_ENE_UB6250=m -CONFIG_USB_UAS=y - -# -# USB Imaging devices -# -CONFIG_USB_MDC800=m -CONFIG_USB_MICROTEK=m -CONFIG_USBIP_CORE=m -CONFIG_USBIP_VHCI_HCD=m -CONFIG_USBIP_VHCI_HC_PORTS=8 -CONFIG_USBIP_VHCI_NR_HCS=1 -CONFIG_USBIP_HOST=m -CONFIG_USBIP_VUDC=m -# CONFIG_USBIP_DEBUG is not set - -# -# USB dual-mode controller drivers -# -CONFIG_USB_CDNS_SUPPORT=m -CONFIG_USB_CDNS_HOST=y -CONFIG_USB_CDNS3=m -CONFIG_USB_CDNS3_GADGET=y -CONFIG_USB_CDNS3_HOST=y -CONFIG_USB_CDNS3_PCI_WRAP=m -CONFIG_USB_CDNSP_PCI=m -CONFIG_USB_CDNSP_GADGET=y -CONFIG_USB_CDNSP_HOST=y -CONFIG_USB_MUSB_HDRC=m -# CONFIG_USB_MUSB_HOST is not set -# CONFIG_USB_MUSB_GADGET is not set -CONFIG_USB_MUSB_DUAL_ROLE=y - -# -# Platform Glue Layer -# - -# -# MUSB DMA mode -# -# CONFIG_MUSB_PIO_ONLY is not set -CONFIG_USB_DWC3=m -CONFIG_USB_DWC3_ULPI=y -# CONFIG_USB_DWC3_HOST is not set -# CONFIG_USB_DWC3_GADGET is not set -CONFIG_USB_DWC3_DUAL_ROLE=y - -# -# Platform Glue Driver Support -# -CONFIG_USB_DWC3_PCI=m -CONFIG_USB_DWC3_HAPS=m -CONFIG_USB_DWC2=m -# CONFIG_USB_DWC2_HOST is not set - -# -# Gadget/Dual-role mode requires USB Gadget support to be enabled -# -# CONFIG_USB_DWC2_PERIPHERAL is not set -CONFIG_USB_DWC2_DUAL_ROLE=y -CONFIG_USB_DWC2_PCI=m -# CONFIG_USB_DWC2_DEBUG is not set -# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set -CONFIG_USB_CHIPIDEA=m -CONFIG_USB_CHIPIDEA_UDC=y -CONFIG_USB_CHIPIDEA_HOST=y -CONFIG_USB_CHIPIDEA_PCI=m -CONFIG_USB_CHIPIDEA_MSM=m -CONFIG_USB_CHIPIDEA_GENERIC=m -CONFIG_USB_ISP1760=m -CONFIG_USB_ISP1760_HCD=y -CONFIG_USB_ISP1761_UDC=y -# CONFIG_USB_ISP1760_HOST_ROLE is not set -# CONFIG_USB_ISP1760_GADGET_ROLE is not set -CONFIG_USB_ISP1760_DUAL_ROLE=y - -# -# USB port drivers -# -CONFIG_USB_SERIAL=m -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_SIMPLE=m -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_F81232=m -CONFIG_USB_SERIAL_F8153X=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -CONFIG_USB_SERIAL_KEYSPAN_PDA=m -CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KLSI=m -CONFIG_USB_SERIAL_KOBIL_SCT=m -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_METRO=m -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7715_PARPORT=y -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_MXUPORT=m -CONFIG_USB_SERIAL_NAVMAN=m -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_QCAUX=m -CONFIG_USB_SERIAL_QUALCOMM=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -CONFIG_USB_SERIAL_CYBERJACK=m -CONFIG_USB_SERIAL_WWAN=m -CONFIG_USB_SERIAL_OPTION=m -CONFIG_USB_SERIAL_OMNINET=m -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_XSENS_MT=m -CONFIG_USB_SERIAL_WISHBONE=m -CONFIG_USB_SERIAL_SSU100=m -CONFIG_USB_SERIAL_QT2=m -CONFIG_USB_SERIAL_UPD78F0730=m -CONFIG_USB_SERIAL_XR=m -CONFIG_USB_SERIAL_DEBUG=m - -# -# USB Miscellaneous drivers -# -CONFIG_USB_USS720=m -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -CONFIG_USB_ADUTUX=m -CONFIG_USB_SEVSEG=m -CONFIG_USB_LEGOTOWER=m -CONFIG_USB_LCD=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -CONFIG_USB_IDMOUSE=m -CONFIG_USB_APPLEDISPLAY=m -CONFIG_APPLE_MFI_FASTCHARGE=m -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_LD=m -CONFIG_USB_TRANCEVIBRATOR=m -CONFIG_USB_IOWARRIOR=m -CONFIG_USB_TEST=m -CONFIG_USB_EHSET_TEST_FIXTURE=m -CONFIG_USB_ISIGHTFW=m -CONFIG_USB_YUREX=m -CONFIG_USB_EZUSB_FX2=m -CONFIG_USB_HUB_USB251XB=m -CONFIG_USB_HSIC_USB3503=m -CONFIG_USB_HSIC_USB4604=m -CONFIG_USB_LINK_LAYER_TEST=m -CONFIG_USB_CHAOSKEY=m -CONFIG_USB_ATM=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_CXACRU=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_XUSBATM=m - -# -# USB Physical Layer drivers -# -CONFIG_USB_PHY=y -CONFIG_NOP_USB_XCEIV=m -CONFIG_USB_GPIO_VBUS=m -CONFIG_TAHVO_USB=m -# CONFIG_TAHVO_USB_HOST_BY_DEFAULT is not set -CONFIG_USB_ISP1301=m -# end of USB Physical Layer drivers - -CONFIG_USB_GADGET=m -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DEBUG_FS is not set -CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -CONFIG_U_SERIAL_CONSOLE=y - -# -# USB Peripheral Controller -# -CONFIG_USB_GR_UDC=m -CONFIG_USB_R8A66597=m -CONFIG_USB_PXA27X=m -CONFIG_USB_MV_UDC=m -CONFIG_USB_MV_U3D=m -CONFIG_USB_SNP_CORE=m -CONFIG_USB_M66592=m -CONFIG_USB_BDC_UDC=m -CONFIG_USB_AMD5536UDC=m -CONFIG_USB_NET2272=m -# CONFIG_USB_NET2272_DMA is not set -CONFIG_USB_NET2280=m -CONFIG_USB_GOKU=m -CONFIG_USB_EG20T=m -CONFIG_USB_MAX3420_UDC=m -# CONFIG_USB_CDNS2_UDC is not set -CONFIG_USB_DUMMY_HCD=m -# end of USB Peripheral Controller - -CONFIG_USB_LIBCOMPOSITE=m -CONFIG_USB_F_ACM=m -CONFIG_USB_F_SS_LB=m -CONFIG_USB_U_SERIAL=m -CONFIG_USB_U_ETHER=m -CONFIG_USB_U_AUDIO=m -CONFIG_USB_F_SERIAL=m -CONFIG_USB_F_OBEX=m -CONFIG_USB_F_NCM=m -CONFIG_USB_F_ECM=m -CONFIG_USB_F_PHONET=m -CONFIG_USB_F_EEM=m -CONFIG_USB_F_SUBSET=m -CONFIG_USB_F_RNDIS=m -CONFIG_USB_F_MASS_STORAGE=m -CONFIG_USB_F_FS=m -CONFIG_USB_F_UAC1=m -CONFIG_USB_F_UAC1_LEGACY=m -CONFIG_USB_F_UAC2=m -CONFIG_USB_F_UVC=m -CONFIG_USB_F_MIDI=m -CONFIG_USB_F_HID=m -CONFIG_USB_F_PRINTER=m -CONFIG_USB_F_TCM=m -CONFIG_USB_CONFIGFS=m -CONFIG_USB_CONFIGFS_SERIAL=y -CONFIG_USB_CONFIGFS_ACM=y -CONFIG_USB_CONFIGFS_OBEX=y -CONFIG_USB_CONFIGFS_NCM=y -CONFIG_USB_CONFIGFS_ECM=y -CONFIG_USB_CONFIGFS_ECM_SUBSET=y -CONFIG_USB_CONFIGFS_RNDIS=y -CONFIG_USB_CONFIGFS_EEM=y -CONFIG_USB_CONFIGFS_PHONET=y -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -CONFIG_USB_CONFIGFS_F_LB_SS=y -CONFIG_USB_CONFIGFS_F_FS=y -CONFIG_USB_CONFIGFS_F_UAC1=y -CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y -CONFIG_USB_CONFIGFS_F_UAC2=y -CONFIG_USB_CONFIGFS_F_MIDI=y -CONFIG_USB_CONFIGFS_F_HID=y -CONFIG_USB_CONFIGFS_F_UVC=y -CONFIG_USB_CONFIGFS_F_PRINTER=y -CONFIG_USB_CONFIGFS_F_TCM=y - -# -# USB Gadget precomposed configurations -# -CONFIG_USB_ZERO=m -CONFIG_USB_AUDIO=m -# CONFIG_GADGET_UAC1 is not set -CONFIG_USB_ETH=m -CONFIG_USB_ETH_RNDIS=y -CONFIG_USB_ETH_EEM=y -CONFIG_USB_G_NCM=m -CONFIG_USB_GADGETFS=m -CONFIG_USB_FUNCTIONFS=m -CONFIG_USB_FUNCTIONFS_ETH=y -CONFIG_USB_FUNCTIONFS_RNDIS=y -CONFIG_USB_FUNCTIONFS_GENERIC=y -CONFIG_USB_MASS_STORAGE=m -CONFIG_USB_GADGET_TARGET=m -CONFIG_USB_G_SERIAL=m -CONFIG_USB_MIDI_GADGET=m -CONFIG_USB_G_PRINTER=m -CONFIG_USB_CDC_COMPOSITE=m -CONFIG_USB_G_NOKIA=m -CONFIG_USB_G_ACM_MS=m -CONFIG_USB_G_MULTI=m -CONFIG_USB_G_MULTI_RNDIS=y -CONFIG_USB_G_MULTI_CDC=y -CONFIG_USB_G_HID=m -CONFIG_USB_G_DBGP=m -# CONFIG_USB_G_DBGP_PRINTK is not set -CONFIG_USB_G_DBGP_SERIAL=y -CONFIG_USB_G_WEBCAM=m -CONFIG_USB_RAW_GADGET=m -# end of USB Gadget precomposed configurations - -CONFIG_TYPEC=m -CONFIG_TYPEC_TCPM=m -CONFIG_TYPEC_TCPCI=m -CONFIG_TYPEC_RT1711H=m -CONFIG_TYPEC_MT6360=m -CONFIG_TYPEC_TCPCI_MT6370=m -CONFIG_TYPEC_TCPCI_MAXIM=m -CONFIG_TYPEC_FUSB302=m -CONFIG_TYPEC_WCOVE=m -CONFIG_TYPEC_UCSI=m -CONFIG_UCSI_CCG=m -CONFIG_UCSI_ACPI=m -CONFIG_UCSI_STM32G0=m -CONFIG_TYPEC_TPS6598X=m -CONFIG_TYPEC_ANX7411=m -CONFIG_TYPEC_RT1719=m -CONFIG_TYPEC_HD3SS3220=m -CONFIG_TYPEC_STUSB160X=m -CONFIG_TYPEC_WUSB3801=m - -# -# USB Type-C Multiplexer/DeMultiplexer Switch support -# -CONFIG_TYPEC_MUX_FSA4480=m -CONFIG_TYPEC_MUX_GPIO_SBU=m -CONFIG_TYPEC_MUX_PI3USB30532=m -CONFIG_TYPEC_MUX_INTEL_PMC=m -# CONFIG_TYPEC_MUX_NB7VPQ904M is not set -# end of USB Type-C Multiplexer/DeMultiplexer Switch support - -# -# USB Type-C Alternate Mode drivers -# -CONFIG_TYPEC_DP_ALTMODE=m -CONFIG_TYPEC_NVIDIA_ALTMODE=m -# end of USB Type-C Alternate Mode drivers - -CONFIG_USB_ROLE_SWITCH=m -CONFIG_USB_ROLES_INTEL_XHCI=m -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m -CONFIG_MMC_CRYPTO=y - -# -# MMC/SD/SDIO Host Controller Drivers -# -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_PCI=y -CONFIG_MMC_RICOH_MMC=y -CONFIG_MMC_SDHCI_ACPI=y -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MMC_SDHCI_F_SDH30=m -CONFIG_MMC_WBSD=m -CONFIG_MMC_ALCOR=m -CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SPI=m -CONFIG_MMC_SDRICOH_CS=m -CONFIG_MMC_CB710=m -CONFIG_MMC_VIA_SDMMC=m -CONFIG_MMC_VUB300=m -CONFIG_MMC_USHC=m -CONFIG_MMC_USDHI6ROL0=m -CONFIG_MMC_REALTEK_PCI=y -CONFIG_MMC_REALTEK_USB=y -CONFIG_MMC_CQHCI=y -CONFIG_MMC_HSQ=y -CONFIG_MMC_TOSHIBA_PCI=y -CONFIG_MMC_MTK=m -CONFIG_MMC_SDHCI_XENON=m -CONFIG_SCSI_UFSHCD=m -CONFIG_SCSI_UFS_BSG=y -CONFIG_SCSI_UFS_CRYPTO=y -CONFIG_SCSI_UFS_HPB=y -CONFIG_SCSI_UFS_HWMON=y -CONFIG_SCSI_UFSHCD_PCI=m -# CONFIG_SCSI_UFS_DWC_TC_PCI is not set -CONFIG_SCSI_UFSHCD_PLATFORM=m -CONFIG_SCSI_UFS_CDNS_PLATFORM=m -CONFIG_MEMSTICK=m -# CONFIG_MEMSTICK_DEBUG is not set - -# -# MemoryStick drivers -# -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -CONFIG_MSPRO_BLOCK=m -CONFIG_MS_BLOCK=m - -# -# MemoryStick Host Controller Drivers -# -CONFIG_MEMSTICK_TIFM_MS=m -CONFIG_MEMSTICK_JMICRON_38X=m -CONFIG_MEMSTICK_R592=m -CONFIG_MEMSTICK_REALTEK_PCI=m -CONFIG_MEMSTICK_REALTEK_USB=m -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_CLASS_FLASH=y -CONFIG_LEDS_CLASS_MULTICOLOR=m -CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y - -# -# LED drivers -# -CONFIG_LEDS_88PM860X=m -CONFIG_LEDS_APU=m -# CONFIG_LEDS_AW200XX is not set -# CONFIG_LEDS_CHT_WCOVE is not set -CONFIG_LEDS_LM3530=m -CONFIG_LEDS_LM3532=m -CONFIG_LEDS_LM3533=m -CONFIG_LEDS_LM3642=m -CONFIG_LEDS_MT6323=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_LP3952=m -CONFIG_LEDS_LP50XX=m -CONFIG_LEDS_LP8788=m -CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_PCA955X_GPIO=y -CONFIG_LEDS_PCA963X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m -CONFIG_LEDS_DA903X=m -CONFIG_LEDS_DA9052=m -CONFIG_LEDS_DAC124S085=m -CONFIG_LEDS_PWM=m -CONFIG_LEDS_REGULATOR=m -# CONFIG_LEDS_BD2606MVV is not set -CONFIG_LEDS_BD2802=m -CONFIG_LEDS_INTEL_SS4200=m -CONFIG_LEDS_LT3593=m -CONFIG_LEDS_ADP5520=m -CONFIG_LEDS_MC13783=m -CONFIG_LEDS_TCA6507=m -CONFIG_LEDS_TLC591XX=m -CONFIG_LEDS_MAX8997=m -CONFIG_LEDS_LM355x=m -CONFIG_LEDS_MENF21BMC=m -CONFIG_LEDS_IS31FL319X=m - -# -# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) -# -CONFIG_LEDS_BLINKM=m -CONFIG_LEDS_MLXCPLD=m -CONFIG_LEDS_MLXREG=m -CONFIG_LEDS_USER=m -CONFIG_LEDS_NIC78BX=m -CONFIG_LEDS_TI_LMU_COMMON=m -CONFIG_LEDS_LM36274=m -CONFIG_LEDS_TPS6105X=m - -# -# Flash and Torch LED drivers -# -CONFIG_LEDS_AS3645A=m -CONFIG_LEDS_LM3601X=m -# CONFIG_LEDS_MT6370_FLASH is not set -CONFIG_LEDS_RT8515=m -CONFIG_LEDS_SGM3140=m - -# -# RGB LED drivers -# -CONFIG_LEDS_PWM_MULTICOLOR=m -# CONFIG_LEDS_MT6370_RGB is not set - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_ONESHOT=m -CONFIG_LEDS_TRIGGER_DISK=y -CONFIG_LEDS_TRIGGER_MTD=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_CPU=y -CONFIG_LEDS_TRIGGER_ACTIVITY=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_LEDS_TRIGGER_TRANSIENT=m -CONFIG_LEDS_TRIGGER_CAMERA=m -CONFIG_LEDS_TRIGGER_PANIC=y -CONFIG_LEDS_TRIGGER_NETDEV=m -CONFIG_LEDS_TRIGGER_PATTERN=m -CONFIG_LEDS_TRIGGER_AUDIO=m -CONFIG_LEDS_TRIGGER_TTY=m - -# -# Simple LED drivers -# -CONFIG_LEDS_SIEMENS_SIMATIC_IPC=m -CONFIG_LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE=m -CONFIG_LEDS_SIEMENS_SIMATIC_IPC_F7188X=m -CONFIG_ACCESSIBILITY=y -CONFIG_A11Y_BRAILLE_CONSOLE=y - -# -# Speakup console speech -# -CONFIG_SPEAKUP=m -CONFIG_SPEAKUP_SYNTH_ACNTSA=m -CONFIG_SPEAKUP_SYNTH_APOLLO=m -CONFIG_SPEAKUP_SYNTH_AUDPTR=m -CONFIG_SPEAKUP_SYNTH_BNS=m -CONFIG_SPEAKUP_SYNTH_DECTLK=m -CONFIG_SPEAKUP_SYNTH_DECEXT=m -CONFIG_SPEAKUP_SYNTH_LTLK=m -CONFIG_SPEAKUP_SYNTH_SOFT=m -CONFIG_SPEAKUP_SYNTH_SPKOUT=m -CONFIG_SPEAKUP_SYNTH_TXPRT=m -CONFIG_SPEAKUP_SYNTH_DUMMY=m -# end of Speakup console speech - -CONFIG_INFINIBAND=m -CONFIG_INFINIBAND_USER_MAD=m -CONFIG_INFINIBAND_USER_ACCESS=m -CONFIG_INFINIBAND_USER_MEM=y -CONFIG_INFINIBAND_ON_DEMAND_PAGING=y -CONFIG_INFINIBAND_ADDR_TRANS=y -CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y -CONFIG_INFINIBAND_VIRT_DMA=y -CONFIG_INFINIBAND_BNXT_RE=m -CONFIG_INFINIBAND_CXGB4=m -CONFIG_INFINIBAND_EFA=m -CONFIG_INFINIBAND_ERDMA=m -CONFIG_INFINIBAND_HFI1=m -# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set -# CONFIG_SDMA_VERBOSITY is not set -CONFIG_INFINIBAND_IRDMA=m -CONFIG_MANA_INFINIBAND=m -CONFIG_MLX4_INFINIBAND=m -CONFIG_MLX5_INFINIBAND=m -CONFIG_INFINIBAND_MTHCA=m -CONFIG_INFINIBAND_MTHCA_DEBUG=y -CONFIG_INFINIBAND_OCRDMA=m -CONFIG_INFINIBAND_QEDR=m -CONFIG_INFINIBAND_QIB=m -CONFIG_INFINIBAND_QIB_DCA=y -CONFIG_INFINIBAND_USNIC=m -CONFIG_INFINIBAND_VMWARE_PVRDMA=m -CONFIG_INFINIBAND_RDMAVT=m -CONFIG_RDMA_RXE=m -CONFIG_RDMA_SIW=m -CONFIG_INFINIBAND_IPOIB=m -CONFIG_INFINIBAND_IPOIB_CM=y -CONFIG_INFINIBAND_IPOIB_DEBUG=y -# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set -CONFIG_INFINIBAND_SRP=m -CONFIG_INFINIBAND_SRPT=m -CONFIG_INFINIBAND_ISER=m -CONFIG_INFINIBAND_ISERT=m -CONFIG_INFINIBAND_RTRS=m -CONFIG_INFINIBAND_RTRS_CLIENT=m -CONFIG_INFINIBAND_RTRS_SERVER=m -CONFIG_INFINIBAND_OPA_VNIC=m -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC_SUPPORT=y -CONFIG_EDAC=y -CONFIG_EDAC_LEGACY_SYSFS=y -# CONFIG_EDAC_DEBUG is not set -CONFIG_EDAC_DECODE_MCE=m -CONFIG_EDAC_GHES=y -CONFIG_EDAC_AMD64=m -CONFIG_EDAC_E752X=m -CONFIG_EDAC_I82975X=m -CONFIG_EDAC_I3000=m -CONFIG_EDAC_I3200=m -CONFIG_EDAC_IE31200=m -CONFIG_EDAC_X38=m -CONFIG_EDAC_I5400=m -CONFIG_EDAC_I7CORE=m -CONFIG_EDAC_I5100=m -CONFIG_EDAC_I7300=m -CONFIG_EDAC_SBRIDGE=m -CONFIG_EDAC_SKX=m -CONFIG_EDAC_I10NM=m -CONFIG_EDAC_PND2=m -CONFIG_EDAC_IGEN6=m -CONFIG_RTC_LIB=y -CONFIG_RTC_MC146818_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -CONFIG_RTC_SYSTOHC=y -CONFIG_RTC_SYSTOHC_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set -CONFIG_RTC_NVMEM=y - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -CONFIG_RTC_INTF_DEV_UIE_EMUL=y -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -CONFIG_RTC_DRV_88PM860X=m -CONFIG_RTC_DRV_88PM80X=m -CONFIG_RTC_DRV_ABB5ZES3=m -CONFIG_RTC_DRV_ABEOZ9=m -CONFIG_RTC_DRV_ABX80X=m -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1307_CENTURY=y -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1374_WDT=y -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_LP8788=m -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_MAX8907=m -CONFIG_RTC_DRV_MAX8925=m -CONFIG_RTC_DRV_MAX8998=m -CONFIG_RTC_DRV_MAX8997=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_ISL12022=m -CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PCF8523=m -CONFIG_RTC_DRV_PCF85063=m -CONFIG_RTC_DRV_PCF85363=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_M41T80=m -CONFIG_RTC_DRV_M41T80_WDT=y -CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_PALMAS=m -CONFIG_RTC_DRV_TPS6586X=m -CONFIG_RTC_DRV_TPS65910=m -CONFIG_RTC_DRV_RC5T583=m -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_FM3130=m -CONFIG_RTC_DRV_RX8010=m -CONFIG_RTC_DRV_RX8581=m -CONFIG_RTC_DRV_RX8025=m -CONFIG_RTC_DRV_EM3027=m -CONFIG_RTC_DRV_RV3028=m -CONFIG_RTC_DRV_RV3032=m -CONFIG_RTC_DRV_RV8803=m -CONFIG_RTC_DRV_SD3078=m - -# -# SPI RTC drivers -# -CONFIG_RTC_DRV_M41T93=m -CONFIG_RTC_DRV_M41T94=m -CONFIG_RTC_DRV_DS1302=m -CONFIG_RTC_DRV_DS1305=m -CONFIG_RTC_DRV_DS1343=m -CONFIG_RTC_DRV_DS1347=m -CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_MAX6916=m -CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RX4581=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_MAX6902=m -CONFIG_RTC_DRV_PCF2123=m -CONFIG_RTC_DRV_MCP795=m -CONFIG_RTC_I2C_AND_SPI=y - -# -# SPI and I2C RTC drivers -# -CONFIG_RTC_DRV_DS3232=m -CONFIG_RTC_DRV_DS3232_HWMON=y -CONFIG_RTC_DRV_PCF2127=m -CONFIG_RTC_DRV_RV3029C2=m -CONFIG_RTC_DRV_RV3029_HWMON=y -CONFIG_RTC_DRV_RX6110=m - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=y -CONFIG_RTC_DRV_DS1286=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1685_FAMILY=m -CONFIG_RTC_DRV_DS1685=y -# CONFIG_RTC_DRV_DS1689 is not set -# CONFIG_RTC_DRV_DS17285 is not set -# CONFIG_RTC_DRV_DS17485 is not set -# CONFIG_RTC_DRV_DS17885 is not set -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_DS2404=m -CONFIG_RTC_DRV_DA9052=m -CONFIG_RTC_DRV_DA9055=m -CONFIG_RTC_DRV_DA9063=m -CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -CONFIG_RTC_DRV_MSM6242=m -CONFIG_RTC_DRV_BQ4802=m -CONFIG_RTC_DRV_RP5C01=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m -CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_CROS_EC=m - -# -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_FTRTC010=m -CONFIG_RTC_DRV_PCAP=m -CONFIG_RTC_DRV_MC13XXX=m -CONFIG_RTC_DRV_MT6397=m - -# -# HID Sensor RTC drivers -# -CONFIG_RTC_DRV_HID_SENSOR_TIME=m -CONFIG_RTC_DRV_GOLDFISH=m -CONFIG_RTC_DRV_WILCO_EC=m -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -CONFIG_DMA_ENGINE=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DMA_ACPI=y -CONFIG_ALTERA_MSGDMA=m -CONFIG_INTEL_IDMA64=m -CONFIG_INTEL_IDXD_BUS=m -CONFIG_INTEL_IDXD=m -# CONFIG_INTEL_IDXD_COMPAT is not set -CONFIG_INTEL_IDXD_SVM=y -CONFIG_INTEL_IDXD_PERFMON=y -CONFIG_INTEL_IOATDMA=m -CONFIG_PLX_DMA=m -CONFIG_XILINX_XDMA=m -CONFIG_AMD_PTDMA=m -CONFIG_QCOM_HIDMA_MGMT=m -CONFIG_QCOM_HIDMA=m -CONFIG_DW_DMAC_CORE=y -CONFIG_DW_DMAC=m -CONFIG_DW_DMAC_PCI=y -CONFIG_DW_EDMA=m -CONFIG_DW_EDMA_PCIE=m -CONFIG_HSU_DMA=y -CONFIG_SF_PDMA=m -CONFIG_INTEL_LDMA=y - -# -# DMA Clients -# -CONFIG_ASYNC_TX_DMA=y -# CONFIG_DMATEST is not set -CONFIG_DMA_ENGINE_RAID=y - -# -# DMABUF options -# -CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set -CONFIG_UDMABUF=y -# CONFIG_DMABUF_MOVE_NOTIFY is not set -# CONFIG_DMABUF_DEBUG is not set -# CONFIG_DMABUF_SELFTESTS is not set -CONFIG_DMABUF_HEAPS=y -CONFIG_DMABUF_SYSFS_STATS=y -CONFIG_DMABUF_HEAPS_SYSTEM=y -CONFIG_DMABUF_HEAPS_CMA=y -# end of DMABUF options - -CONFIG_DCA=m -# CONFIG_AUXDISPLAY is not set -# CONFIG_PANEL is not set -CONFIG_UIO=y -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_DMEM_GENIRQ=m -CONFIG_UIO_AEC=m -CONFIG_UIO_SERCOS3=m -CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m -CONFIG_UIO_PRUSS=m -CONFIG_UIO_MF624=m -CONFIG_UIO_HV_GENERIC=m -CONFIG_UIO_DFL=m -CONFIG_VFIO=m -CONFIG_VFIO_CONTAINER=y -CONFIG_VFIO_IOMMU_TYPE1=m -# CONFIG_VFIO_NOIOMMU is not set -CONFIG_VFIO_VIRQFD=y - -# -# VFIO support for PCI devices -# -CONFIG_VFIO_PCI_CORE=m -CONFIG_VFIO_PCI_MMAP=y -CONFIG_VFIO_PCI_INTX=y -CONFIG_VFIO_PCI=m -CONFIG_VFIO_PCI_VGA=y -CONFIG_VFIO_PCI_IGD=y -CONFIG_MLX5_VFIO_PCI=m -# end of VFIO support for PCI devices - -CONFIG_IRQ_BYPASS_MANAGER=m -CONFIG_VIRT_DRIVERS=y -CONFIG_VMGENID=y -CONFIG_VBOXGUEST=m -CONFIG_NITRO_ENCLAVES=m -CONFIG_ACRN_HSM=m -CONFIG_EFI_SECRET=m -CONFIG_SEV_GUEST=m -CONFIG_TDX_GUEST_DRIVER=m -CONFIG_VIRTIO_ANCHOR=y -CONFIG_VIRTIO=y -CONFIG_VIRTIO_PCI_LIB=y -CONFIG_VIRTIO_PCI_LIB_LEGACY=y -CONFIG_VIRTIO_MENU=y -CONFIG_VIRTIO_PCI=y -CONFIG_VIRTIO_PCI_LEGACY=y -CONFIG_VIRTIO_VDPA=m -CONFIG_VIRTIO_PMEM=m -CONFIG_VIRTIO_BALLOON=y -CONFIG_VIRTIO_MEM=m -CONFIG_VIRTIO_INPUT=y -CONFIG_VIRTIO_MMIO=y -CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y -CONFIG_VIRTIO_DMA_SHARED_BUFFER=m -CONFIG_VDPA=m -CONFIG_VDPA_SIM=m -CONFIG_VDPA_SIM_NET=m -CONFIG_VDPA_SIM_BLOCK=m -CONFIG_VDPA_USER=m -CONFIG_IFCVF=m -CONFIG_MLX5_VDPA=y -CONFIG_MLX5_VDPA_NET=m -# CONFIG_MLX5_VDPA_STEERING_DEBUG is not set -CONFIG_VP_VDPA=m -CONFIG_ALIBABA_ENI_VDPA=m -CONFIG_SNET_VDPA=m -CONFIG_VHOST_IOTLB=m -CONFIG_VHOST_RING=m -CONFIG_VHOST_TASK=y -CONFIG_VHOST=m -CONFIG_VHOST_MENU=y -CONFIG_VHOST_NET=m -CONFIG_VHOST_SCSI=m -CONFIG_VHOST_VSOCK=m -CONFIG_VHOST_VDPA=m -# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set - -# -# Microsoft Hyper-V guest support -# -CONFIG_HYPERV=m -# CONFIG_HYPERV_VTL_MODE is not set -CONFIG_HYPERV_TIMER=y -CONFIG_HYPERV_UTILS=m -CONFIG_HYPERV_BALLOON=m -# end of Microsoft Hyper-V guest support - -# CONFIG_GREYBUS is not set -# CONFIG_COMEDI is not set -CONFIG_STAGING=y -CONFIG_PRISM2_USB=m -CONFIG_RTL8192U=m -CONFIG_RTLLIB=m -CONFIG_RTLLIB_CRYPTO_CCMP=m -CONFIG_RTLLIB_CRYPTO_TKIP=m -CONFIG_RTLLIB_CRYPTO_WEP=m -CONFIG_RTL8192E=m -CONFIG_RTL8723BS=m -CONFIG_R8712U=m -CONFIG_RTS5208=y -CONFIG_VT6655=m -CONFIG_VT6656=m - -# -# IIO staging drivers -# - -# -# Accelerometers -# -CONFIG_ADIS16203=m -CONFIG_ADIS16240=m -# end of Accelerometers - -# -# Analog to digital converters -# -CONFIG_AD7816=m -# end of Analog to digital converters - -# -# Analog digital bi-direction converters -# -CONFIG_ADT7316=m -CONFIG_ADT7316_SPI=m -CONFIG_ADT7316_I2C=m -# end of Analog digital bi-direction converters - -# -# Direct Digital Synthesis -# -CONFIG_AD9832=m -CONFIG_AD9834=m -# end of Direct Digital Synthesis - -# -# Network Analyzer, Impedance Converters -# -CONFIG_AD5933=m -# end of Network Analyzer, Impedance Converters - -# -# Resolver to digital converters -# -CONFIG_AD2S1210=m -# end of Resolver to digital converters -# end of IIO staging drivers - -# CONFIG_FB_SM750 is not set -CONFIG_STAGING_MEDIA=y -# CONFIG_INTEL_ATOMISP is not set -CONFIG_DVB_AV7110_IR=y -CONFIG_DVB_AV7110=m -CONFIG_DVB_AV7110_OSD=y -CONFIG_DVB_BUDGET_PATCH=m -CONFIG_DVB_SP8870=m -CONFIG_VIDEO_IPU3_IMGU=m -# CONFIG_STAGING_MEDIA_DEPRECATED is not set -CONFIG_LTE_GDM724X=m -# CONFIG_FB_TFT is not set -CONFIG_MOST_COMPONENTS=m -CONFIG_MOST_NET=m -CONFIG_MOST_VIDEO=m -CONFIG_MOST_I2C=m -CONFIG_KS7010=m -CONFIG_PI433=m -CONFIG_FIELDBUS_DEV=m -CONFIG_QLGE=m -# CONFIG_VME_BUS is not set -CONFIG_CHROME_PLATFORMS=y -CONFIG_CHROMEOS_ACPI=m -CONFIG_CHROMEOS_LAPTOP=m -CONFIG_CHROMEOS_PSTORE=m -CONFIG_CHROMEOS_TBMC=m -CONFIG_CROS_EC=m -CONFIG_CROS_EC_I2C=m -CONFIG_CROS_EC_ISHTP=m -CONFIG_CROS_EC_SPI=m -CONFIG_CROS_EC_UART=m -CONFIG_CROS_EC_LPC=m -CONFIG_CROS_EC_PROTO=y -CONFIG_CROS_KBD_LED_BACKLIGHT=m -CONFIG_CROS_EC_CHARDEV=m -CONFIG_CROS_EC_LIGHTBAR=m -CONFIG_CROS_EC_DEBUGFS=m -CONFIG_CROS_EC_SENSORHUB=m -CONFIG_CROS_EC_SYSFS=m -CONFIG_CROS_EC_TYPEC=m -CONFIG_CROS_HPS_I2C=m -CONFIG_CROS_USBPD_LOGGER=m -CONFIG_CROS_USBPD_NOTIFY=m -CONFIG_CHROMEOS_PRIVACY_SCREEN=m -CONFIG_CROS_TYPEC_SWITCH=m -CONFIG_WILCO_EC=m -CONFIG_WILCO_EC_DEBUGFS=m -CONFIG_WILCO_EC_EVENTS=m -CONFIG_WILCO_EC_TELEMETRY=m -CONFIG_MELLANOX_PLATFORM=y -CONFIG_MLXREG_HOTPLUG=m -CONFIG_MLXREG_IO=m -CONFIG_MLXREG_LC=m -CONFIG_NVSW_SN2201=m -CONFIG_SURFACE_PLATFORMS=y -CONFIG_SURFACE3_WMI=m -CONFIG_SURFACE_3_POWER_OPREGION=m -CONFIG_SURFACE_ACPI_NOTIFY=m -CONFIG_SURFACE_AGGREGATOR_CDEV=m -CONFIG_SURFACE_AGGREGATOR_HUB=m -CONFIG_SURFACE_AGGREGATOR_REGISTRY=m -CONFIG_SURFACE_AGGREGATOR_TABLET_SWITCH=m -CONFIG_SURFACE_DTX=m -CONFIG_SURFACE_GPE=m -CONFIG_SURFACE_HOTPLUG=m -CONFIG_SURFACE_PLATFORM_PROFILE=m -CONFIG_SURFACE_PRO3_BUTTON=m -CONFIG_SURFACE_AGGREGATOR=m -CONFIG_SURFACE_AGGREGATOR_BUS=y -# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set -CONFIG_X86_PLATFORM_DEVICES=y -CONFIG_ACPI_WMI=y -CONFIG_WMI_BMOF=y -CONFIG_HUAWEI_WMI=m -CONFIG_MXM_WMI=y -CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m -CONFIG_XIAOMI_WMI=m -CONFIG_GIGABYTE_WMI=m -# CONFIG_YOGABOOK is not set -CONFIG_ACERHDF=m -CONFIG_ACER_WIRELESS=m -CONFIG_ACER_WMI=m -CONFIG_AMD_PMF=y -# CONFIG_AMD_PMF_DEBUG is not set -CONFIG_AMD_PMC=y -CONFIG_AMD_HSMP=y -CONFIG_ADV_SWBUTTON=m -CONFIG_APPLE_GMUX=m -CONFIG_ASUS_LAPTOP=m -CONFIG_ASUS_WIRELESS=m -CONFIG_ASUS_WMI=m -CONFIG_ASUS_NB_WMI=m -CONFIG_ASUS_TF103C_DOCK=m -CONFIG_MERAKI_MX100=m -CONFIG_EEEPC_LAPTOP=m -CONFIG_EEEPC_WMI=m -CONFIG_X86_PLATFORM_DRIVERS_DELL=y -CONFIG_ALIENWARE_WMI=m -CONFIG_DCDBAS=m -CONFIG_DELL_LAPTOP=m -# CONFIG_DELL_RBU is not set -CONFIG_DELL_RBTN=m -CONFIG_DELL_SMBIOS=m -CONFIG_DELL_SMBIOS_WMI=y -CONFIG_DELL_SMBIOS_SMM=y -CONFIG_DELL_SMO8800=m -CONFIG_DELL_WMI=m -CONFIG_DELL_WMI_PRIVACY=y -CONFIG_DELL_WMI_AIO=m -CONFIG_DELL_WMI_DESCRIPTOR=m -CONFIG_DELL_WMI_DDV=m -CONFIG_DELL_WMI_LED=m -CONFIG_DELL_WMI_SYSMAN=m -CONFIG_AMILO_RFKILL=m -CONFIG_FUJITSU_LAPTOP=m -CONFIG_FUJITSU_TABLET=m -CONFIG_GPD_POCKET_FAN=m -CONFIG_X86_PLATFORM_DRIVERS_HP=y -CONFIG_HP_ACCEL=m -CONFIG_HP_WMI=m -CONFIG_WIRELESS_HOTKEY=m -CONFIG_IBM_RTL=m -CONFIG_IDEAPAD_LAPTOP=m -# CONFIG_LENOVO_YMC is not set -CONFIG_SENSORS_HDAPS=m -CONFIG_THINKPAD_ACPI=m -CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y -# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set -# CONFIG_THINKPAD_ACPI_DEBUG is not set -# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set -CONFIG_THINKPAD_ACPI_VIDEO=y -CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y -CONFIG_THINKPAD_LMI=m -CONFIG_INTEL_ATOMISP2_PDX86=y -CONFIG_INTEL_ATOMISP2_LED=m -CONFIG_INTEL_ATOMISP2_PM=y -CONFIG_INTEL_IFS=m -CONFIG_INTEL_SAR_INT1092=m -CONFIG_INTEL_SKL_INT3472=m -CONFIG_INTEL_PMC_CORE=y -CONFIG_INTEL_PMT_CLASS=m -CONFIG_INTEL_PMT_TELEMETRY=m -CONFIG_INTEL_PMT_CRASHLOG=m - -# -# Intel Speed Select Technology interface support -# -CONFIG_INTEL_SPEED_SELECT_TPMI=m -CONFIG_INTEL_SPEED_SELECT_INTERFACE=m -# end of Intel Speed Select Technology interface support - -CONFIG_INTEL_TELEMETRY=m -CONFIG_INTEL_WMI=y -CONFIG_INTEL_WMI_SBL_FW_UPDATE=m -CONFIG_INTEL_WMI_THUNDERBOLT=m - -# -# Intel Uncore Frequency Control -# -CONFIG_INTEL_UNCORE_FREQ_CONTROL_TPMI=m -CONFIG_INTEL_UNCORE_FREQ_CONTROL=m -# end of Intel Uncore Frequency Control - -CONFIG_INTEL_HID_EVENT=m -CONFIG_INTEL_VBTN=m -CONFIG_INTEL_INT0002_VGPIO=m -CONFIG_INTEL_OAKTRAIL=m -CONFIG_INTEL_BXTWC_PMIC_TMU=m -# CONFIG_INTEL_BYTCRC_PWRSRC is not set -CONFIG_INTEL_CHTDC_TI_PWRBTN=m -CONFIG_INTEL_CHTWC_INT33FE=m -CONFIG_INTEL_ISHTP_ECLITE=m -CONFIG_INTEL_MRFLD_PWRBTN=m -CONFIG_INTEL_PUNIT_IPC=m -CONFIG_INTEL_RST=m -CONFIG_INTEL_SDSI=m -CONFIG_INTEL_SMARTCONNECT=m -CONFIG_INTEL_TPMI=m -CONFIG_INTEL_TURBO_MAX_3=y -CONFIG_INTEL_VSEC=m -# CONFIG_MSI_EC is not set -CONFIG_MSI_LAPTOP=m -CONFIG_MSI_WMI=m -CONFIG_PCENGINES_APU2=m -CONFIG_BARCO_P50_GPIO=m -CONFIG_SAMSUNG_LAPTOP=m -CONFIG_SAMSUNG_Q10=m -CONFIG_ACPI_TOSHIBA=m -CONFIG_TOSHIBA_BT_RFKILL=m -CONFIG_TOSHIBA_HAPS=m -CONFIG_TOSHIBA_WMI=m -CONFIG_ACPI_CMPC=m -CONFIG_COMPAL_LAPTOP=m -CONFIG_LG_LAPTOP=m -CONFIG_PANASONIC_LAPTOP=m -CONFIG_SONY_LAPTOP=m -CONFIG_SONYPI_COMPAT=y -CONFIG_SYSTEM76_ACPI=m -CONFIG_TOPSTAR_LAPTOP=m -CONFIG_SERIAL_MULTI_INSTANTIATE=m -CONFIG_MLX_PLATFORM=m -CONFIG_TOUCHSCREEN_DMI=y -CONFIG_X86_ANDROID_TABLETS=m -CONFIG_FW_ATTR_CLASS=m -CONFIG_INTEL_IPS=m -CONFIG_INTEL_SCU_IPC=y -CONFIG_INTEL_SCU=y -CONFIG_INTEL_SCU_PCI=y -CONFIG_INTEL_SCU_PLATFORM=m -CONFIG_INTEL_SCU_IPC_UTIL=m -CONFIG_SIEMENS_SIMATIC_IPC=m -CONFIG_WINMATE_FM07_KEYS=m -# CONFIG_STEAMDECK is not set -CONFIG_P2SB=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_COMMON_CLK=y -CONFIG_COMMON_CLK_WM831X=m -CONFIG_LMK04832=m -CONFIG_COMMON_CLK_MAX9485=m -CONFIG_COMMON_CLK_SI5341=m -CONFIG_COMMON_CLK_SI5351=m -CONFIG_COMMON_CLK_SI544=m -CONFIG_COMMON_CLK_CDCE706=m -CONFIG_COMMON_CLK_TPS68470=m -CONFIG_COMMON_CLK_CS2000_CP=m -CONFIG_CLK_TWL6040=m -CONFIG_COMMON_CLK_PALMAS=m -CONFIG_COMMON_CLK_PWM=m -CONFIG_XILINX_VCU=m -CONFIG_HWSPINLOCK=y - -# -# Clock Source drivers -# -CONFIG_CLKEVT_I8253=y -CONFIG_CLKBLD_I8253=y -# end of Clock Source drivers - -CONFIG_MAILBOX=y -CONFIG_PCC=y -CONFIG_ALTERA_MBOX=m -CONFIG_IOMMU_IOVA=y -CONFIG_IOMMU_API=y -CONFIG_IOMMU_SUPPORT=y - -# -# Generic IOMMU Pagetable Support -# -CONFIG_IOMMU_IO_PGTABLE=y -# end of Generic IOMMU Pagetable Support - -# CONFIG_IOMMU_DEBUGFS is not set -# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set -# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set -CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y -CONFIG_IOMMU_DMA=y -CONFIG_IOMMU_SVA=y -CONFIG_AMD_IOMMU=y -CONFIG_AMD_IOMMU_V2=y -CONFIG_DMAR_TABLE=y -CONFIG_INTEL_IOMMU=y -CONFIG_INTEL_IOMMU_SVM=y -# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set -CONFIG_INTEL_IOMMU_FLOPPY_WA=y -CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y -CONFIG_INTEL_IOMMU_PERF_EVENTS=y -CONFIG_IOMMUFD=m -CONFIG_IRQ_REMAP=y -CONFIG_HYPERV_IOMMU=y -CONFIG_VIRTIO_IOMMU=m - -# -# Remoteproc drivers -# -CONFIG_REMOTEPROC=y -CONFIG_REMOTEPROC_CDEV=y -# end of Remoteproc drivers - -# -# Rpmsg drivers -# -CONFIG_RPMSG=m -CONFIG_RPMSG_CHAR=m -CONFIG_RPMSG_CTRL=m -CONFIG_RPMSG_NS=m -CONFIG_RPMSG_QCOM_GLINK=m -CONFIG_RPMSG_QCOM_GLINK_RPM=m -CONFIG_RPMSG_VIRTIO=m -# end of Rpmsg drivers - -CONFIG_SOUNDWIRE=m - -# -# SoundWire Devices -# -# CONFIG_SOUNDWIRE_AMD is not set -CONFIG_SOUNDWIRE_CADENCE=m -CONFIG_SOUNDWIRE_INTEL=m -CONFIG_SOUNDWIRE_QCOM=m -CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m - -# -# SOC (System On Chip) specific Drivers -# - -# -# Amlogic SoC drivers -# -# end of Amlogic SoC drivers - -# -# Broadcom SoC drivers -# -# end of Broadcom SoC drivers - -# -# NXP/Freescale QorIQ SoC drivers -# -# end of NXP/Freescale QorIQ SoC drivers - -# -# fujitsu SoC drivers -# -# end of fujitsu SoC drivers - -# -# i.MX SoC drivers -# -# end of i.MX SoC drivers - -# -# Enable LiteX SoC Builder specific drivers -# -# end of Enable LiteX SoC Builder specific drivers - -CONFIG_WPCM450_SOC=m - -# -# Qualcomm SoC drivers -# -CONFIG_QCOM_QMI_HELPERS=m -# end of Qualcomm SoC drivers - -CONFIG_SOC_TI=y - -# -# Xilinx SoC drivers -# -# end of Xilinx SoC drivers -# end of SOC (System On Chip) specific Drivers - -CONFIG_PM_DEVFREQ=y - -# -# DEVFREQ Governors -# -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m -CONFIG_DEVFREQ_GOV_PERFORMANCE=m -CONFIG_DEVFREQ_GOV_POWERSAVE=m -CONFIG_DEVFREQ_GOV_USERSPACE=m -CONFIG_DEVFREQ_GOV_PASSIVE=m - -# -# DEVFREQ Drivers -# -CONFIG_PM_DEVFREQ_EVENT=y -CONFIG_EXTCON=y - -# -# Extcon Device Drivers -# -CONFIG_EXTCON_ADC_JACK=m -CONFIG_EXTCON_AXP288=m -CONFIG_EXTCON_FSA9480=m -CONFIG_EXTCON_GPIO=m -CONFIG_EXTCON_INTEL_INT3496=m -CONFIG_EXTCON_INTEL_CHT_WC=m -CONFIG_EXTCON_INTEL_MRFLD=m -CONFIG_EXTCON_MAX14577=m -CONFIG_EXTCON_MAX3355=m -CONFIG_EXTCON_MAX77693=m -CONFIG_EXTCON_MAX77843=m -CONFIG_EXTCON_MAX8997=m -CONFIG_EXTCON_PALMAS=m -CONFIG_EXTCON_PTN5150=m -CONFIG_EXTCON_RT8973A=m -CONFIG_EXTCON_SM5502=m -CONFIG_EXTCON_USB_GPIO=m -CONFIG_EXTCON_USBC_CROS_EC=m -CONFIG_EXTCON_USBC_TUSB320=m -CONFIG_MEMORY=y -CONFIG_FPGA_DFL_EMIF=m -CONFIG_IIO=m -CONFIG_IIO_BUFFER=y -CONFIG_IIO_BUFFER_CB=m -CONFIG_IIO_BUFFER_DMA=m -CONFIG_IIO_BUFFER_DMAENGINE=m -CONFIG_IIO_BUFFER_HW_CONSUMER=m -CONFIG_IIO_KFIFO_BUF=m -CONFIG_IIO_TRIGGERED_BUFFER=m -CONFIG_IIO_CONFIGFS=m -CONFIG_IIO_TRIGGER=y -CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 -CONFIG_IIO_SW_DEVICE=m -CONFIG_IIO_SW_TRIGGER=m -CONFIG_IIO_TRIGGERED_EVENT=m - -# -# Accelerometers -# -CONFIG_ADIS16201=m -CONFIG_ADIS16209=m -CONFIG_ADXL313=m -CONFIG_ADXL313_I2C=m -CONFIG_ADXL313_SPI=m -CONFIG_ADXL355=m -CONFIG_ADXL355_I2C=m -CONFIG_ADXL355_SPI=m -CONFIG_ADXL367=m -CONFIG_ADXL367_SPI=m -CONFIG_ADXL367_I2C=m -CONFIG_ADXL372=m -CONFIG_ADXL372_SPI=m -CONFIG_ADXL372_I2C=m -CONFIG_BMA220=m -CONFIG_BMA400=m -CONFIG_BMA400_I2C=m -CONFIG_BMA400_SPI=m -CONFIG_BMC150_ACCEL=m -CONFIG_BMC150_ACCEL_I2C=m -CONFIG_BMC150_ACCEL_SPI=m -CONFIG_BMI088_ACCEL=m -CONFIG_BMI088_ACCEL_SPI=m -CONFIG_DA280=m -CONFIG_DA311=m -CONFIG_DMARD06=m -CONFIG_DMARD09=m -CONFIG_DMARD10=m -CONFIG_FXLS8962AF=m -CONFIG_FXLS8962AF_I2C=m -CONFIG_FXLS8962AF_SPI=m -CONFIG_HID_SENSOR_ACCEL_3D=m -CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m -CONFIG_IIO_ST_ACCEL_3AXIS=m -CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m -CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m -CONFIG_IIO_KX022A=m -CONFIG_IIO_KX022A_SPI=m -CONFIG_IIO_KX022A_I2C=m -CONFIG_KXSD9=m -CONFIG_KXSD9_SPI=m -CONFIG_KXSD9_I2C=m -CONFIG_KXCJK1013=m -CONFIG_MC3230=m -CONFIG_MMA7455=m -CONFIG_MMA7455_I2C=m -CONFIG_MMA7455_SPI=m -CONFIG_MMA7660=m -CONFIG_MMA8452=m -CONFIG_MMA9551_CORE=m -CONFIG_MMA9551=m -CONFIG_MMA9553=m -CONFIG_MSA311=m -CONFIG_MXC4005=m -CONFIG_MXC6255=m -CONFIG_SCA3000=m -CONFIG_SCA3300=m -CONFIG_STK8312=m -CONFIG_STK8BA50=m -# end of Accelerometers - -# -# Analog to digital converters -# -CONFIG_AD_SIGMA_DELTA=m -CONFIG_AD4130=m -CONFIG_AD7091R5=m -CONFIG_AD7124=m -CONFIG_AD7192=m -CONFIG_AD7266=m -CONFIG_AD7280=m -CONFIG_AD7291=m -CONFIG_AD7292=m -CONFIG_AD7298=m -CONFIG_AD7476=m -CONFIG_AD7606=m -CONFIG_AD7606_IFACE_PARALLEL=m -CONFIG_AD7606_IFACE_SPI=m -CONFIG_AD7766=m -CONFIG_AD7768_1=m -CONFIG_AD7780=m -CONFIG_AD7791=m -CONFIG_AD7793=m -CONFIG_AD7887=m -CONFIG_AD7923=m -CONFIG_AD7949=m -CONFIG_AD799X=m -CONFIG_AXP20X_ADC=m -CONFIG_AXP288_ADC=m -CONFIG_CC10001_ADC=m -CONFIG_DA9150_GPADC=m -CONFIG_DLN2_ADC=m -CONFIG_ENVELOPE_DETECTOR=m -CONFIG_HI8435=m -CONFIG_HX711=m -CONFIG_INA2XX_ADC=m -CONFIG_INTEL_MRFLD_ADC=m -CONFIG_LP8788_ADC=m -CONFIG_LTC2471=m -CONFIG_LTC2485=m -CONFIG_LTC2496=m -CONFIG_LTC2497=m -CONFIG_MAX1027=m -CONFIG_MAX11100=m -CONFIG_MAX1118=m -CONFIG_MAX11205=m -CONFIG_MAX11410=m -CONFIG_MAX1241=m -CONFIG_MAX1363=m -CONFIG_MAX9611=m -CONFIG_MCP320X=m -CONFIG_MCP3422=m -CONFIG_MCP3911=m -CONFIG_MEDIATEK_MT6360_ADC=m -CONFIG_MEDIATEK_MT6370_ADC=m -CONFIG_MEN_Z188_ADC=m -CONFIG_MP2629_ADC=m -CONFIG_NAU7802=m -CONFIG_PALMAS_GPADC=m -# CONFIG_QCOM_SPMI_IADC is not set -# CONFIG_QCOM_SPMI_VADC is not set -# CONFIG_QCOM_SPMI_ADC5 is not set -CONFIG_RICHTEK_RTQ6056=m -CONFIG_SD_ADC_MODULATOR=m -CONFIG_TI_ADC081C=m -CONFIG_TI_ADC0832=m -CONFIG_TI_ADC084S021=m -CONFIG_TI_ADC12138=m -CONFIG_TI_ADC108S102=m -CONFIG_TI_ADC128S052=m -CONFIG_TI_ADC161S626=m -CONFIG_TI_ADS1015=m -CONFIG_TI_ADS7924=m -# CONFIG_TI_ADS1100 is not set -CONFIG_TI_ADS7950=m -CONFIG_TI_ADS8344=m -CONFIG_TI_ADS8688=m -CONFIG_TI_ADS124S08=m -CONFIG_TI_ADS131E08=m -CONFIG_TI_AM335X_ADC=m -CONFIG_TI_LMP92064=m -CONFIG_TI_TLC4541=m -CONFIG_TI_TSC2046=m -CONFIG_TWL4030_MADC=m -CONFIG_TWL6030_GPADC=m -CONFIG_VF610_ADC=m -CONFIG_VIPERBOARD_ADC=m -CONFIG_XILINX_XADC=m -# end of Analog to digital converters - -# -# Analog to digital and digital to analog converters -# -CONFIG_AD74115=m -CONFIG_AD74413R=m -# end of Analog to digital and digital to analog converters - -# -# Analog Front Ends -# -CONFIG_IIO_RESCALE=m -# end of Analog Front Ends - -# -# Amplifiers -# -CONFIG_AD8366=m -CONFIG_ADA4250=m -CONFIG_HMC425=m -# end of Amplifiers - -# -# Capacitance to digital converters -# -CONFIG_AD7150=m -CONFIG_AD7746=m -# end of Capacitance to digital converters - -# -# Chemical Sensors -# -CONFIG_ATLAS_PH_SENSOR=m -CONFIG_ATLAS_EZO_SENSOR=m -CONFIG_BME680=m -CONFIG_BME680_I2C=m -CONFIG_BME680_SPI=m -CONFIG_CCS811=m -CONFIG_IAQCORE=m -CONFIG_PMS7003=m -CONFIG_SCD30_CORE=m -CONFIG_SCD30_I2C=m -CONFIG_SCD30_SERIAL=m -CONFIG_SCD4X=m -CONFIG_SENSIRION_SGP30=m -CONFIG_SENSIRION_SGP40=m -CONFIG_SPS30=m -CONFIG_SPS30_I2C=m -CONFIG_SPS30_SERIAL=m -CONFIG_SENSEAIR_SUNRISE_CO2=m -CONFIG_VZ89X=m -# end of Chemical Sensors - -CONFIG_IIO_CROS_EC_SENSORS_CORE=m -CONFIG_IIO_CROS_EC_SENSORS=m -CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m - -# -# Hid Sensor IIO Common -# -CONFIG_HID_SENSOR_IIO_COMMON=m -CONFIG_HID_SENSOR_IIO_TRIGGER=m -# end of Hid Sensor IIO Common - -CONFIG_IIO_MS_SENSORS_I2C=m - -# -# IIO SCMI Sensors -# -# end of IIO SCMI Sensors - -# -# SSP Sensor Common -# -CONFIG_IIO_SSP_SENSORS_COMMONS=m -CONFIG_IIO_SSP_SENSORHUB=m -# end of SSP Sensor Common - -CONFIG_IIO_ST_SENSORS_I2C=m -CONFIG_IIO_ST_SENSORS_SPI=m -CONFIG_IIO_ST_SENSORS_CORE=m - -# -# Digital to analog converters -# -CONFIG_AD3552R=m -CONFIG_AD5064=m -CONFIG_AD5360=m -CONFIG_AD5380=m -CONFIG_AD5421=m -CONFIG_AD5446=m -CONFIG_AD5449=m -CONFIG_AD5592R_BASE=m -CONFIG_AD5592R=m -CONFIG_AD5593R=m -CONFIG_AD5504=m -CONFIG_AD5624R_SPI=m -CONFIG_LTC2688=m -CONFIG_AD5686=m -CONFIG_AD5686_SPI=m -CONFIG_AD5696_I2C=m -CONFIG_AD5755=m -CONFIG_AD5758=m -CONFIG_AD5761=m -CONFIG_AD5764=m -CONFIG_AD5766=m -CONFIG_AD5770R=m -CONFIG_AD5791=m -CONFIG_AD7293=m -CONFIG_AD7303=m -CONFIG_AD8801=m -CONFIG_DPOT_DAC=m -CONFIG_DS4424=m -CONFIG_LTC1660=m -CONFIG_LTC2632=m -CONFIG_M62332=m -CONFIG_MAX517=m -CONFIG_MAX5522=m -CONFIG_MAX5821=m -CONFIG_MCP4725=m -CONFIG_MCP4922=m -CONFIG_TI_DAC082S085=m -CONFIG_TI_DAC5571=m -CONFIG_TI_DAC7311=m -CONFIG_TI_DAC7612=m -CONFIG_VF610_DAC=m -# end of Digital to analog converters - -# -# IIO dummy driver -# -# CONFIG_IIO_SIMPLE_DUMMY is not set -# end of IIO dummy driver - -# -# Filters -# -CONFIG_ADMV8818=m -# end of Filters - -# -# Frequency Synthesizers DDS/PLL -# - -# -# Clock Generator/Distribution -# -CONFIG_AD9523=m -# end of Clock Generator/Distribution - -# -# Phase-Locked Loop (PLL) frequency synthesizers -# -CONFIG_ADF4350=m -CONFIG_ADF4371=m -CONFIG_ADF4377=m -CONFIG_ADMV1013=m -CONFIG_ADMV1014=m -CONFIG_ADMV4420=m -CONFIG_ADRF6780=m -# end of Phase-Locked Loop (PLL) frequency synthesizers -# end of Frequency Synthesizers DDS/PLL - -# -# Digital gyroscope sensors -# -CONFIG_ADIS16080=m -CONFIG_ADIS16130=m -CONFIG_ADIS16136=m -CONFIG_ADIS16260=m -CONFIG_ADXRS290=m -CONFIG_ADXRS450=m -CONFIG_BMG160=m -CONFIG_BMG160_I2C=m -CONFIG_BMG160_SPI=m -CONFIG_FXAS21002C=m -CONFIG_FXAS21002C_I2C=m -CONFIG_FXAS21002C_SPI=m -CONFIG_HID_SENSOR_GYRO_3D=m -CONFIG_MPU3050=m -CONFIG_MPU3050_I2C=m -CONFIG_IIO_ST_GYRO_3AXIS=m -CONFIG_IIO_ST_GYRO_I2C_3AXIS=m -CONFIG_IIO_ST_GYRO_SPI_3AXIS=m -CONFIG_ITG3200=m -# end of Digital gyroscope sensors - -# -# Health Sensors -# - -# -# Heart Rate Monitors -# -CONFIG_AFE4403=m -CONFIG_AFE4404=m -CONFIG_MAX30100=m -CONFIG_MAX30102=m -# end of Heart Rate Monitors -# end of Health Sensors - -# -# Humidity sensors -# -CONFIG_AM2315=m -CONFIG_DHT11=m -CONFIG_HDC100X=m -CONFIG_HDC2010=m -CONFIG_HID_SENSOR_HUMIDITY=m -CONFIG_HTS221=m -CONFIG_HTS221_I2C=m -CONFIG_HTS221_SPI=m -CONFIG_HTU21=m -CONFIG_SI7005=m -CONFIG_SI7020=m -# end of Humidity sensors - -# -# Inertial measurement units -# -CONFIG_ADIS16400=m -CONFIG_ADIS16460=m -CONFIG_ADIS16475=m -CONFIG_ADIS16480=m -CONFIG_BMI160=m -CONFIG_BMI160_I2C=m -CONFIG_BMI160_SPI=m -CONFIG_BOSCH_BNO055=m -CONFIG_BOSCH_BNO055_SERIAL=m -CONFIG_BOSCH_BNO055_I2C=m -CONFIG_FXOS8700=m -CONFIG_FXOS8700_I2C=m -CONFIG_FXOS8700_SPI=m -CONFIG_KMX61=m -CONFIG_INV_ICM42600=m -CONFIG_INV_ICM42600_I2C=m -CONFIG_INV_ICM42600_SPI=m -CONFIG_INV_MPU6050_IIO=m -CONFIG_INV_MPU6050_I2C=m -CONFIG_INV_MPU6050_SPI=m -CONFIG_IIO_ST_LSM6DSX=m -CONFIG_IIO_ST_LSM6DSX_I2C=m -CONFIG_IIO_ST_LSM6DSX_SPI=m -CONFIG_IIO_ST_LSM9DS0=m -CONFIG_IIO_ST_LSM9DS0_I2C=m -CONFIG_IIO_ST_LSM9DS0_SPI=m -# end of Inertial measurement units - -CONFIG_IIO_ADIS_LIB=m -CONFIG_IIO_ADIS_LIB_BUFFER=y - -# -# Light sensors -# -CONFIG_ACPI_ALS=m -CONFIG_ADJD_S311=m -CONFIG_ADUX1020=m -CONFIG_AL3010=m -CONFIG_AL3320A=m -CONFIG_APDS9300=m -CONFIG_APDS9960=m -CONFIG_AS73211=m -CONFIG_BH1750=m -CONFIG_BH1780=m -CONFIG_CM32181=m -CONFIG_CM3232=m -CONFIG_CM3323=m -CONFIG_CM3605=m -CONFIG_CM36651=m -CONFIG_IIO_CROS_EC_LIGHT_PROX=m -CONFIG_GP2AP002=m -CONFIG_GP2AP020A00F=m -CONFIG_IQS621_ALS=m -CONFIG_SENSORS_ISL29018=m -CONFIG_SENSORS_ISL29028=m -CONFIG_ISL29125=m -CONFIG_HID_SENSOR_ALS=m -CONFIG_HID_SENSOR_PROX=m -CONFIG_JSA1212=m -# CONFIG_ROHM_BU27008 is not set -# CONFIG_ROHM_BU27034 is not set -CONFIG_RPR0521=m -CONFIG_SENSORS_LM3533=m -CONFIG_LTR501=m -CONFIG_LTRF216A=m -CONFIG_LV0104CS=m -CONFIG_MAX44000=m -CONFIG_MAX44009=m -CONFIG_NOA1305=m -CONFIG_OPT3001=m -# CONFIG_OPT4001 is not set -CONFIG_PA12203001=m -CONFIG_SI1133=m -CONFIG_SI1145=m -CONFIG_STK3310=m -CONFIG_ST_UVIS25=m -CONFIG_ST_UVIS25_I2C=m -CONFIG_ST_UVIS25_SPI=m -CONFIG_TCS3414=m -CONFIG_TCS3472=m -CONFIG_SENSORS_TSL2563=m -CONFIG_TSL2583=m -CONFIG_TSL2591=m -CONFIG_TSL2772=m -CONFIG_TSL4531=m -CONFIG_US5182D=m -CONFIG_VCNL4000=m -CONFIG_VCNL4035=m -CONFIG_VEML6030=m -CONFIG_VEML6070=m -CONFIG_VL6180=m -CONFIG_ZOPT2201=m -# end of Light sensors - -# -# Magnetometer sensors -# -CONFIG_AK8974=m -CONFIG_AK8975=m -CONFIG_AK09911=m -CONFIG_BMC150_MAGN=m -CONFIG_BMC150_MAGN_I2C=m -CONFIG_BMC150_MAGN_SPI=m -CONFIG_MAG3110=m -CONFIG_HID_SENSOR_MAGNETOMETER_3D=m -CONFIG_MMC35240=m -CONFIG_IIO_ST_MAGN_3AXIS=m -CONFIG_IIO_ST_MAGN_I2C_3AXIS=m -CONFIG_IIO_ST_MAGN_SPI_3AXIS=m -CONFIG_SENSORS_HMC5843=m -CONFIG_SENSORS_HMC5843_I2C=m -CONFIG_SENSORS_HMC5843_SPI=m -CONFIG_SENSORS_RM3100=m -CONFIG_SENSORS_RM3100_I2C=m -CONFIG_SENSORS_RM3100_SPI=m -CONFIG_TI_TMAG5273=m -CONFIG_YAMAHA_YAS530=m -# end of Magnetometer sensors - -# -# Multiplexers -# -CONFIG_IIO_MUX=m -# end of Multiplexers - -# -# Inclinometer sensors -# -CONFIG_HID_SENSOR_INCLINOMETER_3D=m -CONFIG_HID_SENSOR_DEVICE_ROTATION=m -# end of Inclinometer sensors - -# -# Triggers - standalone -# -CONFIG_IIO_HRTIMER_TRIGGER=m -CONFIG_IIO_INTERRUPT_TRIGGER=m -CONFIG_IIO_TIGHTLOOP_TRIGGER=m -CONFIG_IIO_SYSFS_TRIGGER=m -# end of Triggers - standalone - -# -# Linear and angular position sensors -# -CONFIG_IQS624_POS=m -CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m -# end of Linear and angular position sensors - -# -# Digital potentiometers -# -CONFIG_AD5110=m -CONFIG_AD5272=m -CONFIG_DS1803=m -CONFIG_MAX5432=m -CONFIG_MAX5481=m -CONFIG_MAX5487=m -CONFIG_MCP4018=m -CONFIG_MCP4131=m -CONFIG_MCP4531=m -CONFIG_MCP41010=m -CONFIG_TPL0102=m -# CONFIG_X9250 is not set -# end of Digital potentiometers - -# -# Digital potentiostats -# -CONFIG_LMP91000=m -# end of Digital potentiostats - -# -# Pressure sensors -# -CONFIG_ABP060MG=m -CONFIG_BMP280=m -CONFIG_BMP280_I2C=m -CONFIG_BMP280_SPI=m -CONFIG_IIO_CROS_EC_BARO=m -CONFIG_DLHL60D=m -CONFIG_DPS310=m -CONFIG_HID_SENSOR_PRESS=m -CONFIG_HP03=m -CONFIG_ICP10100=m -CONFIG_MPL115=m -CONFIG_MPL115_I2C=m -CONFIG_MPL115_SPI=m -CONFIG_MPL3115=m -# CONFIG_MPRLS0025PA is not set -CONFIG_MS5611=m -CONFIG_MS5611_I2C=m -CONFIG_MS5611_SPI=m -CONFIG_MS5637=m -CONFIG_IIO_ST_PRESS=m -CONFIG_IIO_ST_PRESS_I2C=m -CONFIG_IIO_ST_PRESS_SPI=m -CONFIG_T5403=m -CONFIG_HP206C=m -CONFIG_ZPA2326=m -CONFIG_ZPA2326_I2C=m -CONFIG_ZPA2326_SPI=m -# end of Pressure sensors - -# -# Lightning sensors -# -CONFIG_AS3935=m -# end of Lightning sensors - -# -# Proximity and distance sensors -# -CONFIG_CROS_EC_MKBP_PROXIMITY=m -CONFIG_ISL29501=m -CONFIG_LIDAR_LITE_V2=m -CONFIG_MB1232=m -CONFIG_PING=m -CONFIG_RFD77402=m -CONFIG_SRF04=m -CONFIG_SX_COMMON=m -CONFIG_SX9310=m -CONFIG_SX9324=m -CONFIG_SX9360=m -CONFIG_SX9500=m -CONFIG_SRF08=m -CONFIG_VCNL3020=m -CONFIG_VL53L0X_I2C=m -# end of Proximity and distance sensors - -# -# Resolver to digital converters -# -CONFIG_AD2S90=m -CONFIG_AD2S1200=m -# end of Resolver to digital converters - -# -# Temperature sensors -# -CONFIG_IQS620AT_TEMP=m -CONFIG_LTC2983=m -CONFIG_MAXIM_THERMOCOUPLE=m -CONFIG_HID_SENSOR_TEMP=m -CONFIG_MLX90614=m -CONFIG_MLX90632=m -CONFIG_TMP006=m -CONFIG_TMP007=m -CONFIG_TMP117=m -CONFIG_TSYS01=m -CONFIG_TSYS02D=m -CONFIG_MAX30208=m -CONFIG_MAX31856=m -CONFIG_MAX31865=m -# end of Temperature sensors - -CONFIG_NTB=m -CONFIG_NTB_MSI=y -CONFIG_NTB_AMD=m -CONFIG_NTB_IDT=m -CONFIG_NTB_INTEL=m -CONFIG_NTB_EPF=m -CONFIG_NTB_SWITCHTEC=m -# CONFIG_NTB_PINGPONG is not set -# CONFIG_NTB_TOOL is not set -# CONFIG_NTB_PERF is not set -# CONFIG_NTB_MSI_TEST is not set -CONFIG_NTB_TRANSPORT=m -CONFIG_PWM=y -CONFIG_PWM_SYSFS=y -# CONFIG_PWM_DEBUG is not set -CONFIG_PWM_CLK=m -CONFIG_PWM_CRC=y -CONFIG_PWM_CROS_EC=m -CONFIG_PWM_DWC=m -CONFIG_PWM_IQS620A=m -CONFIG_PWM_LP3943=m -CONFIG_PWM_LPSS=m -CONFIG_PWM_LPSS_PCI=m -CONFIG_PWM_LPSS_PLATFORM=m -CONFIG_PWM_PCA9685=m -CONFIG_PWM_TWL=m -CONFIG_PWM_TWL_LED=m - -# -# IRQ chip support -# -CONFIG_MADERA_IRQ=m -# end of IRQ chip support - -CONFIG_IPACK_BUS=m -CONFIG_BOARD_TPCI200=m -CONFIG_SERIAL_IPOCTAL=m -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_SIMPLE is not set -CONFIG_RESET_TI_SYSCON=m -CONFIG_RESET_TI_TPS380X=m - -# -# PHY Subsystem -# -CONFIG_GENERIC_PHY=y -CONFIG_USB_LGM_PHY=m -CONFIG_PHY_CAN_TRANSCEIVER=m - -# -# PHY drivers for Broadcom platforms -# -CONFIG_BCM_KONA_USB2_PHY=m -# end of PHY drivers for Broadcom platforms - -CONFIG_PHY_PXA_28NM_HSIC=m -CONFIG_PHY_PXA_28NM_USB2=m -CONFIG_PHY_CPCAP_USB=m -CONFIG_PHY_QCOM_USB_HS=m -CONFIG_PHY_QCOM_USB_HSIC=m -CONFIG_PHY_SAMSUNG_USB2=m -CONFIG_PHY_TUSB1210=m -CONFIG_PHY_INTEL_LGM_EMMC=m -# end of PHY Subsystem - -CONFIG_POWERCAP=y -CONFIG_INTEL_RAPL_CORE=m -CONFIG_INTEL_RAPL=m -# CONFIG_INTEL_RAPL_TPMI is not set -CONFIG_IDLE_INJECT=y -CONFIG_MCB=m -CONFIG_MCB_PCI=m -CONFIG_MCB_LPC=m - -# -# Performance monitor support -# -# end of Performance monitor support - -CONFIG_RAS=y -CONFIG_RAS_CEC=y -# CONFIG_RAS_CEC_DEBUG is not set -CONFIG_USB4=m -# CONFIG_USB4_DEBUGFS_WRITE is not set -# CONFIG_USB4_DMA_TEST is not set - -# -# Android -# -# CONFIG_ANDROID_BINDER_IPC is not set -# end of Android - -CONFIG_LIBNVDIMM=y -CONFIG_BLK_DEV_PMEM=m -CONFIG_ND_CLAIM=y -CONFIG_ND_BTT=m -CONFIG_BTT=y -CONFIG_ND_PFN=m -CONFIG_NVDIMM_PFN=y -CONFIG_NVDIMM_DAX=y -CONFIG_DAX=y -CONFIG_DEV_DAX=m -CONFIG_DEV_DAX_PMEM=m -CONFIG_DEV_DAX_HMEM=m -CONFIG_DEV_DAX_CXL=m -CONFIG_DEV_DAX_HMEM_DEVICES=y -CONFIG_DEV_DAX_KMEM=m -CONFIG_NVMEM=y -CONFIG_NVMEM_SYSFS=y - -# -# Layout Types -# -# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set -# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set -# end of Layout Types - -CONFIG_NVMEM_RAVE_SP_EEPROM=m -CONFIG_NVMEM_RMEM=m -# CONFIG_NVMEM_SPMI_SDAM is not set - -# -# HW tracing support -# -CONFIG_STM=m -CONFIG_STM_PROTO_BASIC=m -CONFIG_STM_PROTO_SYS_T=m -# CONFIG_STM_DUMMY is not set -CONFIG_STM_SOURCE_CONSOLE=m -CONFIG_STM_SOURCE_HEARTBEAT=m -CONFIG_STM_SOURCE_FTRACE=m -CONFIG_INTEL_TH=m -CONFIG_INTEL_TH_PCI=m -CONFIG_INTEL_TH_ACPI=m -CONFIG_INTEL_TH_GTH=m -CONFIG_INTEL_TH_STH=m -CONFIG_INTEL_TH_MSU=m -CONFIG_INTEL_TH_PTI=m -# CONFIG_INTEL_TH_DEBUG is not set -# end of HW tracing support - -CONFIG_FPGA=m -CONFIG_ALTERA_PR_IP_CORE=m -CONFIG_FPGA_MGR_ALTERA_PS_SPI=m -CONFIG_FPGA_MGR_ALTERA_CVP=m -CONFIG_FPGA_MGR_XILINX_SPI=m -CONFIG_FPGA_MGR_MACHXO2_SPI=m -CONFIG_FPGA_BRIDGE=m -CONFIG_ALTERA_FREEZE_BRIDGE=m -CONFIG_XILINX_PR_DECOUPLER=m -CONFIG_FPGA_REGION=m -CONFIG_FPGA_DFL=m -CONFIG_FPGA_DFL_FME=m -CONFIG_FPGA_DFL_FME_MGR=m -CONFIG_FPGA_DFL_FME_BRIDGE=m -CONFIG_FPGA_DFL_FME_REGION=m -CONFIG_FPGA_DFL_AFU=m -CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m -CONFIG_FPGA_DFL_PCI=m -CONFIG_FPGA_M10_BMC_SEC_UPDATE=m -CONFIG_FPGA_MGR_MICROCHIP_SPI=m -CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m -CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m -CONFIG_TEE=m -CONFIG_AMDTEE=m -CONFIG_MULTIPLEXER=m - -# -# Multiplexer drivers -# -CONFIG_MUX_ADG792A=m -CONFIG_MUX_ADGS1408=m -CONFIG_MUX_GPIO=m -# end of Multiplexer drivers - -CONFIG_PM_OPP=y -CONFIG_SIOX=m -CONFIG_SIOX_BUS_GPIO=m -CONFIG_SLIMBUS=m -CONFIG_SLIM_QCOM_CTRL=m -CONFIG_INTERCONNECT=y -CONFIG_COUNTER=m -CONFIG_INTEL_QEP=m -CONFIG_INTERRUPT_CNT=m -CONFIG_MOST=m -CONFIG_MOST_USB_HDM=m -CONFIG_MOST_CDEV=m -CONFIG_MOST_SND=m -# CONFIG_PECI is not set -CONFIG_HTE=y -# end of Device Drivers - -# -# File systems -# -CONFIG_DCACHE_WORD_ACCESS=y -CONFIG_VALIDATE_FS_PARSER=y -CONFIG_FS_IOMAP=y -CONFIG_LEGACY_DIRECT_IO=y -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=y -# CONFIG_JBD2_DEBUG is not set -CONFIG_FS_MBCACHE=y -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_PROC_INFO=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y -CONFIG_XFS_FS=m -CONFIG_XFS_SUPPORT_V4=y -CONFIG_XFS_SUPPORT_ASCII_CI=y -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -CONFIG_XFS_RT=y -CONFIG_XFS_DRAIN_INTENTS=y -CONFIG_XFS_ONLINE_SCRUB=y -CONFIG_XFS_ONLINE_REPAIR=y -# CONFIG_XFS_WARN is not set -# CONFIG_XFS_DEBUG is not set -CONFIG_GFS2_FS=m -CONFIG_GFS2_FS_LOCKING_DLM=y -CONFIG_OCFS2_FS=m -CONFIG_OCFS2_FS_O2CB=m -CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m -CONFIG_OCFS2_FS_STATS=y -CONFIG_OCFS2_DEBUG_MASKLOG=y -# CONFIG_OCFS2_DEBUG_FS is not set -CONFIG_BTRFS_FS=y -CONFIG_BTRFS_FS_POSIX_ACL=y -# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set -# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -# CONFIG_BTRFS_DEBUG is not set -# CONFIG_BTRFS_ASSERT is not set -# CONFIG_BTRFS_FS_REF_VERIFY is not set -CONFIG_NILFS2_FS=m -CONFIG_F2FS_FS=y -CONFIG_F2FS_STAT_FS=y -CONFIG_F2FS_FS_XATTR=y -CONFIG_F2FS_FS_POSIX_ACL=y -CONFIG_F2FS_FS_SECURITY=y -CONFIG_F2FS_CHECK_FS=y -# CONFIG_F2FS_FAULT_INJECTION is not set -CONFIG_F2FS_FS_COMPRESSION=y -CONFIG_F2FS_FS_LZO=y -CONFIG_F2FS_FS_LZORLE=y -CONFIG_F2FS_FS_LZ4=y -CONFIG_F2FS_FS_LZ4HC=y -CONFIG_F2FS_FS_ZSTD=y -CONFIG_F2FS_IOSTAT=y -CONFIG_F2FS_UNFAIR_RWSEM=y -CONFIG_ZONEFS_FS=m -CONFIG_FS_DAX=y -CONFIG_FS_DAX_PMD=y -CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=y -CONFIG_EXPORTFS_BLOCK_OPS=y -CONFIG_FILE_LOCKING=y -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_ENCRYPTION_ALGS=y -CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y -CONFIG_FS_VERITY=y -CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_FANOTIFY=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -# CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=y -CONFIG_FUSE_FS=m -CONFIG_CUSE=m -CONFIG_VIRTIO_FS=m -CONFIG_FUSE_DAX=y -CONFIG_OVERLAY_FS=m -CONFIG_OVERLAY_FS_REDIRECT_DIR=y -CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y -# CONFIG_OVERLAY_FS_INDEX is not set -# CONFIG_OVERLAY_FS_XINO_AUTO is not set -# CONFIG_OVERLAY_FS_METACOPY is not set - -# -# Caches -# -CONFIG_NETFS_SUPPORT=y -CONFIG_NETFS_STATS=y -CONFIG_FSCACHE=y -CONFIG_FSCACHE_STATS=y -# CONFIG_FSCACHE_DEBUG is not set -CONFIG_CACHEFILES=m -# CONFIG_CACHEFILES_DEBUG is not set -# CONFIG_CACHEFILES_ERROR_INJECTION is not set -CONFIG_CACHEFILES_ONDEMAND=y -# end of Caches - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -# end of CD-ROM/DVD Filesystems - -# -# DOS/FAT/EXFAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -CONFIG_FAT_DEFAULT_UTF8=y -CONFIG_EXFAT_FS=m -CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" -# CONFIG_NTFS_FS is not set -CONFIG_NTFS3_FS=m -# CONFIG_NTFS3_64BIT_CLUSTER is not set -CONFIG_NTFS3_LZX_XPRESS=y -CONFIG_NTFS3_FS_POSIX_ACL=y -# end of DOS/FAT/EXFAT/NT Filesystems - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_PROC_VMCORE=y -CONFIG_PROC_VMCORE_DEVICE_DUMP=y -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_PROC_CHILDREN=y -CONFIG_PROC_PID_ARCH_STATUS=y -CONFIG_PROC_CPU_RESCTRL=y -CONFIG_KERNFS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -CONFIG_TMPFS_INODE64=y -CONFIG_HUGETLBFS=y -CONFIG_HUGETLB_PAGE=y -CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y -# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set -CONFIG_MEMFD_CREATE=y -CONFIG_ARCH_HAS_GIGANTIC_PAGE=y -CONFIG_CONFIGFS_FS=y -CONFIG_EFIVAR_FS=y -# end of Pseudo filesystems - -CONFIG_MISC_FILESYSTEMS=y -CONFIG_ORANGEFS_FS=m -# CONFIG_ADFS_FS is not set -CONFIG_AFFS_FS=m -CONFIG_ECRYPT_FS=m -# CONFIG_ECRYPT_FS_MESSAGING is not set -CONFIG_HFS_FS=m -CONFIG_HFSPLUS_FS=m -CONFIG_BEFS_FS=m -# CONFIG_BEFS_DEBUG is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -CONFIG_JFFS2_SUMMARY=y -CONFIG_JFFS2_FS_XATTR=y -CONFIG_JFFS2_FS_POSIX_ACL=y -CONFIG_JFFS2_FS_SECURITY=y -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_RTIME=y -CONFIG_UBIFS_FS=m -# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set -CONFIG_UBIFS_FS_LZO=y -CONFIG_UBIFS_FS_ZLIB=y -CONFIG_UBIFS_FS_ZSTD=y -CONFIG_UBIFS_ATIME_SUPPORT=y -CONFIG_UBIFS_FS_XATTR=y -CONFIG_UBIFS_FS_SECURITY=y -CONFIG_UBIFS_FS_AUTHENTICATION=y -CONFIG_CRAMFS=m -CONFIG_CRAMFS_BLOCKDEV=y -CONFIG_CRAMFS_MTD=y -CONFIG_SQUASHFS=y -# CONFIG_SQUASHFS_FILE_CACHE is not set -CONFIG_SQUASHFS_FILE_DIRECT=y -CONFIG_SQUASHFS_DECOMP_SINGLE=y -CONFIG_SQUASHFS_DECOMP_MULTI=y -CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y -CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y -CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y -CONFIG_SQUASHFS_XATTR=y -CONFIG_SQUASHFS_ZLIB=y -CONFIG_SQUASHFS_LZ4=y -CONFIG_SQUASHFS_LZO=y -CONFIG_SQUASHFS_XZ=y -CONFIG_SQUASHFS_ZSTD=y -# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set -# CONFIG_SQUASHFS_EMBEDDED is not set -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -# CONFIG_VXFS_FS is not set -CONFIG_MINIX_FS=m -CONFIG_OMFS_FS=m -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX6FS_FS is not set -CONFIG_ROMFS_FS=m -CONFIG_ROMFS_BACKED_BY_BLOCK=y -# CONFIG_ROMFS_BACKED_BY_MTD is not set -# CONFIG_ROMFS_BACKED_BY_BOTH is not set -CONFIG_ROMFS_ON_BLOCK=y -CONFIG_PSTORE=y -CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 -CONFIG_PSTORE_DEFLATE_COMPRESS=m -CONFIG_PSTORE_LZO_COMPRESS=m -CONFIG_PSTORE_LZ4_COMPRESS=m -CONFIG_PSTORE_LZ4HC_COMPRESS=m -# CONFIG_PSTORE_842_COMPRESS is not set -CONFIG_PSTORE_ZSTD_COMPRESS=y -CONFIG_PSTORE_COMPRESS=y -# CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT is not set -# CONFIG_PSTORE_LZO_COMPRESS_DEFAULT is not set -# CONFIG_PSTORE_LZ4_COMPRESS_DEFAULT is not set -# CONFIG_PSTORE_LZ4HC_COMPRESS_DEFAULT is not set -CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y -CONFIG_PSTORE_COMPRESS_DEFAULT="zstd" -# CONFIG_PSTORE_CONSOLE is not set -# CONFIG_PSTORE_PMSG is not set -# CONFIG_PSTORE_FTRACE is not set -CONFIG_PSTORE_RAM=m -CONFIG_PSTORE_ZONE=m -CONFIG_PSTORE_BLK=m -CONFIG_PSTORE_BLK_BLKDEV="" -CONFIG_PSTORE_BLK_KMSG_SIZE=64 -CONFIG_PSTORE_BLK_MAX_REASON=2 -# CONFIG_SYSV_FS is not set -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set -CONFIG_EROFS_FS=m -# CONFIG_EROFS_FS_DEBUG is not set -CONFIG_EROFS_FS_XATTR=y -CONFIG_EROFS_FS_POSIX_ACL=y -CONFIG_EROFS_FS_SECURITY=y -CONFIG_EROFS_FS_ZIP=y -CONFIG_EROFS_FS_ZIP_LZMA=y -CONFIG_EROFS_FS_ONDEMAND=y -CONFIG_EROFS_FS_PCPU_KTHREAD=y -CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y -CONFIG_VBOXSF_FS=m -CONFIG_NETWORK_FILESYSTEMS=y -# CONFIG_NFS_FS is not set -CONFIG_NFSD=m -# CONFIG_NFSD_V2 is not set -CONFIG_NFSD_V3_ACL=y -CONFIG_NFSD_V4=y -CONFIG_NFSD_PNFS=y -CONFIG_NFSD_BLOCKLAYOUT=y -CONFIG_NFSD_SCSILAYOUT=y -# CONFIG_NFSD_FLEXFILELAYOUT is not set -CONFIG_NFSD_V4_SECURITY_LABEL=y -CONFIG_GRACE_PERIOD=m -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -CONFIG_RPCSEC_GSS_KRB5_CRYPTOSYSTEM=y -# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_DES is not set -CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y -CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y -CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y -CONFIG_SUNRPC_DEBUG=y -CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_CEPH_FS=m -CONFIG_CEPH_FSCACHE=y -CONFIG_CEPH_FS_POSIX_ACL=y -CONFIG_CEPH_FS_SECURITY_LABEL=y -# CONFIG_CIFS is not set -CONFIG_SMB_SERVER=m -CONFIG_SMB_SERVER_SMBDIRECT=y -CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y -CONFIG_SMB_SERVER_KERBEROS5=y -CONFIG_SMBFS=m -CONFIG_CODA_FS=m -CONFIG_AFS_FS=m -# CONFIG_AFS_DEBUG is not set -CONFIG_AFS_FSCACHE=y -# CONFIG_AFS_DEBUG_CURSOR is not set -CONFIG_9P_FS=m -CONFIG_9P_FSCACHE=y -CONFIG_9P_FS_POSIX_ACL=y -CONFIG_9P_FS_SECURITY=y -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_737=m -CONFIG_NLS_CODEPAGE_775=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_CODEPAGE_852=m -CONFIG_NLS_CODEPAGE_855=m -CONFIG_NLS_CODEPAGE_857=m -CONFIG_NLS_CODEPAGE_860=m -CONFIG_NLS_CODEPAGE_861=m -CONFIG_NLS_CODEPAGE_862=m -CONFIG_NLS_CODEPAGE_863=m -CONFIG_NLS_CODEPAGE_864=m -CONFIG_NLS_CODEPAGE_865=m -CONFIG_NLS_CODEPAGE_866=m -CONFIG_NLS_CODEPAGE_869=m -CONFIG_NLS_CODEPAGE_936=m -CONFIG_NLS_CODEPAGE_950=m -CONFIG_NLS_CODEPAGE_932=m -CONFIG_NLS_CODEPAGE_949=m -CONFIG_NLS_CODEPAGE_874=m -CONFIG_NLS_ISO8859_8=m -CONFIG_NLS_CODEPAGE_1250=m -CONFIG_NLS_CODEPAGE_1251=m -CONFIG_NLS_ASCII=y -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_ISO8859_2=m -CONFIG_NLS_ISO8859_3=m -CONFIG_NLS_ISO8859_4=m -CONFIG_NLS_ISO8859_5=m -CONFIG_NLS_ISO8859_6=m -CONFIG_NLS_ISO8859_7=m -CONFIG_NLS_ISO8859_9=m -CONFIG_NLS_ISO8859_13=m -CONFIG_NLS_ISO8859_14=m -CONFIG_NLS_ISO8859_15=m -CONFIG_NLS_KOI8_R=m -CONFIG_NLS_KOI8_U=m -CONFIG_NLS_MAC_ROMAN=m -CONFIG_NLS_MAC_CELTIC=m -CONFIG_NLS_MAC_CENTEURO=m -CONFIG_NLS_MAC_CROATIAN=m -CONFIG_NLS_MAC_CYRILLIC=m -CONFIG_NLS_MAC_GAELIC=m -CONFIG_NLS_MAC_GREEK=m -CONFIG_NLS_MAC_ICELAND=m -CONFIG_NLS_MAC_INUIT=m -CONFIG_NLS_MAC_ROMANIAN=m -CONFIG_NLS_MAC_TURKISH=m -CONFIG_NLS_UTF8=y -CONFIG_DLM=m -CONFIG_DLM_DEBUG=y -CONFIG_UNICODE=y -# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set -CONFIG_IO_WQ=y -# end of File systems - -# -# Security options -# -CONFIG_KEYS=y -CONFIG_KEYS_REQUEST_CACHE=y -CONFIG_PERSISTENT_KEYRINGS=y -CONFIG_TRUSTED_KEYS=m -CONFIG_TRUSTED_KEYS_TPM=y -CONFIG_TRUSTED_KEYS_TEE=y -CONFIG_ENCRYPTED_KEYS=m -# CONFIG_USER_DECRYPTED_DATA is not set -CONFIG_KEY_DH_OPERATIONS=y -CONFIG_SECURITY_DMESG_RESTRICT=y -CONFIG_SECURITY=y -CONFIG_SECURITYFS=y -CONFIG_SECURITY_NETWORK=y -CONFIG_SECURITY_INFINIBAND=y -CONFIG_SECURITY_NETWORK_XFRM=y -CONFIG_SECURITY_PATH=y -# CONFIG_INTEL_TXT is not set -CONFIG_LSM_MMAP_MIN_ADDR=65536 -CONFIG_HARDENED_USERCOPY=y -CONFIG_FORTIFY_SOURCE=y -# CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_SECURITY_SELINUX=y -CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_DEVELOP=y -CONFIG_SECURITY_SELINUX_AVC_STATS=y -CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 -CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 -CONFIG_SECURITY_SMACK=y -CONFIG_SECURITY_SMACK_BRINGUP=y -CONFIG_SECURITY_SMACK_NETFILTER=y -CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y -CONFIG_SECURITY_TOMOYO=y -CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 -CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 -# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set -CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/usr/bin/tomoyo-init" -CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/usr/lib/systemd/systemd" -# CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set -CONFIG_SECURITY_APPARMOR=y -# CONFIG_SECURITY_APPARMOR_DEBUG is not set -CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y -CONFIG_SECURITY_APPARMOR_HASH=y -CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y -CONFIG_SECURITY_APPARMOR_EXPORT_BINARY=y -CONFIG_SECURITY_APPARMOR_PARANOID_LOAD=y -CONFIG_SECURITY_LOADPIN=y -CONFIG_SECURITY_LOADPIN_ENFORCE=y -CONFIG_SECURITY_YAMA=y -CONFIG_SECURITY_SAFESETID=y -CONFIG_SECURITY_LOCKDOWN_LSM=y -# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set -CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y -# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set -# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set -CONFIG_SECURITY_LANDLOCK=y -CONFIG_INTEGRITY=y -CONFIG_INTEGRITY_SIGNATURE=y -CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y -CONFIG_INTEGRITY_TRUSTED_KEYRING=y -CONFIG_INTEGRITY_PLATFORM_KEYRING=y -CONFIG_INTEGRITY_MACHINE_KEYRING=y -# CONFIG_INTEGRITY_CA_MACHINE_KEYRING is not set -CONFIG_LOAD_UEFI_KEYS=y -CONFIG_INTEGRITY_AUDIT=y -# CONFIG_IMA is not set -# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set -# CONFIG_EVM is not set -# CONFIG_DEFAULT_SECURITY_SELINUX is not set -# CONFIG_DEFAULT_SECURITY_SMACK is not set -# CONFIG_DEFAULT_SECURITY_TOMOYO is not set -# CONFIG_DEFAULT_SECURITY_APPARMOR is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor" - -# -# Kernel hardening options -# - -# -# Memory initialization -# -CONFIG_INIT_STACK_NONE=y -CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y -# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y -# CONFIG_ZERO_CALL_USED_REGS is not set -# end of Memory initialization - -CONFIG_RANDSTRUCT_NONE=y -# end of Kernel hardening options -# end of Security options - -CONFIG_XOR_BLOCKS=y -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_ASYNC_PQ=m -CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_SIG2=y -CONFIG_CRYPTO_SKCIPHER=y -CONFIG_CRYPTO_SKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_AKCIPHER=y -CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_KPP=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y -CONFIG_CRYPTO_PCRYPT=m -CONFIG_CRYPTO_CRYPTD=y -CONFIG_CRYPTO_AUTHENC=m -CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_SIMD=y -CONFIG_CRYPTO_ENGINE=m -# end of Crypto core or helper - -# -# Public-key cryptography -# -CONFIG_CRYPTO_RSA=y -CONFIG_CRYPTO_DH=y -CONFIG_CRYPTO_DH_RFC7919_GROUPS=y -CONFIG_CRYPTO_ECC=y -CONFIG_CRYPTO_ECDH=m -CONFIG_CRYPTO_ECDSA=y -CONFIG_CRYPTO_ECRDSA=m -CONFIG_CRYPTO_SM2=m -CONFIG_CRYPTO_CURVE25519=m -# end of Public-key cryptography - -# -# Block ciphers -# -CONFIG_CRYPTO_AES=y -CONFIG_CRYPTO_AES_TI=m -# CONFIG_CRYPTO_ANUBIS is not set -CONFIG_CRYPTO_ARIA=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_BLOWFISH_COMMON=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST_COMMON=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_FCRYPT=m -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_SEED is not set -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_SM4=m -CONFIG_CRYPTO_SM4_GENERIC=m -# CONFIG_CRYPTO_TEA is not set -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m -# end of Block ciphers - -# -# Length-preserving ciphers and modes -# -CONFIG_CRYPTO_ADIANTUM=m -# CONFIG_CRYPTO_ARC4 is not set -CONFIG_CRYPTO_CHACHA20=m -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CFB=m -CONFIG_CRYPTO_CTR=y -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_HCTR2=m -CONFIG_CRYPTO_KEYWRAP=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_OFB=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XCTR=m -CONFIG_CRYPTO_XTS=m -CONFIG_CRYPTO_NHPOLY1305=m -# end of Length-preserving ciphers and modes - -# -# AEAD (authenticated encryption with associated data) ciphers -# -CONFIG_CRYPTO_AEGIS128=m -CONFIG_CRYPTO_CHACHA20POLY1305=m -CONFIG_CRYPTO_CCM=y -CONFIG_CRYPTO_GCM=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_ECHAINIV=m -CONFIG_CRYPTO_ESSIV=m -# end of AEAD (authenticated encryption with associated data) ciphers - -# -# Hashes, digests, and MACs -# -CONFIG_CRYPTO_BLAKE2B=y -CONFIG_CRYPTO_CMAC=y -CONFIG_CRYPTO_GHASH=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_MD4=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_POLYVAL=m -CONFIG_CRYPTO_POLY1305=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA3=y -CONFIG_CRYPTO_SM3=m -CONFIG_CRYPTO_SM3_GENERIC=m -CONFIG_CRYPTO_STREEBOG=m -CONFIG_CRYPTO_VMAC=m -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_XXHASH=y -# end of Hashes, digests, and MACs - -# -# CRCs (cyclic redundancy checks) -# -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRCT10DIF=y -CONFIG_CRYPTO_CRC64_ROCKSOFT=y -# end of CRCs (cyclic redundancy checks) - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_LZO=m -CONFIG_CRYPTO_842=m -CONFIG_CRYPTO_LZ4=m -CONFIG_CRYPTO_LZ4HC=m -CONFIG_CRYPTO_ZSTD=y -# end of Compression - -# -# Random number generation -# -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_HASH=y -CONFIG_CRYPTO_DRBG_CTR=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_JITTERENTROPY=y -# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set -CONFIG_CRYPTO_KDF800108_CTR=y -# end of Random number generation - -# -# Userspace interface -# -CONFIG_CRYPTO_USER_API=y -CONFIG_CRYPTO_USER_API_HASH=y -CONFIG_CRYPTO_USER_API_SKCIPHER=y -CONFIG_CRYPTO_USER_API_RNG=m -# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set -CONFIG_CRYPTO_USER_API_AEAD=y -CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y -CONFIG_CRYPTO_STATS=y -# end of Userspace interface - -CONFIG_CRYPTO_HASH_INFO=y - -# -# Accelerated Cryptographic Algorithms for CPU (x86) -# -CONFIG_CRYPTO_CURVE25519_X86=m -CONFIG_CRYPTO_AES_NI_INTEL=y -CONFIG_CRYPTO_BLOWFISH_X86_64=m -CONFIG_CRYPTO_CAMELLIA_X86_64=m -CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m -CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m -CONFIG_CRYPTO_CAST5_AVX_X86_64=m -CONFIG_CRYPTO_CAST6_AVX_X86_64=m -CONFIG_CRYPTO_DES3_EDE_X86_64=y -CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m -CONFIG_CRYPTO_SERPENT_AVX_X86_64=m -CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m -CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64=m -CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m -CONFIG_CRYPTO_TWOFISH_X86_64=m -CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m -CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m -CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64=m -CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64=m -CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64=m -CONFIG_CRYPTO_CHACHA20_X86_64=m -CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m -CONFIG_CRYPTO_NHPOLY1305_SSE2=m -CONFIG_CRYPTO_NHPOLY1305_AVX2=m -CONFIG_CRYPTO_BLAKE2S_X86=y -CONFIG_CRYPTO_POLYVAL_CLMUL_NI=m -CONFIG_CRYPTO_POLY1305_X86_64=m -CONFIG_CRYPTO_SHA1_SSSE3=y -CONFIG_CRYPTO_SHA256_SSSE3=y -CONFIG_CRYPTO_SHA512_SSSE3=y -CONFIG_CRYPTO_SM3_AVX_X86_64=m -CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m -CONFIG_CRYPTO_CRC32C_INTEL=m -CONFIG_CRYPTO_CRC32_PCLMUL=m -CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m -# end of Accelerated Cryptographic Algorithms for CPU (x86) - -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_PADLOCK=m -CONFIG_CRYPTO_DEV_PADLOCK_AES=m -CONFIG_CRYPTO_DEV_PADLOCK_SHA=m -CONFIG_CRYPTO_DEV_ATMEL_I2C=m -CONFIG_CRYPTO_DEV_ATMEL_ECC=m -CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m -CONFIG_CRYPTO_DEV_CCP=y -CONFIG_CRYPTO_DEV_CCP_DD=m -CONFIG_CRYPTO_DEV_SP_CCP=y -CONFIG_CRYPTO_DEV_CCP_CRYPTO=m -CONFIG_CRYPTO_DEV_SP_PSP=y -CONFIG_CRYPTO_DEV_CCP_DEBUGFS=y -CONFIG_CRYPTO_DEV_NITROX=m -CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m -CONFIG_CRYPTO_DEV_QAT=m -CONFIG_CRYPTO_DEV_QAT_DH895xCC=m -CONFIG_CRYPTO_DEV_QAT_C3XXX=m -CONFIG_CRYPTO_DEV_QAT_C62X=m -CONFIG_CRYPTO_DEV_QAT_4XXX=m -CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m -CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m -CONFIG_CRYPTO_DEV_QAT_C62XVF=m -CONFIG_CRYPTO_DEV_CHELSIO=m -CONFIG_CRYPTO_DEV_VIRTIO=m -CONFIG_CRYPTO_DEV_SAFEXCEL=m -CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m -CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG=y -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_X509_CERTIFICATE_PARSER=y -CONFIG_PKCS8_PRIVATE_KEY_PARSER=m -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -CONFIG_SIGNED_PE_FILE_VERIFICATION=y -# CONFIG_FIPS_SIGNATURE_SELFTEST is not set - -# -# Certificates for signature checking -# -CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" -# CONFIG_MODULE_SIG_KEY_TYPE_RSA is not set -CONFIG_MODULE_SIG_KEY_TYPE_ECDSA=y -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -CONFIG_SECONDARY_TRUSTED_KEYRING=y -CONFIG_SYSTEM_BLACKLIST_KEYRING=y -CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" -CONFIG_SYSTEM_REVOCATION_LIST=y -CONFIG_SYSTEM_REVOCATION_KEYS="" -CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE=y -# end of Certificates for signature checking - -CONFIG_BINARY_PRINTF=y - -# -# Library routines -# -CONFIG_RAID6_PQ=y -# CONFIG_RAID6_PQ_BENCHMARK is not set -CONFIG_LINEAR_RANGES=y -CONFIG_PACKING=y -CONFIG_BITREVERSE=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_NET_UTILS=y -CONFIG_CORDIC=m -# CONFIG_PRIME_NUMBERS is not set -CONFIG_RATIONAL=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_IOMAP=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_HAS_FAST_MULTIPLIER=y -CONFIG_ARCH_USE_SYM_ANNOTATIONS=y - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=m -CONFIG_CRYPTO_LIB_GF128MUL=y -CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m -CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m -CONFIG_CRYPTO_LIB_CHACHA=m -CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m -CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m -CONFIG_CRYPTO_LIB_CURVE25519=m -CONFIG_CRYPTO_LIB_DES=y -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m -CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m -CONFIG_CRYPTO_LIB_POLY1305=m -CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_SHA256=y -# end of Crypto library routines - -CONFIG_CRC_CCITT=y -CONFIG_CRC16=y -CONFIG_CRC_T10DIF=y -CONFIG_CRC64_ROCKSOFT=y -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -# CONFIG_CRC32_SELFTEST is not set -CONFIG_CRC32_SLICEBY8=y -# CONFIG_CRC32_SLICEBY4 is not set -# CONFIG_CRC32_SARWATE is not set -# CONFIG_CRC32_BIT is not set -CONFIG_CRC64=y -CONFIG_CRC4=m -CONFIG_CRC7=m -CONFIG_LIBCRC32C=y -CONFIG_CRC8=m -CONFIG_XXHASH=y -# CONFIG_RANDOM32_SELFTEST is not set -CONFIG_842_COMPRESS=m -CONFIG_842_DECOMPRESS=m -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_LZ4_COMPRESS=y -CONFIG_LZ4HC_COMPRESS=y -CONFIG_LZ4_DECOMPRESS=y -CONFIG_ZSTD_COMMON=y -CONFIG_ZSTD_COMPRESS=y -CONFIG_ZSTD_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_IA64=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_SPARC=y -CONFIG_XZ_DEC_MICROLZMA=y -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_ZSTD=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_REED_SOLOMON=m -CONFIG_REED_SOLOMON_ENC8=y -CONFIG_REED_SOLOMON_DEC8=y -CONFIG_BCH=m -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m -CONFIG_BTREE=y -CONFIG_INTERVAL_TREE=y -CONFIG_INTERVAL_TREE_SPAN_ITER=y -CONFIG_XARRAY_MULTI=y -CONFIG_ASSOCIATIVE_ARRAY=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAS_DMA=y -CONFIG_DMA_OPS=y -CONFIG_NEED_SG_DMA_FLAGS=y -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y -CONFIG_SWIOTLB=y -CONFIG_DMA_COHERENT_POOL=y -CONFIG_DMA_CMA=y -# CONFIG_DMA_PERNUMA_CMA is not set - -# -# Default contiguous memory area size: -# -CONFIG_CMA_SIZE_MBYTES=256 -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_ALIGNMENT=8 -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_DMA_MAP_BENCHMARK is not set -CONFIG_SGL_ALLOC=y -CONFIG_IOMMU_HELPER=y -CONFIG_CHECK_SIGNATURE=y -# CONFIG_FORCE_NR_CPUS is not set -CONFIG_CPU_RMAP=y -CONFIG_DQL=y -CONFIG_GLOB=y -# CONFIG_GLOB_SELFTEST is not set -CONFIG_NLATTR=y -CONFIG_LRU_CACHE=m -CONFIG_CLZ_TAB=y -CONFIG_IRQ_POLL=y -CONFIG_MPILIB=y -CONFIG_SIGNATURE=y -CONFIG_DIMLIB=y -CONFIG_OID_REGISTRY=y -CONFIG_UCS2_STRING=y -CONFIG_HAVE_GENERIC_VDSO=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_VDSO_TIME_NS=y -CONFIG_FONT_SUPPORT=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_SG_POOL=y -CONFIG_ARCH_HAS_PMEM_API=y -CONFIG_MEMREGION=y -CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y -CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y -CONFIG_ARCH_HAS_COPY_MC=y -CONFIG_ARCH_STACKWALK=y -CONFIG_STACKDEPOT=y -CONFIG_SBITMAP=y -CONFIG_PARMAN=m -CONFIG_OBJAGG=m -# end of Library routines - -CONFIG_PLDMFW=y -CONFIG_ASN1_ENCODER=m -CONFIG_POLYNOMIAL=m - -# -# Kernel hacking -# - -# -# printk and dmesg options -# -CONFIG_PRINTK_TIME=y -# CONFIG_PRINTK_CALLER is not set -CONFIG_STACKTRACE_BUILD_ID=y -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONSOLE_LOGLEVEL_QUIET=4 -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -CONFIG_BOOT_PRINTK_DELAY=y -CONFIG_DYNAMIC_DEBUG=y -CONFIG_DYNAMIC_DEBUG_CORE=y -CONFIG_SYMBOLIC_ERRNAME=y -CONFIG_DEBUG_BUGVERBOSE=y -# end of printk and dmesg options - -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_MISC is not set - -# -# Compile-time checks and compiler options -# -CONFIG_DEBUG_INFO=y -CONFIG_AS_HAS_NON_CONST_LEB128=y -# CONFIG_DEBUG_INFO_NONE is not set -# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -CONFIG_DEBUG_INFO_DWARF5=y -# CONFIG_DEBUG_INFO_REDUCED is not set -CONFIG_DEBUG_INFO_COMPRESSED_NONE=y -# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set -# CONFIG_DEBUG_INFO_SPLIT is not set -# CONFIG_GDB_SCRIPTS is not set -CONFIG_FRAME_WARN=1024 -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_READABLE_ASM is not set -# CONFIG_HEADERS_INSTALL is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set -CONFIG_FRAME_POINTER=y -CONFIG_OBJTOOL=y -CONFIG_STACK_VALIDATION=y -# CONFIG_VMLINUX_MAP is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# end of Compile-time checks and compiler options - -# -# Generic Kernel Debugging Instruments -# -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 -CONFIG_MAGIC_SYSRQ_SERIAL=y -CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_FS_ALLOW_ALL=y -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y -# CONFIG_UBSAN is not set -CONFIG_HAVE_ARCH_KCSAN=y -CONFIG_HAVE_KCSAN_COMPILER=y -# CONFIG_KCSAN is not set -# end of Generic Kernel Debugging Instruments - -# -# Networking Debugging -# -# CONFIG_NET_DEV_REFCNT_TRACKER is not set -# CONFIG_NET_NS_REFCNT_TRACKER is not set -# CONFIG_DEBUG_NET is not set -# end of Networking Debugging - -# -# Memory Debugging -# -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_SLUB_DEBUG=y -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_TABLE_CHECK is not set -CONFIG_PAGE_POISONING=y -# CONFIG_DEBUG_PAGE_REF is not set -CONFIG_DEBUG_RODATA_TEST=y -CONFIG_ARCH_HAS_DEBUG_WX=y -CONFIG_DEBUG_WX=y -CONFIG_GENERIC_PTDUMP=y -CONFIG_PTDUMP_CORE=y -# CONFIG_PTDUMP_DEBUGFS is not set -CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_PER_VMA_LOCK_STATS is not set -# CONFIG_DEBUG_OBJECTS is not set -CONFIG_SHRINKER_DEBUG=y -# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_SCHED_STACK_END_CHECK=y -CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_VM_PGTABLE is not set -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_PER_CPU_MAPS is not set -CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y -# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set -CONFIG_HAVE_ARCH_KASAN=y -CONFIG_HAVE_ARCH_KASAN_VMALLOC=y -CONFIG_CC_HAS_KASAN_GENERIC=y -CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y -# CONFIG_KASAN is not set -CONFIG_HAVE_ARCH_KFENCE=y -CONFIG_KFENCE=y -CONFIG_KFENCE_SAMPLE_INTERVAL=100 -CONFIG_KFENCE_NUM_OBJECTS=255 -CONFIG_KFENCE_DEFERRABLE=y -# CONFIG_KFENCE_STATIC_KEYS is not set -CONFIG_KFENCE_STRESS_TEST_FAULTS=0 -CONFIG_HAVE_ARCH_KMSAN=y -# end of Memory Debugging - -CONFIG_DEBUG_SHIRQ=y - -# -# Debug Oops, Lockups and Hangs -# -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 -CONFIG_LOCKUP_DETECTOR=y -CONFIG_SOFTLOCKUP_DETECTOR=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y -CONFIG_HARDLOCKUP_DETECTOR=y -# CONFIG_HARDLOCKUP_DETECTOR_PREFER_BUDDY is not set -CONFIG_HARDLOCKUP_DETECTOR_PERF=y -# CONFIG_HARDLOCKUP_DETECTOR_BUDDY is not set -# CONFIG_HARDLOCKUP_DETECTOR_ARCH is not set -CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER=y -CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_WQ_WATCHDOG is not set -# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set -# CONFIG_TEST_LOCKUP is not set -# end of Debug Oops, Lockups and Hangs - -# -# Scheduler Debugging -# -CONFIG_SCHED_DEBUG=y -CONFIG_SCHED_INFO=y -CONFIG_SCHEDSTATS=y -# end of Scheduler Debugging - -# CONFIG_DEBUG_TIMEKEEPING is not set -# CONFIG_DEBUG_PREEMPT is not set - -# -# Lock Debugging (spinlocks, mutexes, etc...) -# -CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_RWSEMS is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_SCF_TORTURE_TEST is not set -# CONFIG_CSD_LOCK_WAIT_DEBUG is not set -# end of Lock Debugging (spinlocks, mutexes, etc...) - -CONFIG_TRACE_IRQFLAGS=y -CONFIG_TRACE_IRQFLAGS_NMI=y -# CONFIG_NMI_CHECK_CPU is not set -# CONFIG_DEBUG_IRQFLAGS is not set -CONFIG_STACKTRACE=y -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -# CONFIG_DEBUG_KOBJECT is not set - -# -# Debug kernel data structures -# -CONFIG_DEBUG_LIST=y -# CONFIG_DEBUG_PLIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# CONFIG_DEBUG_MAPLE_TREE is not set -# end of Debug kernel data structures - -# CONFIG_DEBUG_CREDENTIALS is not set - -# -# RCU Debugging -# -# CONFIG_RCU_SCALE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 -# CONFIG_RCU_CPU_STALL_CPUTIME is not set -# CONFIG_RCU_TRACE is not set -# CONFIG_RCU_EQS_DEBUG is not set -# end of RCU Debugging - -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -CONFIG_LATENCYTOP=y -# CONFIG_DEBUG_CGROUP_REF is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_NOP_TRACER=y -CONFIG_HAVE_RETHOOK=y -CONFIG_RETHOOK=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_FENTRY=y -CONFIG_HAVE_OBJTOOL_MCOUNT=y -CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y -CONFIG_BUILDTIME_MCOUNT_SORT=y -CONFIG_TRACER_MAX_TRACE=y -CONFIG_TRACE_CLOCK=y -CONFIG_RING_BUFFER=y -CONFIG_EVENT_TRACING=y -CONFIG_CONTEXT_SWITCH_TRACER=y -CONFIG_RING_BUFFER_ALLOW_SWAP=y -CONFIG_PREEMPTIRQ_TRACEPOINTS=y -CONFIG_TRACING=y -CONFIG_GENERIC_TRACER=y -CONFIG_TRACING_SUPPORT=y -CONFIG_FTRACE=y -CONFIG_BOOTTIME_TRACING=y -CONFIG_FUNCTION_TRACER=y -CONFIG_FUNCTION_GRAPH_TRACER=y -# CONFIG_FUNCTION_GRAPH_RETVAL is not set -CONFIG_DYNAMIC_FTRACE=y -CONFIG_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y -CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_FPROBE=y -CONFIG_FUNCTION_PROFILER=y -CONFIG_STACK_TRACER=y -CONFIG_IRQSOFF_TRACER=y -# CONFIG_PREEMPT_TRACER is not set -CONFIG_SCHED_TRACER=y -CONFIG_HWLAT_TRACER=y -CONFIG_OSNOISE_TRACER=y -CONFIG_TIMERLAT_TRACER=y -CONFIG_MMIOTRACE=y -CONFIG_FTRACE_SYSCALLS=y -CONFIG_TRACER_SNAPSHOT=y -CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y -CONFIG_BRANCH_PROFILE_NONE=y -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set -CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_FPROBE_EVENTS=y -CONFIG_KPROBE_EVENTS=y -# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set -CONFIG_UPROBE_EVENTS=y -CONFIG_BPF_EVENTS=y -CONFIG_DYNAMIC_EVENTS=y -CONFIG_PROBE_EVENTS=y -CONFIG_BPF_KPROBE_OVERRIDE=y -CONFIG_FTRACE_MCOUNT_RECORD=y -CONFIG_FTRACE_MCOUNT_USE_CC=y -CONFIG_TRACING_MAP=y -CONFIG_SYNTH_EVENTS=y -# CONFIG_USER_EVENTS is not set -CONFIG_HIST_TRIGGERS=y -# CONFIG_TRACE_EVENT_INJECT is not set -# CONFIG_TRACEPOINT_BENCHMARK is not set -# CONFIG_RING_BUFFER_BENCHMARK is not set -# CONFIG_TRACE_EVAL_MAP_FILE is not set -# CONFIG_FTRACE_RECORD_RECURSION is not set -# CONFIG_FTRACE_STARTUP_TEST is not set -# CONFIG_FTRACE_SORT_STARTUP_TEST is not set -# CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set -# CONFIG_MMIOTRACE_TEST is not set -# CONFIG_PREEMPTIRQ_DELAY_TEST is not set -# CONFIG_SYNTH_EVENT_GEN_TEST is not set -# CONFIG_KPROBE_EVENT_GEN_TEST is not set -# CONFIG_HIST_TRIGGERS_DEBUG is not set -# CONFIG_RV is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y -CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y -CONFIG_STRICT_DEVMEM=y -# CONFIG_IO_STRICT_DEVMEM is not set - -# -# x86 Debugging -# -CONFIG_EARLY_PRINTK_USB=y -# CONFIG_X86_VERBOSE_BOOTUP is not set -CONFIG_EARLY_PRINTK=y -CONFIG_EARLY_PRINTK_DBGP=y -CONFIG_EARLY_PRINTK_USB_XDBC=y -# CONFIG_EFI_PGT_DUMP is not set -# CONFIG_DEBUG_TLBFLUSH is not set -# CONFIG_IOMMU_DEBUG is not set -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -CONFIG_X86_DECODER_SELFTEST=y -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEBUG_BOOT_PARAMS=y -# CONFIG_CPA_DEBUG is not set -# CONFIG_DEBUG_ENTRY is not set -# CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_X86_DEBUG_FPU is not set -# CONFIG_PUNIT_ATOM_DEBUG is not set -# CONFIG_UNWINDER_ORC is not set -CONFIG_UNWINDER_FRAME_POINTER=y -# end of x86 Debugging - -# -# Kernel Testing and Coverage -# -# CONFIG_KUNIT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -CONFIG_FUNCTION_ERROR_INJECTION=y -# CONFIG_FAULT_INJECTION is not set -CONFIG_ARCH_HAS_KCOV=y -CONFIG_CC_HAS_SANCOV_TRACE_PC=y -# CONFIG_KCOV is not set -CONFIG_RUNTIME_TESTING_MENU=y -# CONFIG_TEST_DHRY is not set -# CONFIG_LKDTM is not set -# CONFIG_TEST_MIN_HEAP is not set -# CONFIG_TEST_DIV64 is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_TEST_REF_TRACKER is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_REED_SOLOMON_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set -# CONFIG_ATOMIC64_SELFTEST is not set -CONFIG_ASYNC_RAID6_TEST=m -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_STRING_SELFTEST is not set -# CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_TEST_PRINTF is not set -# CONFIG_TEST_SCANF is not set -# CONFIG_TEST_BITMAP is not set -# CONFIG_TEST_UUID is not set -# CONFIG_TEST_XARRAY is not set -# CONFIG_TEST_MAPLE_TREE is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_IDA is not set -# CONFIG_TEST_PARMAN is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_BITOPS is not set -# CONFIG_TEST_VMALLOC is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_BLACKHOLE_DEV is not set -# CONFIG_FIND_BIT_BENCHMARK is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_SYSCTL is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_DYNAMIC_DEBUG is not set -# CONFIG_TEST_KMOD is not set -# CONFIG_TEST_MEMCAT_P is not set -# CONFIG_TEST_OBJAGG is not set -# CONFIG_TEST_MEMINIT is not set -# CONFIG_TEST_HMM is not set -# CONFIG_TEST_FREE_PAGES is not set -# CONFIG_TEST_FPU is not set -# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set -CONFIG_ARCH_USE_MEMTEST=y -CONFIG_MEMTEST=y -# CONFIG_HYPERV_TESTING is not set -# end of Kernel Testing and Coverage - -# -# Rust hacking -# -# end of Rust hacking -# end of Kernel hacking diff --git a/projects/PC/devices/INTEL64/options b/projects/PC/devices/INTEL64/options deleted file mode 100644 index c58c6be64..000000000 --- a/projects/PC/devices/INTEL64/options +++ /dev/null @@ -1,129 +0,0 @@ - case ${TARGET_ARCH} in - x86_64|i686) - if [ -z "${TARGET_CPU}" ] - then - TARGET_CPU="haswell" - fi - ;; - esac - - # kernel command line - EXTRA_CMDLINE="quiet console=tty0 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20 intel_pstate=active amd_pstate=active amd_pstate.shared_mem=1 amdgpu.dpm=1" - - # Partition label - PARTITION_TABLE="msdos" - - # OpenGL(X) implementation to use (mesa / no) - OPENGL="mesa" - - # OpenGL-ES implementation to use (mesa / no) - OPENGLES="mesa" - - # Vulkan implementation to use (vulkan-loader / no) - VULKAN="vulkan-loader" - - # VULKAN_SUPPORT - VULKAN_SUPPORT="yes" - - # Displayserver to use (weston / x11 / no) - DISPLAYSERVER="wl" - - # Windowmanager to use (fluxbox / weston / no) - WINDOWMANAGER="weston" - - # Default weston terminal font size - WESTONFONTSIZE="18" - - # Mesa 3D Graphic drivers to use (all / crocus,i915,iris,r300,r600,radeonsi,vmware,virtio) - # Space separated list is supported, - # e.g. GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" - GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" - - # additional packages to install - # ADDITIONAL_PACKAGES="" - - # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) - # Space separated list is supported, - # e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware" - FIRMWARE="misc-firmware wlan-firmware asus-firmware" - - # additional drivers to install: - # for a list of additional drivers see packages/linux-drivers - # Space separated list is supported, - # e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" - # ADDITIONAL_DRIVERS="" - ADDITIONAL_DRIVERS="RTL8812AU RTL8814AU RTL8821AU RTL8821CU RTL88x2BU ryzensmu ayn-platform" - - # build and install driver addons (yes / no) - DRIVER_ADDONS_SUPPORT="no" - - # driver addons to install: - # for a list of additinoal drivers see packages/linux-driver-addons - # Space separated list is supported, - DRIVER_ADDONS="" - - # debug tty path - DEBUG_TTY="/dev/ttyFIQ0" - - # Disable 32BIT support - ENABLE_32BIT="false" - - # build and install bluetooth support (yes / no) - BLUETOOTH_SUPPORT="yes" - - # build and install Avahi (Zeroconf) daemon (yes / no) - AVAHI_DAEMON="no" - - # build with NFS support (mounting nfs shares via the OS) (yes / no) - NFS_SUPPORT="no" - - # build with Samba Client support (mounting samba shares via the OS) (yes / no) - SAMBA_SUPPORT="no" - - # build and install Samba Server (yes / no) - SAMBA_SERVER="yes" - - # build and install SFTP Server (yes / no) - SFTP_SERVER="yes" - - # build and install OpenVPN support (yes / no) - OPENVPN_SUPPORT="no" - - # build and install ZeroTier support (yes / no) - ZEROTIER_SUPPORT="yes" - - # build and install diskmounter support (udevil) - # this service provide auto mounting support for external drives in the - # mediacenter also automount internally drives at boottime via udev (yes / no) - UDEVIL="yes" - - # build and install exFAT fuse support (yes / no) - EXFAT="yes" - - # build and install NTFS-3G fuse support (yes / no) - NTFS3G="yes" - - # build and install hfs filesystem utilities (yes / no) - HFSTOOLS="no" - - # Support for partitioning and formating disks in initramfs (yes / no) - # This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage - INITRAMFS_PARTED_SUPPORT="yes" - - # build with swap support (yes / no) - SWAP_SUPPORT="yes" - - # swap support enabled per default (yes / no) - SWAP_ENABLED_DEFAULT="yes" - - # swapfile size if SWAP_SUPPORT=yes in MB - SWAPFILESIZE="1024" - - # cron support (yes / no) - CRON_SUPPORT="no" - - # Settings package name - blank if not required - DISTRO_PKG_SETTINGS="" - - # htop tool (yes / no) - HTOP_TOOL="yes" From bc1fb28be670d33f60560b1c90747c352e531776 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 9 Nov 2023 12:36:28 +0000 Subject: [PATCH 106/112] Bump AMD64 kernel to 6.5.11. --- packages/kernel/linux/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kernel/linux/package.mk b/packages/kernel/linux/package.mk index 0e60dbc8b..55e3a7c15 100644 --- a/packages/kernel/linux/package.mk +++ b/packages/kernel/linux/package.mk @@ -4,7 +4,7 @@ PKG_NAME="linux" PKG_LICENSE="GPL" -PKG_VERSION="6.5.10" +PKG_VERSION="6.5.11" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" From 1f29f8e3ad3c40de3fa57821e9f6d47488a34928 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 9 Nov 2023 14:53:06 +0000 Subject: [PATCH 107/112] Fix patch oops with vitaquake2-lr. --- packages/emulators/libretro/vitaquake2-lr/package.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/emulators/libretro/vitaquake2-lr/package.mk b/packages/emulators/libretro/vitaquake2-lr/package.mk index ed07e5db1..24e1c4bcd 100644 --- a/packages/emulators/libretro/vitaquake2-lr/package.mk +++ b/packages/emulators/libretro/vitaquake2-lr/package.mk @@ -8,7 +8,6 @@ PKG_SITE="https://github.com/libretro/vitaquake2" PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_SHORTDESC="Libretro port of VitaQuakeII (Quake 2 engine)" -PKG_PATCH_DIRS+="${TARGET_ARCH}" if [ "${OPENGL_SUPPORT}" = "yes" ]; then PKG_DEPENDS_TARGET+=" ${OPENGL}" From c8875a2e18ea198b20b9575ebb466d08505042b8 Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 9 Nov 2023 15:00:07 +0000 Subject: [PATCH 108/112] Unpack should honor the target arch for patches and not alter it. --- scripts/unpack | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/scripts/unpack b/scripts/unpack index fe08c3447..fc989f33b 100755 --- a/scripts/unpack +++ b/scripts/unpack @@ -124,13 +124,7 @@ if [ -d "${SOURCES}/${PKG_NAME}" -o -d "${PKG_DIR}/sources" ] || pkg_call_exists if [ "${PKG_SKIP_PATCHES}" != "yes" ]; then pkg_call_exists pre_patch && pkg_call pre_patch - - if [ "${TARGET_ARCH}" = "x86_64" ]; then - PATCH_ARCH="x86" - else - #PATCH_ARCH="${TARGET_PATCH_ARCH:-${TARGET_ARCH}}" - PATCH_ARCH="${TARGET_ARCH}" - fi + PATCH_ARCH="${TARGET_ARCH}" PATCH_DIRS_PKG="" PATCH_DIRS_PRJ="" From a2eb3fab4fe1840d7d3930d22adc4ecc80d7e6cf Mon Sep 17 00:00:00 2001 From: fewtarius Date: Thu, 9 Nov 2023 17:55:26 +0000 Subject: [PATCH 109/112] Update documentation. --- .../AMD64/SUPPORTED_EMULATORS_AND_CORES.md | 12 ++++++------ .../RK3326/SUPPORTED_EMULATORS_AND_CORES.md | 10 +++++----- .../RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md | 10 +++++----- .../RK3566/SUPPORTED_EMULATORS_AND_CORES.md | 10 +++++----- .../RK3588/SUPPORTED_EMULATORS_AND_CORES.md | 10 +++++----- .../S922X/SUPPORTED_EMULATORS_AND_CORES.md | 12 ++++++------ 6 files changed, 32 insertions(+), 32 deletions(-) diff --git a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md index ed878e731..d61f1962b 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae (default)
**retroarch:** puae2021
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae (default)
**retroarch:** puae2021
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -61,7 +61,6 @@ This document describes all available systems emulators and cores available for |NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
| |Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)
| -|Nintendo|3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**retroarch:** citra (default)
**citra:** citra-sa
| |Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| |Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**mednafen:** nes
| |Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw
| @@ -72,14 +71,15 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
**primehack:** primehack
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| +|Nintendo|Nintendo 3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**retroarch:** citra (default)
**citra:** citra-sa
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**retroarch:** melonds (default)
**retroarch:** desmume
**melonds:** melonds-sa
| |Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
| |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes
| |Nintendo|Switch (switch)|2017|`switch`|.xci .nsp .nca .nso .nro|**yuzu:** yuzu-sa (default)
**ryujinx:** ryujinx-sa
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md index dea770681..06863147f 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -69,7 +69,6 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**mednafen:** gba
| |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**retroarch:** desmume
| @@ -77,6 +76,7 @@ This document describes all available systems emulators and cores available for |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes_faust
**mednafen:** snes_faust
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md index a69842b6b..84b388059 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3566-X55/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -69,7 +69,6 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
| |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**retroarch:** desmume
| @@ -77,6 +76,7 @@ This document describes all available systems emulators and cores available for |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md index a69842b6b..84b388059 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3566/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -69,7 +69,6 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
| |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**retroarch:** desmume
| @@ -77,6 +76,7 @@ This document describes all available systems emulators and cores available for |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md index 7a254a18f..b7e43b21d 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -70,7 +70,6 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa
**retroarch:** melonds (default)
**melonds:** melonds-sa
**retroarch:** desmume
| @@ -78,6 +77,7 @@ This document describes all available systems emulators and cores available for |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md index 6d13829c0..ffdb7ea51 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae (default)
**retroarch:** puae2021
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae (default)
**retroarch:** puae2021
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -60,7 +60,6 @@ This document describes all available systems emulators and cores available for |NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| |NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| |Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)
| -|Nintendo|3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**citra:** citra-sa (default)
| |Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| |Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
| |Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw
| @@ -71,14 +70,15 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|Nintendo 3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**citra:** citra-sa (default)
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
| |Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| From bcb6572b544b50639392fee9a7274ed6d8e22ef2 Mon Sep 17 00:00:00 2001 From: mason Date: Fri, 10 Nov 2023 00:08:15 +0000 Subject: [PATCH 110/112] Switch over PortMaster to new UI --- .../RK3326/SUPPORTED_EMULATORS_AND_CORES.md | 10 +- .../RK3399/SUPPORTED_EMULATORS_AND_CORES.md | 10 +- .../S922X/SUPPORTED_EMULATORS_AND_CORES.md | 12 +- packages/apps/portmaster/package.mk | 26 +- .../portmaster/scripts/start_portmaster.sh | 37 +- .../apps/portmaster/sources/PortMaster.sh | 337 ------------------ packages/apps/portmaster/sources/control.txt | 72 ++++ .../apps/portmaster/sources/libegl.tar.gz | Bin 502975 -> 0 bytes packages/apps/portmaster/sources/mapper.txt | 135 +++++++ .../apps/portmaster/sources/portmaster.tar.gz | Bin 256431 -> 0 bytes 10 files changed, 257 insertions(+), 382 deletions(-) delete mode 100644 packages/apps/portmaster/sources/PortMaster.sh create mode 100644 packages/apps/portmaster/sources/control.txt delete mode 100755 packages/apps/portmaster/sources/libegl.tar.gz create mode 100644 packages/apps/portmaster/sources/mapper.txt delete mode 100644 packages/apps/portmaster/sources/portmaster.tar.gz diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md index dea770681..06863147f 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3326/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -69,7 +69,6 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**mednafen:** gba
| |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**retroarch:** desmume
| @@ -77,6 +76,7 @@ This document describes all available systems emulators and cores available for |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes_faust
**mednafen:** snes_faust
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md index e4defa119..9a7b411fe 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -70,7 +70,6 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**melonds:** melonds-sa
**retroarch:** desmume
| @@ -78,6 +77,7 @@ This document describes all available systems emulators and cores available for |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
| diff --git a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md index 6d13829c0..ffdb7ea51 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae (default)
**retroarch:** puae2021
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae (default)
**retroarch:** puae2021
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -60,7 +60,6 @@ This document describes all available systems emulators and cores available for |NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| |NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
| |Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)
| -|Nintendo|3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**citra:** citra-sa (default)
| |Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| |Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
| |Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw
| @@ -71,14 +70,15 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
| |Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| +|Nintendo|Nintendo 3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**citra:** citra-sa (default)
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
| |Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
| |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
| diff --git a/packages/apps/portmaster/package.mk b/packages/apps/portmaster/package.mk index 32f38e605..e093e8085 100644 --- a/packages/apps/portmaster/package.mk +++ b/packages/apps/portmaster/package.mk @@ -2,8 +2,9 @@ # Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS) PKG_NAME="portmaster" -PKG_VERSION="f8adbe08805d9fe9171cb2e3078f383631d1331d" -PKG_SITE="https://github.com/christianhaitian/PortMaster" +PKG_VERSION="8.5.2_0811" +PKG_SITE="https://github.com/PortsMaster/PortMaster-GUI" +PKG_URL="${PKG_SITE}/releases/download/${PKG_VERSION}/PortMaster.zip" PKG_LICENSE="MIT" PKG_ARCH="arm aarch64" PKG_DEPENDS_TARGET="toolchain gptokeyb gamecontrollerdb wget oga_controls libegl" @@ -13,12 +14,25 @@ PKG_LONGDESC="Portmaster - a simple tool that allows you to download various gam makeinstall_target() { export STRIP=true mkdir -p ${INSTALL}/usr/config/PortMaster - tar -xvf ${PKG_DIR}/sources/${PKG_NAME}.tar.gz -C ${INSTALL}/usr/config/PortMaster - - cp -rf ${PKG_DIR}/sources/PortMaster.sh ${INSTALL}/usr/config/PortMaster - chmod +x ${INSTALL}/usr/config/PortMaster/PortMaster.sh + cp ${PKG_DIR}/sources/* ${INSTALL}/usr/config/PortMaster/ mkdir -p ${INSTALL}/usr/bin cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin chmod +x ${INSTALL}/usr/bin/start_portmaster.sh + + mkdir -p ${INSTALL}/usr/config/PortMaster/release + curl -Lo ${INSTALL}/usr/config/PortMaster/release/PortMaster.zip ${PKG_URL} +} + +post_install() { + case ${DEVICE} in + S922X) + LIBEGL="export SDL_VIDEO_GL_DRIVER=\/usr\/lib\/egl\/libGL.so.1 SDL_VIDEO_EGL_DRIVER=\/usr\/lib\/egl\/libEGL.so.1" + ;; + *) + LIBEGL="" + ;; + esac + sed -e "s/@LIBEGL@/${LIBEGL}/g" \ + -i ${INSTALL}/usr/bin/start_portmaster.sh } diff --git a/packages/apps/portmaster/scripts/start_portmaster.sh b/packages/apps/portmaster/scripts/start_portmaster.sh index 9a9469bc9..70bcdeaeb 100644 --- a/packages/apps/portmaster/scripts/start_portmaster.sh +++ b/packages/apps/portmaster/scripts/start_portmaster.sh @@ -13,44 +13,35 @@ fi cd /storage/.config/PortMaster -#Grab the latest PortMaster.sh script -cp /usr/config/PortMaster/PortMaster.sh PortMaster.sh +#Grab the latest control.txt cp /usr/config/PortMaster/control.txt control.txt #Use our gamecontrollerdb.txt -rm gamecontrollerdb.txt +rm -r gamecontrollerdb.txt ln -sf /usr/config/SDL-GameControllerDB/gamecontrollerdb.txt gamecontrollerdb.txt -#Use our gptokeyb -rm gptokeyb -ln -sf /usr/bin/gptokeyb gptokeyb -cp /usr/config/PortMaster/portmaster.gptk portmaster.gptk - -#Use our wget -ln -sf /usr/bin/wget wget +#Delete old PortMaster fold first (we can probably remove this later) +if [ ! -f "/storage/roms/ports/PortMaster/pugwash" ]; then + rm -r /storage/roms/ports/PortMaster +fi #Make sure roms/ports/PortMaster folder exists if [ ! -d "/storage/roms/ports/PortMaster" ]; then - mkdir -p "/storage/roms/ports/PortMaster" + unzip /usr/config/PortMaster/release/PortMaster.zip -d /storage/roms/ports/ + chmod +x /storage/roms/ports/PortMaster/PortMaster.sh fi -#Make sure libs the folder exists -if [ ! -d "/storage/roms/ports/PortMaster/libs" ]; then - mkdir -p "/storage/roms/ports/PortMaster/libs" -fi +#Use PortMasters gptokeyb +rm gptokeyb +cp /storage/roms/ports/PortMaster/gptokeyb gptokeyb #Copy over required files for ports cp /storage/.config/PortMaster/control.txt /storage/roms/ports/PortMaster/control.txt -cp /storage/.config/PortMaster/gptokeyb /storage/roms/ports/PortMaster/gptokeyb cp /storage/.config/PortMaster/gamecontrollerdb.txt /storage/roms/ports/PortMaster/gamecontrollerdb.txt - cp /usr/bin/oga_controls* /storage/roms/ports/PortMaster/ -#Delete and refrence to PortMaster.sh, we only want to use ours. -find /storage/roms/ports -type f -name "PortMaster.sh" -delete - #Start PortMaster -run ./PortMaster.sh 2>/dev/null +@LIBEGL@ -#Kill gptokeyb at exit -pkill -9 gptokeyb +cd /storage/roms/ports/PortMaster +run ./PortMaster.sh 2>/dev/null diff --git a/packages/apps/portmaster/sources/PortMaster.sh b/packages/apps/portmaster/sources/PortMaster.sh deleted file mode 100644 index b67cd1083..000000000 --- a/packages/apps/portmaster/sources/PortMaster.sh +++ /dev/null @@ -1,337 +0,0 @@ -#!/bin/bash -# -# PortMaster -# https://github.com/christianhaitian/arkos/wiki/ArkOS-Emulators-and-Ports-information#ports -# Description : A simple tool that allows you to download -# various game ports for Jelos. -# - -if [ -f "/etc/profile" ]; then - source /etc/profile -fi - -toolsfolderloc="/storage/.config" - -isitext=$(df -PTh $toolsfolderloc | awk '{print $2}' | grep ext) - -if [[ "${UI_SERVICE}" =~ weston.service ]]; then - CUR_TTY="/dev/tty" -else - CUR_TTY="/dev/tty0" -fi - -ESUDO="" -export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/storage/.config/PortMaster/libs" -GREP="/storage/.config/PortMaster/grep" -WGET="/usr/bin/wget" -LANG="" -export DIALOGRC=/storage/.config/PortMaster/colorscheme/jelos.dialogrc -app_colorscheme="Default" -mono_version="mono-6.12.0.122-aarch64.squashfs" - -chmod 666 ${CUR_TTY} -export TERM=linux -export XDG_RUNTIME_DIR=/run/user/$UID/ -printf "\033c" > ${CUR_TTY} -# hide cursor -printf "\e[?25h" > ${CUR_TTY} -dialog --clear - -hotkey="Select" -power='(?<=Title_P=\").*?(?=\")' -opengl="None" -jport="None" -device=$(cat /sys/firmware/devicetree/base/model 2>/dev/null) - -# Set device for oga controls profile -case ${device} in - "Anbernic RG552") - param_device="rg552" - height="20" - width="60" - opengl='(?<=Title_F=\").*?(?=\")' - ;; - "Hardkernel ODROID-GO-Ultra"|"Powkiddy RGB10 MAX 3"|"Hardkernel ODROID-N2*") - param_device="s922x" - height="20" - width="60" - opengl="None" - ;; - "Powkiddy x55") - param_device="x55" - height="20" - width="60" - opengl="None" - ;; - "Anbernic RG351*") - param_device="anbernic" - opengl='(?<=Title_F=\").*?(?=\")' - height="15" - width="55" - ;; - "ODROID-GO Advance*") - param_device="oga" - opengl='(?<=Title_F=\").*?(?=\")' - height="15" - width="55" - ;; - "ODROID-GO Super") - param_device="ogs" - opengl='(?<=Title_F=\").*?(?=\")' - height="20" - width="60" - ;; - *) - param_device="rg552" - height="20" - width="60" - opengl="None" - ;; -esac - - -cd $toolsfolderloc/PortMaster - -cp "$toolsfolderloc/PortMaster/gamecontrollerdb.txt" /tmp/gamecontrollerdb.txt -$toolsfolderloc/PortMaster/mapper.txt "/tmp/gamecontrollerdb.txt" > /dev/null 2>&1 -export SDL_GAMECONTROLLERCONFIG_FILE="/tmp/gamecontrollerdb.txt" - -/usr/bin/gptokeyb PortMaster.sh -c "$toolsfolderloc/PortMaster/portmaster.gptk" & - -GW=`ip route | awk '/default/ { print $3 }'` -if [ -z "$GW" ]; then - dialog --clear --backtitle "PortMaster" --title "$1" --clear \ - --msgbox "\n\nYour network connection doesn't seem to be working. \ - \nDid you make sure to configure your wifi connection?" $height $width 2>&1 > ${CUR_TTY} - $ESUDO kill -9 $(pidof gptokeyb) - exit 0 -fi - -website="https://github.com/PortsMaster/PortMaster-Releases/releases/latest/download/" -jwebsite="https://github.com/brooksytech/JelosAddOns/releases/latest/download/" -isgithubrelease="true" #Github releases convert space " " ("%20") to "." - -if [ ! -d "/dev/shm/portmaster" ]; then - mkdir /dev/shm/portmaster -fi - -$WGET -t 3 -T 60 --no-check-certificate "$website"ports.md -O /dev/shm/portmaster/pports.md -$WGET -t 3 -T 60 --no-check-certificate "$jwebsite"jports.md -O /dev/shm/portmaster/jports.md - -#JELOS has moonlight built in, dont use PortMaster's version. -sed -i '/Title="Moonlight ."/d' /dev/shm/portmaster/pports.md - -#Combine PortMaster with JelosAddOns -cat /dev/shm/portmaster/pports.md /dev/shm/portmaster/jports.md > /dev/shm/portmaster/ports.md - -PortInfoInstall() { - -local setwebsiteback="N" -local unzipstatus - -whichsd="storage/roms" - - msgtxt=$(cat /dev/shm/portmaster/ports.md | $GREP "$1" | $GREP -oP '(?<=Desc=").*?(?=")') - installloc=$(cat /dev/shm/portmaster/ports.md | $GREP "$1" | $GREP -oP '(?<=locat=").*?(?=")') - porter=$(cat /dev/shm/portmaster/ports.md | $GREP "$1" | $GREP -oP '(?<=porter=").*?(?=")') - needmono=$(cat /dev/shm/portmaster/ports.md | $GREP "$1" | $GREP -oP '(?<=mono=").*?(?=")') - if [[ -f "/storage/roms/ports/PortMaster/libs/$mono_version" ]]; then - ismonothere="y" - else - ismonothere="n" - fi - - if [[ "$isgithubrelease" == "true" ]]; then - #Github releases convert space " " ("%20") to "." - # Examples: - # - "Bermuda%20Syndrome" -> "Bermuda.Syndrome" - # - "Bermuda Syndrome" -> "Bermuda.Syndrome" - # - "Mr. Boom" -> "Mr.Boom" (note how space is removed) - installloc="$( echo "$installloc" | sed 's/%20/./g' | sed 's/ /./g' | sed 's/\.\././g' )" - fi - - if [[ "${needmono,,}" == "y" ]] && [[ "$ismonothere" == "n" ]]; then - dialog --clear --backtitle "PortMaster" --title "$1" --clear \ - --yesno "\n$msgtxt \n\nPorted By: $porter\n\nThis port also requires the download and install - of the mono library which is over 200MBs in size. This download may take a while. - \n\nWould you like to continue to install this port?" $height $width 2>&1 > ${CUR_TTY} - else - dialog --clear --backtitle "PortMaster" --title "$1" --clear \ - --yesno "\n$msgtxt \n\nPorted By: $porter\n\nWould you like to continue to install this port?" $height $width 2>&1 > ${CUR_TTY} - fi - - case $? in - 0) - if [ ${needmono,,} == "y" ] && [ $ismonothere == "n" ]; then - $WGET -t 3 -T 60 -q --show-progress "$website$mono_version" -O \ - /storage/roms/ports/PortMaster/libs/$mono_version 2>&1 | stdbuf -oL sed -E 's/\.\.+/---/g'| dialog --progressbox \ - "Downloading ${mono_version} package..." $height $width > ${CUR_TTY} - fi - if [ ${needmono,,} == "y" ] && [ $ismonothere == "n" ] && [ $? -ne 0 ]; then - dialog --clear --backtitle "PortMaster" --title "$mono_version" --clear --msgbox "\n\n$mono_version did NOT download. \ - \n\nIt did not download correctly. Please verify that you have at least 500MBs of space left in your roms parition - and your internet connection is stable and try again." $height $width 2>&1 > ${CUR_TTY} - $ESUDO rm -f /storage/roms/ports/PortMaster/libs/$mono_version - else - $WGET -t 3 -T 60 -q --show-progress "$dwebsite$installloc" -O \ - /dev/shm/portmaster/$installloc 2>&1 | stdbuf -oL sed -E 's/\.\.+/---/g'| dialog --progressbox \ - "Downloading ${1} package..." $height $width > ${CUR_TTY} - unzip -o /dev/shm/portmaster/$installloc -d /$whichsd/ports/ > ${CUR_TTY} - unzipstatus=$? - if [ $unzipstatus -eq 0 ] || [ $unzipstatus -eq 1 ]; then - if [ ! -z $isitext ]; then - $ESUDO chmod -R 777 /$whichsd/ports - fi - if [[ -e "/storage/.config/.OS_ARCH" ]] || [ "${OS_NAME}" == "JELOS" ]; then - cd /$whichsd/ports/ - for s in *.sh - do - if [[ -z $(cat "$s" | $GREP "ESUDO") ]] || [[ -z $(cat "$s" | $GREP "controlfolder") ]]; then - sed -i 's/sudo //g' /storage/roms/ports/"$s" - fi - done - fi - cd $toolsfolderloc/PortMaster - dialog --clear --backtitle "PortMaster" --title "$1" --clear --msgbox "\n\n$1 installed successfully. \ - \n\nMake sure to restart EmulationStation in order to see it in the ports menu." $height $width 2>&1 > ${CUR_TTY} - elif [ $unzipstatus -eq 2 ] || [ $unzipstatus -eq 3 ] || [ $unzipstatus -eq 9 ] || [ $unzipstatus -eq 51 ]; then - dialog --clear --backtitle "PortMaster" --title "$1" --clear --msgbox "\n\n$1 did NOT install. \ - \n\nIt did not download correctly. Please check your internet connection and try again." $height $width 2>&1 > ${CUR_TTY} - elif [ $unzipstatus -eq 50 ]; then - dialog --clear --backtitle "PortMaster" --title "$1" --clear --msgbox "\n\n$1 did NOT install. \ - \n\nYour roms partition seems to be full." $height $width 2>&1 > ${CUR_TTY} - else - dialog --clear --backtitle "PortMaster" --title "$1" --clear --msgbox "\n\n$1 did NOT install. \ - \n\nUnzip error code:$unzipstatus " $height $width 2>&1 > ${CUR_TTY} - fi - - $ESUDO rm -f /dev/shm/portmaster/$installloc - fi - ;; - *) - ;; - esac -} - -userExit() { - rm -f /dev/shm/portmaster/*ports.md - dialog --clear - printf "\033c" > ${CUR_TTY} - - case ${device} in - "Hardkernel ODROID-GO-Ultra"|"Powkiddy RGB10 MAX 3") - #Fixing ports on S922X, exclude FNA games - for port in /storage/roms/ports/*.sh; do - if ! grep -q FNA "$port"; then - sed -i '/get_controls/c\get_controls && export SDL_VIDEO_GL_DRIVER=/usr/lib/egl/libGL.so.1 SDL_VIDEO_EGL_DRIVER=/usr/lib/egl/libEGL.so.1' "$port" - echo Fixing: "$port"; - fi - done; - ;; - esac - - exit 0 -} - -JelosPorts() { - dwebsite=$jwebsite - jport='(?<=Title_J=\").*?(?=\")' - local options=( - $(cat /dev/shm/portmaster/ports.md | $GREP 'runtype="jp"' | $GREP -oP "(?<=Title=\").*?(?=\")|$power|$opengl|$jport") - ) - while true; do - selection=(dialog \ - --backtitle "PortMaster" \ - --title "[ JelosAddOns Ports]" \ - --no-collapse \ - --clear \ - --cancel-label "Back" \ - --menu "Available JelosAddOns ports for install" $height $width 15) - - choices=$("${selection[@]}" "${options[@]}" 2>&1 > ${CUR_TTY}) || TopLevel - - for choice in $choices; do - case $choice in - *) PortInfoInstall $choice ;; - esac - done - done -} - -MainMenu() { - dwebsite=$website - jport="None" - local options=( - $(cat /dev/shm/portmaster/ports.md | $GREP -oP "(?<=Title=\").*?(?=\")|$power|$opengl|$jport") - ) - - while true; do - selection=(dialog \ - --backtitle "PortMaster" \ - --title "[ Main Menu of all ports]" \ - --no-collapse \ - --clear \ - --cancel-label "Back" \ - --menu "Available ports for install" $height $width 15) - - choices=$("${selection[@]}" "${options[@]}" 2>&1 > ${CUR_TTY}) || TopLevel - - for choice in $choices; do - case $choice in - *) PortInfoInstall $choice ;; - esac - done - done -} - -MainMenuRTR() { - dwebsite=$website - jport="None" - local options=( - $(cat /dev/shm/portmaster/ports.md | $GREP 'runtype="rtr"' | $GREP -oP "(?<=Title=\").*?(?=\")|$power|$opengl|$jport") - ) - - while true; do - selection=(dialog \ - --backtitle "PortMaster" \ - --title "[ Main Menu for Ready to Run ports ]" \ - --no-collapse \ - --clear \ - --cancel-label "Back" \ - --menu "Available Ready to Run ports for install" $height $width 15) - - choices=$("${selection[@]}" "${options[@]}" 2>&1 > ${CUR_TTY}) || TopLevel - - for choice in $choices; do - case $choice in - *) PortInfoInstall $choice ;; - esac - done - done -} - -TopLevel() { - local topoptions=( 1 "All Available Ports" 2 "Ready to Run Ports" 3 "JelosAddOns Ports" ) - - while true; do - topselection=(dialog \ - --backtitle "PortMaster" \ - --title "[ Top Level Menu ]" \ - --no-collapse \ - --clear \ - --cancel-label "Exit" \ - --menu "Please make your selection" $height $width 15) - - topchoices=$("${topselection[@]}" "${topoptions[@]}" 2>&1 > ${CUR_TTY}) || userExit - - for choice in $topchoices; do - case $choice in - 1) MainMenu ;; - 2) MainMenuRTR ;; - 3) JelosPorts ;; - esac - done - done -} - -TopLevel diff --git a/packages/apps/portmaster/sources/control.txt b/packages/apps/portmaster/sources/control.txt new file mode 100644 index 000000000..c19ec8182 --- /dev/null +++ b/packages/apps/portmaster/sources/control.txt @@ -0,0 +1,72 @@ +# This file can and should be sourced by ports for various parameters to +# minimize script customizations and allow for easier future updates +# like adding additional supported devices. +# Thanks to JohnnyonFlame, dhwz, romadu, and shantigilbert for the +# suggestion and assistance with this. +# Source used for gptokeyb available at +# https://github.com/christianhaitian/gptokeyb +# Source used for oga_controls available at +# https://github.com/christianhaitian/oga_controls + +directory="roms" +controlfolder="/$directory/ports/PortMaster" +ESUDO="" +ESUDOKILL="-1" +raloc="/usr/bin" +raconf="--config /storage/.config/retroarch/retroarch.cfg" +pdevice=$(cat /sys/firmware/devicetree/base/model 2>/dev/null) + +case ${pdevice} in + "Anbernic RG552") + profile="rg552" + ;; + "Hardkernel ODROID-GO-Ultra"|"Powkiddy RGB10 MAX 3") + profile="s922x" + ;; + "Powkiddy x55") + profile="x55" + ;; + "Anbernic RG351*") + profile="anbernic" + ;; + "ODROID-GO Advance*") + profile="oga" + ;; + "ODROID-GO Super") + profile="ogs" + ;; + *) + profile="rg552" + ;; +esac + +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib32 +export SDL_GAMECONTROLLERCONFIG_FILE="$controlfolder/gamecontrollerdb.txt" + +get_controls() { + + ANALOGSTICKS="2" + LOWRES="N" + + DEVICE="${1}" + param_device="${profile}" + + # Set file + export SDL_GAMECONTROLLERCONFIG_FILE="/tmp/gamecontrollerdb.txt" + + # Spit the controller of the device our heuristics found (if it did). + if [[ ! -z ${DEVICE} ]]; then + grep "${SDLDBUSERFILE}" -e "${DEVICE}" > /tmp/gamecontrollerdb.txt + else + echo "" > /tmp/gamecontrollerdb.txt + fi + + # Now find any controller mapped on emulationstation... + /storage/.config/PortMaster/mapper.txt /tmp/gamecontrollerdb.txt > /dev/null 2>&1 + SDLDBUSERFILE="/storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt" + + # Some ports want SDL_GAMECONTROLLERCONFIG, so let's fill it in + sdl_controllerconfig="$(< "${SDL_GAMECONTROLLERCONFIG_FILE}")" +} + +GPTOKEYB="$ESUDO $controlfolder/gptokeyb $ESUDOKILL" diff --git a/packages/apps/portmaster/sources/libegl.tar.gz b/packages/apps/portmaster/sources/libegl.tar.gz deleted file mode 100755 index fc83c944153a369a828a9caed8aef94b3891e1c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502975 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

>N*s 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%0A$s)XVr|m^noKn()B@#^ovy1 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

ner&+hC`RjD8Eb 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%0DX8om_n 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

hiy)@D&M^w2Bl-<8#c3liNp@ll3WL)C9q0Zhy@ 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 z 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 diff --git a/packages/apps/portmaster/sources/mapper.txt b/packages/apps/portmaster/sources/mapper.txt new file mode 100644 index 000000000..ef54af018 --- /dev/null +++ b/packages/apps/portmaster/sources/mapper.txt @@ -0,0 +1,135 @@ +#!/bin/bash + +# -- Config & Setup -- +# Destination file +if [[ -z "$1" ]]; then + echo "Usage: mapper.txt [gamecontrollerdb.txt]" + exit -1 +fi + +CONTROLLER_DB="$1" +if [[ ! -f "${CONTROLLER_DB}" ]]; then + echo "File ${CONTROLLER_DB} does not exist." + exit -1 +fi + +# Where the emulationstation configuration file is +ES_CONFIG="${HOME}/.config/emulationstation/es_input.cfg" + +# -- Helper function -- +# Map the actual button/hat/axis +function map { + INPUT_NAME=$1 + TYPE=$2 + ID=$3 + VALUE=$4 + + map_x_result="" + case "${INPUT_NAME}" in + "a") TR_NAME="a";; + "b") TR_NAME="b";; + "x") TR_NAME="x";; + "y") TR_NAME="y";; + "hotkeyenable") TR_NAME="guide";; + "up") TR_NAME="dpup";; + "down") TR_NAME="dpdown";; + "left") TR_NAME="dpleft";; + "right") TR_NAME="dpright";; + "leftshoulder") TR_NAME="leftshoulder";; + "leftthumb") TR_NAME="leftstick";; + "lefttrigger") TR_NAME="lefttrigger";; + "rightshoulder") TR_NAME="rightshoulder";; + "rightthumb") TR_NAME="rightstick";; + "righttrigger") TR_NAME="righttrigger";; + "select") TR_NAME="back";; + "start") TR_NAME="start";; + "leftanalogup") TR_NAME="-lefty";; + "leftanalogleft") TR_NAME="-leftx";; + "leftanalogdown") TR_NAME="+lefty";; + "leftanalogright") TR_NAME="+leftx";; + "rightanalogup") TR_NAME="-righty";; + "rightanalogleft") TR_NAME="-rightx";; + "rightanalogdown") TR_NAME="+righty";; + "rightanalogright") TR_NAME="+rightx";; + *) + echo "Invalid mapping ${INPUT_NAME}." + return + ;; + esac + + case "${TYPE}" in + "axis") + if (( $VALUE < 0 )); then + map_x_result="${TR_NAME}:${map_x_result}-a${ID}," + else + # Most (save for a few misbehaved children...) triggers are [0, 1] instead of [-1, 1] + # Shitty workaround for an emulationstation issue + if [[ $INPUT_NAME =~ .*"trigger" ]]; then + map_x_result="${TR_NAME}:${map_x_result}a${ID}," + else + map_x_result="${TR_NAME}:${map_x_result}+a${ID}," + fi + fi + ;; + "button") + map_x_result="${TR_NAME}:${map_x_result}b${ID}," + ;; + "hat") + map_x_result="${TR_NAME}:${map_x_result}h${ID}.${VALUE}," + ;; + *) + echo "Invalid entry ${TYPE}" + ;; + esac +} + +function get_map_suffix { + map_suffix="platform:Linux," +} + +function get_map_prefix { + map_prefix="${GUID},${NAME}," +} + +# query controllers mapped in emulationstation, ignore devices without a GUID +ES_QUERY="$(xmlstarlet sel -T -t -m "inputList/inputConfig[@deviceGUID!='']" -n -v "concat(@deviceName,';',@deviceGUID)" $ES_CONFIG)" +printf "\n# Custom Entries\n" >> "${CONTROLLER_DB}" + +echo "## ES Dev Mapper ##" +while IFS=";" read -r NAME GUID; do + echo "$NAME :: $GUID" + # Ignore keyboards + if [[ "${GUID}" == -1 ]]; then + continue + fi + + # Check if GUID exists in gamecontrollerdb.txt + if [ -z "$(fgrep -- ${GUID} "${CONTROLLER_DB}")" ]; then + # Query this specific GUID on the mappings + MAPPING_CFG=$(xmlstarlet sel -T -t -m "//inputConfig[@deviceGUID = '${GUID}']/input" -n -v "concat(@name,';',@type,';',@id,';',@value)" $ES_CONFIG) + + MAPPING="" + while IFS=";" read -r -e INPUT_NAME TYPE ID VALUE; do + # Map the controller + map "${INPUT_NAME}" "${TYPE}" "${ID}" "${VALUE}" + + # Only concatenate valid mappings + if [[ ! -z ${map_x_result} ]]; then + MAPPING="${MAPPING}${map_x_result}" + fi + done <<< ${MAPPING_CFG:1} + + get_map_prefix + get_map_suffix + if [[ ! -z "${MAPPING}" ]]; then + echo "${map_prefix}${MAPPING}${map_suffix}" >> "${CONTROLLER_DB}" + echo "${map_prefix}${MAPPING}${map_suffix}" + echo "" + else + echo "Failed to map anything." + echo "" + fi + else + echo "Already mapped..." + fi +done <<< ${ES_QUERY:1} diff --git a/packages/apps/portmaster/sources/portmaster.tar.gz b/packages/apps/portmaster/sources/portmaster.tar.gz deleted file mode 100644 index ef07c725f29944c085cd57d5af3ad2b6fa7e4a94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256431 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%0AF(rJ5mQ20dLGn=j^A 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

QN&ZJ8}^91i1YW>Iv{%2g)@Ho1QyFdpR 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�$EBdQfIg;$ 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 From babf33afa6b6dc26dafa5df6b78775d1418bc6dc Mon Sep 17 00:00:00 2001 From: fewtarius Date: Fri, 10 Nov 2023 00:50:20 +0000 Subject: [PATCH 111/112] Update documentation - add RGB 10. --- README.md | 1 + .../RK3399/SUPPORTED_EMULATORS_AND_CORES.md | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d20517c25..b08b75ff3 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ JELOS supports a variety of ARM and Intel/AMD based devices. | Hardkernel | [Odroid N2/N2+/N2L](http://jelos.org/devices/hardkernel/odroid-n2) | Amlogic S922X / Mali G52 M6 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | | Indiedroid | [Nova](http://jelos.org/devices/indiedroid/nova) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | | Orange Pi | [Orange Pi 5](http://jelos.org/devices/orange-pi/orange-pi-5) | Rockchip RK3588S / Mali G610 (ARMv8-A) | Rockchip 5.10 BSP Linux | Panfrost | Weston + Emulation Station | +| Powkiddy | [RGB10](http://jelos.org/devices/powkiddy/rgb10) | Rockchip RK3326 (ARM) | Mainline Linux | Panfrost | Weston + Emulation Station | | Powkiddy | [RGB10 Max 3 Pro](http://jelos.org/devices/powkiddy/rgb10-max-3-pro) | Amlogic A311D / Mali G52 M4 (ARMv8-A) | Mainline Linux | Mali | Weston + Emulation Station | | Powkiddy | [RGB30](http://jelos.org/devices/powkiddy/rgb30) | Rockchip RK3566 (ARM) | Rockchip BSP 4.19 | Mali | KMS/DRM + Emulation Station | | Powkiddy | [RK2023](http://jelos.org/devices/powkiddy/rk2023) | Rockchip RK3566 (ARM) | Rockchip BSP 4.19 | Mali | KMS/DRM + Emulation Station | diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md index e4defa119..9a7b411fe 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3399/SUPPORTED_EMULATORS_AND_CORES.md @@ -30,9 +30,9 @@ This document describes all available systems emulators and cores available for |Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
| |belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
| -|Capcom|CPS I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| -|Capcom|CPS III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| +|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**retroarch:** mba_mini
**AdvanceMame:** AdvanceMame
| |Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** bluemsx (default)
**retroarch:** gearcoleco
**retroarch:** smsplus
| |Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
| |Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
| @@ -41,7 +41,7 @@ This document describes all available systems emulators and cores available for |Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
| |Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
| |Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
| -|Fairchild|Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| +|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
| |id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
| |id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
| |Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
| @@ -70,7 +70,6 @@ This document describes all available systems emulators and cores available for |Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
| |Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
| -|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
| |Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
| |Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**melonds:** melonds-sa
**retroarch:** desmume
| @@ -78,6 +77,7 @@ This document describes all available systems emulators and cores available for |Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
| |Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
| |Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| +|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes
**mednafen:** snes_faust
| |Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**mednafen:** snes
| |Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
| From 584f93509e5380a5991ae0f7abd8e8220fa22ecf Mon Sep 17 00:00:00 2001 From: fewtarius Date: Fri, 10 Nov 2023 01:39:28 +0000 Subject: [PATCH 112/112] Apply GPU performance defaults for ARM devices. --- packages/hardware/quirks/platforms/RK3326/060-game_settings | 1 + packages/hardware/quirks/platforms/RK3399/060-game_settings | 1 + packages/hardware/quirks/platforms/RK3566/060-game_settings | 1 + packages/hardware/quirks/platforms/S922X/060-game_settings | 1 + 4 files changed, 4 insertions(+) diff --git a/packages/hardware/quirks/platforms/RK3326/060-game_settings b/packages/hardware/quirks/platforms/RK3326/060-game_settings index 63938e387..0caeb6cad 100644 --- a/packages/hardware/quirks/platforms/RK3326/060-game_settings +++ b/packages/hardware/quirks/platforms/RK3326/060-game_settings @@ -11,6 +11,7 @@ do if [ -z ${SETTING} ] then set_setting ${SYSTEM}.cpugovernor performance + set_setting ${SYSTEM}.gpuperf profile_peak fi done diff --git a/packages/hardware/quirks/platforms/RK3399/060-game_settings b/packages/hardware/quirks/platforms/RK3399/060-game_settings index 63938e387..0caeb6cad 100755 --- a/packages/hardware/quirks/platforms/RK3399/060-game_settings +++ b/packages/hardware/quirks/platforms/RK3399/060-game_settings @@ -11,6 +11,7 @@ do if [ -z ${SETTING} ] then set_setting ${SYSTEM}.cpugovernor performance + set_setting ${SYSTEM}.gpuperf profile_peak fi done diff --git a/packages/hardware/quirks/platforms/RK3566/060-game_settings b/packages/hardware/quirks/platforms/RK3566/060-game_settings index 63938e387..0caeb6cad 100755 --- a/packages/hardware/quirks/platforms/RK3566/060-game_settings +++ b/packages/hardware/quirks/platforms/RK3566/060-game_settings @@ -11,6 +11,7 @@ do if [ -z ${SETTING} ] then set_setting ${SYSTEM}.cpugovernor performance + set_setting ${SYSTEM}.gpuperf profile_peak fi done diff --git a/packages/hardware/quirks/platforms/S922X/060-game_settings b/packages/hardware/quirks/platforms/S922X/060-game_settings index 63938e387..0caeb6cad 100755 --- a/packages/hardware/quirks/platforms/S922X/060-game_settings +++ b/packages/hardware/quirks/platforms/S922X/060-game_settings @@ -11,6 +11,7 @@ do if [ -z ${SETTING} ] then set_setting ${SYSTEM}.cpugovernor performance + set_setting ${SYSTEM}.gpuperf profile_peak fi done