~korth/gens-gs-ii.git
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.

8 years ago[libgens] Data/mcd_rom_db.c: Initial Sega CD Boot ROM database.
David Korth [Tue, 25 Jan 2011 03:41:34 +0000 (22:41 -0500)] 
[libgens] Data/mcd_rom_db.c: Initial Sega CD Boot ROM database.

The boot ROM database has CRC32s and md5sums for most of the known
Sega CD Boot ROMs. The CRC32s and md5sums were taken for both raw
dumps (with 0xFFFFFD0C horizontal interrupt vector) and on-system
dumps (with 0xFFFFFFFF horizontal interrupt vector).

Also included are region code, ROM support status, description,
and notes about the ROM specific to libgens and Gens/GS II.

8 years ago[gens-qt4] GeneralConfigWindow.cpp: Display the selected ROM ID in lblMcdSelectedRom.
David Korth [Tue, 25 Jan 2011 03:30:03 +0000 (22:30 -0500)] 
[gens-qt4] GeneralConfigWindow.cpp: Display the selected ROM ID in lblMcdSelectedRom.

mcdUpdateRomFileStatus(): Show an exclamation point icon if the file exists.

GensLineEdit: Added signals for focus-in/focus-out.

lblMcdSelectedRom is updated when a focus-in event is received from
one of the Sega CD Boot ROM textboxes.

8 years ago[gens-qt4] CtrlConfigWindow::CtrlConfigWindow(): Updated to use gqt4_emuContext.
David Korth [Tue, 25 Jan 2011 03:26:54 +0000 (22:26 -0500)] 
[gens-qt4] CtrlConfigWindow::CtrlConfigWindow(): Updated to use gqt4_emuContext.

If gqt4_emuContext is NULL, assume no devices are connected.

This fixes a segmentation fault that occurred if emulation wasn't running.

TODO: Load from the configuration cache instead of the emulation context.

8 years ago[gens-qt4] GensLineEdit.cpp: Fixed icon padding.
David Korth [Tue, 25 Jan 2011 02:59:51 +0000 (21:59 -0500)] 
[gens-qt4] GensLineEdit.cpp: Fixed icon padding.

Setting the padding element in the QLabel stylesheet crops the icon
instead of adding padding. Instead, we should make the QLabel a few
pixels larger than the icon, and manually request a 16x16 icon instead
of using the QLabel's size().

8 years ago[gens-qt4] GensLineEdit.cpp: New QLineEdit subclass with support for a right-aligned...
David Korth [Tue, 25 Jan 2011 02:54:29 +0000 (21:54 -0500)] 
[gens-qt4] GensLineEdit.cpp: New QLineEdit subclass with support for a right-aligned icon.

This allows us to indicate the ROM status with an icon:
- (?): No filename specified, or unable to open file.
- (X): Known broken ROM.
- /!\: Unsupported ROM.
- Checkmark: Supported and/or recommended ROM.

8 years ago[gens-qt4] Initial implementation of the General Configuration Window.
David Korth [Tue, 25 Jan 2011 01:59:26 +0000 (20:59 -0500)] 
[gens-qt4] Initial implementation of the General Configuration Window.

The General Configuration Window currently has configuration for
Sega CD boot ROMs. (Sega CD isn't implemented yet, though.)

The configuration currently does not detect the contents of the
selected ROM. The next step is implementing an internal Sega CD
Boot ROM database to identify the Boot ROMs and indicate any
potential errors.

8 years ago[gens-qt4] EmuManager.cpp: #include <config.h>
David Korth [Tue, 25 Jan 2011 01:50:03 +0000 (20:50 -0500)] 
[gens-qt4] EmuManager.cpp: #include <config.h>

8 years agoTAGS.txt: New tag: mcd_pcm-0.1
David Korth [Mon, 24 Jan 2011 06:35:51 +0000 (01:35 -0500)] 
TAGS.txt: New tag: mcd_pcm-0.1

8 years ago[libgens] Dc7z.cpp: 7-Zip's internal filenames are UTF-16BE on big-endian systems.
David Korth [Mon, 24 Jan 2011 05:30:03 +0000 (00:30 -0500)] 
[libgens] Dc7z.cpp: 7-Zip's internal filenames are UTF-16BE on big-endian systems.

This fixes 7-Zip filename display on PowerPC systems.

8 years ago[gens-qt4] GensMenuBar::parseMenu(): Don't add icons to menus on Mac OS X.
David Korth [Mon, 24 Jan 2011 04:52:40 +0000 (23:52 -0500)] 
[gens-qt4] GensMenuBar::parseMenu(): Don't add icons to menus on Mac OS X.

They look horribly out of place on Mac OS X, and I don't think
any other application uses icons in menus for that reason.

8 years ago[libgens] Util/gens_iconv.c: Accept strings with broken input sequences.
David Korth [Mon, 24 Jan 2011 04:25:02 +0000 (23:25 -0500)] 
[libgens] Util/gens_iconv.c: Accept strings with broken input sequences.

Madou Monogatari I has a broken Shift-JIS sequence at position 9.
We should at least show the first few characters instead of parsing
the text as ASCII.

This bug was reported by andlabs in #techies.

8 years ago[libgens] Rom::initEEPRom(): Don't set the EEPRom filename if the ROM isn't in the...
David Korth [Mon, 24 Jan 2011 04:14:57 +0000 (23:14 -0500)] 
[libgens] Rom::initEEPRom(): Don't set the EEPRom filename if the ROM isn't in the EEPRom ROM database.

8 years ago[libgens] Save/EEPRom_DB.cpp: Split the EEPRom ROM database from EEPRom.cpp into...
David Korth [Mon, 24 Jan 2011 04:08:36 +0000 (23:08 -0500)] 
[libgens] Save/EEPRom_DB.cpp: Split the EEPRom ROM database from EEPRom.cpp into a separate file.

8 years ago[libgens] SRam.hpp, EEPRom.hpp: Work around a bug that causes EEPRom to crash on...
David Korth [Mon, 24 Jan 2011 03:53:18 +0000 (22:53 -0500)] 
[libgens] SRam.hpp, EEPRom.hpp: Work around a bug that causes EEPRom to crash on Mac OS X 10.5.

For some reason, putting m_filename after the "EEPRom file handling functions"
comment results in the emulator crashing later on. This fixes that, but there
still may be memory corruption problems elsewhere.

I also applied the same change to SRam.hpp, though that didn't seem
to be crashing.

8 years ago[libgens] Moved m_SRam and m_EEPRom out of M68K_Mem and into EmuContext.
David Korth [Mon, 24 Jan 2011 03:31:01 +0000 (22:31 -0500)] 
[libgens] Moved m_SRam and m_EEPRom out of M68K_Mem and into EmuContext.

These don't belong in M68K_Mem anyway.

Note: I added some temporary static functions so that M68K_Mem can access
the EmuContext SRam/EEPRom data. This may be a little slower, but it will
be removed once M68K_Mem is fully context-aware.

I did this in an attempt to fix the crash bug on Mac OS X, but it didn't
work. Something's probably wrong within the EEPRom class itself.

8 years ago[gens-qt4] Improved emulation thread synchronization.
David Korth [Mon, 24 Jan 2011 02:14:14 +0000 (21:14 -0500)] 
[gens-qt4] Improved emulation thread synchronization.

EmuManager::emuFrameDone(): Don't do anything if the emulation thread
is NULL, or if the emulation thread has been requested to stop.

EmuThread::isStopRequested(): Returns the value of m_stop. This function
is thread-safe, since it locks m_mutex before checking m_stop.

EmuThread::~EmuThread(): Don't call stop() and wait() here, since that
probably won't work in the thread's own destructor.

8 years agoInitial work on creating a new EmuContext system.
David Korth [Mon, 24 Jan 2011 01:58:26 +0000 (20:58 -0500)] 
Initial work on creating a new EmuContext system.

EmuContext converts EmuMD into a regular class. This will make it
much easier to handle resetting the emulated system state, since
all that's required is deleting the class instance.

Currently, parts of the emulation context (like M68K memory) are
still static, so only one EmuContext can be created at a time.
If a second context is created, the program will assert() and abort().

8 years ago[libgens] Decompressor: Mark the destructor as virtual.
David Korth [Mon, 24 Jan 2011 01:10:18 +0000 (20:10 -0500)] 
[libgens] Decompressor: Mark the destructor as virtual.

Classes with virtual functions should have virtual destructors.

8 years ago[libzomg] ZomgSave.cpp::Zomg::savePsgReg(): Use int for the loop counter instead...
David Korth [Mon, 24 Jan 2011 01:05:42 +0000 (20:05 -0500)] 
[libzomg] ZomgSave.cpp::Zomg::savePsgReg(): Use int for the loop counter instead of unsigned int.

8 years ago[libzomg] ZomgSave.cpp::Zomg::savePsgReg(): Fixed a typo that broke compilation on...
David Korth [Mon, 24 Jan 2011 01:04:48 +0000 (20:04 -0500)] 
[libzomg] ZomgSave.cpp::Zomg::savePsgReg(): Fixed a typo that broke compilation on big-endian systems.

8 years ago[tools] mcd_pcm.c: New Sega CD PCM conversion tool. mcd_pcm-0.1
David Korth [Fri, 21 Jan 2011 07:11:27 +0000 (02:11 -0500)] 
[tools] mcd_pcm.c: New Sega CD PCM conversion tool.

mcd_pcm is a tool to convert Sega CD sign/magnitude PCM to standard
unsigned 8-bit PCM in WAV format.

Version 0.1 supports converting a Sega CD PCM file to WAV with
configurable starting position, maximum length, and WAV sample rate.

GNU getopt is used for command line parsing.

8 years agoAdded extra parentheses to the __swab32(x) macros in the byteswap headers.
David Korth [Fri, 21 Jan 2011 06:28:49 +0000 (01:28 -0500)] 
Added extra parentheses to the __swab32(x) macros in the byteswap headers.

This affects libgens/Util/byteswap.h and libzomg/zomg_byteswap.h.

I noticed some warnings regarding missing parentheses when writing the
mcd_pcm utility, which uses the same byteswapping macros as both libgens
and libzomg. Adding these parentheses fixes these warnings.

8 years ago[gens-qt4] VBackend/GensQGLWidget.cpp: Removed TODOs about display lists for OSD...
David Korth [Thu, 20 Jan 2011 04:06:25 +0000 (23:06 -0500)] 
[gens-qt4] VBackend/GensQGLWidget.cpp: Removed TODOs about display lists for OSD messages.

OSD messages have used display lists since commit e1381f1ede4ea1ff75f1a0c4b3dfe06a51077cd7.

8 years ago[gens-qt4] VBackend/GensQGLWidget.cpp: Map Unicode characters to cp437 control charac...
David Korth [Thu, 20 Jan 2011 04:05:52 +0000 (23:05 -0500)] 
[gens-qt4] VBackend/GensQGLWidget.cpp: Map Unicode characters to cp437 control characters.

This is currently done using a switch/case block, which might not be the most
efficient way to do it. I'll figure out some way to optimize this later.

8 years ago[gens-qt4] ui/resources/gens/vga-charset.png: Added cp437 control characters.
David Korth [Thu, 20 Jan 2011 04:04:50 +0000 (23:04 -0500)] 
[gens-qt4] ui/resources/gens/vga-charset.png: Added cp437 control characters.

The paragraph and section symbols are also present in cp1252, so I may
replace then with other symbols later.

8 years ago[gens-qt4] GensQGLWidget::resizeGL(): Simplified aspect ratio constraint code a bit.
David Korth [Thu, 20 Jan 2011 03:22:13 +0000 (22:22 -0500)] 
[gens-qt4] GensQGLWidget::resizeGL(): Simplified aspect ratio constraint code a bit.

Compute the ratio once and assign it to a const double instead of
computing it multiple times within glOrtho().

g++ probably optimized this out anyway, but doing this makes it
easier to maintain, since we only have the ratio calculation once
in the original source code instead of twice for each branch.

8 years ago[gens-qt4] AboutWindow.cpp: Updated to use the new credits format. gens-credits-v1
David Korth [Sun, 16 Jan 2011 01:59:04 +0000 (20:59 -0500)] 
[gens-qt4] AboutWindow.cpp: Updated to use the new credits format.