diff --git a/README.md b/README.md
index 2e4025d..0d17020 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,27 @@
-# nes4j
-
-
-
+
+

+
Nes4j
+
Nintendo red and white simulator
+
+
+
-
+
+
+
## Project introduction
**nes4j**The Nintendo Red and White Machine Simulator is implemented in Java language, mainly
diff --git a/README_zh.md b/README_zh.md
index b89f43e..abe749f 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -2,8 +2,6 @@
Nes4j
任天堂红白机模拟器
-
-
@@ -13,12 +11,17 @@
+

+

+

+
-

+
+
## 项目介绍
diff --git a/SNAPSHOTS/Main.png b/SNAPSHOTS/Main.png
new file mode 100644
index 0000000..b46676d
Binary files /dev/null and b/SNAPSHOTS/Main.png differ
diff --git a/app/src/main/java/cn/navclub/nes4j/app/Launcher.java b/app/src/main/java/cn/navclub/nes4j/app/Launcher.java
index 560e183..7ffdf38 100644
--- a/app/src/main/java/cn/navclub/nes4j/app/Launcher.java
+++ b/app/src/main/java/cn/navclub/nes4j/app/Launcher.java
@@ -2,18 +2,20 @@
import cn.navclub.nes4j.app.config.NESConfig;
import cn.navclub.nes4j.app.util.JsonUtil;
+import cn.navclub.nes4j.app.util.OSUtil;
import cn.navclub.nes4j.app.util.StrUtil;
import cn.navclub.nes4j.bin.logging.LoggerFactory;
import cn.navclub.nes4j.bin.logging.LoggerDelegate;
import javafx.application.Application;
+import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
public class Launcher {
private static final LoggerDelegate log = LoggerFactory.logger(Launcher.class);
- private static final String DEFAULT_CONFIG_PATH = "config/config.json";
+ private static final String DEFAULT_CONFIG_PATH = OSUtil.workstation() + "config.json";
public static void main(String[] args) throws Exception {
//Register global catch thread exception
@@ -27,9 +29,9 @@ public static void main(String[] args) throws Exception {
/**
- * 加载本地配置文件
+ * Load test environment config
*
- * @param args 程序启动参数
+ * @param args Program args
*/
protected static NESConfig loadLocalConfig(String[] args) throws Exception {
var map = StrUtil.args2Map(args);
diff --git a/app/src/main/java/cn/navclub/nes4j/app/util/OSUtil.java b/app/src/main/java/cn/navclub/nes4j/app/util/OSUtil.java
index 5e437a2..8187567 100644
--- a/app/src/main/java/cn/navclub/nes4j/app/util/OSUtil.java
+++ b/app/src/main/java/cn/navclub/nes4j/app/util/OSUtil.java
@@ -38,27 +38,37 @@ public static String userHome(String subdir) {
return String.format("%s%s", path, subdir);
}
- public static Path workstation() {
- var file = new File(userHome("nes4j"));
+ public static String workstation() {
+ return workstation(null);
+ }
+
+ public static String workstation(String subdir) {
+ final File file;
+ if (StrUtil.isNotBlank(subdir)) {
+ file = new File(String.format("%s%s%s", userHome("nes4j"), File.separator, subdir));
+ } else {
+ file = new File(userHome("nes4j"));
+ }
if (!file.exists()) {
- var ok = file.mkdir();
+ var ok = file.mkdirs();
if (!ok) {
log.warning("Create work path:{} fail.", file.getAbsolutePath());
}
}
- return file.toPath();
+ return file.getAbsolutePath() + File.separator;
}
public static Optional mkdirAssort(String assort) {
- var path = workstation();
- var str = String.format("%s%s%s", path, File.separator, assort);
+ var path = workstation("rom");
+ var str = String.format("%s%s", path, assort);
var file = new File(str);
var ok = file.mkdir();
if (log.isDebugEnabled()) {
if (!ok) {
file = null;
}
- log.debug("Create target assort:{} result:{}", assort, ok);
+ assert file != null;
+ log.debug("Create target assort:{} result:{}", file.getAbsolutePath(), ok);
}
return Optional.ofNullable(file);
}
diff --git a/app/src/main/java/cn/navclub/nes4j/app/view/GameHall.java b/app/src/main/java/cn/navclub/nes4j/app/view/GameHall.java
index 332e1e3..49087d1 100644
--- a/app/src/main/java/cn/navclub/nes4j/app/view/GameHall.java
+++ b/app/src/main/java/cn/navclub/nes4j/app/view/GameHall.java
@@ -71,7 +71,7 @@ public void preExecute() {
@Override
@SuppressWarnings("all")
public List execute(Object... params) {
- var path = Path.of(OSUtil.workstation().toString(), params[0].toString());
+ var path = Path.of(OSUtil.workstation("rom"), params[0].toString());
var file = path.toFile();
if (!file.exists() || file.listFiles() == null) {
return List.of();
@@ -126,7 +126,7 @@ private boolean requestRun(Message message) {
}
private void loadAssort() {
- var file = OSUtil.workstation().toFile();
+ var file = new File(OSUtil.workstation("rom"));
var list = file.listFiles();
if (list == null) {
return;
@@ -144,7 +144,7 @@ private void loadAssort() {
* otherwise visit github.
*/
@FXML
- public void github() {
+ public void repository() {
final String uri;
var tid = TimeZone.getDefault().getID();
if (tid.toLowerCase().contains("shanghai")) {
diff --git a/app/src/main/resources/cn/navclub/nes4j/app/assets/fxml/GameHall.fxml b/app/src/main/resources/cn/navclub/nes4j/app/assets/fxml/GameHall.fxml
index f88e80b..a1f44c9 100644
--- a/app/src/main/resources/cn/navclub/nes4j/app/assets/fxml/GameHall.fxml
+++ b/app/src/main/resources/cn/navclub/nes4j/app/assets/fxml/GameHall.fxml
@@ -64,7 +64,7 @@
-