private void loadROM() {
		romOpenChooser.setSelectedFile(null);
		int returnVal = romOpenChooser.showOpenDialog(this);
		if (returnVal == JFileChooser.APPROVE_OPTION) {
			final File fh = romOpenChooser.getSelectedFile();
			for (RomHandler rh : checkHandlers) {
				if (rh.detectRom(fh.getAbsolutePath())) {
					this.romHandler = rh;
					opDialog = new OperationDialog(
							bundle.getString("RandomizerGUI.loadingText"),
							this, true);
					Thread t = new Thread() {
						@Override
						public void run() {
							SwingUtilities.invokeLater(new Runnable() {
								@Override
								public void run() {
									opDialog.setVisible(true);
								}
							});
							try {
								RandomizerGUI.this.romHandler.loadRom(fh
										.getAbsolutePath());
							} catch (Exception ex) {
								long time = System.currentTimeMillis();
								try {
									String errlog = "error_" + time + ".txt";
									PrintStream ps = new PrintStream(
											new FileOutputStream(errlog));
									PrintStream e1 = System.err;
									System.setErr(ps);
									ex.printStackTrace();
									verboseLog.close();
									System.setErr(e1);
									ps.close();
									JOptionPane
											.showMessageDialog(
													RandomizerGUI.this,
													String.format(
															bundle.getString("RandomizerGUI.loadFailed"),
															errlog));
								} catch (Exception logex) {
									JOptionPane
											.showMessageDialog(
													RandomizerGUI.this,
													bundle.getString("RandomizerGUI.loadFailedNoLog"));
									verboseLog.close();
								}
							}
							SwingUtilities.invokeLater(new Runnable() {
								@Override
								public void run() {
									RandomizerGUI.this.opDialog
											.setVisible(false);
									RandomizerGUI.this.initialFormState();
									RandomizerGUI.this.romLoaded();
								}
							});
						}
					};
					t.start();

					return;
				}
			}
			JOptionPane.showMessageDialog(this, String.format(
					bundle.getString("RandomizerGUI.unsupportedRom"),
					fh.getName()));
		}

	}