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)

The quick and easy way to add versatile graphical interfaces with networking capabilities to your Python programs.

The quick and easy way to add versatile graphical interfaces with networking capabilities to your Python programs. Give instant access to your application to whoever you want on the Internet, without

Claude SIMON 215 Dec 28, 2022
HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities.

HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities. Looking for Artwork This project is looking for an Icon an

8 Dec 03, 2022
A html canvas based screencasting server with occasional ground-truth updates via screenshots and very fast input drawing

rm2canvas A html canvas based screencasting server for the reMarkable 1/2 digital paper systems. It draws live on the canvas from the remarkables touc

45 Sep 08, 2022
MATE Layouts is a small panel layout switching application for the MATE Desktop.

a small panel layout switching application for the MATE Desktop

Wilbur Wetterquarz 6 Oct 14, 2022
UI for converting various point cloud file formats

Point cloud format converter This coverter based on open3d. If you're using old ROS1 i suggest to use conda python3 evn to install requirements. Todo

Haegu Lee 1 Oct 29, 2021
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
Win32mica: a simple module to add the Mica effect on legacy python windows.

Win32mica (aka PyMica): A simple module to add the Mica effect on legacy python windows The aim of this project is to apply the Mica effect on python

Martí Climent 40 Dec 13, 2022
A desktop application developed in Python with PyQt5 to predict demand and help monitor and schedule brewing processes for Barnaby's Brewhouse.

brewhouse-management A desktop application developed in Python with PyQt5 to predict demand and help monitor and schedule brewing processes for Barnab

Isaac Cheng 2 Jul 09, 2022
Write desktop and web apps in pure Python

Flexx Want to stay up-to-date about (changes to) Flexx? Subscribe to the NEWS issue. Introduction Flexx is a pure Python toolkit for creating graphica

flexxui 3.1k Dec 29, 2022
PyCG: Practical Python Call Graphs

PyCG - Practical Python Call Graphs PyCG generates call graphs for Python code using static analysis. It efficiently supports Higher order functions T

Vitalis Salis 185 Dec 29, 2022
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
Function-Plotter - GUI Python program that plots functions that are entered by the user

FunctionPlotter GUI Python program that plots functions that are entered by the user. The program takes minimum and maximum value for x and plot it as

Mohamed Magdy 2 Jan 20, 2022
Custom Widgets For PyQt5

pyqtCuWi Custom Widgets Icon Button Documentation Rank Widget Documentation PopUp OuterRadius PopUp Documentation OuterRadius Documentation Producer:

.CODE 0 Apr 04, 2022
TkArt - A repository created to explore geometry and art creation using TkInter

tkArt A repository created to explore geometry and art creation using TkInter, a

Jayant Sogikar 18 Oct 01, 2022
AutoKey, a desktop automation utility for Linux and X11.

AutoKey Contents About Installation Zero-installation Method Documentation Support Bug reports and Pull Requests Changelog License About AutoKey, a de

2.5k Dec 31, 2022
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
Delphi's FireMonkey framework as a Python module for Windows, MacOS, Linux, and Android GUI development.

DelphiFMX4Python Delphi's FireMonkey framework as a Python module for Windows, MacOS, Linux, and Android GUI development. About: The delphifmx library

Embarcadero Technologies 191 Jan 09, 2023
This is a rip off of the classical iPhone Calculator . This project has been made with PyQT5

iPhoneCalcRIP-OFF This is a rip off of the classical iPhone Calculator . This project has been made with PyQT5

Juss Patel 7 May 01, 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
Gmail account using brute force attack

Programmed in Python | PySimpleGUI Gmail Hack Python script with PySimpleGUI for hack gmail account using brute force attack If you like it give it

Adrijan 127 Dec 30, 2022