Notes on the OSSC usage Importing profiles Match your firmware, ossc wont import a bin from an older firmware (at least on 0.88a) Resources firebrandx - http://pbnl.byethost7.com/ossc/profiles/ (uses a js file per version, see dropdown) firmware - https://www.niksula.hut.fi/~mhiienka/ossc/fw/ Firmware - -aud is audio enabled - -aud_jp is japanaese version leech all the firmware (modify as required could probably spider it but whatever) URL=https://www.niksula.hut.fi/~mhiienka/ossc/fw/jtag_prog/; for x in \ $(curl $URL | grep -E "^ Menu -> Settings Opts -> FW Update Write profiles Export the bin from firebrandx's profile builder dd if=ossc_profiles_0.88_profiles.bin of=[sdcard device] Update profiles on OSSC OSSC -> Menu -> Settings Opts -> Import Profiles -> 1 Will always write 15 profiles on 0.88 Empty out the profiles Export an empty bin from firebrandx's profile builder See Update profiles on OSSC Tampermonkey script If you're just importing profiles, run this to hide the settings div and save your scrolling fingers // ==UserScript== // @name OSSC profile builder // @namespace http://pbnl.byethost7.com/ // @version 0.2 // @description Hide the settings div and retrieve the profile title so you don't have to scroll up and down // @author sairuk // @match http://pbnl.byethost7.com/ossc/profiles/* // @grant none // @run-at document-end // ==/UserScript== function updateTitle(profile_id, profile_name) { var profile_titles = document.getElementsByTagName('h2'); for (var i = 0; i < profile_titles.length; i++) { if (profile_titles[i].classList.contains("title")) { profile_titles[i].innerHTML = "Profile #" + profile_id + " (" + profile_name + ")"; } else { // nah bra } } } function getCurrentProfile() { var setting_panels = document.getElementsByClassName('settings'); var profile_name = setting_panels[this.innerText].getElementsByClassName("profile_name").profile_name.value || "Auto" ; updateTitle(this.innerText, profile_name); }; ( function() { 'use strict'; document.onreadystatechange = function () { if (document.readyState == "complete") { setInterval( function() { // hide the settings div, unfortunately this also hides the Profile title var settings = document.getElementById('settings_container'); if ( settings.style.display != 'none' ) { settings.style.display = 'none'; } var profiles = document.getElementsByClassName('profile'); for (var i = 0; i < profiles.length; i++) { try { profiles[i].addEventListener("click", getCurrentProfile); } catch { console.log("Couldn't add listener for " + profiles[i]); } } }, 10000 ) } } })();