Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon


Adultery

Recommended Posts

Hey gang! Version 1.0.8 is out. I did some additional work to my all-encompassing GameEx class to only return the proper ROM path when there are multiple paths specified in the GameEx setup. I also laid the ground work for supporting MAME as a regular emulator, which will open the door for MAME only plugins to be able to reach beyond integrated MAME support... Plugins like the Hi-Score Snapper and MAME Commander will probably benefit the most from this but I'm sure others will as well.

That being said, I think I will need to start rolling out updated versions of several plugins (and GameEx Launch also) that used the old GameEx class I wrote since it was bulky and inefficient. Too much has changed in my GameEx core code that I just can't keep supporting the old framework any longer. In the end, everyone wins with what I would consider a better product.

Also want to send out a HUGE thanks to rockyrocket for his help in testing this new version. Without his help I would have never made this work the way it should with GameEx UI events. Go press his "like post" buttons and show some love!! :)

1.0.8

  • Fixed some bugs for Attract Mode
  • Added back in some variable replacements that I missed
  • Added new support to GameEx class for multiple MAME paths, now scans and returns proper ROM directory for each game
  • Some additional fixes for GameEx UI events

Grab it from the usual places. :)

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Great update and just returning to this. One question, Adultery. Looking at the list of variables that can be passed, I can see loads of useful ones. However, I can't see one for the "system" - only a "system biography." Also looked int he wiki:

http://www.gameex.info/wiki/index.php/PlugIn_Development:GameEx_Event_CommandLine_Function

Is there no way to access which system an emulator is for? I'm presuming this is derived from the Database setting in the Emulator setup menu? Needed for another quick project....

Link to comment
Share on other sites

GameEx doesn't pass that info. You might look at emulator name though, that passes the emulator ' title in the GameEx emu configuration.

Link to comment
Share on other sites

Hmmm,,, it may.. I'm just wondering....

What I'm looking for is for a consistent system name to be passed from GameEx to a script following launch from the emulator section. Thinking Quicklaunch is the best tool to achieve this as inherently linked to each emulator. Problem being, in each emulator's settings - there appears to be no key/value pair specifically for the system. Now...when you say the .ini - do you mean the GameEx ini? If so, examining this, the only way I can think of accessing this is via the db name. I'm guessing all systems are covered in the db files and it appears as though the system name appears in these consistently. Would have the benefit of keeping system names consistant across users, rather than using free-text of 'emulator name'

Extract of gameex.ini and e.g. of db below...

emu_1lastromfilter=*.*emu_1_dbcachemodified=23/09/2013 15:01:24emu_1_lastnumgames=17emu_1_dbcachelastname=[Console] Sony PlayStationemu_1_dbcacheinicreated51=Trueemu_1_enabled=Trueemu_1_startpagename=PCSX Games

So - guessing if you can snag from this ini, this may be possible? i.e. passing the db name or deriving the system name from this?

Gawd... I'm always causing trouble!

Link to comment
Share on other sites

Yes I meant the GameEx ini.

Well, the issue is that not all emulators use a db. If I pass the emulator name it would be unique to that emulator number. So for Emu #3 for example, I could pass whatever the name of the exe is. Ya know?

So say [emuexe] passes nulldc.exe.

The other problem with passing db values to a script is that of no db exists fir that emulator, it would be an empty variable and probably crash your script.

What i would probably do of I was you is just handle it internally based on the emu number, which always passes a value. Something like:

If emunum = 1 Then system = mame

(I would probably use a select case instead though ).

Or in script terms:

SET emunum=%1

IF %emunum%==1 ( SET sysname="MAME" ) ELSE IF %emunum%==2 ( SET sysname="SNES" )

You get the idea I'm sure. ;)

Link to comment
Share on other sites

Nice one fella, and see where you're going with that one. However, the problem will be with Emus that emulate more than one system (e.g. Demul - DC, Atomiswave and Naomi)

It's no biggie tbh. I could just set the System parameter independently in each cmd line under Quicklaunch - e.g. "script.exe -g "[Gamename] -s "Playstation 2"

However, the ability to pass the dbfile name would also be sweeet! I'm following this format for standardizing system names, but I do take your point about how some systems may not have associated db file (prob leaving the above manual method as necessary). Even sweeter if you could make available a cmd line var ([DBName] ?):

"Sony PlayStation 2"

rather than:

"[Console] Sony PlayStation 2"

or maybe the two? [DBName_full] and [DBName_short]

thanks again.

Link to comment
Share on other sites

Looking into this a bit more, I realise that that any app can snaffle stuff from the GameEx.ini, as long as you have the Emulator number. For this app I'm bashing together, I'm using the TITLETEXT key in the ini to store emulator names. Can you pass any vars from the ini? If so, in addition to the DATABASE key, the TITLETEXT key would also be useful!

I don't know how much of a pain this is to code. I know it already passes the Emu number and any code could snaffle it via that, but the above keys plugged straight into the command line would make things a lot more easier.....

:)

Link to comment
Share on other sites

Yes, I have all of that information in a datatable already so it won't be too terribly difficult (just have to write the regex tags for the command line). Just not a priority at the moment, but I will get to it in my round of plugin updates I plan to do over my xmas vacation. :)

Link to comment
Share on other sites

Updated to 1.0.9, which brings a few improvements. Most notably though is the advanced command line variables, which are taken from the emulator settings instead of being passed by GameEx. There will probably be many more in the future, but this is what the list looks like for now:

[TitleText] The emulator's Title Text property

[startPageName] The emulator's Start Page Name property

[EmuLogo] The emulator's logo

[ConfigPath] The emulator's advanced config

[Database] The emulator's database name

[CustomBG] The emulator's custom background image

[boxPath] The emulator's box art path

[ManualPath] The emulator's game manual path

[TVAdvertPath] The emulator's advertisement path

[AdvertPath] The emulator's advertisement path

[NoImg] The emulator's "image not found" path or file

[bGSnapPath] The emulator's background snap path

[DBSnapPath] The emulator's database snap path

[selectionMusicPath] The emulator's selection music path

[CPPPath] The emulator's control panel path

[MusicPath] The emulator's music path

[instructionsPath] The emulator's instructions path

[ExtenderArtPath] The emulator's GameExtender art path/file

[CustomPath1] ... [CustomPath5] The emulator's custom art paths (from 1 to 5)

Feel free to ask if there are questions or bugs, I tested it pretty well but if problems arise I will address them as always.

Get it from the usual places.

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

Adultery, my old bean. Are the following working your end?

cmd.png

[CmdLine] The command line for the selected game
[Cmd] The command line for the selected game
1st is just sending a blank
2nd is sending the literal - i.e. "[Cmd]"
Desperate to get hold of the booted emu process, somehow + would prefer grabbing via command line. :)
Link to comment
Share on other sites

Ahh yes, there was an issue in the way GameEx sends me command-lines. I have addressed this for Virtual Drive Loader already, but I need to import the new code into this plugin.

That cmd issue has also been addressed already in my game data class update.

I might get to this today yet.

  • Like 1
Link to comment
Share on other sites

Ooops. Mysterious goings on in the plugin: :/

Cmd line params:

"[bio]" "[systemBio]" "[Players]" "[Emu]" "[EmuName]" "[TitleText]" "[startPageName]" "[EmuLogo]"

Fails to launch app. Simpler cmd line - app launches fine. Think it's around the token parsing. The log seems to run cold too.

Any ideas?

Link to comment
Share on other sites

What event are you launching at? Some of these are only populated at certain times.

May be best to have a look at your settings. :)

Link to comment
Share on other sites

I'm wondering whether it's something to do with maximum parameter lengths? I sent [bio] for Vagrant Story to a cmd line parser thingy and for some reason, it split it into two parameters - couldn't see any quotes in the text:

Param1:

Valendra is a land that had undergone civil war. The end of which had birthed the parliament and several organizations to control the balance of power. Ashley Riot is a Riskbreaker agent, an elite one man investigator, for the Valendia Knights of Peace (VKP) who is investigating some strange occurrences. A cult of religious fanatics known as Müllenkamp, and their leader Sydney Losstarot, have seized the manor of Duke Bardorba of Valendia Kingdom. The events at the manor have sent Ashley on a quest to get to the bottom of what's going on, and travel into the catacombs that lead to the destroyed, yet magical city of Leá Monde. However Ashley is not the only person interested in the city, and other factions of the government, including parliament assigned Knights of the Crimson Blade and other VKP agents are pursuing their own agenda. Combat is central to the game. The game runs in real time but when entering combat and attacking an enemy, the game is paused. A wireframe sphere showing the range of the currently selected weapon and detailed statistics on different body parts of the enemies within range. The game features a range of weapons. Each weapon can be disassembled and reassembled in workshops scattered throughout the game, attaching gems for extra power. Weapons used constantly against the same type of enemy improve in power against them. Ashley can also make use of Magic, Chain Abilities and Break Arts. Magic is broken into four groups, namely defense, combat, healing and status. Spells use up mana points and are sometimes more costly than useful. Chain Abilities allow Ashley to chain

Param 2:

together consecutive hits against enemies. Break Arts are special skills learnt after repetitive use of a weapon type. Sacrificing some of the player's health, Break Arts can perform a high damage attack on an enemy.

Link to comment
Share on other sites

  • 2 weeks later...

Hmm... apologies feel like I'm pestering you on this plugin, but thingy I'm working on is heavily dependent on it :)

Concerning the [Database] tag. Weird issue with case.

The filename in C:\GameEx\DATA\EMULATORS, say for PlayStation is: [Console] Sony PlayStation.db3

The Name field in the actual db3 is: Sony PlayStation

However, when I use the [Database] tag, it gets passed as:

[Console] Sony Playstation

you'll notice the lower case "s" - I know it sounds pedantic, but using a systems map which is case sensitive (which may be a b***er to recode) - just wondering what's going on with that and whether possible to preserve case of the original db3 info?

Ignore - batch surprised me and made case insensativity actually quite easy. Still curious though...

Link to comment
Share on other sites

If you take a look at your GameEx ini for that emulator (or maybe even the emulator setup in the wizard), my guess is that's the key that's in the database value. I just parse and pass on what's in the GameEx.ini directly, I don't do any sort of file verification on that stuff or check for actual file/folder case. :)

I don't think Windows cares about the casing in a file path anyway, C:/MyFile.php would point to the same file if it were c:/mYFILe.php regardless of the way it's recorded.

I'm wondering whether it's something to do with maximum parameter lengths? I sent [bio] for Vagrant Story to a cmd line parser thingy and for some reason, it split it into two parameters - couldn't see any quotes in the text:

Param1:

Valendra is a land that had undergone civil war. The end of which had birthed the parliament and several organizations to control the balance of power. Ashley Riot is a Riskbreaker agent, an elite one man investigator, for the Valendia Knights of Peace (VKP) who is investigating some strange occurrences. A cult of religious fanatics known as Müllenkamp, and their leader Sydney Losstarot, have seized the manor of Duke Bardorba of Valendia Kingdom. The events at the manor have sent Ashley on a quest to get to the bottom of what's going on, and travel into the catacombs that lead to the destroyed, yet magical city of Leá Monde. However Ashley is not the only person interested in the city, and other factions of the government, including parliament assigned Knights of the Crimson Blade and other VKP agents are pursuing their own agenda. Combat is central to the game. The game runs in real time but when entering combat and attacking an enemy, the game is paused. A wireframe sphere showing the range of the currently selected weapon and detailed statistics on different body parts of the enemies within range. The game features a range of weapons. Each weapon can be disassembled and reassembled in workshops scattered throughout the game, attaching gems for extra power. Weapons used constantly against the same type of enemy improve in power against them. Ashley can also make use of Magic, Chain Abilities and Break Arts. Magic is broken into four groups, namely defense, combat, healing and status. Spells use up mana points and are sometimes more costly than useful. Chain Abilities allow Ashley to chain

Param 2:

together consecutive hits against enemies. Break Arts are special skills learnt after repetitive use of a weapon type. Sacrificing some of the player's health, Break Arts can perform a high damage attack on an enemy.

This is definitely possible. There may be a char I need to strip from the bio that I missed but chances are you're just passing one that's simply too long. I would have to look into it.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...