Spyke

Posts

Super Mario 64 Romhack: Mario Builder 64 hit by DMCA from (allegedly Nintendo)

cross-posted from: https://beehaw.org/post/24084867

Mario Builder 64 is a level editor realized fully in Super Mario 64 itself, which should run on real hardware I think. It is intuitive to use and the community created ton of custom levels. I think a custom software is needed to handle the community stuff, but the Romhack itself is playable on an emulator if you want test building your own levels.

The download page for the patch file (remember its not a Rom, its just a patch) got hit by a DMCA. Usually Nintendo does not do that with Romhacks. Sure the patch files itself are not Rom files, but they might contain data that is copyrighted. That's why Nintendo might be annoyed by this.

Get your patch file copies (.bps format) and archive it if you care.

View original on beehaw.org

Super Mario 64 Romhack: Mario Builder 64 hit by DMCA from (allegedly Nintendo)

Mario Builder 64 is a level editor realized fully in Super Mario 64 itself, which should run on real hardware I think. It is intuitive to use and the community created ton of custom levels. I think a custom software is needed to handle the community stuff, but the Romhack itself is playable on an emulator if you want test building your own levels.

The download page for the patch file (remember its not a Rom, its just a patch) got hit by a DMCA. Usually Nintendo does not do that with Romhacks. Sure the patch files itself are not Rom files, but they might contain data that is copyrighted. That's why Nintendo might be annoyed by this.

Get your patch file copies (.bps format) and archive it if you care.

View original on beehaw.org

yazi v25.12.29 released (a terminal filemanager written in Rust)

cross-posted from: https://beehaw.org/post/23996175

Website: https://yazi-rs.github.io/

Changelog: https://github.com/sxyazi/yazi/blob/main/CHANGELOG.md#v251229

They have lot of stuff:

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Fixed for any bug fixes.
  • Improved for performance improvements.

I just list the first 10 added stuff:

[v25.12.29]

Added

  • Remote file management ([#3396])
  • Virtual file system ([#3034], [#3035], [#3094], [#3108], [#3187], [#3203])
  • Shell formatting ([#3232])
  • Multi-entry support for plugin system ([#3154])
  • Zoom in or out of the preview image ([#2864])
  • Improve the UX of the pick and input components ([#2906], [#2935])
  • Show progress of each task in task manager ([#3121], [#3131], [#3134])
  • New fs.copy() and fs.rename() APIs ([#3467])
  • New experimental ya.async() API ([#3422])
  • New overall option to set the overall background color ([#3317])
  • ... and more!
yazi v25.12.29 released (a terminal filemanager written in Rust)https://github.com/sxyazi/yazi/releases/tag/v25.12.29Open linkView original on beehaw.org
rust·Rust Programmingbythingsiplay

yazi v25.12.29 released (a terminal filemanager written in Rust)

cross-posted from: https://beehaw.org/post/23996175

Website: https://yazi-rs.github.io/

Changelog: https://github.com/sxyazi/yazi/blob/main/CHANGELOG.md#v251229

They have lot of stuff:

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Fixed for any bug fixes.
  • Improved for performance improvements.

I just list the first 10 added stuff:

[v25.12.29]

Added

  • Remote file management ([#3396])
  • Virtual file system ([#3034], [#3035], [#3094], [#3108], [#3187], [#3203])
  • Shell formatting ([#3232])
  • Multi-entry support for plugin system ([#3154])
  • Zoom in or out of the preview image ([#2864])
  • Improve the UX of the pick and input components ([#2906], [#2935])
  • Show progress of each task in task manager ([#3121], [#3131], [#3134])
  • New fs.copy() and fs.rename() APIs ([#3467])
  • New experimental ya.async() API ([#3422])
  • New overall option to set the overall background color ([#3317])
  • ... and more!
yazi v25.12.29 released (a terminal filemanager written in Rust)https://github.com/sxyazi/yazi/releases/tag/v25.12.29Open linkView original on beehaw.org

The Secrets of Sega Channel: VGHF recovers over 100 Sega Channel ROMs (and more)

cross-posted from: https://beehaw.org/post/23758766

Our project to preserve the history of Sega Channel — including over 100 new Sega Channel ROMs.

By Phil Salvador

December 15, 2025

Sega broke ground in the late 90s with one of the first digital game distribution systems for consoles. Sega Channel offered access to a rotating library of Sega Genesis titles, along with game tips, demos, and even a few exclusive games that never came out in the United States in any other format. In an era of dial-up internet, Sega Channel delivered game data over television cable — a novel approach that gave the service its name.

...

https://gamehistory.org/segachannel/

The Secrets of Sega Channel: VGHF recovers over 100 Sega Channel ROMs (and more)https://gamehistory.org/segachannel/Open linkView original on beehaw.org

This Week In rust-analyzer Changelog #299 - Oct 27, 2025 (including next trait solver)

Finally. What was a weekly update took them this time 2 months. The long anticipated Next generation trait solver, that replaces the previous Chalk. Alongside of ton of fixes and changes. Below I just copy the New Features list.

  • Commit: 049767e
  • Release: 2025-10-27 (v0.3.2658)

New Features

  • (first contribution) parse script frontmatter.
  • (first contribution) expose addConfiguration API from the Code extension.
  • switch from Chalk to the next trait solver.
  • support navigation on primitives.
  • add all, any and not completions in #[cfg].
  • log flycheck stdout and stderr to files.
  • add "Generate blanket trait impl" assist.
  • add "Flip range expression" assist.
  • add "Remove else branches" assist.
  • improve fixture support.

Fixes

...

Internal Improvements

...

https://rust-analyzer.github.io/thisweek/2025/10/27/changelog-299.htmlOpen linkView original on beehaw.org

Is crate fnmatch-regex2 a scam?

https://crates.io/search?q=fnmatch

https://crates.io/crates/fnmatch-regex at version v0.2.1, repository: https://gitlab.com/ppentchev/fnmatch-regex-rs

https://crates.io/crates/fnmatch-regex2 at version v0.4.0, repository: https://gitlab.com/brmmm3/fnmatch-regex2-rs (DO NOT SIGN IN, UNTIL WE KNOW ITS SAFE)

I was looking through some crates and noticed there is "fnmatch-regex2", just below "fnmatch-regex". The second one is newer; 4 months ago updated, compared to the original 12 months ago updated. And it has more recent downloads and a "higher version number".

My first thought was, this either adds new functionality, or the old one is abandoned maybe? Looking in readme and documentation, I could not find anything that describes the differences. Looking at the source code on Gitlab, the first crate just shows it normally to me, but the second wants me to log in. My alarm glocks go on. Even the changelog for both are identical at version 0.2.1 (the original crate 1) without any word about changes, but the crate repository shows it should be at version v0.4.0.

I would like to know what you guys think about it. I can't even audit the code right now, even if its the same Gitlab instance on gitlab.com. Should this be reported? Or am I just paranoid?


EDIT:

After asking in Discord, someone said I can view the source code in Docs.rs: https://docs.rs/crate/fnmatch-regex2/0.4.0/source/ . This is much better, but I am still cautious. I still don't know what the actual changes are and would need to dive into the code and compare to find out. Which is not really something I expect to do from a trustful library.

https://crates.io/search?q=fnmatchOpen linkView original on beehaw.org

This Week in Rust 620 (08 OCT 2025)

Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @thisweekinrust.bsky.social on Bluesky or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.

This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.

Want TWIR in your inbox? Subscribe here.

https://this-week-in-rust.org/blog/2025/10/08/this-week-in-rust-620/Open linkView original on beehaw.org

Tupactopus

On an unrelated topic I found a comment in a YouTube video about Sonichu Medaillion being cursed. It peaked my interest. Truly cursed. Then I found a shop selling these and scrolled down, and it recommended me more curse.

I don't know what else to say, other than the recommendation was right.

View original on beehaw.org
linux_gaming·Linux Gamingbythingsiplay

Steam Hardware & Software Survey (Linux, September 2025)

All fields expanded, very long screenshot: https://imgur.com/a/steam-hardware-software-survey-linux-september-2025-azOM8GS

Note, the source will change every month. That's why I made a screenshot, so the discussion in this thread makes sense in the future. Source: https://store.steampowered.com/hwsurvey/?platform=linux

Linux Mint 22.2 64 bit got +3.34% from previously 0%, while Linux Mint 22.1 64 bit lost -2.71%. So the rest of the 0.65% are either new users or upgraders from even older Linux Mint versions. Whatever the reason is, these two entries should have been a single one as Linux Mint 22 with 8.84%.

Also what is the category "Other"? It's almost 20% big, so this is not something to wave over. Bazzite got a good start, hopefully it will grow further. I'm surprised that CachyOS is this popular, much more than Ubuntu and Bazzite.

View original on beehaw.org

Do not update single packages on Archlinux, but

On Archlinux it is not recommended to update only one package with the package manager pacman. Let's say I have 11 packages, and one of them is extra/firefox (true story). Updating only a pacman -S firefox could introduce problems, but installing a new single package if it wasn't there is okay.

So my question is, could we get around this by removing and installing the same package again in one go: pacman -Rs firefox && pacman -S firefox

View original on beehaw.org

MALIBAL Has Returned Again!! by Brodie Robertson from Sep 30, 2025 (Video) [20:28 min]

Video description (only parts about the video itself):


Do you remember about a year ago when MALIBAL went to war with the coreboot project banning all the countries that the coreboot developers were from, and now they want to be the future of US laptop manufacturing.

==========Resources==========

Malibal Coreboot: www.malibal.com/features/dont-support-the-coreboot…

Previous Malibal Video: • MALIBAL Goes To War With Coreboot

Malibal Project Liberation: www.malibal.com/features/project-liberation/

https://inv.nadeko.net/watch?v=LitmByfsEDEOpen linkView original on beehaw.org

Download Eden a Switch emulator as long as you can

cross-posted from: https://beehaw.org/post/22388618

It's reported that the Google Play store entry of Eden emulator (a Switch emulator) is no longer available. We don't know the reason, but my educated guess is that Nintendo might have striked. I recommend to download current official clean builds and source code for backup, just in case you want to use it later.

I personally still use last official build of Yuzu, even today (playing Tears of the Kingdom). I never tried Eden, but it might be useful to archive it, so I do not need to download builds of others if I can't build it from source for any reason.

Here is a random article about this subject: https://www.androidauthority.com/play-store-first-nintendo-switch-emulator-3597451/

View original on beehaw.org
programming·Programmingbythingsiplay

Can't decide if end user index access should be 0 or 1 based and if END index should be inclusive

I'm currently writing a CLI tool that handles a specific JSON data format. And I also want to give the user to get a slice of the item array of the file. It's a slice in form of --slice START:END through commandline options. So in example --slice 1:2.

  1. Should I provide a 0 based index for the access or a 1 based index? In example --slice 1:2 with 0 based index would start with the second element and with 1 based index it would start with the first element.
  2. And would you think its better to have the END to be inclusive or exclusive? In example --slice 1:2 would get only one element if its exclusive or it gets two elements if its inclusive.

I know this is all personal taste, but I'm currently just torn between all options and cannot decide. And thought to ask you what you think. Maybe that helps me sorting my own thoughts a bit. Thanks in advance.

View original on beehaw.org

Bash v5.3 Released! New features and syntax in the latest version of the Bash Shell. by You Suck at Programming on YouTube [17:10min]

Watch on SkipVid platform, alternative to YouTube client watching YouTube videos indirectly, but without ads: https://skipvids.com/?v=-cTsFt-j7rk


I just found this creator who is super excited about the new Bash version. He goes through some aspects of the new changes and features. There is something funny about a guy getting so excited about a new Bash version, that I wanted to share it because of that. :D

Also its nice to see the changes in action and have an explanation from someone who (seemingly) knows what he is doing.

Video (partial) description:


Source Code: github.com/bahamas10/bash-changes

$ whoami Yo what's up everyone my name's dave and you suck at programming! Connect with me on my socials below and if you're reading this you're legally required to subscribe to my channel.

$ cat source-code The source code for my YSAP series (or related videos) is available for free under the MIT License on GitHub: Source Code → github.com/bahamas10/ysap

View original on beehaw.org

Python Tutorial: argparse advanced-help with additional options

Example script: https://gist.github.com/thingsiplay/ae9a26322cd5830e52b036ab411afd1f

Hi all. I just wanted to share a way to handle a so called advanced help menu, where additional options are listed that are otherwise hidden with regular help. Hidden options should still function. This is just to have less clutter in normal view.

I've researched the web to see how people does it, and this is the way I like most so far. If you think this is problematic, please share your thoughts. This is for a commandline terminal application, that could also be automated through a script.

How it works on a high level

Before the ArgumentParser() is called, we check the sys.argv for the trigger option --advanced-help. Depending on this we set a variable to true or false. Then with the setup of the parser after the ArgumenParser() call, we add the --advanced-help option to the list of regular help.

advanced_help = False
for arg in sys.argv:
    if arg == "--":
        break
    if arg == "--advanced-help":
        advanced_help = True

parser = argparse.ArgumentParser()

Continue setting up your options as usual. But for the help description of those you want to exclude when using just regular -h, add an inline if else statement (ternary statement). This statement will put the help description only if advanced_help variable is true, otherwise it puts argparse.SUPPRESS to hide the option. Do this with all the options you want to hide.

parser.add_argument(
    "-c",
    "--count",
    action="store_true",
    default=False,
    help="print only a count of matching items per list, output file unaffected"
    if advanced_help
    else argparse.SUPPRESS,
)

At last we need to actually parse what you just setup. For this we need to assign our custom list, that is based on the sys.argv, plus the regular --help option. This way we can use --advanced-help without the need for -h or --help in addition to show any help message.

if advanced_help:
    args = parser.parse_args(sys.argv[0:0] + ["--help"] + sys.argv[1:])
else:
    args = parser.parse_args()

Run following program once with ./thing.py -h and ./thing.py --advanced-help.

Python Tutorial: argparse advanced-help with additional optionshttps://gist.github.com/thingsiplay/ae9a26322cd5830e52b036ab411afd1fOpen linkView original on beehaw.org
programming·Programmingbythingsiplay

[Solved] Python question: How to convert list to sort with multiple keys?

I desperately need some Python help. In short, i want to use multiple keys at once for sorting a dictionary. I have a list of keys and don't know how to convert it to the required list.

This is a single key. The self.items is a list of dictionaries, where d[key] is resolved to the actual key name such as "core_name", that the list is then sorted as. This works as expected for single sort, but not for multiple.

key = "core_name"
self.items = sorted(self.items, key=lambda d: d[key])
key = "label"
self.items = sorted(self.items, key=lambda d: d[key])

Problem is, sorting it multiple times gives me wrong results. The keys need to be called in one go. I can do that manually like this:

self.items = sorted(self.items, key=lambda d: (d["core_name"], d["label"]))

But need it programmatically to assign a list of keys. The following does not work (obviously). I don't know how to convert this into the required form:

# Not working!
keys = ["core_name", "label"]
self.items = sorted(self.items, key=lambda d: d[keys])

I somehow need something like a map function I guess? Something that d[keys] is replaced by "convert each key in keys into a list of d[key]". This is needed inside the lambda, because the key/value pair is dynamically read from self.items.

Is it understandable what I try to do? Has anyone an idea?


Edit: Solution by Fred: https://beehaw.org/post/20656674/4826725

Just use comprehension and create a tuple in place: sorted(items, key=lambda d: tuple(d[k] for k in keys))

View original on beehaw.org

fzn: output selected line number with fzf instead text [Bash]

Regular call to fzf, but output the index number of the selected entry, instead the text itself. It's a pretty niche use case, but there was a few times in the past when I needed it. You can use options for fzf just normally too.

fzn() {
    nl | fzf --with-nth 2.. "${@}" | awk '{print $1}'
}

Usage:

find . -maxdepth 1 -type d | fzn -e -m

I always forget how to do this manually, so I made this simple function for Bash. Just copy this like an alias into your .bashrc and use it like any other command in a pipe.

View original on beehaw.org

List all existing program paths from your Bash's history. (Bash One Liner)

It only works with the first command in the recorded history, not with any sub shells or chained commands.

#!/usr/bin/env bash

# 1. history and $HISTFILE do not work in scripts. Therefore cat with a direct
#    path is needed.
# 2. awk gets the first part of the command name.
# 3. List is then sorted and duplicate entries are removed.
# 4. type -P will expand command names to paths, similar to which. But it will
#    also expand aliases and functions.
# 5. Final output is then sorted again.

type -P $(cat ~/.bash_history | awk '{print $1}' | sort | uniq) | sort

After reading a blog post, I had this script in mind to see if its possible. This is just for fun and I don't have an actual use for it. Maybe some parts of it might inspire you to do something too. So have fun.

Edit 1:

After some suggestions from the comments, here is a little shorter version. sort | uniq can be replaced by sort -u, as the output of them should be identical in this case (in certain circumstances they can have different effect!). Also someone pointed out my useless cat, as the file can be used directly with awk. And for good reason. :D Enjoy, and thanks for all.

type -P $(awk '{print $1}' ~/.bash_history | sort -u) | sort

I still have no real use case for this one liner, its mainly just for fun.

View original on beehaw.org

Sacred Somnom Woods from Mario & Luigi Dream Team (Music suggestion to listen)

I like listening to oldschool videogame music. Recently I listened to some music of games I never played and one song in particular blew my mind. Its wonderful and since it lives rent free in my head, coming back to it over and over again. I'm loving it.

Listen on:

"Sacred Somnom Woods" in Mario & Luigi - Dream Team for the Nintendo 3DS. The composer is the well known Yoko Shimomura, also known for work on Street Fighter 2, Kingdom Hearts and many more legendary games.

To me this track has this Breath of the Wild or Tears of the Kingdom vibes to it. Because I did not play the actual Mario & Luigi games, I always interpret this as a Zelda song now. Its name does contribute to this factor too! Do you also have sometimes game music that captures you?

View original on beehaw.org