sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- Download zsh-autosuggestions by
open class Listener<T>(element: T) { | |
var value: T = element | |
protected set(value) { | |
field = value | |
notifyObservers(field) | |
} | |
private val observers: MutableMap<UUID, Observer<T>> = ConcurrentHashMap() | |
private fun notifyObservers(newValue: T) { | |
observers.forEach { it.value.onChange(newValue) } |
class ObservableSyncList<T>(list: MutableList<T> = ArrayList()) : SyncList<T>(list), ListListener { | |
override val observers: MutableMap<UUID, SilentObserver> = ConcurrentHashMap() | |
override fun add(element: T) = super.add(element).also { notifyObservers() } | |
override fun addAll(elements: Collection<T>) = super.addAll(elements).also { notifyObservers() } | |
override fun set(index: Int, element: T): T = super.set(index, element).also { notifyObservers() } |
inline fun bench(run: () -> Unit) = (0..1_000_000).map { | |
measureTime(run).inMicroseconds | |
}.average() | |
bench { | |
// first code | |
}.toString() + "us" | |
bench { | |
// second code |
inline fun <T> Closeable.use(block: () -> T): T { | |
var exception: Throwable? = null | |
try { | |
return block() | |
} catch (e: Throwable) { | |
exception = e | |
throw e | |
} finally { | |
when (exception) { | |
null -> close() |
import org.apache.logging.log4j.Level; | |
import org.apache.logging.log4j.Marker; | |
import org.apache.logging.log4j.core.Filter; | |
import org.apache.logging.log4j.core.LogEvent; | |
import org.apache.logging.log4j.core.Logger; | |
import org.apache.logging.log4j.core.filter.AbstractFilter; | |
import org.apache.logging.log4j.message.Message; | |
import org.jetbrains.annotations.NotNull; | |
import org.jetbrains.annotations.Nullable; |
import arrow.core.nonFatalOrThrow | |
import kotlinx.coroutines.CoroutineScope | |
import kotlinx.coroutines.Job | |
import kotlinx.coroutines.coroutineScope | |
import kotlinx.coroutines.delay | |
import kotlinx.coroutines.isActive | |
import kotlinx.coroutines.launch | |
import org.slf4j.Logger | |
import org.slf4j.LoggerFactory | |
import java.util.concurrent.AbstractExecutorService |
This guide is primarily intended for PC players; however, it can be adapted for other platforms with the necessary adjustments.
During my attempt to transfer my Kingdom Hearts (KH) save file from the Epic Games Store (EGS) version to the Steam version, I encountered numerous challenges. After extensive research and trial and error, I successfully migrated my save data. This guide documents my findings and the exact steps I followed. While my process focused on migrating from EGS to Steam, the method should also work in reverse.
Additionally, with this knowledge, you will be able to extract specific save slots from one save file and insert them into another. To do this, you can skip any modifications to the "sys" entry, as it is unnecessary when transferring individual slots.
I've also used this guide with great success to migrate my PS2 (.psu
) KH2 save to play on PC.
You want to copy your entire 1TB NMVE SSD into a new, 2TB NMVE SSD you bought, you have two computers, but both of them only have one NMVE slot each, so a direct copy from one SSD into the other using only one computer isn't needed.