# Share Your Software



## Samuel Venable (Aug 14, 2021)

I'll start. Use my post as a general template. Provide as much or as little information as you like about your software. Only share your software if FreeBSD is among the supported platforms, otherwise this would be regarded as "too far off-topic". Cross-platform software is fine. But the focus of this forum is on FreeBSD, thus make sure anything you post here is only shared because FreeBSD is among the supported platforms, whether by the source code or in binary form if closed-source.

_One software per post. No users should post twice in a row without letting others get a chance to share._

*Name:* panoview
*Interface:* GUI/CLI
*Broad Category:* Image Viewer
*Original/Primary Author or Just a Contributor?:* the former
*Narrow Category:* 360 Degree Cylindrical Panoramic Image Viewer
*Supported Formats (where applicable, or N/A):* *.PNG
*Has Linking Exception In License:* No
*Permissive License:* Yes
*Commercial:* No
*If Commercial, Demo Available:* N/A
*Credit Author(s) Required:* "Samuel Venable" copyright holder mention is optional in code comments, other authors required to stay in-tact.
*Commercial Use Allowed:* Allowed in all circumstances legal where you live
*Redistribution Allowed:* Yes
*License:* MIT, license changes permissible for derivative works, with the exception of "Unlicense"
*Patent-Related issues with software:* No
*Officially Tested FreeBSD Version Supported (this field is required by topic):* FreeBSD 13.0-RELEASE-pX
*Other Platforms Tested/Supported:* Windows 10, macOS Big Sur, Ubuntu 20.04 LTS Focal Fossa, Raspberry Pi OS 10 Buster, DragonFly BSD 6.0.0-RELEASE-pX
*CLI Usage (or N/A if not applicable): *panoview [your-panorama.png-or-directory-containing-png's] [your-cursor.png]

*Short description:*
360 degree cylindrical panorama viewer - can be used graphically or from the command line

*Long Description:*

My panorama viewer has always supported viewing static panoramas in png format. I also used to support webm videos for animation and audio support. Writing the webm support though turned out a super problem when it came to attempting to loop the video, even super short two second loops took long enough to load into memory each time a loop starts there would be a noticeable pause that would almost every single time cause the window to turn black because pixels were still being loaded into memory.

The video was not being streamed and the API my code was based on had no obvious loop feature, so that effectively left me with the need to wait until the video reach its duration in code, stop it when that point in time is triggered, delete the video object, then reload the same video file originally loaded back into memory from scratch and play it again, and that's what happened under the hood every time the video looped, which is what caused the lag/black window.

As a workaround to these issues, i decided to drop audio support and replace the webm animation with playback of a sequence of png images. This can be done one of two ways; double click the app in your file manager app or from your desktop depending on where it is. Then simply select more than one PNG image from the open file dialog, as multi-select is now enabled unlike before this update. It will playback one image each frame per second, ordering them alphabetically, so for animation to display properly, make sure your frames are have filenames that match that order accordingly.

The other option is running the panorama viewer from the command line. In order to play animated png sequences by this means, you must pass a folder that contains multiple png files, instead of passing a single png. When passing a folder, it will auto-detect all of the png files contained in the folder you passed non-recursively, and like when done graphically, from the command line it will also order the playback one image each frame per second alphabetically. Make sure the folder only contains the desired files.

Available for Windows, macOS, Linux, FreeBSD, and DragonFly BSD. There are demo executables with install instructions and binary compatibility listed on the System Requirements from the Official GitHub Releases page. If there is a version of Operating System you would like to test on that doesn't meet the System Requirements listed for the demo executable downloads, be sure to try building from source code, and in most cases it should work "just work" provided you aren't using an OS that's too outdated.

*Download Source Code / Binary Link (post malware and prepare to be reported/banned):* https://github.com/time-killer-games/panoview

*Screenshots:*


----------



## zirias@ (Aug 14, 2021)

*Name:* v1541commander
*Interface:* GUI
*Broad Category:* archiver, emulators [port categories]
*Original/Primary Author or Just a Contributor?:* the former
*Narrow Category:* Floppy Disk Image Editor for the Commodore 1541 drive, used with the C64
*Supported Formats (where applicable, or N/A):* *.D64, *.LNX, *.PRG
*Has Linking Exception In License:* No
*Permissive License:* Yes
*Commercial:* No
*If Commercial, Demo Available:* N/A
*Credit Author(s) Required:* "Excess" (my C64 cracking group)
*Commercial Use Allowed:* Allowed in all circumstances legal where you live
*Redistribution Allowed:* Yes
*License:* BSD 2-clause
*Patent-Related issues with software:* No
*Officially Tested FreeBSD Version Supported (this field is required by topic):* FreeBSD 12 and 13 (so far)
*Other Platforms Tested/Supported:* Windows (XP and newer), Linux. Other platforms likely, but untested (Qt5 required)
*CLI Usage (or N/A if not applicable): * N/A (so far, CLI tool is planned)

*Short description:*
Commodore 1541 disk image editor

*Long Description:*
This tool allows creating and editing Commodore 1541 disk images using the original Commodore DOS as well as the formats of 40-track "speeder" DOS variants DolphinDOS, SpeedDOS and ProLogicDOS. I started implementing it because the "de facto standard" tool (DirMaster) is "Windows only". It's still far from all the features DirMaster provides, but we will see! Notable extra features so far are support for DiskZip and Lynx archives. The source can be found here: https://github.com/excess-c64/v1541commander

*Screenshots:*


----------



## Alexander88207 (Aug 14, 2021)

*Name:* Homura
*Interface:* GUI and half CLI
*Category:* Games
*Original/Primary Author or Just a Contributor?: *Original/Primary Author
*Permissive License:* Yes
*Commercial:* No
*Credit Author(s) Required:* Copyright holder mention is optional in code comments, other authors required to stay in-tact
*Redistribution Allowed:* Yes
*License:* BSD 2
*Patent-Related issues with software:* No
*Officially Tested FreeBSD Version Supported (this field is required by topic):* 12, 13
*Other Platforms Tested/Supported:* No
*CLI Usage (or N/A if not applicable): *Homura Install "Application", Homura Launch "Application" etc...

*Short description:*
Wine-based Game Launcher for FreeBSD

*Long Description:*

Launcher that makes it easy to run Windows games/launcher easily on FreeBSD by providing/applying the required fixes and workarounds.

When I started using FreeBSD there was no manager for wine stuff so i started to try to create one myself.

*Download Source Code / Binary Link (post malware and prepare to be reported/banned):* https://codeberg.org/Alexander88207/Homura

*Screenshots*:


----------



## mark_j (Aug 14, 2021)

When I click the software link, it says I'm now leaving facebook.
"https://m.facebook.com/flx/warn/?u=...28eqH3L9wlP0EHCX8lDTMO9xWMdvhULTw66GNwWZrixkC"

Wth?


----------



## Menelkir (Aug 14, 2021)

*Name:* sysutils/libg15, sysutils/libg15render and sysutils/g15daemon (for now)
*Interface:* CLI
*Category:* sysutils
*Original/Primary Author or Just a Contributor?: *Adopter
*Permissive License:* No
*Commercial:* No
*Credit Author(s) Required:* I keep the old authors there
*Redistribution Allowed:* Yes
*License:* GPL-2
*Patent-Related issues with software:* No
*Officially Tested FreeBSD Version Supported (this field is required by topic):* 12, 13
*Other Platforms Tested/Supported:* Artix Linux, Gentoo Linux, Arch Linux (would work in any distribution, it doesn't have too hard deps)
*CLI Usage (or N/A if not applicable): *Usually not necessary (it'll save your layout in /usr/local/etc)

*Short description:*
Logitech G15 keyboard and similar devices support daemon and libs.

*Long Description:*

Provides support for Logitech G15 keyboards and similar devices (Extra keys and LCD). Right now support the following devices:

G15 keyboard v1 (blue backlight, 18 'G' keys, LCD)
G15 keyboard v2 (amber backlight, 6 'G' keys, LCD)
G510 keyboard v1 (without USB audio)
G510 keyboard v2 (with USB audio)
G11 keyboard
Z10 speakers
Gamepanel available on some laptops
*Download Source Code / Binary Link (post malware and prepare to be reported/banned):*

https://gitlab.com/menelkir/libg15
https://gitlab.com/menelkir/libg15render
https://gitlab.com/menelkir/g15daemon

Those are WIP for FreeBSD, I'm work on it:
https://gitlab.com/menelkir/g15stats Works as expected, but have some minimal bugs, the PR is here.
https://gitlab.com/menelkir/g15message Works as expected, needs more tests.
https://gitlab.com/menelkir/g15composer Works as expected, needs more tests.
https://gitlab.com/menelkir/g15mpd Works as expected, a bit unstable on FreeBSD.


----------



## Samuel Venable (Aug 15, 2021)

mark_j said:


> When I click the software link, it says I'm now leaving facebook.
> "https://m.facebook.com/flx/warn/?u=https://github.com/time-killer-games/panoview?fbclid=IwAR02c1pMES7teDdXtlxUbzTsl-LgwtOdkIxB911s7gtZKoY7zUKfIYDpRSE&h=AT0PqULrZ0j_iD2mI_MDW_7--_H9cQFgCQEWnDPhHa6CdAMD17FIANy-3J4UtABxqqCaqIyZQv1NwUbtBaROvCqM2hkBd-ByGDkXiLUhye1bD1-Wj95feqBT8TJHUmfFVvDKhlVama28eqH3L9wlP0EHCX8lDTMO9xWMdvhULTw66GNwWZrixkC"
> 
> Wth?


It was originally a facebook status update I Iater modified into this topic. I just fixed the link so it's direct and doesn't forward you to it. Although, not sure what difference that makes.


----------



## mark_j (Aug 15, 2021)

Samuel Venable said:


> It was originally a facebook status update I Iater modified into this topic. I just fixed the link so it's direct and doesn't forward you to it. Although, not sure what difference that makes.



Thanks Samuel.

At my work, facebook is blocked. Period.

At home, I always use a script blocker (noscript et al) and this also blocks facebook. There's no need for it when the forum software makes perfectly useful links.

I am not lambasting you for this, it's obviously an oversight. I am just reporting it.


----------



## dettus (Aug 16, 2021)

*Name:* games/dMagnetic
*Interface:* CLI
*Category:* games
*Original/Primary Author or Just a Contributor?: *Original
*Permissive License:* Yes
*Commercial:* No
*Credit Author(s) Required:* dettus.net
*Redistribution Allowed:* Yes
*License:* BSD 2-clause
*Patent-Related issues with software:* No
*Officially Tested FreeBSD Version Supported (this field is required by topic):* 12, 13
*Other Platforms Tested/Supported:* IRIX, Solaris 10, OpenBSD, NetBSD, Debian, SUSE, Ubuntu, Gentoo, Windows 10, Arduino
*CLI Usage (or N/A if not applicable): *Fully playable

*Short description:*
A Magnetic Scrolls Interpreter

*Long Description:*

dMagnetic allows you to play the following classic text adventures:

The Pawn
The Guild of Thieves
Jinxter
Fish!
Corruption
Myth
Wonderland
It can load binaries from various sources:

Magnetic Scrolls Memorial .mag/.gfx files
D64 images from the Commodore 64 releases
MS-DOS binaries
Apple II .woz files
AtariXL
Spectrum DSK files
Acron Archimedes
Magnetic Windows Resource files


*Download Source Code / Binary Link (post malware and prepare to be reported/banned): *
https://www.dettus.net/dMagnetic
https://www.freshports.org/games/dMagnetic
https://repology.org/project/dmagnetic/versions



*Screenshots:*


----------



## Menelkir (Aug 16, 2021)

dettus said:


> *Name:* games/dMagnetic
> *Interface:* CLI
> *Category:* games
> *Original/Primary Author or Just a Contributor?: *Original
> ...


Oh, this kind of adventure is really awesome. I've used to play a lot of these kind of games on MSX and later on PC (Zork anyone?).


----------



## dettus (Aug 16, 2021)

Menelkir said:


> Oh, this kind of adventure is really awesome. I've used to play a lot of these kind of games on MSX and later on PC (Zork anyone?).


Yes! Zork can be played with frotz. The Pawn can be played with dMagnetic.


----------



## zirias@ (Aug 16, 2021)

dettus said:


> D64 images from the Commodore 64 releases


Just out of curiosity, did you implement the D64 format manually or use a library? Just asking because for my tool mentioned above, I tried to put all the functionality in a C library called lib1541img and I hope to find the time to further improve it in the future


----------



## dettus (Aug 16, 2021)

Zirias said:


> Just out of curiosity, did you implement the D64 format manually or use a library? Just asking because for my tool mentioned above, I tried to put all the functionality in a C library called lib1541img and I hope to find the time to further improve it in the future


No, I did not. When I wrote my software, I was adamant to make it as portable as possible, and that meant: No dependencies on other libraries.
What I did was to read about as much as possible about the D64 format, and extract the necessary data from there. I documented everything, you can have a look, if you like:
https://dettus.net/dMagnetic/dMagnetic_datastructures.pdf Chapter 7, starting at page 33 is completely devoted to that particular format.

Fair warning: I wrote it mostly for my benefit. Sorry....


----------



## sidetone (Aug 16, 2021)

What about what language(s) it's written in? Maybe going forward.

Also, this thread seems to be on-topic, because it's specifically for FreeBSD. If it doesn't fit userland programming, or something better, here is good.


----------



## zirias@ (Aug 17, 2021)

dettus said:


> No, I did not. When I wrote my software, I was adamant to make it as portable as possible, and that meant: No dependencies on other libraries.


Well, the reason I'm asking is mostly curiosity about possible use cases for my library  one of the design goals for it _was_ zero dependencies and portability. But thanks for these interesting docs:


dettus said:


> What I did was to read about as much as possible about the D64 format, and extract the necessary data from there. I documented everything, you can have a look, if you like:
> https://dettus.net/dMagnetic/dMagnetic_datastructures.pdf Chapter 7, starting at page 33 is completely devoted to that particular format.


They reveal these games use their own custom on-disk format, instead of CBM DOS (or an extension of it), so my library would have been of very little use anyways: the physical layout of the disk is by far the smallest part of the lib.

I could have guessed that, fully custom formats were quite common on the C64 because of the many shortcomings of CBM DOS .

BTW great work to document everything that detailed! I should probably try to have similar docs for some of my own projects…


----------

