Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bounty] Enable MSU-1 packfile support in core #229

Closed
Sanaki opened this issue Dec 25, 2019 · 12 comments · Fixed by #261
Closed

[Bounty] Enable MSU-1 packfile support in core #229

Sanaki opened this issue Dec 25, 2019 · 12 comments · Fixed by #261

Comments

@Sanaki
Copy link

Sanaki commented Dec 25, 2019

Current bounty: $45

Currently snes9x supports MSU-1, but in the core this support functions only with all files named identically to the rom and placed in the same directory. This creates some issues in terms of organization (some games have well over 100 audio tracks), space (over 1GB in some cases), and file naming (the average user doesn't know how to handle bulk renaming correctly).

A .msu1 packfile is a standard for storing these sprawling files, currently supported in upstream (with all of the code seemingly present but nonfunctional in this core as well). The file itself is a zip in either store or deflate mode, containing fixed-name files that don't depend on the external rom's name.

In upstream, the main ways of using a packfile are either to load it directly (homebrew generally, with the rom inside and named program.rom) or to have the rom, bps, and packfile in the same directory, with pcm tracks and/or the data track loading from the packfile on demand. Anything else is mostly irrelevant to the core, since Retroarch handles the softpatching.

Given that all necessary handling code is already present, would it be possible to add support for at least loading tracks from a packfile on demand (rom/bps/msu1 adjacent)? Or are there specifics to libretro that prevent implementation? I did compile the core from upstream just to verify, and the packfiles still can't be detected by the core from there either.

Example MSU-1 packfile: https://kickmeelmo.keybase.pub/MSU-1%20Packfiles/Contra%20III%20-%20The%20Alien%20Wars%20(USA).msu1
MSU-1 chip info: http://helmet.kafuka.org/msu1.htm
Mercurial Magic repo (packfile formatting info in readme): https://github.com/qwertymodo/Mercurial-Magic
Original issue introducing support: snes9xgit#217
Retroarch issue regarding .msu1 softpatching: libretro/RetroArch#5563

@Sanaki Sanaki changed the title MSU-1 packfile support Enable MSU-1 packfile support in core form Jan 12, 2020
@bebess
Copy link

bebess commented Feb 18, 2021

any update of this features ?

@Sanaki
Copy link
Author

Sanaki commented Feb 18, 2021

Probably just requires someone fixing the core to compile with zip support, but no one's bitten yet unfortunately.

@bebess
Copy link

bebess commented Feb 19, 2021

You should edit the title with [BOUNTY] ^^

@Sanaki Sanaki changed the title Enable MSU-1 packfile support in core form [Bounty] Enable MSU-1 packfile support in core Feb 20, 2021
@Sanaki
Copy link
Author

Sanaki commented Feb 20, 2021

Fair suggestion. I shied away from doing so to avoid giving the "my issue is more important than yours" implication, but it does help people explicitly looking for bounties to find it.

@bebess
Copy link

bebess commented May 8, 2021

sorry for the bump
we (i hope more that 2 pepole) need this ^^ :)

@kbrighton
Copy link

I've been working with @Sanaki on enabling this. Currently it works on linux with sfc+msu1 file. I don't think that msu1 only will work without some refactoring of how snes9x loads roms, but I'm still looking into this. Also, softpatching is not available, but that's by design. Next step for this is making sure it works on the Windows version of the core.

@bebess
Copy link

bebess commented Sep 23, 2021

good news ! :)

@Sanaki
Copy link
Author

Sanaki commented Sep 23, 2021

To be clear, bps and sfc adjacent to msu1 softpatching works fine, it's the bps within the msu1 that doesn't, and it's probably better in general that it doesn't.

@kbrighton
Copy link

kbrighton commented Sep 23, 2021 via email

@kbrighton
Copy link

Made a PR to add the feature. Uses snes9x builtin minizip.

@kbrighton
Copy link

This should be correct this time.

@Sanaki
Copy link
Author

Sanaki commented Oct 20, 2021

Since BountySource seems to be experiencing some confusion: Yes, this issue is resolved. Yes, @kbrighton resolved it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants