HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities.

Overview

HDLG

GPLv3 license PyPI version Python versions PyPI status Contributors GitHub issues Build

HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities.

Looking for Artwork

This project is looking for an Icon and Text Logo as well as a Banner artwork. If you have some free time and would like to contribute artwork to the project, let me know!

Installation

pip install --user hdlg

To run hdlg, type hdlg into any terminal, command prompt, app launcher, or the start menu.

If you wish to manually install from the source, take a look at Building.

To-do

  • Craft initial GUI with Qt.
  • Push to PyPI and add relevant Badges.
  • Add PyInstaller make file.
  • Add local PS2 HDD connection option.
  • List installed games of selected HDD.
  • Show HDD information like Disk Size, Space Used, and such.
  • Add Inno Setup script.
  • Add ability to install a new game to selected HDD.
  • Create a file based settings system.
  • Add remote PS2 HDD (samba) connection option.

Building

This project requires Poetry, so feel free to take advantage and use it for its various conveniences like building sdist/wheel packages, creating and managing dependencies, virtual environments, and more.

Note:

  • Source Code may have changes that may be old, not yet tested or stable, or may have regressions.
  • Only run or install from Source Code if you have a good reason. Examples would be to test for regressions, test changes (either your own or other contributors), or to research the code (agreeing to the LICENSE).
  • Poetry is required as it's used as the PEP 517 build system, virtual environment manager, dependency manager, and more.

Install from Source Code

git clone https://github.com/rlaphoenix/hdlg.git
cd hdlg
pip install --user .

Building source and wheel distributions

poetry build

You can specify -f to build sdist or wheel only. Built files can be found in the /dist directory.

Packing with PyInstaller

poetry run python pyinstaller.py

The build is now available at ./dist.

Comments
  • Bump setuptools from 59.6.0 to 65.5.1

    Bump setuptools from 59.6.0 to 65.5.1

    Bumps setuptools from 59.6.0 to 65.5.1.

    Release notes

    Sourced from setuptools's releases.

    v65.5.1

    No release notes provided.

    v65.5.0

    No release notes provided.

    v65.4.1

    No release notes provided.

    v65.4.0

    No release notes provided.

    v65.3.0

    No release notes provided.

    v65.2.0

    No release notes provided.

    v65.1.1

    No release notes provided.

    v65.1.0

    No release notes provided.

    v65.0.2

    No release notes provided.

    v65.0.1

    No release notes provided.

    v65.0.0

    No release notes provided.

    v64.0.3

    No release notes provided.

    v64.0.2

    No release notes provided.

    v64.0.1

    No release notes provided.

    v64.0.0

    No release notes provided.

    v63.4.3

    No release notes provided.

    v63.4.2

    No release notes provided.

    ... (truncated)

    Changelog

    Sourced from setuptools's changelog.

    v65.5.1

    Misc ^^^^

    • #3638: Drop a test dependency on the mock package, always use :external+python:py:mod:unittest.mock -- by :user:hroncok
    • #3659: Fixed REDoS vector in package_index.

    v65.5.0

    Changes ^^^^^^^

    • #3624: Fixed editable install for multi-module/no-package src-layout projects.
    • #3626: Minor refactorings to support distutils using stdlib logging module.

    Documentation changes ^^^^^^^^^^^^^^^^^^^^^

    • #3419: Updated the example version numbers to be compliant with PEP-440 on the "Specifying Your Project’s Version" page of the user guide.

    Misc ^^^^

    • #3569: Improved information about conflicting entries in the current working directory and editable install (in documentation and as an informational warning).
    • #3576: Updated version of validate_pyproject.

    v65.4.1

    Misc ^^^^

    v65.4.0

    Changes ^^^^^^^

    v65.3.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Frozen PyInstaller builds open subprocesses in new windows, slower calls

    Frozen PyInstaller builds open subprocesses in new windows, slower calls

    The windows are always foreground as well. Quite annoying. I've also noticed that when this happens, the subprocess calls are very noticeably slower. By like a good 10 seconds, compared to almost immediate otherwise.

    opened by rlaphoenix 0
  • Batch Installations incorrectly set the disabled state on buttons, hdd list, e.t.c

    Batch Installations incorrectly set the disabled state on buttons, hdd list, e.t.c

    It seems when the first install finishes, and it refreshes the game list, it incorrectly has everything else enabled like the install button except briefly everytime an installation fails.

    bug 
    opened by rlaphoenix 0
  • Continue batch installation if ISO or Game File failed verification

    Continue batch installation if ISO or Game File failed verification

    Currently it shows a message and prevents the installation loop from continuing until its closed.
    Instead, it should show the message and still continue.

    enhancement 
    opened by rlaphoenix 0
  • Refresh Button runs on UI thread

    Refresh Button runs on UI thread

    The Refresh button runs the worker on the main thread somehow. If you let the HDD sleep then refresh, so it takes time to scan, the UI will freeze until done.

    opened by rlaphoenix 0
  • Installation should auto-delete the info.sys file created by hdl-dump

    Installation should auto-delete the info.sys file created by hdl-dump

    When you run an inject_dvd or inject_cd command, an info.sys file is created (seemingly in the working directory, or possibly next to the hdl-dump binary).

    This info.sys file seems relatively pointless, so we might as well just delete it.

    Example info.sys file,

    title = Demon Stone
    title_id = SLUS_208.04
    title_sub_id = 0
    release_date = 20000101
    developer_id =
    publisher_id = OPL Launcher
    note =
    content_web =
    image_topviewflag = 0
    image_type = 0
    image_count = 1
    image_viewsec = 600
    copyright_viewflag = 1
    copyright_imgcount = 1
    genre =
    parental_lock = 1
    effective_date = 0
    expire_date = 0
    violence_flag = 0
    content_type = 255
    content_subtype = 0
    
    enhancement 
    opened by rlaphoenix 0
Releases(v0.2.1)
  • v0.2.1(Dec 3, 2022)

    Added

    • Added new Open File Dialog filter that shows ALL supported game files by default.
    • Added ZSO files to the Open File Dialog filter, even though hdl-dump doesn't yet seem to properly support ZSO.

    Fixed

    • Fixed support for Dual-layer DVD games (any game above 4GB in size).
    • Properly request Admin Rights on PyInstaller builds, fixing a startup crash.
    • Now handles errors with cdvd_info2 calls more efficiently and safely.
    Source code(tar.gz)
    Source code(zip)
    hdlg-0.2.1-py3-none-any.whl(30.69 KB)
    HDLG-Setup-Manifest.txt(22.75 KB)
    HDLG-Setup.exe(31.73 MB)
  • v0.2.0(Oct 29, 2022)

    Note: This release does not check or notify the user if the hdl_dump.exe binary was not found, nor is it included in the Windows Installer. Please download it yourself and place it in the root of the installation folder. Make sure it is named exactly hdl_dump.exe.

    Added

    • Added support for Python 3.10.
    • The CI/CD GitHub Actions workflows were updated and improved. Windows Installers are now created automatically.
    • Added ability to install any file-based PS2 game file to a PS2 HDD with the 'Install' button. Batch installation is supported by selecting multiple game files in the Open File Dialogue.
    • Added is_admin(), is_frozen(), and require_admin() utilities.
    • Added hdl_dump() utility for executing hdl_dump and returning the stdout.
    • The about menu now shows if you are running under a Frozen Python environment.
    • HDD now has a hdl_target property structured for use with hdl_dump. E.g., hdd4: instead of \\.\E:.
    • HDD now has a cached disk_map property that returns the Total Slice Size, Used Space, and Available Space.
    • Disk Space is now shown in the HDD Information Panel using the HDD disk_map property.
    • HDD buttons now display a 2-pixel border on the left when clicked to indicate which one was loaded.
    • UI now uses a status_message string signal from the Worker class to update the status bar's message.
    • Added a reset_state() method to the UI class to reset the state of the program as if it just opened. It's now also being run on start up to remove dummy state data from the Qt Creator .ui file.
    • The Installation Button now has File Type filters for all supported file-based PS2 game extensions.
    • Banner Artwork PNG and PSD, as well as a GitHub Social Banner PSD.
    • Recommended hdl-dump and LaunchELF programs are now linked in the README.
    • A UI preview image has been added to the README.
    • Added an Inno Setup script file to create a Setup binary to install a Frozen Python build. It expects a Frozen Python build directory and not a single packed binary.
    • Created a Changelog with all previous releases' missing changes.

    Changed

    • Administrator Rights are now required when starting due to some low-level calls requiring Administrator permissions. This may change over time if alternative methods are found, but for now it is simply required.
    • Worker class has been moved to worker.py.
    • Games are now sorted alphabetically by Game Name in HDDs get_games_list().
    • HDDs are now listed in ascending order based on HDD index.
    • Unexpected Errors now open an error dialog with extended error information instead of printing to stdout.
    • Replaced manual calls to hdl_dump with the hdl_dump() utility across the codebase.
    • HDDs hdl_target property is now used across the codebase instead of manual efforts to calculate the target.
    • Worker Class's finished signal is now valueless.
    • Various QSS changes were made to improve the UI color scheme.
    • Project Development Status changed to Stage 3 - Alpha.

    Removed

    • Dropped support for Python 3.6.
    • Dropped notion of 'Cross-Platform' across the project as it is not yet cross-platform. Only Windows is currently supported and all code that ran only under specific IF trees have been removed and Windows is now expected. Support for other Operating Systems will be added in the future.
    • 'Looking for Artwork' section in the README has been removed. I'm not specifically looking for any artwork anymore.
    • The clear_hdd_list() function has been removed. The new reset_state() function should be used instead as it clears more related state information in similar scenarios.

    Fixed

    • Unexpected Errors are now caught and handled in the UI thread.
    • Unknown Command errors on hdl-dump calls are now explicitly handled telling the user their binary may be outdated.
    • Cancelling the Open PS2 Game File Dialogue no longer causes a runtime error.
    • HDDs get_games_list() now supports listing improperly installed games where either the game name or id is missing. A [!] will be shown in place of the missing value to indicate a bad installation.
    Source code(tar.gz)
    Source code(zip)
    hdlg-0.2.0-py3-none-any.whl(30.47 KB)
    HDLG-Setup-Manifest.txt(24.73 KB)
    HDLG-Setup.exe(31.72 MB)
  • v0.1.0(Oct 16, 2021)

    Added

    • Added two Windows-only dependencies, WMI and pywin32. These are required for scanning HDDs.
    • Created initial Worker class.
    • Created HDD class for working with the scanned HDDs.
    • Created a Size Unit helper utility for listing file sizes in a more human-readable format.
    • Added ability to scan and list HDDs with find_hdds() method in the Worker and add_hdd_button() in the UI class.
    • Added ability to clear the list of scanned HDDs with clear_hdd_list() method in the UI class.
    • Added ability to clear and re-scan the list of HDDs by clicking the refresh icon.
    • Added ability to load a scanned HDD to list HDD information and more with get_hdd_info() method in the Worker and use_hdd_info() in the UI class.
    • Added ability to list games within an HDD with get_game_list() method in the HDD class.

    Changed

    • The HDD list will now automatically be scanned and populated on program launch.

    Fixed

    • The dummy state from the Qt Creator .ui file is now reset on program launch, before it's shown.
    Source code(tar.gz)
    Source code(zip)
    hdlg-0.1.0-py3-none-any.whl(27.11 KB)
  • v0.0.1(Oct 14, 2021)

Primeira interface (simples) desenvolvida em Python utilizando o PySimpleGUI

Interface-Python Sobre o projeto Primeira interface gráfica (simples) desenvolvida em Python utilizando o PySimpleGUI Interface Gráfica Tecnologias ut

Matheus Maia Alvarez 5 Apr 09, 2022
Awesome examples for my Sun Valley ttk theme!

Sun Valley ttk theme examples This is the examples repo for my stunning Sun Valley ttk theme! Be sure to start and atch this repo, because I will uplo

rdbende 117 Jan 03, 2023
Windows & Linux GUI application to use a Satodime (satodime.io)

Satodime-Tool Licence: LGPL v3 Author: Toporin Language: Python (= 3.6) Homepage: https://github.com/Toporin/Satodime-Tool Introduction What is Satod

4 Dec 16, 2022
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 07, 2023
Dress up your code with a beautiful graphical user interface !

Dresscode Dress up your code with a beautiful graphical user interface ! This project is part of the Pyrustic Ecosystem. Look powered by the cyberpunk

20 Aug 24, 2022
Write interactive web app in script way.

PyWebIO Write interactive web app in script way. [Document] | [Demos] | [Why PyWebIO?] English | 中文 PyWebIO provides a series of imperative functions

PyWebIO 3.6k Dec 31, 2022
A Simple GUI application to organize and store accounts/passwords.

PyssView A Simple GUI application to organize and store accounts/passwords. Install/Run (Linux) Via script This way will install a binary version and

Jefferson Richard Dias 1 Nov 24, 2021
A quick GUI script to pseudo-anonymize patient videos for use in the GRK

grk_patient_sorter A quick GUI script to pseudo-anonymize patient videos for use in the GRK. Source directory — the highest level folder that will be

Peter Somers 1 Dec 09, 2021
A Url Shortener with GUI made in Python.

Url-Shortener-with-GUI-in-python A Url Shortener with GUI made in Python. To Run this download the zip file and run the main file or Clone this repo.

SidTheMiner 1 Nov 12, 2021
A keyboard-driven, vim-like browser based on PyQt5.

qutebrowser is a keyboard-focused browser with a minimal GUI. It’s based on Python and PyQt5 and free software, licensed under the GPL.

qutebrowser 8.4k Jan 01, 2023
Edifice: a declarative GUI library for Python

Edifice is a Python library for building reactive UI, inspired by modern Javascript libraries such as React.

David Ding 193 Dec 11, 2022
A Virtual Desktop Assistant Written in Python

DesktopAssitant A Virtual Desktop Assistant Written in Python. It's generally a basic virtual assistant The basic purpose of this is to make work easi

Technerd Brainiac 597 Dec 31, 2022
A Minimalistic Backup GUI for your Windows, Mac or Linux

BlobBackup is a minimalistic backup utility for your Windows, Mac or Linux computer. With an excellent engine, extensive storage support, and an easy

Bimba Shrestha 283 Nov 30, 2022
Plantasia, all your plants and muchrooms in one place!

Plantasia Project Description Tkinter GUI to be used as a repository for plants and muchrooms. It helps to optimize the search for species that have h

Marco Rodrigues 1 Dec 23, 2021
An qt asset browser for applications like houdini/nuke/maya/blender

AssetBrowser A qt asset browser for applications like houdini/nuke/maya/blender Currently in development Note: Only houdini plugin available during de

Jonas Sorgenfrei 6 Aug 05, 2022
Cross-platform BrowserViews for the desktop.

Webview We use wxPython Phoenix to provide webviews. It's cross platform between Windows and macOS primarily, Linux versions require extra setup. Appl

1 Feb 12, 2022
PyEditor - A Simple Text Editor for python

PyEditor work in progress Text Editor for python Installation git clone https://github.com/ArmenG888/PyEditor Install the libraries Linux or mac pip

ArmenG 3 Mar 15, 2022
A Virtual Desktop Assistant Written in Python

DesktopAssitant A Virtual Desktop Assistant Written in Python. It's generally a basic virtual assistant The basic purpose of this is to make work easi

Technerd brainiac 609 Jan 07, 2023
Firefox 96 Webapps for Gnome 3

mozapp Do you prefer Firefox to Chrome? Me too! But ever since Firefox dropped support for standalone web applications, I've resorted to using Chrome

Marten de Vries 8 Oct 31, 2022
PyQt Custom Frameless Main Window (Enable to move and resize)

pyqt-custom-frameless-mainwindow PyQt Custom Frameless Main Window (Enable to move and resize) Requirements PyQt5 = 5.8 Setup pip3 install git+https:

Jung Gyu Yoon 1 Jan 13, 2022