Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

MSU Scripter

A cross platform application built for creating MSUs, PCMs, and related files for over 20 different randomizers and rom patches. The application works as a wrapper around msupcm++, creating the necessary JSON file and executing msupcm++ to generate pcm files. Furthermore, it also creates YAML files for the MSU Randomizer to help it identify MSUs and their tracks and display the current playing song.

image

Installation

  • Download the latest release via the GitHub Releases page
    • Windows - Download and run MSUScripterSetupWin executable
    • Linux - Download MSUScripter.x86_64.AppImage file, place where you want, and make executable
  • Install dependencies like MsuPcm++ in the dependency window
  • For manual dependency installation, read the install docs

Features

  • Enter song details in the UI and have the MSU Scripter run MsuPcm++ to generate PCM files.
  • Import audio metadata and update to provide additional song info for MSU Randomizer YAML files and track list text files.
  • Automatically detect loop points by running PyMusicLooper.
  • Run the Audio Analysis tool to compare volume levels between songs and even other MSUs.
  • Create an mp4 video file with all of the songs which can be uploaded to YouTube to test for copyright strikes.
  • Using the built in MSU Scripter audio player, listen to the generated PCM files.
  • Add additional songs for tracks and the MSU Scripter will generate a bat file to swap to the alt track.
  • For SMZ3 MSUs, it can create bat files to split into Super Metroid and A Link to the Past MSUs.
  • Import previously created MSUs to be able to create the MSU Randomizer YAML files.

Troubleshooting & Support

Having problems? Please feel free to post an Issue on GitHub. You can also reach out on some of the main randomizer discords. If encountering a crash, please include the latest log file located at %localappdata%/MSUScripter on Windows or ~/.local/share/MSUScripter/Logs on Linux.

Future

As of version 5.0.0, I do not predict making any future updates outside of bug fixes and upgrades to avoid things getting out of date. There are some new features in the issues list however if anyone is interested in making contributions.

Credit & Thanks

About

Application for creating MSUs and related files

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages