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 ^^^^

    • #3613: Fixed encoding errors in expand.StaticModule when system default encoding doesn't match expectations for source files.
    • #3617: Merge with pypa/distutils@6852b20 including fix for pypa/distutils#181.

    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)

Owner
null
Create shortcuts on Windows to your Python, EXE, Batch files or any other file using a GUI made with PySimpleGUI

shor Windows Shortcut Creation Create Windows Shortcuts to your python programs and any other file easily using this application created using PySimpl

PySimpleGUI 7 Nov 16, 2021
A GUI for designing Python GUI's for PySimpleGUI.

SimpleGUIBuilder A GUI for designing Python GUI's for PySimpleGUI. Installation There is none :) just download the file from a release and run it. Don

Miguel Martins 65 Dec 22, 2022
PyQt5 Sample GUI Program - Python PyQt5 Sample GUI application

Python PyQt5 Sample GUI application Program work like this Designed GUI using De

Dimuth De Zoysa 5 Mar 27, 2022
The GUI application by Python3.8. Using QT Design draw UI and generator UI XML file provides to PySide2 build GUI components

The GUI application by Python3.8. Using QT Design draw UI and generator UI XML file provides to PySide2 build GUI components. Total adopt OOD design class, service, and abstract class. OOP implemented this project.

Jiage 1 Jan 11, 2022
pyglet is a cross-platform windowing and multimedia library for Python, for developing games and other visually rich applications.

pyglet pyglet is a cross-platform windowing and multimedia library for Python, intended for developing games and other visually rich applications. It

null 1.3k Jan 1, 2023
A simple Python Module for sending cross-platform desktop notifications on Windows, macOS and Linux

notify.py Cross platform desktop notifications for Python scripts and applications. Docs You can read the docs on this Git's Wiki, or here Supported P

Mustafa 178 Dec 26, 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

null 1 Feb 12, 2022
Kivy is an open source Python framework for creating cross-platform multi-touch mobile applications with Natural User Interface.

Kivy is an open source Python framework for creating cross-platform multi-touch mobile applications with Natural User Interface.

Grace Ugochi Nneji 3 Feb 15, 2022
A library for building modern declarative desktop applications in WX.

re-wx is a library for building modern declarative desktop applications. It's built as a management layer on top of WXPython, which means you get all the goodness of a mature, native, cross-platform UI kit, wrapped up in a modern, React inspired API.

Chris 115 Dec 24, 2022
Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

Will McGugan 17.1k Jan 8, 2023
A very simple calculator with a modern UI made in Python thanks for the stunning Sun-Valley-ttk-theme and Segoe UI Variable font.

Fluent-Python-Calculator A simple Python calculator with Sun-Valley-ttk-theme About Fluent-Python-Calculator: A very simple calculator with a modern U

null 59 Dec 6, 2022
A little Python library for making simple Electron-like HTML/JS GUI apps

Eel Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries. Ee

Chris Knott 5.4k Jan 7, 2023
Turn (almost) any Python command line program into a full GUI application with one line

Gooey Turn (almost) any Python 2 or 3 Console Program into a GUI application with one line Support this project Table of Contents Gooey Table of conte

Chris 17k Jan 9, 2023
Build GUI for your Python program with JavaScript, HTML, and CSS

https://pywebview.flowrl.com pywebview is a lightweight cross-platform wrapper around a webview component that allows to display HTML content in its o

Roman 3.3k Jan 1, 2023
A Python native, OS native GUI toolkit.

Toga A Python native, OS native GUI toolkit. Prerequisites Minimum requirements Toga requires Python 3. Python 2 is not supported. If you're on macOS,

BeeWare 3.3k Dec 31, 2022
Custom GUI for your Blender add-ons using Dear ImGui

Dear Imgui for Blender Use the infamous Dear ImGui library directly in your Blender scripts! This means custom GUI drawing in your operators: Normally

Elie Michel 83 Dec 25, 2022
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 Python native, OS native GUI toolkit.

Toga A Python native, OS native GUI toolkit. Prerequisites Minimum requirements Toga requires Python 3. Python 2 is not supported. If you're on macOS,

BeeWare 3.3k Jan 2, 2023
A small pomodoro GUI for Windows/Linux created in Python with PyQt5.

Pomodoro A small pomodoro GUI for Windows/Linux created with PyQt5. Features The "Timer" tab allows you to set your desired work and rest times aswell

Burak Martin 81 Dec 28, 2022