~korth/gens-gs-ii.git
8 years ago[gens-qt4] GensQApplication.cpp: Split some larger functions from GensQApplication... gens-qt4-GeneralConfigWindow-v3
David Korth [Sat, 29 Jan 2011 01:16:26 +0000 (20:16 -0500)] 
[gens-qt4] GensQApplication.cpp: Split some larger functions from GensQApplication.hpp into a cpp file.

GensQApplication.hpp was getting unwieldy, so splitting it into
two files makes sense. (I should have done this before.)

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Right-align labels for filename textboxes.
David Korth [Sat, 29 Jan 2011 01:02:57 +0000 (20:02 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Right-align labels for filename textboxes.

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Removed an incorrect tooltip on GeneralConfigWi...
David Korth [Sat, 29 Jan 2011 00:58:08 +0000 (19:58 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Removed an incorrect tooltip on GeneralConfigWindow.

The tooltip was a variant of the tooltip used for the
"Border Color Emulation" checkbox. For some reason, I
accidentally applied it to the whole window. Oops.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Added a QSignalMapper for the intro effect colors.
David Korth [Sat, 29 Jan 2011 00:55:37 +0000 (19:55 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Added a QSignalMapper for the intro effect colors.

This maps the 8 buttons to a single slot, which will make it
easier to handle changes.

introEffectColor_selected() currently prints the received color_index
from the QSignalMapper, and saves the index as m_introEffectColor.

TODO: Add an Intro Effect Color entry to GensConfig.

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Renamed the Intro Effect color buttons to opt*.
David Korth [Sat, 29 Jan 2011 00:51:50 +0000 (19:51 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Renamed the Intro Effect color buttons to opt*.

They're technically QPushButtons, but they're used as radio buttons,
so they should use the prefix opt instead of btn.

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Make sure the OSD frame stays at the top of...
David Korth [Sat, 29 Jan 2011 00:39:37 +0000 (19:39 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Make sure the OSD frame stays at the top of the dialog.

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Use the default layout spacing.
David Korth [Sat, 29 Jan 2011 00:32:22 +0000 (19:32 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Use the default layout spacing.

Doubling the layout spacing made things a bit too spaced out.

On WinXP, it's still a bit spaced out, but it seems that it's because
I'm using a larger font. (10pt instead of the default 8pt)

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Added "Emulation Options" and "Intro Effect...
David Korth [Sat, 29 Jan 2011 00:27:52 +0000 (19:27 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Added "Emulation Options" and "Intro Effect" configuration.

These aren't wired up to anything yet, so they don't do anything.

8 years ago[gens-qt4] GensQGLWidget::printOsdText(): Use the specified colors for the FPS counte...
David Korth [Fri, 28 Jan 2011 23:39:48 +0000 (18:39 -0500)] 
[gens-qt4] GensQGLWidget::printOsdText(): Use the specified colors for the FPS counter and messages.

TODO: Allow messages to have per-message colors?
(If not specified, it would fall back to the user-specified color.)

8 years ago[gens-qt4] Added OSD color configuration and notification support to VBackend and...
David Korth [Fri, 28 Jan 2011 23:36:10 +0000 (18:36 -0500)] 
[gens-qt4] Added OSD color configuration and notification support to VBackend and GensQGLWidget.

GensQGLWidget doesn't currently use the OSD colors, so the text
will always be drawn in white.

8 years ago[gens-qt4] VBackend/GensQGLWidget.cpp: Connect the OSD enabled signals from GensConfig.
David Korth [Fri, 28 Jan 2011 23:28:26 +0000 (18:28 -0500)] 
[gens-qt4] VBackend/GensQGLWidget.cpp: Connect the OSD enabled signals from GensConfig.

Enabling and disabling the OSD FPS counter and Message display works now.

8 years ago[gens-qt4] GensConfig.cpp: s/osd(Fps|Msg)Enable/osd(Fps|Msg)Enabled/g
David Korth [Fri, 28 Jan 2011 23:21:43 +0000 (18:21 -0500)] 
[gens-qt4] GensConfig.cpp: s/osd(Fps|Msg)Enable/osd(Fps|Msg)Enabled/g

8 years ago[gens-qt4] VBackend/VBackend.cpp: Fixed two signed/unsigned comparison errors.
David Korth [Fri, 28 Jan 2011 23:16:46 +0000 (18:16 -0500)] 
[gens-qt4] VBackend/VBackend.cpp: Fixed two signed/unsigned comparison errors.

resetFps(), pushFps(): Use size_t for the `for` loop counter variable
instead of int, since the comparison is of type size_t.

8 years ago[gens-qt4] VBackend/VBackend.cpp: Load the OSD enabled settings from GensConfig.
David Korth [Fri, 28 Jan 2011 23:14:01 +0000 (18:14 -0500)] 
[gens-qt4] VBackend/VBackend.cpp: Load the OSD enabled settings from GensConfig.

Renamed "showFps" to "osdFpsEnabled", and added "osdMsgEnabled".

Use osdFpsEnabled() instead of m_osdFpsEnabled directly except
in the osdFpsEnabled property setter function.

VBackend::osd_process(): Clear the message list if OSD messages are disabled.

VBackend.hpp: Mark property getters as inline.

GensQGLWidget.cpp: s/showFps/osdFpsEnabled/g; don't print messages
if osdMsgEnabled() == false.

8 years ago[gens-qt4] GensConfig.cpp: Set the OSD enable states to the specified value, not...
David Korth [Fri, 28 Jan 2011 19:46:29 +0000 (14:46 -0500)] 
[gens-qt4] GensConfig.cpp: Set the OSD enable states to the specified value, not just "true".

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Enable the "Apply" button if an OSD checkbox...
David Korth [Fri, 28 Jan 2011 19:46:02 +0000 (14:46 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Enable the "Apply" button if an OSD checkbox is changed.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Enable the "Apply" button if an OSD color is...
David Korth [Fri, 28 Jan 2011 19:39:05 +0000 (14:39 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Enable the "Apply" button if an OSD color is changed.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Added configuration for Onscreen Display settings.
David Korth [Fri, 28 Jan 2011 19:32:31 +0000 (14:32 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Added configuration for Onscreen Display settings.

FPS counter and Message visibility can now be configured,
along with the text color for each of them.

TODO: Apply the configuration to VBackend. Right now, the configuration
is stored in GensConfig, but it isn't actually applied to the OSD.

GensConfig.cpp: Added configuration settings for the OSD.

ui/GeneralConfigWindow.ui: Added OSD configuration widgets.

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Fix up the tab order.
David Korth [Fri, 28 Jan 2011 18:54:01 +0000 (13:54 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Fix up the tab order.

The tab order is still a bit awkward due to GensLineEdit, but it's
better than before. (The buttonBox is after everything else now,
instead of being immediately after tabWidget.)

8 years ago[extlib/lzma] Converted all files to have UNIX line-endings.
David Korth [Fri, 28 Jan 2011 08:54:40 +0000 (03:54 -0500)] 
[extlib/lzma] Converted all files to have UNIX line-endings.

The LZMA SDK uses Windows line-endings, so we need to make sure
we change them to UNIX line-endings via dos2unix whenever the
LZMA SDK is updated.

8 years ago[extlib/lzma] Updated LZMA SDK to version 9.20.
David Korth [Fri, 28 Jan 2011 08:54:19 +0000 (03:54 -0500)] 
[extlib/lzma] Updated LZMA SDK to version 9.20.

8 years ago[gens-qt4] Use our own WinMain() instead of depending on libqtmain.
David Korth [Thu, 27 Jan 2011 23:34:45 +0000 (18:34 -0500)] 
[gens-qt4] Use our own WinMain() instead of depending on libqtmain.

gqt4_win32.cpp::WinMain() is based on libqtmain, but it doesn't have
the Windows CE-specific code.

Other changes:

- gqt4_main.cpp::main() is now gqt4_main.cpp::gens_main().
  On Win32, it remains gens_main(), but on other platforms,
  it's #define'd to main().

- gens-qt4 no longer links to libmingw32. libmingw32 provided some
  main() redirection stuff that was required with libqtmain, but
  linking it now merely causes conflicts.

- -DQT_NEEDS_QMAIN is no longer needed, since we're implementing
  WinMain() and main() redirection ourselves instead of having
  Qt handle it.

With these changes, Gens/GS II now cross-compiles successfully with
i686-w64-mingw32 (mingw64) on Linux, with a few mior issues:

- The Starscream binaries are compiled as Win32 executables, so they
  have to be run with wine manually.

- Binaries created by mingw64 don't have dependencies on mingwm10.dll
  or libgcc_s_dw2-1.dll, but the precompiled Qt 4.7.1 DLLs do.
  I'll have to compile my own version of Qt/Win32 using mingw64
  in order to get rid of these dependencies.

8 years agoCMakeLists.txt: Include the zlib binary directory when using the bundled zlib.
David Korth [Thu, 27 Jan 2011 19:53:13 +0000 (14:53 -0500)] 
CMakeLists.txt: Include the zlib binary directory when using the bundled zlib.

This is needed in order to correctly #include "zconf.h" when cross-compiling
for Windows using mingw64.

8 years ago[gens-qt4] GensConfig::setExtPrgUnRAR(): Set the RAR binary in LibGens::DcRar.
David Korth [Thu, 27 Jan 2011 16:08:52 +0000 (11:08 -0500)] 
[gens-qt4] GensConfig::setExtPrgUnRAR(): Set the RAR binary in LibGens::DcRar.

TODO: Move this to something like GensConfigHandler.cpp.

TODO: If UnRAR isn't usable, display an error message when loading
a ROM instead of simply doing nothing.

8 years ago[libgens] Decompressor/DcRar.hpp: Added functions to set and get the external RAR...
David Korth [Thu, 27 Jan 2011 16:07:01 +0000 (11:07 -0500)] 
[libgens] Decompressor/DcRar.hpp: Added functions to set and get the external RAR program filename.

8 years agolibgens] lg_main.cpp: Updated the copyright date for 2011.
David Korth [Thu, 27 Jan 2011 10:22:56 +0000 (05:22 -0500)] 
libgens] lg_main.cpp: Updated the copyright date for 2011.

8 years agoTAGS.txt: New tag: gens-qt4-GeneralConfigWindow-v2
David Korth [Thu, 27 Jan 2011 09:58:46 +0000 (04:58 -0500)] 
TAGS.txt: New tag: gens-qt4-GeneralConfigWindow-v2

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): s/lstat/stat/g gens-qt4-GeneralConfigWindow-v2
David Korth [Thu, 27 Jan 2011 09:57:15 +0000 (04:57 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): s/lstat/stat/g

8 years ago[libgens] Decompressor/DcRar.hpp: Call stat(), not lstat().
David Korth [Thu, 27 Jan 2011 09:55:58 +0000 (04:55 -0500)] 
[libgens] Decompressor/DcRar.hpp: Call stat(), not lstat().

lstat() gets information about the symlink itself. We want information about
the file the symlink is pointing to. (For some reason, I was thinking it was
the other way around when I added this code.)

DcRar_Unix.cpp: Updated to use stat() instead of lstat().

DcRar_Win32.cpp: Removed references to lstat(). (We were using stat() anyway
because mingw doesn't currently provide an lstat() function.)

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Convert filenames to use native separators.
David Korth [Thu, 27 Jan 2011 09:54:18 +0000 (04:54 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Convert filenames to use native separators.

Qt4 uses '/' as directory separators, which is fine on Linux and Mac OS X.

On Windows, it gets confusing, since Windows uses '\\' as its directory separator.

Convert the filenames from QFileDialog::getOpenFileName() to use native
directory separators so they show up with backslashes on Win32.

Qt and MinGW both support use of both separators, so this isn't a problem
code-wise. It's just annoying visually.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Set the default filename in QFileDialog::getOpenF...
David Korth [Thu, 27 Jan 2011 09:47:17 +0000 (04:47 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Set the default filename in QFileDialog::getOpenFileName() to the current filename.

On Win32, the directory was always reset to the application directory,
which is annoying

On Linux, the last selected directory was remembered, but it's still
more convenient to set the filename to the specified file in the textbox
to provide instant access to that directory.

8 years ago[libgens] DcRar_Win32.cpp::CheckExtPrg(): Check if the file is a regular file by...
David Korth [Thu, 27 Jan 2011 09:44:53 +0000 (04:44 -0500)] 
[libgens] DcRar_Win32.cpp::CheckExtPrg(): Check if the file is a regular file by calling stat().

NOTE: MinGW currently doesn't provide lstat().
Perhaps we should test for lstat() in CMake.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Added text for the...
David Korth [Thu, 27 Jan 2011 09:40:46 +0000 (04:40 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Added text for the new error codes -6 and -7.

8 years ago[libgens] Decompressor/DcRar.hpp: Added two new error codes:
David Korth [Thu, 27 Jan 2011 09:40:23 +0000 (04:40 -0500)] 
[libgens] Decompressor/DcRar.hpp: Added two new error codes:

* -6: Version information not found.
* -7: Not UnRAR.dll. (Win32 only)

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Updated to use RarEx...
David Korth [Thu, 27 Jan 2011 09:34:55 +0000 (04:34 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Updated to use RarExecType.

8 years ago[libgens] Decompressor/DcRar.hpp: New, more-comprehensive file type enum RarExecType.
David Korth [Thu, 27 Jan 2011 09:34:17 +0000 (04:34 -0500)] 
[libgens] Decompressor/DcRar.hpp: New, more-comprehensive file type enum RarExecType.

This is more comprehensive than the old "is_rar" field, since it allows
us to explicitly specify if it's UnRAR, RAR, UnRAR.dll, or unknown.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Don't print an API...
David Korth [Thu, 27 Jan 2011 09:28:41 +0000 (04:28 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Don't print an API version if it's <= 0.

DLLs that aren't UnRAR.dll won't have the RARGetDllVersion() function,
so the API version will always be 0 in that case. Hence, we don't want
to print the API version because it isn't UnRAR.dll.

8 years ago[libgens] Decompressor/UnRAR_dll.cpp: Make sure m_loaded isn't set to true if the...
David Korth [Thu, 27 Jan 2011 09:26:39 +0000 (04:26 -0500)] 
[libgens] Decompressor/UnRAR_dll.cpp: Make sure m_loaded isn't set to true if the DLL is being unloaded due to missing function pointers.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Really fix program...
David Korth [Thu, 27 Jan 2011 09:17:00 +0000 (04:17 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Really fix program ID display.

We have to print the program ID before printing the version information.
Otherwise, the version information will get overwritten by the program ID.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Display a warning...
David Korth [Thu, 27 Jan 2011 09:15:07 +0000 (04:15 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Display a warning if the UnRAR.dll API version is too old.

Win32 only.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Set sExtPrgStatus_Un...
David Korth [Thu, 27 Jan 2011 09:14:02 +0000 (04:14 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Set sExtPrgStatus_UnRAR after initializing prg_id.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Set the program...
David Korth [Thu, 27 Jan 2011 09:11:37 +0000 (04:11 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Set the program ID if the version number is valid.

Otherwise, if there's a version information error, the program ID
will be listed as "Unknown", even though it's actually known.

8 years ago[libgens] Decompressor/DcRar_Win32.cpp: Ported CheckExtPrg() to the Win32 version.
David Korth [Thu, 27 Jan 2011 09:04:06 +0000 (04:04 -0500)] 
[libgens] Decompressor/DcRar_Win32.cpp: Ported CheckExtPrg() to the Win32 version.

The Win32 version also returns the UnRAR DLL API version number,
in addition to the DLL file version.

CMakeLists.txt: The Win32 version queries are in version.dll,
so we need to link to it.

8 years ago[libgens] Decompressor/DcRar_Unix.cpp: Make sure prg_info is cleared if we return...
David Korth [Thu, 27 Jan 2011 08:57:38 +0000 (03:57 -0500)] 
[libgens] Decompressor/DcRar_Unix.cpp: Make sure prg_info is cleared if we return early.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Only print the two...
David Korth [Thu, 27 Jan 2011 08:53:06 +0000 (03:53 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Only print the two newlines if the version is non-zero.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Fixed the 0-version...
David Korth [Thu, 27 Jan 2011 08:51:15 +0000 (03:51 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Fixed the 0-version test.

We should print the version if *any* field is non-zero,
not just if all fields are non-zero.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Re-added accidentall...
David Korth [Thu, 27 Jan 2011 08:49:09 +0000 (03:49 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Re-added accidentally-deleted "int" keyword.

This was accidentally deleted in commit 9673b069322f58b1627672f2616f75dafa59f7fa.

I was going to rework the version system to use status to indicate
whether or not to print a DLL version, but this was wrong since the
DLL version may be correct even if it's not usable, e.g. if the
API version is too low. I forgot to restore the "int" keyword, though.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Don't print DLL...
David Korth [Thu, 27 Jan 2011 08:48:38 +0000 (03:48 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Don't print DLL version information if the entire version is 0.

This means that the DLL (or executable) couldn't be loaded.

8 years ago[libgens] Decompressor/DcRar_Unix.cpp: Clear all of my_prg_info before using it.
David Korth [Thu, 27 Jan 2011 08:46:39 +0000 (03:46 -0500)] 
[libgens] Decompressor/DcRar_Unix.cpp: Clear all of my_prg_info before using it.

8 years ago[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Updated to use ExtPr...
David Korth [Thu, 27 Jan 2011 08:28:03 +0000 (03:28 -0500)] 
[gens-qt4] GeneralConfigWindow::on_txtExtPrgUnRAR_textChanged(): Updated to use ExtPrgInfo.

8 years ago[libgens] Decompressor/DcRar.hpp: s/prginfo/prg_info/g
David Korth [Thu, 27 Jan 2011 08:14:00 +0000 (03:14 -0500)] 
[libgens] Decompressor/DcRar.hpp: s/prginfo/prg_info/g

DcRar_Unix.cpp: s/prginfo/prg_info/g

8 years ago[libgens] Decompressor/DcRar.hpp: New struct ExtPrgInfo.
David Korth [Thu, 27 Jan 2011 08:12:20 +0000 (03:12 -0500)] 
[libgens] Decompressor/DcRar.hpp: New struct ExtPrgInfo.

This struct is now used by CheckExtPrg() instead of having a bunch of
pointers for different RAR version information fields.

Also, the version information now consists of four uin16_t fields instead
of an MDP-style version number, since Win32 DLLs internally have 64-bit
versions composed of 4 fields.

DcRar_Unix.cpp: Updated to use ExtPrgInfo.

8 years ago[libgens] Decompressor/DcRar_Unix.cpp: Updated the CheckExtPrg() function comment...
David Korth [Thu, 27 Jan 2011 07:59:01 +0000 (02:59 -0500)] 
[libgens] Decompressor/DcRar_Unix.cpp: Updated the CheckExtPrg() function comment to match DcRar.hpp.

8 years ago[libgens] Decompressor/DcRar.hpp: Added a comment for return code -5.
David Korth [Thu, 27 Jan 2011 07:53:05 +0000 (02:53 -0500)] 
[libgens] Decompressor/DcRar.hpp: Added a comment for return code -5.

I forgot to save DcRar.hpp before committing the previous changes. <_<

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Updated to pass NULL for DcRar::CheckExtPrg(...
David Korth [Thu, 27 Jan 2011 07:52:32 +0000 (02:52 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Updated to pass NULL for DcRar::CheckExtPrg()'s rar_api_version parameter.

8 years ago[libgens] Decompressor/DcRar.hpp: Added a parameter rar_api_version to CheckExtPrg.
David Korth [Thu, 27 Jan 2011 07:51:56 +0000 (02:51 -0500)] 
[libgens] Decompressor/DcRar.hpp: Added a parameter rar_api_version to CheckExtPrg.

This is used to return the UnRAR.dll API version on Win32.

DcRar_Unix.cpp has been updated to take the parameter and ignore it.

8 years ago[zlib] gzip_redefinitions.h: Added crc32 -> gens_crc32 redefinition.
David Korth [Thu, 27 Jan 2011 07:45:24 +0000 (02:45 -0500)] 
[zlib] gzip_redefinitions.h: Added crc32 -> gens_crc32 redefinition.

gens-qt4 uses crc32() to verify the Sega CD Boot ROMs, but this caused
a conflict on Win32 because Qt4/Win32 has its own copy of zlib.

See commit 6b90d0b8b808ee8f402ad9bb0bbde79e35db0562 for more information.

8 years ago[libgens] Save/GensZomg.cpp: #include <unistd.h>
David Korth [Thu, 27 Jan 2011 07:38:20 +0000 (02:38 -0500)] 
[libgens] Save/GensZomg.cpp: #include <unistd.h>

This is required for access() and F_OK on Win32.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Handle the two new error codes from LibGens:...
David Korth [Thu, 27 Jan 2011 06:55:46 +0000 (01:55 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Handle the two new error codes from LibGens::DcRar::CheckExtPrg().

TODO: Return errno from lstat() if it fails.

8 years ago[libgens] Decompressor/DcRar_Unix.cpp: Make sure the file is a regular file before...
David Korth [Thu, 27 Jan 2011 06:55:15 +0000 (01:55 -0500)] 
[libgens] Decompressor/DcRar_Unix.cpp: Make sure the file is a regular file before trying to run it.

Otherwise, we get error messages from sh on stdout if the file is
e.g. a directory.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Initialize the textbox icons to SP_MessageBoxQues...
David Korth [Thu, 27 Jan 2011 06:47:19 +0000 (01:47 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Initialize the textbox icons to SP_MessageBoxQuestion.

If the filenames are empty, simply reload()'ing the configuration will
not initialize the textbox icons, since the contents won't change.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Use LibGens::DcRar::CheckExtPrg() to check the...
David Korth [Thu, 27 Jan 2011 06:44:03 +0000 (01:44 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Use LibGens::DcRar::CheckExtPrg() to check the UnRAR binary.

The binary is checked, and the RAR/UnRAR version number is displayed.

TODO: Add Win32 support.

8 years ago[libgens] Decompressor/DcRar.hpp: Added a static function CheckExtPrg().
David Korth [Thu, 27 Jan 2011 06:40:31 +0000 (01:40 -0500)] 
[libgens] Decompressor/DcRar.hpp: Added a static function CheckExtPrg().

This function checks a given external program to verify that it's
UnRAR or RAR (or the UnRAR DLL on Win32). It also optionally returns
the program's version number.

TODO: Add an implementation for Win32.

8 years agoTAGS.txt: New tag: gens-qt4-GeneralConfigWindow-v1
David Korth [Wed, 26 Jan 2011 16:52:55 +0000 (11:52 -0500)] 
TAGS.txt: New tag: gens-qt4-GeneralConfigWindow-v1

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Load and save the UnRAR binary filename. gens-qt4-GeneralConfigWindow-v1
David Korth [Wed, 26 Jan 2011 16:18:57 +0000 (11:18 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Load and save the UnRAR binary filename.

8 years ago[gens-qt4] GensConfig.cpp: Added a configuration entry for the UnRAR binary.
David Korth [Wed, 26 Jan 2011 16:17:19 +0000 (11:17 -0500)] 
[gens-qt4] GensConfig.cpp: Added a configuration entry for the UnRAR binary.

TODO: On Unix, detect presence of unrar or rar and set the default filename accordingly.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Initial support for selecting an UnRAR binary.
David Korth [Wed, 26 Jan 2011 16:12:47 +0000 (11:12 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Initial support for selecting an UnRAR binary.

This allows a user to select RAR or UnRAR on Unix-based systems,
and UnRAR.dll on Win32.

TODO: Add file detection to verify that the correct file is selected.

TODO: Save the filename in the configuration.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Apply button fixes.
David Korth [Wed, 26 Jan 2011 15:53:25 +0000 (10:53 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Apply button fixes.

- Disable the Apply button initially.
- Enable the Apply button if a textbox is changed.
- Disable the Apply button if OK or Apply is clicked.

TODO: If Apply was clicked, set focus back to the main window elements.
Otherwise, Cancel will receive focus.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Load the Sega CD Boot ROM filenames on open and...
David Korth [Wed, 26 Jan 2011 15:47:28 +0000 (10:47 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Load the Sega CD Boot ROM filenames on open and save them on OK/Apply.

8 years ago[gens-qt4] GensConfig.cpp: Initial Gens configuration class.
David Korth [Wed, 26 Jan 2011 15:46:50 +0000 (10:46 -0500)] 
[gens-qt4] GensConfig.cpp: Initial Gens configuration class.

This class currently has Sega CD Boot ROM filenames.

gqt4_main.cpp: Add an instance of the GensConfig class to the
GensQt4 namespace, and create the instance on startup and delete
it on shutdown.

8 years ago[gens-qt4] GensQApplication.hpp: Updated the copyright date.
David Korth [Wed, 26 Jan 2011 15:19:44 +0000 (10:19 -0500)] 
[gens-qt4] GensQApplication.hpp: Updated the copyright date.

8 years ago[gens-qt4] GensQApplication: Set the Qt application information.
David Korth [Wed, 26 Jan 2011 15:18:18 +0000 (10:18 -0500)] 
[gens-qt4] GensQApplication: Set the Qt application information.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Updated to use the new region code format in...
David Korth [Wed, 26 Jan 2011 08:16:03 +0000 (03:16 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Updated to use the new region code format in mcd_rom_db.c.

8 years ago[libgens] Data/mcd_rom_db.c::lg_mcd_rom_GetRegionCodeString(): Use int for region_cod...
David Korth [Wed, 26 Jan 2011 08:13:48 +0000 (03:13 -0500)] 
[libgens] Data/mcd_rom_db.c::lg_mcd_rom_GetRegionCodeString(): Use int for region_code instead of MCD_RegionCode_t.

This fixes some C++ compatibility issues.

8 years ago[libgens] Data/mcd_rom_db.c::lg_mcd_rom_GetRegionCodeString(): Return a string for...
David Korth [Wed, 26 Jan 2011 08:12:18 +0000 (03:12 -0500)] 
[libgens] Data/mcd_rom_db.c::lg_mcd_rom_GetRegionCodeString(): Return a string for MCD_REGION_JAPAN_NTSC | MCD_REGION_JAPAN_PAL.

The "Japan" Boot ROM can be used for either NTSC or PAL, so we should
have a string for that configuration.

8 years ago[libgens] Data/mcd_rom_db.c: Reworked the region code system.
David Korth [Wed, 26 Jan 2011 08:08:25 +0000 (03:08 -0500)] 
[libgens] Data/mcd_rom_db.c: Reworked the region code system.

Some Sega CD Boot ROMs incorrectly support regions that they
shouldn't support. Mega CD 1.00S (Japan/PAL) supports Japan/PAL,
Japan/NTSC, and Europe, but does not support USA. Additionally,
Mega CD 1.00p (Japan/NTSC) doesn't support Japan/PAL).

The reworked region code system uses the same hexadecimal region
code system as newer MD games.

A second region code has been added to database entries to indicate
the primary region code of the ROM. This will be used to display
to the user what region a given ROM is.

8 years ago[libgens] Data/mcd_rom_db.c: Identify the bad Sega CD (U) v2.00 ROM as "(Bad Dump)".
David Korth [Wed, 26 Jan 2011 05:55:38 +0000 (00:55 -0500)] 
[libgens] Data/mcd_rom_db.c: Identify the bad Sega CD (U) v2.00 ROM as "(Bad Dump)".

This prevents confusion with the good dump of the same ROM.

8 years ago[libgens] Data/mcd_rom_db.c: Added four new Sega CD Boot ROMs from no-intro.
David Korth [Tue, 25 Jan 2011 20:12:25 +0000 (15:12 -0500)] 
[libgens] Data/mcd_rom_db.c: Added four new Sega CD Boot ROMs from no-intro.

New Boot ROMs added:
- Mega CD (J) v1.00l (NTSC)
- Mega CD (J) v1.00S (NTSC)
- Sega CD (U) v1.00
- Sega Wondermega M2 (J) v2.00

8 years ago[libgens] Data/mcd_rom_db.c: Removed nohint CRC32 and md5sums.
David Korth [Tue, 25 Jan 2011 19:40:36 +0000 (14:40 -0500)] 
[libgens] Data/mcd_rom_db.c: Removed nohint CRC32 and md5sums.

These aren't needed if SP and HINT fixups are applied before
obtaining the ROM CRC32 or md5sum.

8 years ago[gens-qt4] GeneralConfigWindow::mcdUpdateRomFileStatus(): Apply SP and HINT fixups...
David Korth [Tue, 25 Jan 2011 19:40:04 +0000 (14:40 -0500)] 
[gens-qt4] GeneralConfigWindow::mcdUpdateRomFileStatus(): Apply SP and HINT fixups before obtaining the ROM CRC32.

8 years ago[libgens] Data/mcd_rom_db.c: Added fixup data for Initial SP and Initial HINT vector.
David Korth [Tue, 25 Jan 2011 19:22:34 +0000 (14:22 -0500)] 
[libgens] Data/mcd_rom_db.c: Added fixup data for Initial SP and Initial HINT vector.

The fixups will be applied to loaded ROMs instead of maintaining
multiple CRC32s and md5sums for the different HINT vectors, since
there's also the possibility that HINT vector or Initial SP could
be something different.

I've noticed that Initial SP is always 0xFFFFFD00 and Initial HINT vector
is always 0xFFFFFD0C in known good dumps, so we should fix up all ROMs to
have these values on load.

8 years ago[gens-qt4] CtrlConfigWindow.cpp: Specify file extensions for the controller icons.
David Korth [Tue, 25 Jan 2011 06:16:24 +0000 (01:16 -0500)] 
[gens-qt4] CtrlConfigWindow.cpp: Specify file extensions for the controller icons.

For some reason, the 32-bit build on my system wasn't showing the
controller icons unless I added the file extension.

The 64-bit version (and the 32-bit version back when I was using
32-bit Linux) worked fine. I haven't checked PowerPC, but I suspect
it may have also worked correctly.

I'm not sure why it didn't work on 32-bit, but adding the file
extensions fixes it, so meh.

8 years ago[gens-qt4] Added *.md and *.smd as valid Sega Genesis ROM and Sega CD Boot ROM file...
David Korth [Tue, 25 Jan 2011 05:55:58 +0000 (00:55 -0500)] 
[gens-qt4] Added *.md and *.smd as valid Sega Genesis ROM and Sega CD Boot ROM file extensions.

andlabs has lots of Genesis ROM images with *.md extensions (no-intro
apparently uses it), and *.smd is used for old copier images from the
Super Magic Drive. (SMD deinterleaving isn't implemented at the moment.)

I don't think SMD format support is really needed for Sega CD Boot ROMs,
but some people may have Sega CD Boot ROMs with a *.smd extension for
whatever reason, so we're better off supporting it.

TODO: Move the filename filters out of GeneralConfigWindow.cpp and into
a common file somewhere.

8 years agoTAGS.txt: New tag: gens-qt4-GeneralConfigWindow-v0
David Korth [Tue, 25 Jan 2011 05:50:43 +0000 (00:50 -0500)] 
TAGS.txt: New tag: gens-qt4-GeneralConfigWindow-v0

8 years ago[libgens] Data/mcd_rom_db.c: "Japan (NTSC)" -> "Japan/NTSC"; "Japan (PAL)" -> "Japan... gens-qt4-GeneralConfigWindow-v0
David Korth [Tue, 25 Jan 2011 05:43:35 +0000 (00:43 -0500)] 
[libgens] Data/mcd_rom_db.c: "Japan (NTSC)" -> "Japan/NTSC"; "Japan (PAL)" -> "Japan/PAL"

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Increased the minimum window height from 364px...
David Korth [Tue, 25 Jan 2011 05:42:50 +0000 (00:42 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Increased the minimum window height from 364px to 384px.

8 years ago[gens-qt4] GeneralConfigWindow::GeneralConfigWindow(): Set the tab order for the...
David Korth [Tue, 25 Jan 2011 05:33:57 +0000 (00:33 -0500)] 
[gens-qt4] GeneralConfigWindow::GeneralConfigWindow(): Set the tab order for the GensLineEdit textboxes.

The GensLineEdit textboxes (used for Sega CD Boot ROM filenames)
aren't available in Qt Designer, so we have to set the tab order
for these widgets manually.

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Allow text selection in lblMcdSelectedRom by...
David Korth [Tue, 25 Jan 2011 05:31:15 +0000 (00:31 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Allow text selection in lblMcdSelectedRom by both mouse and keyboard.

8 years ago[gens-qt4] ui/GeneralConfigWindow.ui: Minor adjustments to the UI.
David Korth [Tue, 25 Jan 2011 05:29:12 +0000 (00:29 -0500)] 
[gens-qt4] ui/GeneralConfigWindow.ui: Minor adjustments to the UI.

- GeneralConfigWindow: Set a minimum window size of 494x364.

- lblMcdSelectedRom:

  - Enable wordwrapping. This prevents long descriptions from
    forcing the window's horizontal size to increase.

  - Remove the vertical spacer below the label and set the
    size policy to Expanding for both Horizontal and Vertical.

8 years ago[gens-qt4] GeneralConfigWindow::mcdUpdateRomFileStatus(); Display the ROM support...
David Korth [Tue, 25 Jan 2011 05:24:07 +0000 (00:24 -0500)] 
[gens-qt4] GeneralConfigWindow::mcdUpdateRomFileStatus(); Display the ROM support status.

ROMs with status RomStatus_Broken will trigger an "(X)" icon,
ROMs with status RomStatus_Unsupported will trigger an "/!\" icon.

Also, print the notes field after the ROM status information.

TODO: Should we make a distinction between RomStatus_Recommended
and RomStatus_Supported?

8 years ago[libgens] Data/mcd_rom_db.c: Fixed spacing in the notes field in all database entries.
David Korth [Tue, 25 Jan 2011 05:23:14 +0000 (00:23 -0500)] 
[libgens] Data/mcd_rom_db.c: Fixed spacing in the notes field in all database entries.

The notes were split into multiple lines in the source code, but I
forgot to add extra spaces to the beginning of the second line,
so the words ended up being joined together.

8 years ago[libgens] mcd_rom_db.c: Added a function lg_mcd_rom_GetNotes().
David Korth [Tue, 25 Jan 2011 05:15:20 +0000 (00:15 -0500)] 
[libgens] mcd_rom_db.c: Added a function lg_mcd_rom_GetNotes().

This function returns the notes field for the specified Boot ROM.

8 years ago[gens-qt4] GeneralConfigWindow::mcdDisplayRomFileStatus(): Don't add an extra newline...
David Korth [Tue, 25 Jan 2011 05:09:45 +0000 (00:09 -0500)] 
[gens-qt4] GeneralConfigWindow::mcdDisplayRomFileStatus(): Don't add an extra newline between "Selected ROM" and the ROM ID.

8 years ago[gens-qt4] GeneralConfigWindow::mcdUpdateRomFileStatus(): Use lg_mcd_rom_GetRegionCod...
David Korth [Tue, 25 Jan 2011 05:09:12 +0000 (00:09 -0500)] 
[gens-qt4] GeneralConfigWindow::mcdUpdateRomFileStatus(): Use lg_mcd_rom_GetRegionCodeString() to get region code strings.

8 years ago[libgens] Data/mcd_rom_db.c: Added a function lg_mcd_rom_GetRegionCodeString().
David Korth [Tue, 25 Jan 2011 05:07:06 +0000 (00:07 -0500)] 
[libgens] Data/mcd_rom_db.c: Added a function lg_mcd_rom_GetRegionCodeString().

This function gets a string that describes a region code,
or NULL if the region code is invalid.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Check the ROM image in the Sega CD Boot ROM database.
David Korth [Tue, 25 Jan 2011 05:03:39 +0000 (00:03 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Check the ROM image in the Sega CD Boot ROM database.

If the ROM isn't found in the database, it's marked as Unknown and
the ROM status icon is set to QStyle::SP_MessageBoxWarning.

If the ROM is found, its region code is then checked. If the region
matches (or is compatible, as is the case with JPN/NTSC and JPN/PAL),
the ROM will be marked as valid. Otherwise, a warning will be printed
indicating that a region code mismatch has occurred.

8 years ago[libgens] Data/mcd_rom_db.c: Added functions to get descriptions, regions, and suppor...
David Korth [Tue, 25 Jan 2011 05:01:56 +0000 (00:01 -0500)] 
[libgens] Data/mcd_rom_db.c: Added functions to get descriptions, regions, and support status of the specified Boot ROM image.

8 years ago[libgens] Data/mcd_rom_db.h: Make sure functions are exported with C linkage.
David Korth [Tue, 25 Jan 2011 04:36:25 +0000 (23:36 -0500)] 
[libgens] Data/mcd_rom_db.h: Make sure functions are exported with C linkage.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Update the Sega CD Boot ROM status when the filen...
David Korth [Tue, 25 Jan 2011 04:10:03 +0000 (23:10 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Update the Sega CD Boot ROM status when the filename textboxes are changed.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Lots of Sega CD Boot ROM status updates.
David Korth [Tue, 25 Jan 2011 04:01:16 +0000 (23:01 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Lots of Sega CD Boot ROM status updates.

The status text updates now, but the ROM isn't checked using the
Sega CD Boot ROM database yet.