mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-25 23:45:39 +00:00
DOLPHIN: tweaked configs
This commit is contained in:
parent
e8599fab85
commit
2c493ed09d
|
@ -24,21 +24,22 @@ DSPHLE = True
|
|||
Fullscreen = True
|
||||
DisableScreenSaver = True
|
||||
[GBA]
|
||||
BIOS = ~/retrodeck/bios/gba_bios.bin
|
||||
BIOS = /home/deck/.var/app/net.retrodeck.retrodeck/data/dolphin-emu/GBA/gba_bios.bin
|
||||
Rom1 =
|
||||
Rom2 =
|
||||
Rom3 =
|
||||
Rom4 =
|
||||
SavesInRomPath = False
|
||||
SavesPath = ~/retrodeck/saves/dolphin-emu/GBA/Saves/
|
||||
SavesPath = /home/deck/.var/app/net.retrodeck.retrodeck/data/dolphin-emu/GBA/Saves/
|
||||
Threads = True
|
||||
[General]
|
||||
ISOPath0 = /run/user/1000/doc/9cd3cde7/wii
|
||||
ISOPath1 = /run/user/1000/doc/14708e0c/gc
|
||||
ISOPaths = 2
|
||||
WiiSDCardPath = ~/retrodeck/saves/dolphin-emu/Wii/sd.raw
|
||||
WiiSDCardPath = /home/deck/.var/app/net.retrodeck.retrodeck/data/dolphin-emu/Wii/sd.raw
|
||||
WirelessMac = 00:17:ab:83:9b:d4
|
||||
HotkeysRequireFocus = True
|
||||
RecursiveISOPaths = True
|
||||
[NetPlay]
|
||||
TraversalChoice = direct
|
||||
[BluetoothPassthrough]
|
41
emu-configs/Dolphin/GCPadNew.ini
Normal file
41
emu-configs/Dolphin/GCPadNew.ini
Normal file
|
@ -0,0 +1,41 @@
|
|||
[GCPad1]
|
||||
Device = evdev/0/Microsoft X-Box 360 pad 0
|
||||
Buttons/A = SOUTH
|
||||
Buttons/B = EAST
|
||||
Buttons/X = NORTH
|
||||
Buttons/Y = WEST
|
||||
Buttons/Z = `Full Axis 5+`
|
||||
Buttons/Start = START
|
||||
Main Stick/Up = `Axis 1-`
|
||||
Main Stick/Down = `Axis 1+`
|
||||
Main Stick/Left = `Axis 0-`
|
||||
Main Stick/Right = `Axis 0+`
|
||||
Main Stick/Modifier = `Shift`
|
||||
Main Stick/Modifier/Range = 50.000000000000000
|
||||
Main Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||
C-Stick/Up = `Axis 4-`
|
||||
C-Stick/Down = `Axis 4+`
|
||||
C-Stick/Left = `Axis 3-`
|
||||
C-Stick/Right = `Axis 3+`
|
||||
C-Stick/Modifier = `Ctrl`
|
||||
C-Stick/Modifier/Range = 50.000000000000000
|
||||
C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42
|
||||
Triggers/L = TL
|
||||
Triggers/R = TR
|
||||
D-Pad/Up = `Axis 7-`
|
||||
D-Pad/Down = `Axis 7+`
|
||||
D-Pad/Left = `Axis 6-`
|
||||
D-Pad/Right = `Axis 6+`
|
||||
Rumble/Motor = Strong
|
||||
[GCPad2]
|
||||
Device = XInput2/0/Virtual core pointer
|
||||
Main Stick/Modifier/Range = 50.000000000000000
|
||||
C-Stick/Modifier/Range = 50.000000000000000
|
||||
[GCPad3]
|
||||
Device = XInput2/0/Virtual core pointer
|
||||
Main Stick/Modifier/Range = 50.000000000000000
|
||||
C-Stick/Modifier/Range = 50.000000000000000
|
||||
[GCPad4]
|
||||
Device = XInput2/0/Virtual core pointer
|
||||
Main Stick/Modifier/Range = 50.000000000000000
|
||||
C-Stick/Modifier/Range = 50.000000000000000
|
19
emu-configs/Dolphin/GFX.ini
Normal file
19
emu-configs/Dolphin/GFX.ini
Normal file
|
@ -0,0 +1,19 @@
|
|||
[Enhancements]
|
||||
ArbitraryMipmapDetection = True
|
||||
DisableCopyFilter = True
|
||||
ForceTrueColor = True
|
||||
[Hacks]
|
||||
BBoxEnable = False
|
||||
DeferEFBCopies = True
|
||||
EFBEmulateFormatChanges = False
|
||||
EFBScaledCopy = True
|
||||
EFBToTextureEnable = True
|
||||
SkipDuplicateXFBs = True
|
||||
XFBToTextureEnable = True
|
||||
[Settings]
|
||||
BackendMultithreading = True
|
||||
DumpBaseTextures = True
|
||||
DumpMipTextures = True
|
||||
FastDepthCalc = True
|
||||
InternalResolution = 1
|
||||
SaveTextureCacheToState = True
|
89
emu-configs/Dolphin/Qt.ini
Normal file
89
emu-configs/Dolphin/Qt.ini
Normal file
|
@ -0,0 +1,89 @@
|
|||
[breakpointwidget]
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
|
||||
[cheatsmanager]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\x1\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
|
||||
|
||||
[codewidget]
|
||||
boxsplitter=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x4\0\0\0\x85\0\0\0\x85\0\0\0\x85\0\0\0\x85\x1\xff\xff\xff\xff\x1\0\0\0\x2\0)
|
||||
codesplitter=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\x82\0\0\0W\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
|
||||
[gridview]
|
||||
scale=@Variant(\0\0\0\x87?\x80\0\0)
|
||||
|
||||
[jitwidget]
|
||||
asmsplitter=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0W\0\0\0W\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
tablesplitter=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0W\0\0\0W\x1\xff\xff\xff\xff\x1\0\0\0\x2\0)
|
||||
|
||||
[logconfigwidget]
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
|
||||
[logging]
|
||||
font=0
|
||||
wraplines=false
|
||||
|
||||
[logwidget]
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
|
||||
[mainwindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\r\xb7\0\0\x1\x1\0\0\x10\xd6\0\0\x3\x32\0\0\r\xb7\0\0\x1\x1e\0\0\x10\xd6\0\0\x3\x32\0\0\0\0\0\0\0\0\xf\0\0\0\r\xb7\0\0\x1\x1e\0\0\x10\xd6\0\0\x3\x32)
|
||||
state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfc\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\xff\xff\xff\xfa\xff\xff\xff\xff\x2\0\0\0\n\xfb\0\0\0\x6\0l\0o\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xb1\x1\0\0\x3\xfb\0\0\0\x12\0l\0o\0g\0\x63\0o\0n\0\x66\0i\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x1b\x1\0\0\x3\xfb\0\0\0\b\0\x63\0o\0\x64\0\x65\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x61\x1\0\0\x3\xfb\0\0\0\x12\0r\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0}\x1\0\0\x3\xfb\0\0\0\xe\0t\0h\0r\0\x65\0\x61\0\x64\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\x2\x91\x1\0\0\x3\xfb\0\0\0\n\0w\0\x61\0t\0\x63\0h\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xab\x1\0\0\x3\xfb\0\0\0\x16\0\x62\0r\0\x65\0\x61\0k\0p\0o\0i\0n\0t\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xab\x1\0\0\x3\xfb\0\0\0\f\0m\0\x65\0m\0o\0r\0y\0\0\0\0\0\xff\xff\xff\xff\0\0\0}\x1\0\0\x3\xfb\0\0\0\xe\0n\0\x65\0t\0w\0o\0r\0k\0\0\0\0\0\xff\xff\xff\xff\0\0\x2w\x1\0\0\x3\xfb\0\0\0\x12\0j\0i\0t\0w\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\x1\x1\0\0\x3\0\0\x3 \0\0\x1\xa1\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\xe\0t\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
|
||||
|
||||
[memorywidget]
|
||||
addrspace_auxiliary=false
|
||||
addrspace_effective=true
|
||||
addrspace_physical=false
|
||||
bplog=true
|
||||
bpread=false
|
||||
bpreadwrite=true
|
||||
bpwrite=false
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
searchascii=true
|
||||
searchhex=false
|
||||
splitter=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\xff\xff\xff\xff\xff\xff\xff\xff\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
|
||||
typeascii=false
|
||||
typefloat=false
|
||||
typeu16=false
|
||||
typeu32=false
|
||||
typeu8=true
|
||||
|
||||
[netplaydialog]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x2\x7f\0\0\x1\xf3\0\0\0\0\0\0\0\x14\0\0\x2\x7f\0\0\x1\xf3\0\0\0\x1\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x2\x7f\0\0\x1\xf3)
|
||||
splitter=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xa5\0\0\0\xd7\x1\xff\xff\xff\xff\x1\0\0\0\x1\0)
|
||||
|
||||
[networkwidget]
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
|
||||
[registerwidget]
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
|
||||
[renderwidget]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x1\xdf)
|
||||
|
||||
[tableheader]
|
||||
state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x2\x1\0\0\0\0\0\0\0\0\0\0\0\xe(?\0\0\0\b\0\0\0\t\0\0\0\x64\0\0\0\b\0\0\0\x64\0\0\0\v\0\0\0\x64\0\0\0\n\0\0\0\x64\0\0\0\r\0\0\0\x64\0\0\0\f\0\0\0\x64\0\0\0\x3\0\0\0\x64\0\0\0\x5\0\0\0\x46\0\0\x3\v\0\0\0\xe\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\0\0\0&\0\0\0\x84\0\0\0\0\0\0\0\xe\0\0\0&\0\0\0\x1\0\0\0\x2\0\0\0\x66\0\0\0\x1\0\0\0\x2\0\0\x1\x2\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x1\x2\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0&\0\0\0\x1\0\0\0\x2\0\0\0U\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\0)
|
||||
|
||||
[threadwidget]
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
||||
|
||||
[toolbar]
|
||||
visible=true
|
||||
|
||||
[userstyle]
|
||||
enabled=false
|
||||
name=
|
||||
|
||||
[watchwidget]
|
||||
floating=false
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31\0\0\0\0\0\0\0\0\xf\0\0\0\x6\xe0\0\0\0\x14\0\0\aC\0\0\0\x31)
|
|
@ -1,88 +0,0 @@
|
|||
CaptureHeight = 480
|
||||
CaptureWidth = 640
|
||||
DisableDualSourceBlend = 0
|
||||
DisableFramebufferFetch = 0
|
||||
DumpReplaceableMipmaps = 0
|
||||
DumpReplaceableTextures = 0
|
||||
DumpTexturesWithFMVActive = 0
|
||||
HWDisableReadbacks = 0
|
||||
IntegerScaling = 0
|
||||
LoadTextureReplacements = 0
|
||||
LoadTextureReplacementsAsync = 1
|
||||
MaxAnisotropy = 0
|
||||
OsdScale = 100
|
||||
OsdShowCPU = 0
|
||||
OsdShowFPS = 0
|
||||
OsdShowGPU = 0
|
||||
OsdShowGSStats = 0
|
||||
OsdShowIndicators = 1
|
||||
OsdShowMessages = 1
|
||||
OsdShowResolution = 0
|
||||
OsdShowSpeed = 0
|
||||
OverrideGeometryShaders = -1
|
||||
OverrideTextureBarriers = -1
|
||||
PrecacheTextureReplacements = 0
|
||||
Renderer = 14
|
||||
ShadeBoost = 0
|
||||
ShadeBoost_Brightness = 50
|
||||
ShadeBoost_Contrast = 50
|
||||
ShadeBoost_Saturation = 50
|
||||
TVShader = 0
|
||||
ThreadedPresentation = 0
|
||||
UseBlitSwapChain = 0
|
||||
UseDebugDevice = 0
|
||||
UserHacks = 1
|
||||
UserHacks_AutoFlush = 0
|
||||
UserHacks_CPU_FB_Conversion = 0
|
||||
UserHacks_DisableDepthSupport = 0
|
||||
UserHacks_DisablePartialInvalidation = 1
|
||||
UserHacks_Disable_Safe_Features = 0
|
||||
UserHacks_HalfPixelOffset = 0
|
||||
UserHacks_Half_Bottom_Override = -1
|
||||
UserHacks_SkipDraw_End = 0
|
||||
UserHacks_SkipDraw_Start = 0
|
||||
UserHacks_TCOffsetX = 0
|
||||
UserHacks_TCOffsetY = 0
|
||||
UserHacks_TextureInsideRt = 0
|
||||
UserHacks_TriFilter = 0
|
||||
UserHacks_WildHack = 0
|
||||
UserHacks_align_sprite_X = 0
|
||||
UserHacks_merge_pp_sprite = 0
|
||||
UserHacks_round_sprite_offset = 0
|
||||
aa1 = 1
|
||||
accurate_blending_unit = 1
|
||||
accurate_date = 1
|
||||
autoflush_sw = 1
|
||||
capture_enabled = 0
|
||||
capture_out_dir = /tmp/GS_Capture
|
||||
capture_threads = 4
|
||||
conservative_framebuffer = 1
|
||||
crc_hack_level = -1
|
||||
disable_shader_cache = 0
|
||||
dithering_ps2 = 2
|
||||
dump = 0
|
||||
extrathreads = 2
|
||||
extrathreads_height = 4
|
||||
filter = 2
|
||||
fxaa = 0
|
||||
interlace = 7
|
||||
linear_present = 1
|
||||
mipmap = 1
|
||||
mipmap_hw = -1
|
||||
override_GL_ARB_shader_image_load_store = -1
|
||||
override_GL_ARB_sparse_texture = -1
|
||||
paltex = 0
|
||||
png_compression_level = 1
|
||||
preload_frame_with_gs_data = 0
|
||||
save = 0
|
||||
savef = 0
|
||||
savel = 5000
|
||||
saven = 0
|
||||
savet = 0
|
||||
savez = 0
|
||||
shaderfx = 0
|
||||
shaderfx_conf = shaders/GS_FX_Settings.ini
|
||||
shaderfx_glsl = shaders/GS.fx
|
||||
texture_preloading = 0
|
||||
upscale_multiplier = 2
|
||||
wrap_gs_mem = 0
|
|
@ -1014,7 +1014,10 @@ modules:
|
|||
- cp retroarch.cfg ${FLATPAK_DEST}/retrodeck/emu-configs/
|
||||
# Dolphin
|
||||
- cp Dolphin.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
||||
- cp Dolphin-Hotkeys.ini ${FLATPAK_DEST}/retrodeck/emu-configs
|
||||
- cp Hotkeys.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
||||
- cp GCPadNew.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
||||
- cp GFX.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
||||
- cp Qt.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
||||
# Yuzu
|
||||
- cp yuzu-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/
|
||||
# Pcsx2
|
||||
|
@ -1039,6 +1042,8 @@ modules:
|
|||
path: retrodeck.sh
|
||||
- type: dir
|
||||
path: emu-configs
|
||||
- type: dir
|
||||
path: emu-configs/Dolphin
|
||||
- type: dir
|
||||
path: res
|
||||
- type: dir
|
||||
|
|
|
@ -91,8 +91,9 @@ standalones_init() {
|
|||
|
||||
# Dolphin
|
||||
mkdir -pv /var/config/dolphin-emu/
|
||||
cp -fv $emuconfigs/Dolphin.ini /var/config/dolphin-emu/
|
||||
cp -fv $emuconfigs/Dolphin-Hotkeys.ini /var/config/dolphin-emu/Hotkeys.ini
|
||||
cp -fv $emuconfigs/Dolphin/* /var/config/dolphin-emu/
|
||||
dir_prep "$rdhome/saves" "/var/data/dolphin-emu/GBA/Saves"
|
||||
dir_prep "$rdhome/saves" "/var/data/dolphin-emu/Wii"
|
||||
|
||||
# pcsx2
|
||||
mkdir -pv /var/config/PCSX2/inis/
|
||||
|
|
Loading…
Reference in a new issue