diff --git a/.classpath b/.classpath
index 9454e24..e911fdf 100644
--- a/.classpath
+++ b/.classpath
@@ -18,7 +18,7 @@
-
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 13b3428..6f1d295 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,13 +1,13 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=9
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=9
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.source=9
diff --git a/src/main/java/com/cemu_UI/application/Main.java b/src/main/java/com/cemu_UI/application/Main.java
index 652b049..c27dff4 100644
--- a/src/main/java/com/cemu_UI/application/Main.java
+++ b/src/main/java/com/cemu_UI/application/Main.java
@@ -141,6 +141,7 @@ public class Main extends Application {
mainWindowController.setLanguage("en_US");
mainWindowController.setLastLocalSync(0);
mainWindowController.setxPosHelper(0);
+ mainWindowController.setExecuteCommand(mainWindowController.getCemuPath() + "/Cemu.exe -g ");
mainWindowController.saveSettings();
Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs)
System.exit(0); //finishes itself
@@ -212,11 +213,10 @@ public class Main extends Application {
Optional result2 = alert2.showAndWait();
if (result2.get() == ButtonType.OK) {
DirectoryChooser directoryChooser = new DirectoryChooser();
- File selectedDirectory = directoryChooser.showDialog(primaryStage);
- mainWindowController.setRomPath(selectedDirectory.getAbsolutePath());
-
+ File selectedDirectory = directoryChooser.showDialog(primaryStage);
+ mainWindowController.setRomDirectoryPath(selectedDirectory.getAbsolutePath());
} else {
- mainWindowController.setRomPath(null);
+ mainWindowController.setRomDirectoryPath(null);
}
}
diff --git a/src/main/java/com/cemu_UI/application/MainWindowController.java b/src/main/java/com/cemu_UI/application/MainWindowController.java
index 6c44ab8..150a2d0 100644
--- a/src/main/java/com/cemu_UI/application/MainWindowController.java
+++ b/src/main/java/com/cemu_UI/application/MainWindowController.java
@@ -157,6 +157,9 @@ public class MainWindowController {
@FXML
private JFXTextField courseSearchTextFiled;
+
+ @FXML
+ private JFXTextField executeCommandTextFiled;
@FXML
private TextFlow smmdbTextFlow;
@@ -279,8 +282,9 @@ public class MainWindowController {
private boolean cloudSync;
private String cloudService = ""; // set cloud provider (at the moment only GoogleDrive, Dropbox is planed)
private String cemuPath;
- private String romPath;
+ private String romDirectoryPath;
private String gameExecutePath;
+ private String executeCommand;
private String color;
private String dialogBtnStyle;
private String selectedGameTitleID;
@@ -399,7 +403,8 @@ public class MainWindowController {
}
cemuTextField.setText(cemuPath);
- romTextField.setText(romPath);
+ romTextField.setText(romDirectoryPath);
+ executeCommandTextFiled.setText(getExecuteCommand());
colorPicker.setValue(Color.valueOf(getColor()));
fullscreenToggleBtn.setSelected(isFullscreen());
cloudSyncToggleBtn.setSelected(isCloudSync());
@@ -800,6 +805,30 @@ public class MainWindowController {
}
}
});
+
+ cemuTextField.textProperty().addListener(new ChangeListener() {
+ @Override
+ public void changed(ObservableValue extends String> observable, String oldValue, String newValue) {
+ setCemuPath(cemuTextField.getText());
+ saveSettings();
+ }
+ });
+
+ romTextField.textProperty().addListener(new ChangeListener() {
+ @Override
+ public void changed(ObservableValue extends String> observable, String oldValue, String newValue) {
+ setRomDirectoryPath(romTextField.getText());
+ saveSettings();
+ }
+ });
+
+ executeCommandTextFiled.textProperty().addListener(new ChangeListener() {
+ @Override
+ public void changed(ObservableValue extends String> observable, String oldValue, String newValue) {
+ setExecuteCommand(executeCommandTextFiled.getText());
+ saveSettings();
+ }
+ });
LOGGER.info("initializing Actions done!");
}
@@ -846,7 +875,7 @@ public class MainWindowController {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
- dbController.loadRomDirectory(getRomPath()); // reload the rom directory
+ dbController.loadRomDirectory(getRomDirectoryPath()); // reload the rom directory
Platform.runLater(() -> {
refreshUIData(); // refresh the list of games displayed on screen
@@ -938,7 +967,7 @@ public class MainWindowController {
if (romDirectory == null) {
LOGGER.info("No Directory selected");
} else {
- setRomPath(romDirectory.getAbsolutePath());
+ setRomDirectoryPath(romDirectory.getAbsolutePath());
saveSettings();
cemuTextField.setText(getCemuPath());
try {
@@ -1041,24 +1070,16 @@ public class MainWindowController {
}
}
- @FXML
- void cemuTextFieldAction(ActionEvent event) {
- setCemuPath(cemuTextField.getText());
- saveSettings();
- }
-
- @FXML
- void romTextFieldAction(ActionEvent event) {
- setRomPath(romTextField.getText());
- saveSettings();
- }
-
@FXML
void fullscreenToggleBtnAction(ActionEvent event) {
if (fullscreen) {
fullscreen = false;
+ setExecuteCommand(getExecuteCommand().replace("-f -g", "-g"));
+ executeCommandTextFiled.setText(getExecuteCommand());
} else {
fullscreen = true;
+ setExecuteCommand(getExecuteCommand().replace("-g", "-f -g"));
+ executeCommandTextFiled.setText(getExecuteCommand());
}
saveSettings();
}
@@ -1638,7 +1659,8 @@ public class MainWindowController {
OutputStream outputStream; //new output-stream
try {
props.setProperty("cemuPath", getCemuPath());
- props.setProperty("romPath", getRomPath());
+ props.setProperty("romPath", getRomDirectoryPath());
+ props.setProperty("executeCommand", getExecuteCommand());
props.setProperty("color", getColor());
props.setProperty("language", getLanguage());
props.setProperty("fullscreen", String.valueOf(isFullscreen()));
@@ -1690,10 +1712,17 @@ public class MainWindowController {
}
try {
- setRomPath(props.getProperty("romPath"));
+ setRomDirectoryPath(props.getProperty("romPath"));
} catch (Exception e) {
LOGGER.error("could not load romPath", e);
- setRomPath("");
+ setRomDirectoryPath("");
+ }
+
+ if (props.getProperty("executeCommand") == null) {
+ LOGGER.error("could not load executeCommand, setting default instead!");
+ setExecuteCommand(getCemuPath() + "\\Cemu.exe -g ");
+ } else {
+ setExecuteCommand(props.getProperty("executeCommand"));
}
try {
@@ -1862,14 +1891,22 @@ public class MainWindowController {
this.cemuPath = cemuPath;
}
- public String getRomPath() {
- return romPath;
+ public String getRomDirectoryPath() {
+ return romDirectoryPath;
}
- public void setRomPath(String romPath) {
- this.romPath = romPath;
+ public void setRomDirectoryPath(String romDirectoryPath) {
+ this.romDirectoryPath = romDirectoryPath;
}
+ public String getExecuteCommand() {
+ return executeCommand;
+ }
+
+ public void setExecuteCommand(String executeCommand) {
+ this.executeCommand = executeCommand;
+ }
+
public String getColor() {
return color;
}
diff --git a/src/main/java/com/cemu_UI/application/playGame.java b/src/main/java/com/cemu_UI/application/playGame.java
index b6afd6b..751c896 100644
--- a/src/main/java/com/cemu_UI/application/playGame.java
+++ b/src/main/java/com/cemu_UI/application/playGame.java
@@ -57,19 +57,22 @@ public class playGame extends Thread{
});
startTime = System.currentTimeMillis();
try{
- if(mainWindowController.isFullscreen()){
- if(System.getProperty("os.name").equals("Linux")){
- executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\"";
- } else {
- executeComand = mainWindowController.getCemuPath()+"\\Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\"";
- }
- }else{
- if(System.getProperty("os.name").equals("Linux")){
- executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -g \""+mainWindowController.getGameExecutePath()+"\"";
- } else {
- executeComand = mainWindowController.getCemuPath()+"\\Cemu.exe -g \""+mainWindowController.getGameExecutePath()+"\"";
- }
- }
+ executeComand = mainWindowController.getExecuteCommand() + " \"" + mainWindowController.getGameExecutePath() + "\"";
+
+// if(mainWindowController.isFullscreen()){
+// if(System.getProperty("os.name").equals("Linux")){
+// executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\"";
+// } else {
+// executeComand = mainWindowController.getCemuPath()+"\\Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\"";
+// }
+// }else{
+// if(System.getProperty("os.name").equals("Linux")){
+// executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -g \""+mainWindowController.getGameExecutePath()+"\"";
+// } else {
+// executeComand = mainWindowController.getCemuPath() + "\\Cemu.exe -g " + "\"" + mainWindowController.getGameExecutePath() + "\"";
+// }
+// }
+
LOGGER.info(executeComand);
p = Runtime.getRuntime().exec(executeComand);
diff --git a/src/main/java/com/cemu_UI/controller/DBController.java b/src/main/java/com/cemu_UI/controller/DBController.java
index 394b7ca..52e9c9e 100644
--- a/src/main/java/com/cemu_UI/controller/DBController.java
+++ b/src/main/java/com/cemu_UI/controller/DBController.java
@@ -149,7 +149,7 @@ public class DBController {
LOGGER.error("error while loading ROMs from ROM database, local_roms table", e);
}
if (entries.size() == 0) {
- loadRomDirectory(mainWindowController.getRomPath());
+ loadRomDirectory(mainWindowController.getRomDirectoryPath());
}
}
diff --git a/src/main/resources/fxml/MainWindow.fxml b/src/main/resources/fxml/MainWindow.fxml
index d67e830..b0c0bdb 100644
--- a/src/main/resources/fxml/MainWindow.fxml
+++ b/src/main/resources/fxml/MainWindow.fxml
@@ -18,7 +18,7 @@
-
+
@@ -91,12 +91,12 @@
-
+
-
+
@@ -105,12 +105,12 @@
-
+
-
+
@@ -170,6 +170,15 @@
+
+
+
+
+
+
+
+
+