Merge pull request #30 from spycat88/lime
emulators: introduce lime-sa (Nintendo 3DS Emulator)
This commit is contained in:
commit
04b62a118c
10 changed files with 650 additions and 1 deletions
11
config/emulators/3ds.conf
Normal file
11
config/emulators/3ds.conf
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
SYSTEM_NAME="3ds"
|
||||||
|
SYSTEM_FULLNAME="Nintendo 3DS"
|
||||||
|
SYSTEM_MANUFACTURER="Nintendo"
|
||||||
|
SYSTEM_RELEASE="2010"
|
||||||
|
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%\""
|
||||||
|
SYSTEM_PLATFORM="3ds"
|
||||||
|
SYSTEM_THEME="3ds"
|
||||||
|
SYSTEM_WIKI_PATH="3ds"
|
|
@ -72,6 +72,7 @@ This document describes all available systems emulators and cores available for
|
||||||
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|
||||||
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)<br>**retroarch:** dolphin<br>|
|
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)<br>**retroarch:** dolphin<br>|
|
||||||
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||||
|
|Nintendo|Nintendo 3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**lime:** lime-sa (default)<br>|
|
||||||
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|
||||||
|Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)<br>**retroarch:** melonds<br>|
|
|Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)<br>**retroarch:** melonds<br>|
|
||||||
|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|
||||||
|
|
27
packages/emulators/standalone/lime-sa/config/S922X/lime.gptk
Normal file
27
packages/emulators/standalone/lime-sa/config/S922X/lime.gptk
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
back = \\
|
||||||
|
start = \\
|
||||||
|
a = \\
|
||||||
|
b = \\
|
||||||
|
x = \\
|
||||||
|
y = \\
|
||||||
|
l1 = \\
|
||||||
|
l2 = \\
|
||||||
|
l3 = \\
|
||||||
|
r1 = \\
|
||||||
|
r2 = \\
|
||||||
|
r3 = mouse_left
|
||||||
|
up = \\
|
||||||
|
down = \\
|
||||||
|
left = \\
|
||||||
|
right = \\
|
||||||
|
left_analog_up = \\
|
||||||
|
left_analog_down = \\
|
||||||
|
left_analog_left = \\
|
||||||
|
left_analog_right = \\
|
||||||
|
right_analog_up = mouse_movement_up
|
||||||
|
right_analog_down = mouse_movement_down
|
||||||
|
right_analog_left = mouse_movement_left
|
||||||
|
right_analog_right = mouse_movement_right
|
||||||
|
deadzone_triggers = 3000
|
||||||
|
mouse_scale = 6128
|
||||||
|
mouse_delay = 16
|
|
@ -0,0 +1,376 @@
|
||||||
|
[Controls]
|
||||||
|
# The input devices and parameters for each 3DS native input
|
||||||
|
# It should be in the format of "engine:[engine_name],[param1]:[value1],[param2]:[value2]..."
|
||||||
|
# Escape characters $0 (for ':'), $1 (for ',') and $2 (for '$') can be used in values
|
||||||
|
|
||||||
|
# for button input, the following devices are available:
|
||||||
|
# - "keyboard" (default) for keyboard input. Required parameters:
|
||||||
|
# - "code": the code of the key to bind
|
||||||
|
# - "sdl" for joystick input using SDL. Required parameters:
|
||||||
|
# - "joystick": the index of the joystick to bind
|
||||||
|
# - "button"(optional): the index of the button to bind
|
||||||
|
# - "hat"(optional): the index of the hat to bind as direction buttons
|
||||||
|
# - "axis"(optional): the index of the axis to bind
|
||||||
|
# - "direction"(only used for hat): the direction name of the hat to bind. Can be "up", "down", "left" or "right"
|
||||||
|
# - "threshold"(only used for axis): a float value in (-1.0, 1.0) which the button is
|
||||||
|
# triggered if the axis value crosses
|
||||||
|
# - "direction"(only used for axis): "+" means the button is triggered when the axis value
|
||||||
|
# is greater than the threshold; "-" means the button is triggered when the axis value
|
||||||
|
# is smaller than the threshold
|
||||||
|
button_a=button:1,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_b=button:0,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_x=button:2,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_y=button:3,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_up=button:8,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_down=button:9,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_left=button:10,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_right=button:11,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_l=button:4,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_r=button:5,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_start=button:17,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_select=button:12,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_debug=
|
||||||
|
button_gpio14=
|
||||||
|
button_zl=button:6,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_zr=button:7,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
button_home=
|
||||||
|
|
||||||
|
# for analog input, the following devices are available:
|
||||||
|
# - "analog_from_button" (default) for emulating analog input from direction buttons. Required parameters:
|
||||||
|
# - "up", "down", "left", "right": sub-devices for each direction.
|
||||||
|
# Should be in the format as a button input devices using escape characters, for example, "engine$0keyboard$1code$00"
|
||||||
|
# - "modifier": sub-devices as a modifier.
|
||||||
|
# - "modifier_scale": a float number representing the applied modifier scale to the analog input.
|
||||||
|
# Must be in range of 0.0-1.0. Defaults to 0.5
|
||||||
|
# - "sdl" for joystick input using SDL. Required parameters:
|
||||||
|
# - "joystick": the index of the joystick to bind
|
||||||
|
# - "axis_x": the index of the axis to bind as x-axis (default to 0)
|
||||||
|
# - "axis_y": the index of the axis to bind as y-axis (default to 1)
|
||||||
|
circle_Pad=axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
c_stick=axis_x:2,axis_y:3,deadzone:0.100000,engine:sdl,guid:03001354474f2d556c74726120476100,port:0
|
||||||
|
|
||||||
|
# for motion input, the following devices are available:
|
||||||
|
# - "motion_emu" (default) for emulating motion input from mouse input. Required parameters:
|
||||||
|
# - "update_period": update period in milliseconds (default to 100)
|
||||||
|
# - "sensitivity": the coefficient converting mouse movement to tilting angle (default to 0.01)
|
||||||
|
# - "tilt_clamp": the max value of the tilt angle in degrees (default to 90)
|
||||||
|
# - "cemuhookudp" reads motion input from a udp server that uses cemuhook's udp protocol
|
||||||
|
motion_device=
|
||||||
|
|
||||||
|
# for touch input, the following devices are available:
|
||||||
|
# - "emu_window" (default) for emulating touch input from mouse input to the emulation window. No parameters required
|
||||||
|
# - "cemuhookudp" reads touch input from a udp server that uses cemuhook's udp protocol
|
||||||
|
# - "min_x", "min_y", "max_x", "max_y": defines the udp device's touch screen coordinate system
|
||||||
|
touch_device=
|
||||||
|
|
||||||
|
# Most desktop operating systems do not expose a way to poll the motion state of the controllers
|
||||||
|
# so as a way around it, cemuhook created a udp client/server protocol to broadcast the data directly
|
||||||
|
# from a controller device to the client program. Lime has a client that can connect and read
|
||||||
|
# from any cemuhook compatible motion program.
|
||||||
|
|
||||||
|
# IPv4 address of the udp input server (Default "127.0.0.1")
|
||||||
|
udp_input_address=
|
||||||
|
|
||||||
|
# Port of the udp input server. (Default 26760)
|
||||||
|
udp_input_port=
|
||||||
|
|
||||||
|
# The pad to request data on. Should be between 0 (Pad 1) and 3 (Pad 4). (Default 0)
|
||||||
|
udp_pad_index=
|
||||||
|
|
||||||
|
[Core]
|
||||||
|
# Whether to use the Just-In-Time (JIT) compiler for CPU emulation
|
||||||
|
# 0: Interpreter (slow), 1 (default): JIT (fast)
|
||||||
|
use_cpu_jit =
|
||||||
|
|
||||||
|
# Change the Clock Frequency of the emulated 3DS CPU.
|
||||||
|
# Underclocking can increase the performance of the game at the risk of freezing.
|
||||||
|
# Overclocking may fix lag that happens on console, but also comes with the risk of freezing.
|
||||||
|
# Range is any positive integer (but we suspect 25 - 400 is a good idea) Default is 100
|
||||||
|
cpu_clock_percentage = 100
|
||||||
|
|
||||||
|
[Renderer]
|
||||||
|
# Whether to render using OpenGL or Software
|
||||||
|
# 0: Software, 1: OpenGL (default)
|
||||||
|
graphics_api = 2
|
||||||
|
|
||||||
|
# Whether to render using GLES or OpenGL
|
||||||
|
# 0 (default): OpenGL, 1: GLES
|
||||||
|
use_gles = 1
|
||||||
|
|
||||||
|
# Whether to use hardware shaders to emulate 3DS shaders
|
||||||
|
# 0: Software, 1 (default): Hardware
|
||||||
|
use_hw_shader =
|
||||||
|
|
||||||
|
# Whether to use accurate multiplication in hardware shaders
|
||||||
|
# 0: Off (Faster, but causes issues in some games) 1: On (Default. Slower, but correct)
|
||||||
|
shaders_accurate_mul = Off
|
||||||
|
|
||||||
|
# Whether to use the Just-In-Time (JIT) compiler for shader emulation
|
||||||
|
# 0: Interpreter (slow), 1 (default): JIT (fast)
|
||||||
|
use_shader_jit =
|
||||||
|
|
||||||
|
# Forces VSync on the display thread. Usually doesn't impact performance, but on some drivers it can
|
||||||
|
# so only turn this off if you notice a speed difference.
|
||||||
|
# 0: Off, 1 (default): On
|
||||||
|
use_vsync_new = Off
|
||||||
|
|
||||||
|
# Reduce stuttering by storing and loading generated shaders to disk
|
||||||
|
# 0: Off, 1 (default. On)
|
||||||
|
use_disk_shader_cache =
|
||||||
|
|
||||||
|
# Resolution scale factor
|
||||||
|
# 0: Auto (scales resolution to window size), 1: Native 3DS screen resolution, Otherwise a scale
|
||||||
|
# factor for the 3DS resolution
|
||||||
|
resolution_factor = 1
|
||||||
|
|
||||||
|
# Texture filter
|
||||||
|
# 0: None, 1: Anime4K, 2: Bicubic, 3: Nearest Neighbor, 4: ScaleForce, 5: xBRZ
|
||||||
|
texture_filter =
|
||||||
|
|
||||||
|
# Limits the speed of the game to run no faster than this value as a percentage of target speed.
|
||||||
|
# Will not have an effect if unthrottled is enabled.
|
||||||
|
# 5 - 995: Speed limit as a percentage of target game speed. 0 for unthrottled. 100 (default)
|
||||||
|
frame_limit =
|
||||||
|
|
||||||
|
# Overrides the frame limiter to use frame_limit_alternate instead of frame_limit.
|
||||||
|
# 0: Off (default), 1: On
|
||||||
|
use_frame_limit_alternate =
|
||||||
|
|
||||||
|
# Alternate speed limit to be used instead of frame_limit if use_frame_limit_alternate is enabled
|
||||||
|
# 5 - 995: Speed limit as a percentage of target game speed. 0 for unthrottled. 200 (default)
|
||||||
|
frame_limit_alternate =
|
||||||
|
|
||||||
|
# The clear color for the renderer. What shows up on the sides of the bottom screen.
|
||||||
|
# Must be in range of 0.0-1.0. Defaults to 0.0 for all.
|
||||||
|
bg_red =
|
||||||
|
bg_blue =
|
||||||
|
bg_green =
|
||||||
|
|
||||||
|
# Whether and how Stereoscopic 3D should be rendered
|
||||||
|
# 0 (default): Off, 1: Side by Side, 2: Anaglyph, 3: Interlaced, 4: Reverse Interlaced
|
||||||
|
render_3d =
|
||||||
|
|
||||||
|
# Change 3D Intensity
|
||||||
|
# 0 - 100: Intensity. 0 (default)
|
||||||
|
factor_3d =
|
||||||
|
|
||||||
|
# Change Default Eye to Render When in Monoscopic Mode
|
||||||
|
# 0 (default): Left, 1: Right
|
||||||
|
mono_render_option =
|
||||||
|
|
||||||
|
# The name of the post processing shader to apply.
|
||||||
|
# Loaded from shaders if render_3d is off or side by side.
|
||||||
|
pp_shader_name =
|
||||||
|
|
||||||
|
# The name of the shader to apply when render_3d is anaglyph.
|
||||||
|
# Loaded from shaders/anaglyph
|
||||||
|
anaglyph_shader_name =
|
||||||
|
|
||||||
|
# Whether to enable linear filtering or not
|
||||||
|
# This is required for some shaders to work correctly
|
||||||
|
# 0: Nearest, 1 (default): Linear
|
||||||
|
filter_mode =
|
||||||
|
|
||||||
|
[Layout]
|
||||||
|
# Layout for the screen inside the render window.
|
||||||
|
# 0 (default): Default Top Bottom Screen
|
||||||
|
# 1: Single Screen Only
|
||||||
|
# 2: Large Screen Small Screen
|
||||||
|
# 3: Side by Side
|
||||||
|
# 4: Separate Windows
|
||||||
|
layout_option = 3
|
||||||
|
|
||||||
|
# Toggle custom layout (using the settings below) on or off.
|
||||||
|
# 0 (default): Off, 1: On
|
||||||
|
custom_layout = 0
|
||||||
|
|
||||||
|
# Screen placement when using Custom layout option
|
||||||
|
# 0x, 0y is the top left corner of the render window.
|
||||||
|
custom_top_left =
|
||||||
|
custom_top_top =
|
||||||
|
custom_top_right =
|
||||||
|
custom_top_bottom =
|
||||||
|
custom_bottom_left =
|
||||||
|
custom_bottom_top =
|
||||||
|
custom_bottom_right =
|
||||||
|
custom_bottom_bottom =
|
||||||
|
|
||||||
|
# Opacity of second layer when using custom layout option (bottom screen unless swapped)
|
||||||
|
custom_second_layer_opacity =
|
||||||
|
|
||||||
|
# Swaps the prominent screen with the other screen.
|
||||||
|
# For example, if Single Screen is chosen, setting this to 1 will display the bottom screen instead of the top screen.
|
||||||
|
# 0 (default): Top Screen is prominent, 1: Bottom Screen is prominent
|
||||||
|
swap_screen = 0
|
||||||
|
|
||||||
|
# Toggle upright orientation, for book style games.
|
||||||
|
# 0 (default): Off, 1: On
|
||||||
|
upright_screen = 0
|
||||||
|
|
||||||
|
# The proportion between the large and small screens when playing in Large Screen Small Screen layout.
|
||||||
|
# Must be a real value between 1.0 and 16.0. Default is 4
|
||||||
|
large_screen_proportion =
|
||||||
|
|
||||||
|
# Dumps textures as PNG to dump/textures/[Title ID]/.
|
||||||
|
# 0 (default): Off, 1: On
|
||||||
|
dump_textures =
|
||||||
|
|
||||||
|
# Reads PNG files from load/textures/[Title ID]/ and replaces textures.
|
||||||
|
# 0 (default): Off, 1: On
|
||||||
|
custom_textures =
|
||||||
|
|
||||||
|
# Loads all custom textures into memory before booting.
|
||||||
|
# 0 (default): Off, 1: On
|
||||||
|
preload_textures =
|
||||||
|
|
||||||
|
# Loads custom textures asynchronously with background threads.
|
||||||
|
# 0: Off, 1 (default): On
|
||||||
|
async_custom_loading =
|
||||||
|
|
||||||
|
[Audio]
|
||||||
|
# Whether or not to enable DSP LLE
|
||||||
|
# 0 (default): No, 1: Yes
|
||||||
|
enable_dsp_lle =
|
||||||
|
|
||||||
|
# Whether or not to run DSP LLE on a different thread
|
||||||
|
# 0 (default): No, 1: Yes
|
||||||
|
enable_dsp_lle_thread =
|
||||||
|
|
||||||
|
# Whether or not to enable the audio-stretching post-processing effect.
|
||||||
|
# This effect adjusts audio speed to match emulation speed and helps prevent audio stutter,
|
||||||
|
# at the cost of increasing audio latency.
|
||||||
|
# 0: No, 1 (default): Yes
|
||||||
|
enable_audio_stretching =
|
||||||
|
|
||||||
|
# Output volume.
|
||||||
|
# 1.0 (default): 100%, 0.0; mute
|
||||||
|
volume =
|
||||||
|
|
||||||
|
# Which audio output type to use.
|
||||||
|
# 0 (default): Auto-select, 1: No audio output, 2: Cubeb (if available), 3: OpenAL (if available), 4: SDL2 (if available)
|
||||||
|
output_type =
|
||||||
|
|
||||||
|
# Which audio output device to use.
|
||||||
|
# auto (default): Auto-select
|
||||||
|
output_device =
|
||||||
|
|
||||||
|
# Which audio input type to use.
|
||||||
|
# 0 (default): Auto-select, 1: No audio input, 2: Static noise, 3: Cubeb (if available), 4: OpenAL (if available)
|
||||||
|
input_type =
|
||||||
|
|
||||||
|
# Which audio input device to use.
|
||||||
|
# auto (default): Auto-select
|
||||||
|
input_device =
|
||||||
|
|
||||||
|
[Data Storage]
|
||||||
|
# Whether to create a virtual SD card.
|
||||||
|
# 1 (default): Yes, 0: No
|
||||||
|
use_virtual_sd =
|
||||||
|
|
||||||
|
# Whether to use custom storage locations
|
||||||
|
# 1: Yes, 0 (default): No
|
||||||
|
use_custom_storage =
|
||||||
|
|
||||||
|
# The path of the virtual SD card directory.
|
||||||
|
# empty (default) will use the user_path
|
||||||
|
sdmc_directory =
|
||||||
|
|
||||||
|
# The path of NAND directory.
|
||||||
|
# empty (default) will use the user_path
|
||||||
|
nand_directory =
|
||||||
|
|
||||||
|
[System]
|
||||||
|
# The system model that Lime will try to emulate
|
||||||
|
# 0: Old 3DS, 1: New 3DS (default)
|
||||||
|
is_new_3ds =
|
||||||
|
|
||||||
|
# The system region that Lime will use during emulation
|
||||||
|
# -1: Auto-select (default), 0: Japan, 1: USA, 2: Europe, 3: Australia, 4: China, 5: Korea, 6: Taiwan
|
||||||
|
region_value =
|
||||||
|
|
||||||
|
# The clock to use when Lime starts
|
||||||
|
# 0: System clock (default), 1: fixed time
|
||||||
|
init_clock =
|
||||||
|
|
||||||
|
# Time used when init_clock is set to fixed_time in the format %Y-%m-%d %H:%M:%S
|
||||||
|
# set to fixed time. Default 2000-01-01 00:00:01
|
||||||
|
# Note: 3DS can only handle times later then Jan 1 2000
|
||||||
|
init_time =
|
||||||
|
|
||||||
|
[Camera]
|
||||||
|
# Which camera engine to use for the right outer camera
|
||||||
|
# blank (default): a dummy camera that always returns black image
|
||||||
|
camera_outer_right_name =
|
||||||
|
|
||||||
|
# A config string for the right outer camera. Its meaning is defined by the camera engine
|
||||||
|
camera_outer_right_config =
|
||||||
|
|
||||||
|
# The image flip to apply
|
||||||
|
# 0: None (default), 1: Horizontal, 2: Vertical, 3: Reverse
|
||||||
|
camera_outer_right_flip =
|
||||||
|
|
||||||
|
# ... for the left outer camera
|
||||||
|
camera_outer_left_name =
|
||||||
|
camera_outer_left_config =
|
||||||
|
camera_outer_left_flip =
|
||||||
|
|
||||||
|
# ... for the inner camera
|
||||||
|
camera_inner_name =
|
||||||
|
camera_inner_config =
|
||||||
|
camera_inner_flip =
|
||||||
|
|
||||||
|
[Miscellaneous]
|
||||||
|
# A filter which removes logs below a certain logging level.
|
||||||
|
# Examples: *:Debug Kernel.SVC:Trace Service.*:Critical
|
||||||
|
log_filter = *:Info
|
||||||
|
|
||||||
|
[Debugging]
|
||||||
|
# Record frame time data, can be found in the log directory. Boolean value
|
||||||
|
record_frame_times =
|
||||||
|
|
||||||
|
# Port for listening to GDB connections.
|
||||||
|
use_gdbstub=false
|
||||||
|
gdbstub_port=24689
|
||||||
|
|
||||||
|
# Whether to enable additional debugging information during emulation
|
||||||
|
# 0 (default): Off, 1: On
|
||||||
|
renderer_debug =
|
||||||
|
|
||||||
|
# To LLE a service module add "LLE\<module name>=true"
|
||||||
|
|
||||||
|
[WebService]
|
||||||
|
# Whether or not to enable telemetry
|
||||||
|
# 0: No, 1 (default): Yes
|
||||||
|
enable_telemetry = 0
|
||||||
|
# URL for Web API
|
||||||
|
web_api_url = https://api.citra-emu.org
|
||||||
|
# Username and token for Lime Web Service
|
||||||
|
# See https://profile.citra-emu.org/ for more info
|
||||||
|
citra_username =
|
||||||
|
citra_token =
|
||||||
|
|
||||||
|
[Video Dumping]
|
||||||
|
# Format of the video to output, default: webm
|
||||||
|
output_format =
|
||||||
|
|
||||||
|
# Options passed to the muxer (optional)
|
||||||
|
# This is a param package, format: [key1]:[value1],[key2]:[value2],...
|
||||||
|
format_options =
|
||||||
|
|
||||||
|
# Video encoder used, default: libvpx-vp9
|
||||||
|
video_encoder =
|
||||||
|
|
||||||
|
# Options passed to the video codec (optional)
|
||||||
|
video_encoder_options =
|
||||||
|
|
||||||
|
# Video bitrate, default: 2500000
|
||||||
|
video_bitrate =
|
||||||
|
|
||||||
|
# Audio encoder used, default: libvorbis
|
||||||
|
audio_encoder =
|
||||||
|
|
||||||
|
# Options passed to the audio codec (optional)
|
||||||
|
audio_encoder_options =
|
||||||
|
|
||||||
|
# Audio bitrate, default: 64000
|
||||||
|
audio_bitrate =
|
39
packages/emulators/standalone/lime-sa/package.mk
Normal file
39
packages/emulators/standalone/lime-sa/package.mk
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
|
||||||
|
|
||||||
|
PKG_NAME="lime-sa"
|
||||||
|
PKG_VERSION="235697e41f0f28237a9dd594f94e6b9038c2d04b"
|
||||||
|
PKG_LICENSE="GPL"
|
||||||
|
PKG_SITE="https://github.com/Lime3DS/Lime3DS"
|
||||||
|
PKG_URL="${PKG_SITE}.git"
|
||||||
|
PKG_DEPENDS_TARGET="toolchain ffmpeg mesa SDL2 boost zlib libusb boost zstd control-gen"
|
||||||
|
PKG_LONGDESC="Lime - Nintendo 3DS emulator"
|
||||||
|
PKG_TOOLCHAIN="cmake"
|
||||||
|
|
||||||
|
if [ ! "${OPENGL}" = "no" ]; then
|
||||||
|
PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${OPENGLES_SUPPORT}" = yes ]; then
|
||||||
|
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${VULKAN_SUPPORT}" = "yes" ]
|
||||||
|
then
|
||||||
|
PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PKG_CMAKE_OPTS_TARGET+="-DENABLE_QT=OFF \
|
||||||
|
-DENABLE_QT_TRANSLATION=OFF \
|
||||||
|
-DENABLE_SDL2=ON \
|
||||||
|
-DCITRA_WARNINGS_AS_ERRORS=OFF \
|
||||||
|
-DUSE_DISCORD_PRESENCE=OFF"
|
||||||
|
|
||||||
|
makeinstall_target() {
|
||||||
|
mkdir -p ${INSTALL}/usr/bin
|
||||||
|
cp ${PKG_BUILD}/.${TARGET_NAME}/bin/MinSizeRel/lime ${INSTALL}/usr/bin
|
||||||
|
cp ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin
|
||||||
|
|
||||||
|
mkdir -p ${INSTALL}/usr/config/lime-emu
|
||||||
|
cp -rf ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/lime-emu
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/src/lime/emu_window/emu_window_sdl2_vk.cpp b/src/lime/emu_window/emu_window_sdl2_vk.cpp
|
||||||
|
index d6c103955..9402fd9f0 100644
|
||||||
|
--- a/src/lime/emu_window/emu_window_sdl2_vk.cpp
|
||||||
|
+++ b/src/lime/emu_window/emu_window_sdl2_vk.cpp
|
||||||
|
@@ -24,7 +24,7 @@ EmuWindow_SDL2_VK::EmuWindow_SDL2_VK(bool fullscreen, bool is_secondary)
|
||||||
|
SDL_WINDOWPOS_UNDEFINED, // x position
|
||||||
|
SDL_WINDOWPOS_UNDEFINED, // y position
|
||||||
|
Core::kScreenTopWidth, Core::kScreenTopHeight + Core::kScreenBottomHeight,
|
||||||
|
- SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
|
||||||
|
+ SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
|
||||||
|
SDL_SysWMinfo wm;
|
||||||
|
SDL_VERSION(&wm.version);
|
||||||
|
if (SDL_GetWindowWMInfo(render_window, &wm) == SDL_FALSE) {
|
22
packages/emulators/standalone/lime-sa/patches/001-lime.patch
Normal file
22
packages/emulators/standalone/lime-sa/patches/001-lime.patch
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
diff --git a/src/common/common_paths.h b/src/common/common_paths.h
|
||||||
|
index f12eedb..6f37046 100644
|
||||||
|
--- a/src/common/common_paths.h
|
||||||
|
+++ b/src/common/common_paths.h
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
// For compatibility with XDG paths.
|
||||||
|
#define EMU_DATA_DIR "citra-emu"
|
||||||
|
#else
|
||||||
|
-#define EMU_DATA_DIR "citra-emu"
|
||||||
|
+#define EMU_DATA_DIR "lime-emu"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -55,7 +55,7 @@
|
||||||
|
|
||||||
|
// Filenames
|
||||||
|
// Files in the directory returned by GetUserPath(UserPath::LogDir)
|
||||||
|
-#define LOG_FILE "citra_log.txt"
|
||||||
|
+#define LOG_FILE "lime_log.txt"
|
||||||
|
|
||||||
|
// Files in the directory returned by GetUserPath(UserPath::ConfigDir)
|
||||||
|
#define EMU_CONFIG "emu.ini"
|
109
packages/emulators/standalone/lime-sa/scripts/start_lime.sh
Executable file
109
packages/emulators/standalone/lime-sa/scripts/start_lime.sh
Executable file
|
@ -0,0 +1,109 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
|
||||||
|
|
||||||
|
. /etc/profile
|
||||||
|
set_kill set "-9 lime"
|
||||||
|
|
||||||
|
# Load gptokeyb support files
|
||||||
|
control-gen_init.sh
|
||||||
|
source /storage/.config/gptokeyb/control.ini
|
||||||
|
get_controls
|
||||||
|
|
||||||
|
# Make sure Lime config directory exists
|
||||||
|
[ ! -d /storage/.config/lime-emu ] && cp -r /usr/config/lime-emu /storage/.config
|
||||||
|
|
||||||
|
# Move sdmc & nand to 3ds roms folder
|
||||||
|
[ ! -d /storage/roms/3ds/lime-sa/sdmc ] && mkdir -p /storage/roms/3ds/lime-sa/sdmc
|
||||||
|
rm -rf /storage/.config/lime-emu/sdmc
|
||||||
|
ln -sf /storage/roms/3ds/lime-sa/sdmc /storage/.config/lime-emu/sdmc
|
||||||
|
|
||||||
|
[ ! -d /storage/roms/3ds/lime-sa/nand ] && mkdir -p /storage/roms/3ds/lime-sa/nand
|
||||||
|
rm -rf /storage/.config/lime-emu/nand
|
||||||
|
ln -sf /storage/roms/3ds/lime-sa/nand /storage/.config/lime-emu/nand
|
||||||
|
|
||||||
|
|
||||||
|
# Emulation Station Features
|
||||||
|
GAME=$(echo "${1}"| sed "s#^/.*/##")
|
||||||
|
CPU=$(get_setting cpu_speed 3ds "${GAME}")
|
||||||
|
EMOUSE=$(get_setting emulate_mouse 3ds "${GAME}")
|
||||||
|
RENDERER=$(get_setting graphics_backend 3ds "${GAME}")
|
||||||
|
RES=$(get_setting resolution_scale 3ds "${GAME}")
|
||||||
|
ROTATE=$(get_setting rotate_screen 3ds "${GAME}")
|
||||||
|
SLAYOUT=$(get_setting screen_layout 3ds "${GAME}")
|
||||||
|
|
||||||
|
# CPU Underclock
|
||||||
|
case "${CPU}" in
|
||||||
|
0) sed -i '/cpu_clock_percentage =/c\cpu_clock_percentage = 100' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
1) sed -i '/cpu_clock_percentage =/c\cpu_clock_percentage = 90' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
2) sed -i '/cpu_clock_percentage =/c\cpu_clock_percentage = 80' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
3) sed -i '/cpu_clock_percentage =/c\cpu_clock_percentage = 70' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
4) sed -i '/cpu_clock_percentage =/c\cpu_clock_percentage = 60' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
5) sed -i '/cpu_clock_percentage =/c\cpu_clock_percentage = 50' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Resolution Scale
|
||||||
|
case "${RES}" in
|
||||||
|
0) sed -i '/resolution_factor =/c\resolution_factor = 0' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
1) sed -i '/resolution_factor =/c\resolution_factor = 1' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
2) sed -i '/resolution_factor =/c\resolution_factor = 2' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Rotate Screen
|
||||||
|
case "${ROTATE}" in
|
||||||
|
0) sed -i '/upright_screen =/c\upright_screen = 0' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
1) sed -i '/upright_screen =/c\upright_screen = 1' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Screen Layout
|
||||||
|
case "${SLAYOUT}" in
|
||||||
|
0)
|
||||||
|
sed -i '/layout_option =/c\layout_option = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/swap_screen =/c\swap_screen = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/custom_layout =/c\custom_layout = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
;;
|
||||||
|
1a)
|
||||||
|
sed -i '/layout_option =/c\layout_option = 1' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/swap_screen =/c\swap_screen = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/custom_layout =/c\custom_layout = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
;;
|
||||||
|
1b)
|
||||||
|
sed -i '/layout_option =/c\layout_option = 1' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/swap_screen =/c\swap_screen = 1' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/custom_layout =/c\custom_layout = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
sed -i '/layout_option =/c\layout_option = 2' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/swap_screen =/c\swap_screen = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/custom_layout =/c\custom_layout = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
sed -i '/layout_option =/c\layout_option = 3' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/swap_screen =/c\swap_screen = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/custom_layout =/c\custom_layout = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
;;
|
||||||
|
4)
|
||||||
|
sed -i '/layout_option =/c\layout_option = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/swap_screen =/c\swap_screen = 0' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
sed -i '/custom_layout =/c\custom_layout = 1' /storage/.config/lime-emu/sdl2-config.ini
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Video Backend
|
||||||
|
case "${RENDERER}" in
|
||||||
|
1) sed -i '/graphics_api =/c\graphics_api = 1' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
*) sed -i '/graphics_api =/c\graphics_api = 2' /storage/.config/lime-emu/sdl2-config.ini;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
rm -rf /storage/.local/share/lime-emu
|
||||||
|
ln -sf /storage/.config/lime-emu /storage/.local/share/lime-emu
|
||||||
|
|
||||||
|
# Run Lime Emulator
|
||||||
|
if [ "${EMOUSE}" = "0" ]; then
|
||||||
|
/usr/bin/lime "${1}"
|
||||||
|
else
|
||||||
|
${GPTOKEYB} lime -c /storage/.config/lime-emu/lime.gptk &
|
||||||
|
/usr/bin/lime "${1}"
|
||||||
|
kill -9 "$(pidof gptokeyb)"
|
||||||
|
fi
|
|
@ -542,6 +542,48 @@
|
||||||
</core>
|
</core>
|
||||||
</cores>
|
</cores>
|
||||||
</emulator>
|
</emulator>
|
||||||
|
<emulator name="lime">
|
||||||
|
<cores>
|
||||||
|
<core name="lime-sa">"
|
||||||
|
<features>
|
||||||
|
<feature name="cpu speed">
|
||||||
|
<choice name="100%" value="0"/>
|
||||||
|
<choice name="90%" value="1"/>
|
||||||
|
<choice name="80%" value="2"/>
|
||||||
|
<choice name="70%" value="3"/>
|
||||||
|
<choice name="60%" value="4"/>
|
||||||
|
<choice name="50%" value="5"/>
|
||||||
|
</feature>
|
||||||
|
<feature name="emulate mouse">
|
||||||
|
<choice name="yes" value="1"/>
|
||||||
|
<choice name="no" value="0"/>
|
||||||
|
</feature>
|
||||||
|
<feature name="graphics backend">
|
||||||
|
<choice name="opengl" value="1"/>
|
||||||
|
<choice name="vulkan" value="2"/>
|
||||||
|
</feature>
|
||||||
|
<feature name="resolution scale">
|
||||||
|
<choice name="Native 3DS" value="1"/>
|
||||||
|
<choice name="2x" value="2"/>
|
||||||
|
<choice name="3x" value="3"/>
|
||||||
|
<choice name="Max" value="0"/>
|
||||||
|
</feature>
|
||||||
|
<feature name="rotate screen">
|
||||||
|
<choice name="yes" value="1"/>
|
||||||
|
<choice name="no" value="0"/>
|
||||||
|
</feature>
|
||||||
|
<feature name="screen layout">
|
||||||
|
<choice name="top / bottom" value="0"/>
|
||||||
|
<choice name="top only" value="1a"/>
|
||||||
|
<choice name="bottom only" value="1b"/>
|
||||||
|
<choice name="big / small" value="2"/>
|
||||||
|
<choice name="side by side" value="3"/>
|
||||||
|
<choice name="custom" value="4"/>
|
||||||
|
</feature>
|
||||||
|
</features>
|
||||||
|
</core>
|
||||||
|
</cores>
|
||||||
|
</emulator>
|
||||||
<emulator name="melonds">
|
<emulator name="melonds">
|
||||||
<cores>
|
<cores>
|
||||||
<core name="melonds-sa">
|
<core name="melonds-sa">
|
||||||
|
@ -744,6 +786,7 @@
|
||||||
<core name="handy" features="netplay, rewind, autosave, cheevos" />
|
<core name="handy" features="netplay, rewind, autosave, cheevos" />
|
||||||
<core name="hatari" features="netplay, rewind, autosave" />
|
<core name="hatari" features="netplay, rewind, autosave" />
|
||||||
<core name="jaxe" features="netplay, rewind, autosave"/>
|
<core name="jaxe" features="netplay, rewind, autosave"/>
|
||||||
|
<core name="lime" features="autosave" />
|
||||||
<core name="mame2003_plus" features="netplay, rewind, autosave">
|
<core name="mame2003_plus" features="netplay, rewind, autosave">
|
||||||
<features>
|
<features>
|
||||||
<feature name="netplay" />
|
<feature name="netplay" />
|
||||||
|
|
|
@ -60,7 +60,7 @@ case "${DEVICE}" in
|
||||||
;;
|
;;
|
||||||
S922X*)
|
S922X*)
|
||||||
[ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="box86 pcsx_rearmed-lr"
|
[ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="box86 pcsx_rearmed-lr"
|
||||||
PKG_EMUS+=" amiberry aethersx2-sa dolphin-sa drastic-sa mupen64plus-sa yabasanshiro-sa \
|
PKG_EMUS+=" amiberry aethersx2-sa dolphin-sa drastic-sa lime-sa mupen64plus-sa yabasanshiro-sa \
|
||||||
box64 portmaster"
|
box64 portmaster"
|
||||||
LIBRETRO_CORES+=" uae4arm beetle-psx-lr bsnes-lr bsnes-hd-lr dolphin-lr flycast-lr"
|
LIBRETRO_CORES+=" uae4arm beetle-psx-lr bsnes-lr bsnes-hd-lr dolphin-lr flycast-lr"
|
||||||
PKG_RETROARCH+=" retropie-shaders"
|
PKG_RETROARCH+=" retropie-shaders"
|
||||||
|
@ -124,6 +124,14 @@ makeinstall_target() {
|
||||||
add_emu_core 3do retroarch opera true
|
add_emu_core 3do retroarch opera true
|
||||||
add_es_system 3do
|
add_es_system 3do
|
||||||
|
|
||||||
|
### Nintendo 3DS
|
||||||
|
case ${DEVICE} in
|
||||||
|
S922X*)
|
||||||
|
add_emu_core 3ds lime lime-sa true
|
||||||
|
add_es_system 3ds
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
### Commodore Amiga
|
### Commodore Amiga
|
||||||
case ${DEVICE} in
|
case ${DEVICE} in
|
||||||
RK35*|RK3326|RK3399)
|
RK35*|RK3326|RK3399)
|
||||||
|
|
Loading…
Reference in a new issue