Jump to content
LaunchBox Community Forums

stigzler

Members
  • Posts

    157
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by stigzler

  1. It would be best to create your own, project specific thread here: https://forums.launchbox-app.com/forum/85-third-party-applications-and-plugins-development-and-beta-testing/ That way, discussion will be limited to your app. Will certainly take a look when it's up and running.
  2. I don't run yuzu, but I do Citron (a derivative, I believe). In instances like this, I'd just cut out the GUI entirely and alter the config files (make sure you back up any existing first). There're two in Citron that may be relevent: user/config/qt-config.ini and user/config/input/default.ini (this may be the fall-back mapping so try the above first). in qt-config, you'll find: player_0_button_a\default=false player_0_button_a="engine:sdl,port:0,guid:030000005e0400008e02000014017801,button:1" player_0_button_b\default=false player_0_button_b="engine:sdl,port:0,guid:030000005e0400008e02000014017801,button:0" player_0_button_x\default=false player_0_button_x="engine:sdl,port:0,guid:030000005e0400008e02000014017801,button:3" player_0_button_y\default=false player_0_button_y="engine:sdl,port:0,guid:030000005e0400008e02000014017801,button:2" You'll also see "player_1_button [etc]" in the same file. Just copy the working first controller, edit separately replacing 0's with 1's and paste over the existing player_1 entries. 🤷 Untested, but just an idea. The other thing to check is how you're interfacing your physical controller with your PC. The picture would seem to imply that two separate controllers are being given the label "XBox One controller 0" - thus, the emu is going to see them as one and the same controller giving you the behaviour you're experiencing. Do other emus see them as 0 and 1? If not - it's a mapping problem, bnot the emu's problem. Joy.cpl (in win search) may be a good starting point.
  3. This may be useful to other amateur coders like myself for making plugins. The problem: You have different classes which implement the interfaces with the Launchbox Plugin system (e.g. ISystemEventsPlugin, IGameLaunchingPlugin, IGameMenu). You want to unify these events into a single 'entry point' for your plugin's application (e.g. you may need to receive results from the different plugin interfaces in a single class or return results form a centralised point). The issue is, when events fire, they fire in the instance created in Launchbox, not in any instances that are created with your plugin. Thus, even if you create an instance of the class you've authored which implements the interface, you will not receive the events. The solution: A Singleton Class I had a bit of knowledge about singletons, but not really how to apply them. However, this is just the ticket. The way I think about them for this application is that it's almost like a static class, but you can have class members outside of any methods. Clearly, each plugin interface class cannot know about each other, thus cannot share a common instance of a class. You cannot use a static class for obvious reasons. Thus, a singleton saved the day. It kinda instantiates itself the first time it is referenced (that is you don't have to instantiate it anywhere) and all other references to it in any class will end up only refencing that one class instance. It's also thread safe. It's a little hard to explain, but there's a good video here: So - the code I hear you cry? Your 'entry point' singleton: internal sealed class PluginController { private PluginController() { } private static PluginController _instance = null; private static readonly object _padlock = new object(); private Guid Guid = Guid.NewGuid(); internal static PluginController Instance { get { lock (_padlock) { if (_instance == null) { _instance = new PluginController(); } return _instance; } } } internal void SystemEventRaised(string eventType) { Logger.Log($"[{Guid.ToString()}] System Event received: {eventType}"); } internal void SystemMenuItemSelected() { Logger.Log($"[{Guid.ToString()}] System Menu Item selected"); } } The GUID is just there to show you that it's the same instance when referenced from other classes. Obs, you'll need to use Debug.WriteLine or something instead of my Logger class. Examples of the plugin interface classes: internal class SystemEventsPlugin : Unbroken.LaunchBox.Plugins.ISystemEventsPlugin { public SystemEventsPlugin() { } public void OnEventRaised(string eventType) { Logger.Log($"Received event: {eventType} on thread {System.Threading.Thread.CurrentThread.ManagedThreadId}"); PluginController.Instance.ProcessSystemEvent(eventType); } } and internal class SystemMenuItemPlugin : PluginHookBase, Unbroken.LaunchBox.Plugins.ISystemMenuItemPlugin { public SystemMenuItemPlugin() { } public string Caption => "Your Plugin"; public System.Drawing.Image IconImage => Gearbox.Presentation.Properties.Resources.icon; public bool ShowInLaunchBox => true; public bool ShowInBigBox => false; public bool AllowInBigBoxWhenLocked => false; public void OnSelected() { PluginController.Instance.ProcessSystemMenuItemSelected(); } } What you will notice with SystemEvent is that it's sent from numerous different threads, but the Singleton seems to be reasonably thread agnostic. Anyways, I'm sure there are software engineers on here who can rip this apart, but for all you other code grifters like me - hope it helps. P.S. Sorry to those of you viewing in dark mode + the poor syntax highlighting colors - nothing I can do about that- it's about how it's set up at LB's end.
  4. Yeah - had trod that path already. writeconfig is set to 0, although weirdly, cfg files for individual games are still being created. I am using bgfx, so wondering whether if it's something to do with that. I did get vertical.ini working via: aspect 4:3 keepaspect 1 🤷Dunno what the Musk is going on there. Given this small victory, I tried applying the same logic to horizontal.ini setting aspect to 3:4 and then once that made no difference to 16:9 (which also made no difference). wtf, mame? Totally unintuitive, inconsistent and infuriating. Still, we're not allowed to criticise the big M! Have attached relevant config files in case there's any Mame wizards out there. mame.ini horizontal.ini vertical.ini default.cfg
  5. Well done, chaps. 🎂 Looking forward to seeing where you guys take it next.
  6. 0.9.9.0 - Beta [Improvements] Improved UI - now fully suited to windows surface/tablets and touch controls [Feature] Added ability to set URLs, local applications and notes against each Platform. For example, on selecting a Platform, you can open a link to your rom source, run an associated application (e.g. NPS) and view notes (e.g. which rom extension is best suited to your setup). File link in original post. Pic: (P.S. It'd be nice if anyone who's downloaded this could provide some feedback so I can know whether to take this out of Beta or not!)
  7. No worries - likely something deeply esoteric. 😟
  8. Thanks for the reply - I really need to figure out how to turn on auto-notify for my posts! Did that, but I'm getting weird rendering. On vertical: Not working at all for horizontal. Has the Mame system changed? Despite being the OG, it's not aging gracefully.
  9. Certainly looks like an interesting MVP. Unfortunately, life got in the way of implementing this, but have built the scaffolding plugin around it to support all the features (layout editor, games/systems objects etc). Just have the controls logic to do. Likely next year with the evil of work to contend with. 😔
  10. Yeah - think this emu blocks button presses, so AHK not catching them. On a separate note, would thoroughly recommend reshade for this emu. I could sort the aspect ratio and apply a CRT shader that made it look SOOOOO much better.
  11. And malware free do you know given the form of these emus to date? EDIT: Looks just as bad. When first clicked on the official link, I got just a line of text saying "what are you doing?" Then clicked again and got the official site (full of gaudy attract the moths graphics). Also, reddit post here saying it's full of adware etc. Nope, nope, nope. Think I'm just going to have to pass on android emulation (sadly, as needed it for a wipeout game to complete my collection). F**k android.
  12. I first started tinkering with Mame 20 years ago. Can't believe I'm stuck on this. Also, either google's punishing me for adblocking youtube, or my google-fu is presently offline. Even AI seems to have taken its ball home. How on earth do I force all vertical games into 7:8 rather than 3:4 resolution without changing each and ever game individually? For bonus points, how do I do similar for horizontal games (using 12:7 instead of 4:3)? My addled aged brain thinks it involves creating horizontal and vertical.ini in the ini folder, but as stated, goggle's causing more confusion than clarity. Wish they hadn't removed "Don't be evil" from their wall....
  13. EDIT: DO NOT DOWNLAOD NOX PLAYER - IT'S JUST AS BAD (DOWNLOADED MCAFFEE WITHOUT ASKING AND CANNOT UNINSTALL). GOD THE PEOPLE WHO MAKE THESE EMUS REALLY SHOULD BE SHOT.
  14. Seriously - Bluestacks is like a grubby con man who steals your grandma's life savings whilst wearing cheap aftershave and hiding some unseemly sexual proclivities. [soz - just offloading!] Really: Adverts all over the place? Check Pop-up's galore? Check Make it really difficult to kill their app from front ends? Check (and bonus points for making it a "Boss Key") And worst of all: leaving an application running in the background once you've quite the emulator? Check That last one made me uninstall this right away. The people who make this and profit from it are NOT part of the emulation community,. They need to rot in hell. Anyways, rant over. Question being, of course: Are there any other alternatives to Bluestacks for android emulation on windows 11 machines? Maybe I should bill Bluestacks for the 2 hours of my life I wont get back.
  15. 0.9.8.0 Release: Significant improvements to UI. Now runs really well on a Windows Tablet/touch mode.
  16. Then would happily receive feedback!
  17. This'd be great if it worked. I'm getting an error with the zipped emu setup you included. Also, where are "geeko codes" you say you've attached? I get the attached error when I try to run any isos. Also what does "Archive "Triforce iso"" mean? Not a very good guide I'm afraid. Glad you got your setup working, but if you're going to post about it, make sure you do it in details and not lead people up a garden path. 1 hour of my life I won't get back. For anyone else, a guide that works here:
  18. 0.9.5.0 Release Improvements: Installation database updates now done via plugin rather than update the xml files directly. Option remains to update via xml if plugin not running Auto install/update plugin Minor GUI changes
  19. Guilty as charged. I've changed for the better, your honour, honest...
  20. Thanks. I'm a sucker for qol improvements!
  21. Version 0.9.9.0 - Beta

    29 downloads

    Intro Unibox allows you to add roms to any Launchbox installation you have running on your local network on the fly. It also automatically adds metadata and media. This can be done in real-time, making it useful for installations such as arcade machines or rigs dedicated to running BigBox. No manual adding of roms to folders required, or going into Launchbox to add more games. Video of it in action: Getting started guide: Presently in Beta, so maybe test on a test installation first. Hope helps!
  22. Unibox View File Intro Unibox allows you to add roms to any Launchbox installation you have running on your local network on the fly. It also automatically adds metadata and media. This can be done in real-time, making it useful for installations such as arcade machines or rigs dedicated to running BigBox. No manual adding of roms to folders required, or going into Launchbox to add more games. Picture: Video of it in action: Getting started guide: Presently in Beta, so maybe test on a test installation first. Hope helps! Submitter stigzler Submitted 08/13/2025 Category Third-party Apps and Plugins
  23. ReloadData Plugin View File A tiny plugin that allows you to refresh all games in Launchbox + Bigbox to show any changes made in the xml files outside of LB/BB. This adds System menu items to LB and/or BB which cause the refresh. You can also edit settings.ini in the plugin directory to customise its operation. Github repo: HERE Submitter stigzler Submitted 08/12/2025 Category Third-party Apps and Plugins  
  24. Version 1.0.0

    6 downloads

    A tiny plugin that allows you to refresh all games in Launchbox + Bigbox to show any changes made in the xml files outside of LB/BB. This adds System menu items to LB and/or BB which cause the refresh. You can also edit settings.ini in the plugin directory to customise its operation. Github repo: HERE
×
×
  • Create New...