NXEmu is an open-source Nintendo Switch emulator written in C++ for Windows. It is still at an early stage. N3XOX1 began working on NXEmu in 2018 with slow but steady progress. Now that he’s posting graphics, the author thinks it’s the right time to show what he’s done so far.
Changes since version 0.4:
– UI: better shutdown of controller config
– update sciterui
– UI: Add menu option to open App Directory/Log dir
– add about window
– OS: get video setting for is_async_gpu
– UI: Confirm closure of the emulator
– Fixed BOTW & TOTK
– Loader: fix up how Service:
rocess::Initialize interacts with the system
– Update copyright year in build version headers
– change how app init works with passing in the base dir and app dir
– Loader: Add setting for CheckForUpdatedFirmware
– loader: ask the user to upgrade firmware ifd firmware in xci
– UI: Remove controller svg out of input_config_player.html
– UI: Add svg to the menu
– have my pusher stop when no longer powered on
– fix up ui settings bool/int32 setting
– UI: Add Notification::Query
– fix up .gitmodules zlib
– UI: update how motion cube works
– Add external CMakeLists.txt
– Android: Add java_vm to ModuleInterfaces
– update to latest sciterui
– UI: Update motion buttons
– ui: Update the look and feel of the loading screen
– UI: fix up game cube controller svg
– UI: Update the svg when button state is changed
– UI: Limit stick refresh to ounce every 50 milliseconds
– UI: Fix up recent pull request merges
– UI: Update how pause panel works
– UI: Do not constant hammer refreshing UI on DiskCacheLoadChanged
– loader: GetRelativePathFromNcaID add hashing of the path
– UI: Update status bar function names
– Be able to show installed firmware on the status bar
– Be able to install firmware from a folder
– be able to change docked/handheld
– merge volume
– Remove wtl
– ui: give an option to hide/show the ui elements
– OS: have OS settings full handle setting with a float
– Update menu to be able to have icons/check box and add an option to start the emulator in fullscreen
– Loader: expose IFilesystem, IContentProvider and add CreateMemoryFile, ReadBanner, ReadLogo
– loader: Add IRomInfo::ReadManualRomFS
– OS: Add applets information to all the frontend to set Applets
– OS: be able to create web browser applet
– UI: Add a web browser applet to open the page in an external browser
– Add hotkey for stop emulation, controller and configuration
– Some work to prepare for android
– OS: move docked mode out of yuzu common, and in to the OS module
– OS: Move applet and audio settings out of common and in to OS
– OS: Move System and time settings in to setting OS from common settings
– OS: Move controller and linux setting out of common and in to OS module
– Some work on CMakeLists.txt
– ui: configurable hotkeys, menu accelerators
– Add borderless fullscreen
– CPU: Add PrefetchAbortBreakLoop halt reason
– Loader: In RomFsControllerImpl::OpenRomFS if the file fail to open return nullptr
– external: Suppress warnings in external projects
– Fix up some WIN32/non WIN32 issues
– Loader: Fix up VfsVirtualFile::GetContainingDirectory
– CPU: Code clean up and fixing fast memory in 64bit
– common: remove out the find files out of path and into path finder
– Common: remove use of fixed path buffers
– common: get path more cross compatible with clang
– Common: Fix a bug in Path:
irectoryNormalize if normalized against shallow base directory
– common: update file class so it does not have to use the window api
– Common: Json limit __debugbreak to just be for win32
– core: Change AppInit to pass the config path
– Change using __interface to nxinterface
– Update sciterui
– Update to dev 0.6
– Loader: rename SaveDataFactoryPtr to SaveDataFactoryImpl
– Loader: Rename RomFsControllerPtr to RomFsControllerImp
– Loader: rename VirtualDirectoryPtr, VirtualFilePtr to VirtualDirectoryImpl, VirtualFileImpl
– Loader: Some code clean up
– loader: change IFSileSysRegisteredCache to return by reference only
– OS: Fix up save SettingType::U16, SettingType::BooleanSwitchable, SettingType::Float
– loader: fix a typo
– OS/Loader: Add IDirectory and directory and file lists
– Loader: Some code clean up
– Loader: Code clean up of patch_manager.cpp
– OS: FSP_SRV::OpenDataStorageByDataId
– video: fix project so it includes ffmpeg in release
– NXEmu-Dev-0.6.0-290-991e8bc: Core ability Add to have a setting as a float
– Video: export ShadersBuilding
– OS: export GetAndResetPerfStats
– UI: Add status text
– Add 3rd Party/ffmpeg files
– UI: only show render window when NXCoreSetting:
isplayedFrames it set true
– OS: remove System::GetFileSystemController
– Reset modules before starting a game
– Video: some code cleanup
– UI: update game browser config to use the new list widget
– Lang: Fix up width of input config
– UI: clean up input device list when controller configuration is closed
– Lang: update LoadingPanel default display
– UI: Update controller input so styles are in the parent header
– Update to use sciter to sciter-js-sdk-6.0.3.5
– Add rom browser
– OS: application nvdrv Container::CloseSession
– Core: Make sure sdl and shutdowns on close
– Core: Improve shut down when a game is playing
– Loader: Add ISystemloader::LoadedRomInfo
– UI: Start to add option to stop emulation
– OS: Rename GetPageTable to GetKPageTable
– CPU: move DynarmicCallbacks64 into a member variable
– CPU: Fix memory write exclusive
– CPU: Add IKernelProcess and some code clean up
– OS: remove arm_interface
– CPU: move CpuHaltReason out of ICpuCore
– CPU: Add ICoreSystem
– CPU: Update ICpuCore so the majority is handled by the cpu plugin
– CPU: Start to add 32bit cpu
– Core: Save core settings on saving config page
– UI: a little tweak to the menu display
– OS: rename GetMemory to GetCoreMemory and some code clean up
– CPU: move ProcessorArchitecture into cpu interface
– CPU: Update how exclusive monitor works
– CPU: Add CpuDebugWatchpointType
– CPU: Rename IArm64Executor to ICpuCore
– OS: rename GetOwnerProcess to GetOwnerKProcess()
– OS: change how LoadSvcArguments/SaveSvcArguments argument type
– CPU: Add CpuThreadContext to the cpu spec
– Lang: increase min window size
– Improve shutdown
– UI: Only show when set up
– Common: Move GetNestedValue and SetNestedValue into json_util
– nxemu: update ui settings to use JsonSetNestedValue
– OS: some code clean up
– Loader: Add information to query in IRomInfo
– Lang: Add RightJoycon svg
– Add .clang-format
– Core: Change switch system to system modules
– Loader: change RomFSFactoryPtr to RomFsControllerPtr
– UI: Fix up controller config for right controller
– update version number to 0.5
Explanations Here.
www.nxemu.com
Changes since version 0.4:
– UI: better shutdown of controller config
– update sciterui
– UI: Add menu option to open App Directory/Log dir
– add about window
– OS: get video setting for is_async_gpu
– UI: Confirm closure of the emulator
– Fixed BOTW & TOTK
– Loader: fix up how Service:
– Update copyright year in build version headers
– change how app init works with passing in the base dir and app dir
– Loader: Add setting for CheckForUpdatedFirmware
– loader: ask the user to upgrade firmware ifd firmware in xci
– UI: Remove controller svg out of input_config_player.html
– UI: Add svg to the menu
– have my pusher stop when no longer powered on
– fix up ui settings bool/int32 setting
– UI: Add Notification::Query
– fix up .gitmodules zlib
– UI: update how motion cube works
– Add external CMakeLists.txt
– Android: Add java_vm to ModuleInterfaces
– update to latest sciterui
– UI: Update motion buttons
– ui: Update the look and feel of the loading screen
– UI: fix up game cube controller svg
– UI: Update the svg when button state is changed
– UI: Limit stick refresh to ounce every 50 milliseconds
– UI: Fix up recent pull request merges
– UI: Update how pause panel works
– UI: Do not constant hammer refreshing UI on DiskCacheLoadChanged
– loader: GetRelativePathFromNcaID add hashing of the path
– UI: Update status bar function names
– Be able to show installed firmware on the status bar
– Be able to install firmware from a folder
– be able to change docked/handheld
– merge volume
– Remove wtl
– ui: give an option to hide/show the ui elements
– OS: have OS settings full handle setting with a float
– Update menu to be able to have icons/check box and add an option to start the emulator in fullscreen
– Loader: expose IFilesystem, IContentProvider and add CreateMemoryFile, ReadBanner, ReadLogo
– loader: Add IRomInfo::ReadManualRomFS
– OS: Add applets information to all the frontend to set Applets
– OS: be able to create web browser applet
– UI: Add a web browser applet to open the page in an external browser
– Add hotkey for stop emulation, controller and configuration
– Some work to prepare for android
– OS: move docked mode out of yuzu common, and in to the OS module
– OS: Move applet and audio settings out of common and in to OS
– OS: Move System and time settings in to setting OS from common settings
– OS: Move controller and linux setting out of common and in to OS module
– Some work on CMakeLists.txt
– ui: configurable hotkeys, menu accelerators
– Add borderless fullscreen
– CPU: Add PrefetchAbortBreakLoop halt reason
– Loader: In RomFsControllerImpl::OpenRomFS if the file fail to open return nullptr
– external: Suppress warnings in external projects
– Fix up some WIN32/non WIN32 issues
– Loader: Fix up VfsVirtualFile::GetContainingDirectory
– CPU: Code clean up and fixing fast memory in 64bit
– common: remove out the find files out of path and into path finder
– Common: remove use of fixed path buffers
– common: get path more cross compatible with clang
– Common: Fix a bug in Path:
– common: update file class so it does not have to use the window api
– Common: Json limit __debugbreak to just be for win32
– core: Change AppInit to pass the config path
– Change using __interface to nxinterface
– Update sciterui
– Update to dev 0.6
– Loader: rename SaveDataFactoryPtr to SaveDataFactoryImpl
– Loader: Rename RomFsControllerPtr to RomFsControllerImp
– Loader: rename VirtualDirectoryPtr, VirtualFilePtr to VirtualDirectoryImpl, VirtualFileImpl
– Loader: Some code clean up
– loader: change IFSileSysRegisteredCache to return by reference only
– OS: Fix up save SettingType::U16, SettingType::BooleanSwitchable, SettingType::Float
– loader: fix a typo
– OS/Loader: Add IDirectory and directory and file lists
– Loader: Some code clean up
– Loader: Code clean up of patch_manager.cpp
– OS: FSP_SRV::OpenDataStorageByDataId
– video: fix project so it includes ffmpeg in release
– NXEmu-Dev-0.6.0-290-991e8bc: Core ability Add to have a setting as a float
– Video: export ShadersBuilding
– OS: export GetAndResetPerfStats
– UI: Add status text
– Add 3rd Party/ffmpeg files
– UI: only show render window when NXCoreSetting:
– OS: remove System::GetFileSystemController
– Reset modules before starting a game
– Video: some code cleanup
– UI: update game browser config to use the new list widget
– Lang: Fix up width of input config
– UI: clean up input device list when controller configuration is closed
– Lang: update LoadingPanel default display
– UI: Update controller input so styles are in the parent header
– Update to use sciter to sciter-js-sdk-6.0.3.5
– Add rom browser
– OS: application nvdrv Container::CloseSession
– Core: Make sure sdl and shutdowns on close
– Core: Improve shut down when a game is playing
– Loader: Add ISystemloader::LoadedRomInfo
– UI: Start to add option to stop emulation
– OS: Rename GetPageTable to GetKPageTable
– CPU: move DynarmicCallbacks64 into a member variable
– CPU: Fix memory write exclusive
– CPU: Add IKernelProcess and some code clean up
– OS: remove arm_interface
– CPU: move CpuHaltReason out of ICpuCore
– CPU: Add ICoreSystem
– CPU: Update ICpuCore so the majority is handled by the cpu plugin
– CPU: Start to add 32bit cpu
– Core: Save core settings on saving config page
– UI: a little tweak to the menu display
– OS: rename GetMemory to GetCoreMemory and some code clean up
– CPU: move ProcessorArchitecture into cpu interface
– CPU: Update how exclusive monitor works
– CPU: Add CpuDebugWatchpointType
– CPU: Rename IArm64Executor to ICpuCore
– OS: rename GetOwnerProcess to GetOwnerKProcess()
– OS: change how LoadSvcArguments/SaveSvcArguments argument type
– CPU: Add CpuThreadContext to the cpu spec
– Lang: increase min window size
– Improve shutdown
– UI: Only show when set up
– Common: Move GetNestedValue and SetNestedValue into json_util
– nxemu: update ui settings to use JsonSetNestedValue
– OS: some code clean up
– Loader: Add information to query in IRomInfo
– Lang: Add RightJoycon svg
– Add .clang-format
– Core: Change switch system to system modules
– Loader: change RomFSFactoryPtr to RomFsControllerPtr
– UI: Fix up controller config for right controller
– update version number to 0.5
Explanations Here.
NxEmu – Switch Emulator
NxEmu is a free, open-source Nintendo Switch emulator in active development for Windows, written in C++.