Author Topic: New user to AM, leaving Hyperspin behind  (Read 8012 times)

MydknyteStyrm

  • Newbie
  • *
  • Posts: 7
    • View Profile
New user to AM, leaving Hyperspin behind
« on: July 05, 2017, 05:08:14 AM »
Hi everyone,

Before I make the jump to AttractMode, I am curious as to how easy of a transition it will be from my Hyperspin expertise, which has taken up way too much of my time for the past three years.

I use the following programs with HS, and would like to know if they are compatible. Thanks!

LEDBlinky
HyperMarquee
HyperEDS
HiToText
UltraMap (Ultrastik 360s)
Rocketlauncher

BOXXMAN

  • Full Member
  • ***
  • Posts: 38
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #1 on: July 05, 2017, 09:15:32 AM »
Good luck, as I went from Hyperspin as well because it is way too time consuming. Making themes and having things looking exactly the way you want with this FE is fairly easy, and gives you way more flexiblity. However this FE seems to lack any functionality as far as being able to call and launch any other programs. I have not found a way to be able to launch any other programs using the system and rom info as command line parameters. In fact, I cannot find a way to send any command line arguments that include spaces. If you are only using it for MAME, then that might not be a problem, but for everything else it leaves it dead in the water. I'm not saying it cannot be done, it just seems that no one here knows how to do it, or doesn't want to bother to share how. I have asked this multiple times with no success, and it is utterly frustrating. Obviously the frontend can do this internally, because it passes this info to emulators when you set them up in the menu. It just doesn't work when trying to do it from within a layout or script.  With Hyperspin it is a snap to use AHK scripts to launch other programs, or EDS, because Hyperspin will play nice and pass system and rom info to other applications.  Rocketlauncher integration is pretty good, as there is a plugin to have it read your romlists for AM, which greatly simplifies things. That means not being tied to the old Hyperspin XML lists and endless tedious rom editing. You can create your own romlists with what you have, and scrape art and info for them like this. However, the pause menu for Rocketlauncher still does not display art assets properly. So, if someone could show how we could call HyperMarquee, Rocketlauncher, or a PDF reader for example and pass system and rom names with spaces with the fe.plugin_command, this thing would definitely be the best FE around, and make Hyperspin officially dead. However, as it is now, it leaves it very flexible an pretty graphics wise, with far more options than Hyperspin, yet completely self contained and one dimensional. This is a deal breaker for me, and I will probably reluctantly go back to Hyperspin if there isn't a resolution for this problem, because not being able to launch other programs or AHK scripts that need system and rom info is very limiting.

MydknyteStyrm

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #2 on: July 05, 2017, 10:14:32 AM »
Thank you very much for the details. One thing I'm curious, I plan on using RL as my main launcher, and AM for the pretty. I run AHK commands thru RL for my PC games. I'm assuming that if RL is doing the bulk of the work, then I should be okay. My issues with Hyperspin is  the lack of updates with newer programs. But if I can't call LEDBlinky or HyperEDS from AM then it's a bust.

BOXXMAN

  • Full Member
  • ***
  • Posts: 38
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #3 on: July 05, 2017, 10:34:34 AM »
Rocketlauncher integrates with AM nicely, as I run everything through that combo. There is also the option of setting up custom executables for every game from the menu. Therefore, you could point AM launcher at any AHK script or executable you like on a per game basis. This is something you cannot do with Hyperspin. However, running any external programs needing command line parameters at the same time is a problem. Like I said any command line for MAME would probably be passable to LedBlinky, because there are no spaces in the emulator or rom (single short names). Anything outside of this with spaces, has presented a huge problem for command line, as it cuts off the name at the first space. I don't want to turn you off of it, because I do find it far to superior to Hyperspin, but there has to be a solution for this to make it as versatile as Hyperspin. Maybe by me complaining about it again in this thread will get someone to look at it and provide the solution. If they can, then I would recommend AM over anything else out there.

keilmillerjr

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1167
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #4 on: July 05, 2017, 02:36:09 PM »
I have not found a way to be able to launch any other programs using the system and rom info as command line parameters. In fact, I cannot find a way to send any command line arguments that include spaces.

Please… I told you how to do it. I am not sure why spaces are being concatenated for you.

BOXXMAN

  • Full Member
  • ***
  • Posts: 38
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #5 on: July 05, 2017, 04:05:35 PM »
I have not found a way to be able to launch any other programs using the system and rom info as command line parameters. In fact, I cannot find a way to send any command line arguments that include spaces.

Please… I told you how to do it. I am not sure why spaces are being concatenated for you.

And can you provide proof this works? Perhaps it works on linux and these Pi boxes, but on Windows it does not. I have tried every which way and it always does the same thing. Since he is using Rocketlauncher, he is using Windows and is probably going to have the same problem and headache with it. As it is, the exact method you suggest will not pass spaces, so no it does not work. Even worse, it sends the first word of a name, then sends the entire path to the executable again, using the next word, and so on. So, it opens many instances of the same program, sending only one part of the name up until the next space it encounters, then sending the whole path over again with the next piece, not sending it as many, not one continuous parameter or name.
« Last Edit: July 05, 2017, 05:29:06 PM by BOXXMAN »

keilmillerjr

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1167
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #6 on: July 05, 2017, 07:57:07 PM »
I have not found a way to be able to launch any other programs using the system and rom info as command line parameters. In fact, I cannot find a way to send any command line arguments that include spaces.

Please… I told you how to do it. I am not sure why spaces are being concatenated for you.

And can you provide proof this works? Perhaps it works on linux and these Pi boxes, but on Windows it does not. I have tried every which way and it always does the same thing. Since he is using Rocketlauncher, he is using Windows and is probably going to have the same problem and headache with it. As it is, the exact method you suggest will not pass spaces, so no it does not work. Even worse, it sends the first word of a name, then sends the entire path to the executable again, using the next word, and so on. So, it opens many instances of the same program, sending only one part of the name up until the next space it encounters, then sending the whole path over again with the next piece, not sending it as many, not one continuous parameter or name.

I said that the method I provided was an example I created on my phone and might need tweaking, because I just moved and didn’t have my computer set up. Testing on a mac. Seems to provide string correctly. I even changed system name to have a space, as seen in the terminal log. Pass the variable to to plugin_command arg_string param and see if it works. I don’t see why it wouldn’t. I have no idea what you did. Seems like some crazy results. I’d have to see your code.

hermine.potter

  • Hero Member
  • *****
  • Posts: 767
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #7 on: July 05, 2017, 10:54:27 PM »
@BOXXMAN
I cannot find a way to send any command line arguments that include spaces

It's a DOS-/Windows-thing, to mask spaces in paths with " (quotation marks), because the system stops at the space (C:\my path to exe\myexe.exe => C:\my)
AM Version : 2.6.1
Input : Mad Catz Brawlstick; Mouse; Keyboard; Xbox360 Wireless
Cabinet : Yes
OS : Windows10 Pro
System : Dell Precision T3500 ; Intel X5650 ; 12GB RAM

BOXXMAN

  • Full Member
  • ***
  • Posts: 38
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #8 on: July 05, 2017, 11:22:31 PM »
So yeah, it's crazy. For debug purposes, the terminal shows exactly what you say, and shows it with the spaces. However, in practical use it does not work, as Rocketlauncher is only getting "Nintendo" sent to it, whereas terminal shows it outputting "Nintendo Entertainment System" , so it must be a Windows thing. So, what is the solution to this? I'm not understanding what @hermine.potter is suggesting to do. Can you give me the full command line as being discussed for Rocketlauncher as an example?

bjose2345

  • Sr. Member
  • ****
  • Posts: 107
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #9 on: July 06, 2017, 12:11:07 AM »
It would be much easier if you do not use the spaces, try to use another type of syntax, like "NintendoEntertainmentSystem" or "Nintendo_Entertainment_System" Is a type of convention at the programmer level like in any other software developments (because of Windows).

progets

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1271
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #10 on: July 06, 2017, 02:18:23 AM »
So yeah, it's crazy. For debug purposes, the terminal shows exactly what you say, and shows it with the spaces. However, in practical use it does not work, as Rocketlauncher is only getting "Nintendo" sent to it, whereas terminal shows it outputting "Nintendo Entertainment System" , so it must be a Windows thing. So, what is the solution to this? I'm not understanding what @hermine.potter is suggesting to do. Can you give me the full command line as being discussed for Rocketlauncher as an example?

Are you running the RocketLauncher plugin in both AM and RLUI? Maybe I'm misunderstanding what you are trying to accomplish but AM can use RL just fine.

Here's a config from my Windows machine that runs HS, AM, RetroFE, etc. which all use RL.

Code: [Select]
# Generated by Attract-Mode v2.2.1
#
executable           D:\HyperSpin\RocketLauncher\RocketLauncher.exe
args                 -s "[emulator]" -r "[name]" -p AttractMode -f "D:\AttractMode\attract.exe"
rompath              D:\HyperSpin\Roms\Nintendo Entertainment System
romext               .nes
system               Nintendo Entertainment System (NES)
info_source          thegamesdb.net
artwork    flyer           ..\HyperSpin\Media\Nintendo Entertainment System\Images\Artwork3
artwork    marquee         ..\HyperSpin\Media\Nintendo Entertainment System\Images\Artwork4
artwork    snap            ..\HyperSpin\Media\Nintendo Entertainment System\Video
artwork    wheel           ..\HyperSpin\Media\Nintendo Entertainment System\Images\Wheel

BOXXMAN

  • Full Member
  • ***
  • Posts: 38
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #11 on: July 06, 2017, 06:20:00 AM »
So yeah, it's crazy. For debug purposes, the terminal shows exactly what you say, and shows it with the spaces. However, in practical use it does not work, as Rocketlauncher is only getting "Nintendo" sent to it, whereas terminal shows it outputting "Nintendo Entertainment System" , so it must be a Windows thing. So, what is the solution to this? I'm not understanding what @hermine.potter is suggesting to do. Can you give me the full command line as being discussed for Rocketlauncher as an example?

Are you running the RocketLauncher plugin in both AM and RLUI? Maybe I'm misunderstanding what you are trying to accomplish but AM can use RL just fine.

Here's a config from my Windows machine that runs HS, AM, RetroFE, etc. which all use RL.

Code: [Select]
# Generated by Attract-Mode v2.2.1
#
executable           D:\HyperSpin\RocketLauncher\RocketLauncher.exe
args                 -s "[emulator]" -r "[name]" -p AttractMode -f "D:\AttractMode\attract.exe"
rompath              D:\HyperSpin\Roms\Nintendo Entertainment System
romext               .nes
system               Nintendo Entertainment System (NES)
info_source          thegamesdb.net
artwork    flyer           ..\HyperSpin\Media\Nintendo Entertainment System\Images\Artwork3
artwork    marquee         ..\HyperSpin\Media\Nintendo Entertainment System\Images\Artwork4
artwork    snap            ..\HyperSpin\Media\Nintendo Entertainment System\Video
artwork    wheel           ..\HyperSpin\Media\Nintendo Entertainment System\Images\Wheel

So everyone seems to misunderstand what is going on here. I never claimed Rocketlauncher does not work with AM, as I use it just fine. What I am saying is that the fe.plugin_command() is errant. The way AM sends command line parameters internally is different than the way in which this command sends the information. Obviously, AM has the capability of sending the arguments correctly when setting up the arguments in the emulator menu of AM itself. Using the Magic Tokens in quotes as you have, and I have, does send the string with spaces just fine. It is also not a Windows problem because Hyperspin and AHK can obviously send strings with spaces like "%system%" and "%"romname%" with no problem. The problem is the fe.plugin_command() specifically, because the info contained within cannot have spaces. Even if I put the literal "Nintendo Entertainment System" instead of (Info.System) variable, it gets cut off to only "Nintendo" when sent to outside programs. Rocketlauncher was being used as one example, so let's not focus on whether Rocketlauncher or program a,b,or c works with AM. Internally, THEY ALL DO. When trying call them from a layout so you can have more functionality than just the one emulator exe that AM calls on itself, it fails. The result When using a pdf  reader was the same. It opens many instances of the program, each opening with one word of the system, sending the full path each time with only a part of the name each time. Thus I have three instances of the program being opened like this - Attract Mode/SumatraPDF/System,  Attract Mode/SumatraPDF/Entertainment, Attract Mode/SumatraPDF/Nintendo. So again, how is AM itself internally handling passing spaces without problem, yet the fe.plugin_command() is  failing and not handling strings the same way? This is the problem. I have looked at the source code but am not a programmer so having trouble deciphering how AM sends these arguments differently so it will send spaces when the emulators are configured through the FE menu. Can anyone confirm (Windows, or otherwise) that  fe.plugin_command() can send variables with spaces to an actual program and execute properly, not just show that it outputs the spaces in the terminal, because something else is happening with the way the intended program is handling them.
« Last Edit: July 06, 2017, 10:11:06 AM by BOXXMAN »

Zdouf

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: New user to AM, leaving Hyperspin behind
« Reply #12 on: June 13, 2021, 02:21:56 PM »
Hello,
that's maybe late...
You can do a lot of thing by aiming a.bat file in the executable field, in the emulator settings section.
You must left the argument field blank too.
My batch file is in the root folder of AM.
I can post example here if you still need a solution for your issue.
Have a nice evening.