Topic: SFC3 MACRO UTILITY v0.9 READY!  (Read 17197 times)

0 Members and 1 Guest are viewing this topic.

Vertigo

  • Guest
SFC3 MACRO UTILITY v0.9 READY!
« on: January 26, 2003, 04:42:49 am »
...Now, who can host it for me?

What it does:
---------------------------------
Once you have installed and started the utility it hides in the background.  This version alters the behavior of the "A" and "S" keys to make changing speeds easier.  "A" and "S" now increment and decrement speeds by 1/4 impulses.  So, if you are at a dead stop and press "S" repeatedly, your speed changes to:

1st press - 1/4 impulse (actually 26% due to the turning "sweet spot")
2nd press - half impulse
3rd press - 3/4 impulse
4th press - full impulse

The "A" key decelerates the same way, only the last press takes you to full reverse.
---------------------------------

I've got a nice Zip file with readme and source code.  I just need someone to host it for me, as I don't have a website.

More stuff coming, such as macros for energy settings.  But first people need to start banging on it, and find me some bugs.

Anyone willing to help me out?  Send me a PM.
   
« Last Edit: January 26, 2003, 04:46:23 am by Vertigo »

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #1 on: January 26, 2003, 03:04:30 pm »
*bump*

C'mon, where's the love?

Xantim

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #2 on: January 26, 2003, 11:04:02 pm »
Sounds good.  

Arcilte

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #3 on: January 26, 2003, 11:15:33 pm »
I like it. Sorry I have no where to host it  

Cocomoe

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #4 on: January 26, 2003, 11:45:54 pm »
  Send it to me I should be able to put it up.
 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #5 on: January 27, 2003, 01:28:06 am »
Let's get this out of the way: I'm so sorry, you Oakland fans.  Ouch, ouch, ouch.  I'd rub it in, but I don't really like Tampa Bay either.

I've started mailing out copies to people who have contacted me.  As soon as someone sends me a URL, I'll post it here.

I've actually completed another rev, which now works at all resolutions.  The code is also a lot cleaner, and I've added a basic logging ability (for my own sanity).  When I complete the release build procedure, I'll mail it out to you nice people.

I've got a dilemma.  Currently the code hijacks "A" and "S", so SFC3 never sees these keystrokes.  I just realized that may totally mess up in-game chatting.  There's no easy way around this except to move the keys somewhere else.  Alternately, I could pass the keys onto SFC3, but that creates a "double-press effect" unless you unbind "A" and "S" in your options.  Any suggestions?  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #6 on: January 27, 2003, 01:49:33 am »
Cocomoe got me a working URL first, so props to him.  You can download the SCF3Macro util (v.9) from:

http://www.gfluniverse.net/downloads

 

Cocomoe

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #7 on: January 27, 2003, 04:55:41 pm »
  He just released a .91  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #8 on: January 27, 2003, 07:37:51 pm »
There is also now a UK link, thanks to Jaffa:

http://www.whopperchopper.pwp.blueyonder.co.uk/SFC3Macro_v091.zip

-Vertigo  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #9 on: January 27, 2003, 07:39:24 pm »
BTW, has anyone actually TRIED this yet?    

I'd like to know if my util works outside the realm of my development PC.

Bueller?  

DrSchreber

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #10 on: January 27, 2003, 08:32:25 pm »
Just curious, but.......

Does it come with a manual?

DrSchreber  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #11 on: January 27, 2003, 08:55:08 pm »
Quote:


I've got a dilemma.  Currently the code hijacks "A" and "S", so SFC3 never sees these keystrokes.  I just realized that may totally mess up in-game chatting.  There's no easy way around this except to move the keys somewhere else.  Alternately, I could pass the keys onto SFC3, but that creates a "double-press effect" unless you unbind "A" and "S" in your options.  Any suggestions?  



I have a little program I made that captures keystrokes without disrupting other progs. It's written in C++ and uses DirectInput, and the  graphical frontend uses MFC. I'd be willing to share the source with you. Unfotunately I can't test it with SFC3 since I don't have the game (yet).  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #12 on: January 27, 2003, 11:22:02 pm »
Quote:

Just curious, but.......

Does it come with a manual?

DrSchreber  



A simple readme file.  I mean, you only use two keys after all...


Quote:


I have a little program I made that captures keystrokes without disrupting other progs. It's written in C++ and uses DirectInput, and the  graphical frontend uses MFC. I'd be willing to share the source with you. Unfotunately I can't test it with SFC3 since I don't have the game (yet).  




You misunderstand.  I've done that already.  When you capture keystrokes, you have two (and only two) options:

1) do your thing, and "eat" the keystrokes.  The main app (SFC3) never sees them.
2) do your thing, and pass the keystrokes onto SFC3.

With Option #1, chat doesn't work since any "a" and "s" keys never get to SFC3.

With Option #2, SFC3 sees the keystrokes and acts on them.  So you get this example:

1) You press "S."
2) My app sets your speed to EXACTLY 1/4 impulse.
3) The keystroke is then passed onto SFC3.
4) SFC3 sees the "S" command, and...
5) incremements your speed again by about 3%.
6) Your speed is no longer 1/4 impulse.

Ugly.

What I think I'll do:  I'll define ENTER as a Macro ON/OFF switch, and also pass ENTER commands through to SFC3.  So, you get this:
1) You Press ENTER to chat.
2) Seeing this, the SFC3Macro goes to sleep, and passes the ENTER key.
3) SFC3 sees your ENTER keystroke, and opens the chat window.
4) You type your message.  
5) You press ENTER to send your message.
6) Seeing this, the  SFC3Macro wakes up again, but after passing the ENTER key.
7) SFC3 sees your ENTER keystroke, and sends the message.

It's elegant, and seems like it would work.    

Blitzkrieg

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #13 on: January 28, 2003, 04:43:25 am »
Please define that key as somthing that isnt used when typing. Perhaps the ` key or # key or even the Insert key. Anything but the enter key or anything that takes up standard letters / important typing keys, please.

ksfung

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #14 on: January 28, 2003, 08:45:41 am »
Please re-read his last response, He plans on using the ENTER key to both toggle the macro, and pass through the ENTER key. I think that is a very elegant solution.

3dot14

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #15 on: January 29, 2003, 11:24:36 pm »
just wondering how good is it when responding to customized key maps?

I don't use A and S for speed. I use Num7 and Num9. would the utility work with them?

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #16 on: January 30, 2003, 01:54:59 am »
Quote:

just wondering how good is it when responding to customized key maps?

I don't use A and S for speed. I use Num7 and Num9. would the utility work with them?  




In the current rev, no.  

However, I'm currently working on putting keybindings into an INI file.  (I saw this question coming).  Then you'll be able to simply change (for instance)

[Commands]
UpThrottle=A

to

[Commands]
UpThrottle=PAD7  (or whatever name I settle on).  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #17 on: January 30, 2003, 01:57:03 am »
SghnDubh is also now hosting the file on BattleClinic.com, under the analysis section.  Thanks, SghnDubh!  
« Last Edit: January 30, 2003, 01:59:20 am by Vertigo »

SghnDubh

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #18 on: January 30, 2003, 05:26:48 pm »

(Standing on the porch, ringing the triangle)

COME N GET IT!

 

Vertigo

  • Guest
SFC3Macro v093 READY!
« Reply #19 on: January 31, 2003, 10:45:47 am »
Version 0.93 is done, and has been sent to my gracious hosters.

Pi, you can now  use keypad buttons to change speeds, if you so desire.

Some moderate improvements in this version:

* Enter key now toggles macro utility on/off to allow for easier chat.
* Settings now kept in INI file.
* New file: Commands.txt, which explains key bindings.
* Added support for virtually all possible keybindings, about 83 keys.
* Added support for some non-standard keybindings, about 10 keys.
* Added support for key combos, such as SHIFT-CTRL-S.
* Added support for extended key flags (see commands.txt for more).

So you can now choose from perhaps about 500 different key combinations, but still
only have 3 commands to actually to bind them.  

That's about it for the groundwork.  The only thing left to do now is add actual
commands to make this thing more useful.

I'll tell you one thing: after using this util for a while, I can't stand clicking on the
speed bar anymore.  The hotkeys are sooo nice.
 

Krusaderr

  • Guest
Re: SFC3Macro v093 READY!
« Reply #20 on: January 31, 2003, 10:57:09 am »
Excellent work Vertigo. Thank you for taking time out of your schedule to make this.    

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #21 on: January 31, 2003, 11:13:02 pm »
Quote:


You misunderstand.  I've done that already.  When you capture keystrokes, you have two (and only two) options:

1) do your thing, and "eat" the keystrokes.  The main app (SFC3) never sees them.
2) do your thing, and pass the keystrokes onto SFC3.

With Option #1, chat doesn't work since any "a" and "s" keys never get to SFC3.

With Option #2, SFC3 sees the keystrokes and acts on them.  So you get this example:

1) You press "S."
2) My app sets your speed to EXACTLY 1/4 impulse.
3) The keystroke is then passed onto SFC3.
4) SFC3 sees the "S" command, and...
5) incremements your speed again by about 3%.
6) Your speed is no longer 1/4 impulse.

Ugly.

What I think I'll do:  I'll define ENTER as a Macro ON/OFF switch, and also pass ENTER commands through to SFC3.  So, you get this:
1) You Press ENTER to chat.
2) Seeing this, the SFC3Macro goes to sleep, and passes the ENTER key.
3) SFC3 sees your ENTER keystroke, and opens the chat window.
4) You type your message.  
5) You press ENTER to send your message.
6) Seeing this, the  SFC3Macro wakes up again, but after passing the ENTER key.
7) SFC3 sees your ENTER keystroke, and sends the message.

It's elegant, and seems like it would work.    



I guess I did misunderstand. Maybe if I could play with it, I'd understand better what's happening. What functions/interfaces are you using to catch the keystrokes (I'm assuming SFC3 uses DInput, maybe not)? As an alternative to the ENTER method, you could set the speed to a bit below 1/4 impulse so when SFC3  increases speed, it sets it to exactly 1/4 impulse. As it sounds, I think the ENTER method is strange, but maybe it's one of those things that works better that it sounds (at least to me).  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #22 on: January 31, 2003, 11:37:03 pm »
Quote:


I guess I did misunderstand. Maybe if I could play with it, I'd understand better what's happening. What functions/interfaces are you using to catch the keystrokes (I'm assuming SFC3 uses DInput, maybe not)? As an alternative to the ENTER method, you could set the speed to a bit below 1/4 impulse so when SFC3  increases speed, it sets it to exactly 1/4 impulse. As it sounds, I think the ENTER method is strange, but maybe it's one of those things that works better that it sounds (at least to me).  




Well, why can't you play with it? I mean, it's a free download, available from three places.  Or do you not have SFC3?

Anyway, having tried it out, the "Enter key as toggle approach" seems to work pretty well, actually.  I'm pretty happy with it, and will let it stay as the final fix.

Trying to increase it a "little less" and add a keystroke could be made to work, but it's even uglier than the Enter solution.  Also there are timing issues there I don't want to go into.  To summarize, if you give SFC3 a keystroke immediately after a mouse action, it tends to lose the keystroke.  Ugly.

If SFC3 were actually using a "instant" call like GetAsychKeyState(), I'd be out of luck.  Lucky for me, they are using a standard message queue.  If you are adept at Win32 programming, download the utility.  The source code is included.  To catch keystrokes, I'm using SetWindowsHookEx(), which allows me to intercept the message queue.  Sounds simple, but it can be very tricky in practice.  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #23 on: February 01, 2003, 02:13:52 pm »
Sadly enough, I don't have SFC3 . But when I do, I'll play around with it a bit. Something I noticed while looking (breifly) though the code is that you had a function to get a screenshot. I haven't played around with DCs that much, but can you write to the fullscreen DC, or does that not work? If it does, that could open up a new realm of features...  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #24 on: February 02, 2003, 02:36:10 am »
Quote:

Sadly enough, I don't have SFC3 . But when I do, I'll play around with it a bit. Something I noticed while looking (breifly) though the code is that you had a function to get a screenshot. I haven't played around with DCs that much, but can you write to the fullscreen DC, or does that not work? If it does, that could open up a new realm of features...  




Yes, and No.  Sure, you can write to the fullscreen DC, and that will might last about 1/60th of a second before the next frame comes along.  

I'm not sure if you have done any Direct3D programming, but the Immediate Mode rendering code will clear the entire frame buffer every frame.  Any graphics you inserted would get wiped almost instantly.  In order to get persistent graphics, you have to get yourself into the rendering pipeline.

This is really, really, REALLY hard, if not impossible to do when you just latching onto someone else?s program.  It?s not quite technically impossible, but that is some really fancy (and time consuming) reverse engineering.

Basically, I?d have to
1) intercept every D3D call (I know how to do this), use that to
2) puzzle out the basic workings of the SFC3 engine.
3) Somehow insert new rendering commands into the pipeline without breaking everything.

That ain?t no joke.  That?s full time work, the kind you could get paid $80K a year to do.

But persistent overlays could be very cool.

And is SFC3 really a good enough game to warrant this effort?  I don?t think so.  You?d be better served taking my code and porting it back to a better game, like OP.  It actually should be relatively trivial for someone who?s motivated, and anyone has my permission to try.

Come to think of it, I?ve never looked at the released public source for previous SFC games.  Is the retained 3D engine code public, too?  That would make step #2 almost easy.

You actually looked at my source code?  I?m FLATTERED!  What do you think?
 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #25 on: February 02, 2003, 02:37:41 am »
BTW, HAS ANYONE ACTUALLY TRIED THIS UTILITY YET?  DOES IT WORK?

I wanna know...  please?  

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #26 on: February 02, 2003, 04:25:14 am »
When I tried to use it, the log file records the following:

*********** SFC3MACRO Message Log ***********


Message Logging Level = 1.
Could not find action name.
Could not find action name.
Could not find "=" sign.
Could not find "=" sign.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 Macro has been stopped.
SFC3 Macro has been started.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 is closing.  Closing Log.


This is a very interesting utility, I sure hope the kinks can be worked out.  It is very promising.

If I may offer my layman's opinion of what is going on above, it could have something to do with different monitors having different Color Profiles (and/or the video card itself).

My setup is a GeForce2 200MX PCI with a 19" GEM Delta DC 995 monitor & an inactive S3 onboard video chip.

I hope this helps, I'd love to see this thing work.  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #27 on: February 02, 2003, 05:48:54 pm »
Quote:

Quote:

Sadly enough, I don't have SFC3 . But when I do, I'll play around with it a bit. Something I noticed while looking (breifly) though the code is that you had a function to get a screenshot. I haven't played around with DCs that much, but can you write to the fullscreen DC, or does that not work? If it does, that could open up a new realm of features...  




Yes, and No.  Sure, you can write to the fullscreen DC, and that will might last about 1/60th of a second before the next frame comes along.  

I'm not sure if you have done any Direct3D programming, but the Immediate Mode rendering code will clear the entire frame buffer every frame.  Any graphics you inserted would get wiped almost instantly.  In order to get persistent graphics, you have to get yourself into the rendering pipeline.

This is really, really, REALLY hard, if not impossible to do when you just latching onto someone else?s program.  It?s not quite technically impossible, but that is some really fancy (and time consuming) reverse engineering.

Basically, I?d have to
1) intercept every D3D call (I know how to do this), use that to
2) puzzle out the basic workings of the SFC3 engine.
3) Somehow insert new rendering commands into the pipeline without breaking everything.

That ain?t no joke.  That?s full time work, the kind you could get paid $80K a year to do.

But persistent overlays could be very cool.

And is SFC3 really a good enough game to warrant this effort?  I don?t think so.  You?d be better served taking my code and porting it back to a better game, like OP.  It actually should be relatively trivial for someone who?s motivated, and anyone has my permission to try.

Come to think of it, I?ve never looked at the released public source for previous SFC games.  Is the retained 3D engine code public, too?  That would make step #2 almost easy.

You actually looked at my source code?  I?m FLATTERED!  What do you think?




Well, I actually have had some experience with Direct3D, but only DX8 and 9. Currently I have a few little programs that can read, render, optimize, and distort (with vertex and pixel shaders) SFC2 and most Armada models (many thanks to assimsoft.com for the formats), SFC3 is closer to what I'd like to work with and have experience with. All I'd need is the a pointer to the Direct3D device and I'd be set (as long as there was no switching video modes in game).

Unfortunately, there is no source code for SFC 1 or 2 (something about proprietary code I think). If you could block and execute code before the D3D scene ended, you could do a lot. Or, have your app use another instance of D3D to render to a surface, and then copy it to the DC. Although slow, it could be interesting...I need to get SFC3.  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #28 on: February 02, 2003, 10:18:32 pm »
Quote:

When I tried to use it, the log file records the following:

*********** SFC3MACRO Message Log ***********


Message Logging Level = 1.
Could not find action name.
Could not find action name.
Could not find "=" sign.
Could not find "=" sign.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 Macro has been stopped.
SFC3 Macro has been started.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 is closing.  Closing Log.


This is a very interesting utility, I sure hope the kinks can be worked out.  It is very promising.

If I may offer my layman's opinion of what is going on above, it could have something to do with different monitors having different Color Profiles (and/or the video card itself).

My setup is a GeForce2 200MX PCI with a 19" GEM Delta DC 995 monitor & an inactive S3 onboard video chip.

I hope this helps, I'd love to see this thing work.  




It does, and I half expected that problem.  I'd say there are two separate problems:

1) Sounds like there is an error in the  [Command List] section of the .INI file.  It's of no consequence since the throttle command are being found anyway.  If you want to cut'n paste that section into a post, I'll take a look at it.

2) I HOPED beyond hope that the color of the throttle bar would be constant across all systems, but it doesn't look like it will be that easy.  This is the number one reason I kept trying to get someone to test it.  It's also the reason that the color is defined in the INI file, so it can be changed, just in case.

*Tech note: My video card does 16-bit RGB in 5-6-5 format, the problem is probably that your card uses 5-5-5 format.  No big deal, I just have to find out the actual combined color value, so the utility can find the throttle.

OK, I've got alternate code that spends more effort searching for the throttle color, I'll get that polished and into the next revision.  It eats more CPU time, so I wasn't going to add it unless I had to.

Anyone else?




 

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #29 on: February 03, 2003, 07:46:24 pm »
That's another concern, does it make a differance if you're in 16 or 32 bit color mode?  I was playing in 16, but it sounds like you coded with that color depth in mind.

Still, should be worth a test.  I'll do that and report back.  

LATER...
Ok, I tested it in 32 bit color depth and same problem.

Maybe a fuzzy logic routine would help?  Instead of requiring an exact color match, match it to within 10% or so?  Surely there is some hardware-independent way to do this.

Of course, Taldren should've designed the game this way from the get-go.  There's a button for full impulse, but not one for any other speed (except 0).  And there should be power-slider presets.  Well, hindsight is 20/20 I suppose.

Good luck, I hope you get this working, it will provide a great advantage for anyone using it (if your opponent isn't).  
« Last Edit: February 03, 2003, 07:58:33 pm by Tulmahk »

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #30 on: February 03, 2003, 08:02:34 pm »
As you requested, here is the entire [Command] section of the .ini file:

;------------------------------------------------------------------------------
;This is where you bind your keystrokes to the commands you want SFC3Macro to
;perform.
;
;For instructions about available keys and commands, please see Commands.txt.
;
;Format:
;(Command) = 'key', [SHIFT], [CONTROL], [ALT], [RunAlways], [PassThru], [IsExtended], [NotExtended]
;
[Command List]
UpThrottle=S
DownThrottle=A
OnOff=ENTER, RunAlways, PassThru
;ShowLog=F6, RunAlWays
;AdvancedDisplayQuery=F7, RunAlWays
 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #31 on: February 03, 2003, 08:47:28 pm »
Quote:

That's another concern, does it make a differance if you're in 16 or 32 bit color mode?  I was playing in 16, but it sounds like you coded with that color depth in mind.

Still, should be worth a test.  I'll do that and report back.  

LATER...
Ok, I tested it in 32 bit color depth and same problem.

Maybe a fuzzy logic routine would help?  Instead of requiring an exact color match, match it to within 10% or so?  Surely there is some hardware-independent way to do this.

Of course, Taldren should've designed the game this way from the get-go.  There's a button for full impulse, but not one for any other speed (except 0).  And there should be power-slider presets.  Well, hindsight is 20/20 I suppose.

Good luck, I hope you get this working, it will provide a great advantage for anyone using it (if your opponent isn't).  




I've just sent out v0.931, which has a crude matching algorithim.  I don't want to spend the CPU cycles doing anything as heavy as fuzzy logic.  I am, after all, leeching CPU cycles from an unaware program as it is.  Hopefully, this revision will fix your problems.  Let me know.

Technically, GetPixel() should be returning a device-independent 32bit RGB color, but it just doesn't seem to work that way.  So, I gotta kludge a little.

SFC3 does 32 bit color?  :O  This I didn't know, not having seen any ability in SFC.INI or the GUI config tool.  How do you do this?

 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #32 on: February 03, 2003, 11:13:42 pm »
Tulmahk,

     You can fetch the updated v0.931 file from:

http://www.gfluniverse.net/downloads


 

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #33 on: February 04, 2003, 02:36:41 am »
I'll be grabbing that presently.

As to the color depth thing, that's the way I believe the game works.  The game uses the resolution you set it to use in the config utility, but the color depth you happen to be at when the game launches (but no less than 16bit).

Anyone feel free to correct me if I'm wrong on that, but I do believe that's the way it works (learned that by reading these forums).  

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #34 on: February 04, 2003, 03:14:18 am »
IT WORKS!

Whatever you did, the damned thing is actually working now!

Shouldn't be too great a leap from here to get the power sliders working.  Same basic principle, right?

That's an excellent bit of programming.  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #35 on: February 04, 2003, 05:09:51 am »
Tulmahk,

     Great to hear that the fix worked.  It's a bit of a hack, but I don't care at this point.

     I don't know about the desktop color thing.  When I was first running tests, the color rez ALWAYS came up at 16 bit, and I run my desktop at 32.  I think that may be either an urban legend, or hardware specific.  I was querying color depth through the DC, so I know it's right.

     For a technical point of view, sliders are a piece o' cake.  It's the interface that is tricky.  Not being able to use a GUI during gametime makes it tough.  Here's what I settled on:

     For every hull you fly (up to 10), you can save a profile.  For every profile, you can define an unlimited amount of power sets.  A set is the settings of the 3 power bars, expressed as percentages.  When you start a match, you first load the profile for the ship you are in.  Then you can cycle through your energy sets at the press of a button.

So far I have added these bindable commands:

LoadHullProfileX (where X goes from 0-9, giving 10 profiles.)
CycleEnergySetsUp (Cycles through your energy sets)
CycleEnergySetsDown (reverse cycles)

Sets are cycled in the order they are listed in the INI file.

By default, I'll bind the load commands to CTRL-Fx, so loading Hull Profile 5 is CTRL-F5, etc.

A profile looks like this in the INI:

[Hull 0 Energy Profile]
Optimal=100P,100H,100S
MaxShields=200S, 100P, 100H
Alpha=200H,200P, 10S
_Custom1=103P, 122H, 110S

The entries can be decoded as follows.  The set name is first, that's whatever name you choose, it's only there for human reference.  The 3 commands following show what percentages of power you want to each system.  The systems must be  listed in order of priority.  Taking the Maxshields set as an example, Shields will get 200% power, then Primaries get 100% power, then Heavies get 100% last.  If there isn't enough energy, heavies won't get 100%, etc.  In reality, I'm just going to send mouse messages in reverse order of priority.

Seems simple enough to me.  There's only one real hassle, and that's creating the Sets in the first place.  It will take a lot of trail and error to get the percentages just right if you want to create Sets.  Without access to a GUI, there is no easy answer.

I'm gonna start by creating another command, something like SaveCustomEnergySet.  This command reads your current energy settings off the display, converts to percentages, and saves it as a "_CustomX" Set , where X increments every time.    It will save it in your current profile.  Then you can rename it to what you want.  Not perfect, but it works.

What would be really awesome is a stand-alone GUI utility so you can tweak your INI settings when you aren't playing.  In a perfect world, this app would allow you to perform refits and select Officers, calculate power nominals, allow you to move energy sliders just like the game, and then save those settings to the INI file.  Anyone interested?

Comments?  Sheesh, I feel like I'm writing RFCs.  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #36 on: February 04, 2003, 07:37:02 pm »
Quote:


What would be really awesome is a stand-alone GUI utility so you can tweak your INI settings when you aren't playing.  In a perfect world, this app would allow you to perform refits and select Officers, calculate power nominals, allow you to move energy sliders just like the game, and then save those settings to the INI file.  Anyone interested?
 



Yes, but getting the time to do it will be difficult for a week or so. Have you also considered a scripting language (Lua, Python come to mind)? I still need the game to get the sliders to work right (right?)? Somewhere I have an amazon gift certificate that should cover the cost.  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #37 on: February 04, 2003, 07:50:48 pm »
Quote:

Quote:


What would be really awesome is a stand-alone GUI utility so you can tweak your INI settings when you aren't playing.  In a perfect world, this app would allow you to perform refits and select Officers, calculate power nominals, allow you to move energy sliders just like the game, and then save those settings to the INI file.  Anyone interested?
 



Yes, but getting the time to do it will be difficult for a week or so. Have you also considered a scripting language (Lua, Python come to mind)? I still need the game to get the sliders to work right (right?)? Somewhere I have an amazon gift certificate that should cover the cost.  




Scripting doesn't help because you still won't have an easy-to-use GUI.  I mean, I'm a Perl junkie, but that doesn't help the average joe.  

Vertigo

  • Guest
UK host...
« Reply #38 on: February 04, 2003, 07:51:46 pm »
Jaffa has updated his hosting link for version v.0931:

http://www.whopperchopper.pwp.blueyonder.co.uk/SFC3Macro_v0931.zip  

SghnDubh

  • Guest
Now on BattleClinic!
« Reply #39 on: February 04, 2003, 08:24:14 pm »
Visit the Analysis section of BattleClinic for prompt and courteous d/l.  


BTW, follow link #4 that looks like this:










  .    

Tulmahk

  • Guest
Re: UK host...
« Reply #40 on: February 04, 2003, 10:01:43 pm »
Vertigo, you know more about these things than I, so I'll gladly defer to your interpretation of the color-depth thing.

The rest of it sounds just amazing.  I can't wait to try it all out.  I'm using your utility on a regular basis in multiplayer, and the results have been excellent.  I spend much, much less time messing with my ship's speed.  Mousing it is a major hassle, and the traditional hotkeys are only marginally better (still time consuming).  Your utility has done away with all that hassle.  1 or 2 key presses, and I'm off to mess with the power.

Keep up the good work!  

Vertigo

  • Guest
Re: UK host...
« Reply #41 on: February 05, 2003, 05:26:07 am »
Quote:

Vertigo, you know more about these things than I, so I'll gladly defer to your interpretation of the color-depth thing.

The rest of it sounds just amazing.  I can't wait to try it all out.  I'm using your utility on a regular basis in multiplayer, and the results have been excellent.  I spend much, much less time messing with my ship's speed.  Mousing it is a major hassle, and the traditional hotkeys are only marginally better (still time consuming).  Your utility has done away with all that hassle.  1 or 2 key presses, and I'm off to mess with the power.

Keep up the good work!  





I concur, it's like a microwave oven.  You quickly can't live without it.  Thanks for the praise!

I'm actually quite annoyed at the moment.  I can't get the energy sliders to work 100%.  I've got everything else done, and you can cycle through profiles, and everything works great except for one BIG problem.

When you try to use too much power, you know how the sliders "auto-adjust?"  That part just freaks out when you use the macro program.  I've tested and tested, and it just doesn't work right.

If you send a FAST sequence that doesn't kick in the "auto-adjusting," everything works great.  If you send mouse messages SLOWLY, auto-adjusting works great.  But if you send fast AND auto-adjusting kicks in, the sliders start warping to strange positions.

My theory is that the SFC3 code is "cheating" a little, by peeking into the message queue and getting all of the mouse messages at once.  It actually re-orders the mouse messages. It probably assumes that you'll never be able to get multiple mouse commands in between checks.  Which you usually can't unless you have a program doing it for you.

Even if you tweak your energy profiles perfectly, you'll still have problems the first time you take warp core damage.

Gah!  I'm mad.  I may have to create a second thread that sends timed messages.  Bleah.

Once that problem is licked, it's clear sailing (I hope).
 

Tulmahk

  • Guest
Re: UK host...
« Reply #42 on: February 05, 2003, 07:28:17 pm »
Please do stick with it.  This is worth a certain large amount of annoyance and frustration, as it makes your eventual victory all the sweeter

How much you want to bet Taldren is watching your progress closely (in a good way)?  

Vertigo

  • Guest
Re: UK host...
« Reply #43 on: February 06, 2003, 12:52:19 am »
Quote:

Please do stick with it.  This is worth a certain large amount of annoyance and frustration, as it makes your eventual victory all the sweeter

How much you want to bet Taldren is watching your progress closely (in a good way)?  




Who knows?  None of this stuff is rocket science, I just think it is stuff they didn't have time to get in.  Not a lot of polish in SFC3...  Every programmer always needs more time.

What I would really like is to help them formally.  I'd sign any NDA they want if they would let me work with the source code.  I've got references, I've held a TS clearance,  I'm trustworthy.  I am a real Software Developer who's worked on real code.  And I mean REAL code, like embedded OS kernels.  Cool stuff.  Until I find a (paying) job, I'll work pro bono, for the resume bullets.

Anyway, I've licked the slider bug problem.  I spun up a second thread which sends the mouse messages slower.  From initial testing, the fastest rate I can achieve is about 20ms.  Any faster and the bars freak out.  That's on a 1300 XP+, your mileage may vary.  Just to be safe, I'll put the delay value into the INI file so anyone can change it.

So, that's it.  All the hurdles are... um, hurdled, I guess.  I've got to merge the test code into the release code, and do all that pesky finalization stuff.  Since energy bars were the whole point of this util, I can finally call it v1.0!    Hopefully it will be out sometime in the next 24 hours.  

Vertigo

  • Guest
Version 1.0 has been released!
« Reply #44 on: February 06, 2003, 01:17:38 pm »
Yay!  I've mailed off SFC3Macro v1.0.  This version adds support for energy management, pretty much the way I described it in earlier posts.  I really, really like this feature.

If anyone is having trouble getting their head around the concepts of the energy stuff, just follow the guided tour in the ReadMe file.   It only takes about 5 minutes to get through, and shows the basics.

To me, this utility is now feature-complete.  That means, except for bug fixes, I'll be laying off of it for a while.  

Of course, suggestions for improvements are welcome, and I'll put in anything I really like.  An add-on GUI would be nice at some point, but is not required.  I kinda like the solution I came up with, all things considered.  

Cocomoe

  • Guest
Re: Version 1.0 has been released!
« Reply #45 on: February 06, 2003, 05:36:59 pm »
  OK updated the file and link.

  www.gfluniverse.net/downloads  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #46 on: February 06, 2003, 07:52:20 pm »
Quote:

If anyone is having trouble getting their head around the concepts of the energy stuff, just follow the guided tour in the ReadMe file...




Hahaha!  Anyone named Tulmahk, you mean.  

Well, it's good to have a cement-headed Romulan test your stuff out.  Just to see if it's truly 'Tulmahk proof'.  

I'm currently taking bets on whether the power sliders are going to work for me.  I've got 500 quatloos riding on this, so if you see me flying around in a Talon on SFC3.net 4 Corners, you'll know I lost!  

Thanks once again for all your hard work.  People like you make this game more fun than it has any right to be.  And thanks to the hosters Cocomoe and BattleClinic.com, too.  It's always useful to actually be able to get ahold of the thing.  I'll let you know how things go.

And Taldren?  Hire this guy please.  There's only so much government cheese a talented programmer can stomach, you know?    

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #47 on: February 06, 2003, 09:27:12 pm »

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #48 on: February 06, 2003, 11:09:08 pm »
When using a new version of an old program, I always test the old features first to find out if they're still working.  In this case, and because it is me , they are not working.

Well, my old friend the Throttle bug is back.  Here's the log text:

*********** SFC3MACRO Message Log ***********


Message Logging Level = 1.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Could not find action name.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Invalid command line.
Could not find "=" sign.
Invalid command line.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Invalid Set line.
---------------------------
List of Energy profiles.
Energy Profile 0:
   default = 118P, 113H, 114S
   balanced = 159P, 100H, 100S
   max_photon = 10P, 200H, 100S
   max_shields = 58P, 72H, 200S
Energy Profile 1:
   optimal = 100P, 100H, 100S
---------------------------
Could not find matching resolution (640 was returned).
QueryDisplay() failed.
Error in initialization.
SFC3 Macro has been started.
SFC3 Macro has been stopped.
SFC3 is closing.  Closing Log.

I don't know what any of it means, but I'm betting another 500 quatloos that you do (I've already lost 500, that's the luck of the Romulans, eh?)

Maybe I'm doing something really obviously wrong?  I'll test it with a higher delay number (50 rather than the default 20) and maybe that'll clear it up.  My cpu is a Duron 750, so it might need more time to process everything.

***LATER...

No, setting the delay to 50 didn't help at all.  Exactly the same error report as above.  I guess something got 'broken' in the process of adding new functionality.  Hmmm, maybe Activision isn't off their rocker after all?  
« Last Edit: February 06, 2003, 11:20:15 pm by Tulmahk »

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #49 on: February 06, 2003, 11:24:46 pm »
Quote:


Could not find matching resolution (640 was returned).
QueryDisplay() failed.
Error in initialization.
SFC3 Macro has been started.
SFC3 Macro has been stopped.
SFC3 is closing.  Closing Log.





Are you running this at 640x480?  That's what the utility is reporting, and it isn't capable of handling it.  As far as I know, the minimum resolution is 1024x768, so I'm curious about that.

Also, those continual "=" messages are annoying, and I can't figure out why you keep getting them.  Sigh.  Whats the locale (language) on your computer?

OK, try this:  Goto into the INI file.  Set this:

MessageLevel=3
EnableLogging=1

Start the program.  Press ALT-F4 to exit.  Press NO other keys, don't mouse the mouse.  Get in, get out.  Then cut n' paste the log here.  It will prbobably be quite long.

Don't worry about breaking my stuff.  You find bugs now, or you find them later.  Given the choice, I'll find them now.  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #50 on: February 06, 2003, 11:28:34 pm »
Guess what?  I figured out what was happening!

I reinstalled the game, so the INTRO MOVIES started playing on startup again!  I had previously deleted them.

So, your program is polling for screen resolution WHILE THE MOVIES ARE PLAYING.  Wow, I can't believe I figured it out.  My head hurts now.

And now that I've deleted the intro movies, everything works great, as advertised.  (Until I find the next bug, of course! )
« Last Edit: February 06, 2003, 11:31:23 pm by Tulmahk »

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #51 on: February 06, 2003, 11:40:32 pm »
Here is the additional information you requested:

My computer is using English (United States).

*********** SFC3MACRO Message Log ***********


Message Logging Level = 3.
Value of Full Path: "D:\PROGRAM FILES\ACTIVISION\SFC3".
Show Log on Exit: N.
Throttle Scan Width = 202.
Green Bar Color = 0x5ac300.
Red Bar Color = 0x20ff.
Command List as read from INI:
----------------------
; ***** General commands *****
UpThrottle=S
DownThrottle=A
OnOff=ENTER, RunAlways, PassThru
; ***** Energy commands *****
LoadHullProfile1=F1, CTRL
LoadHullProfile2=F2, CTRL
LoadHullProfile3=F3, CTRL
CyclePreviousEnergySet=Q
CycleNextEnergySet=E
SaveCustomEnergySet=ENTER, SHIFT
; ***** Troubleshooting commands. *****
ShowLog=F6, RunAlWays
;AdvancedDisplayQuery=F7, RunAlWays  <- Currently disabled.
;------------------------------------------------------------------------------
; Energy Profiles - This is your list of energy profiles.  Each Profile is
; intended to be used with one hull configuration.  Within each profile, you
; can define multiple Sets, which you can cycle through in-game.  
;
; For instructions about using and creating Profiles, see Energy Profiles.txt.
;

----------------------
Parsing command line "; ***** general commands *****".
Could not find "=" sign.
Command string "; ***** general commands *****" could not be parsed.
Parsing command line "upthrottle=s".
Action name is "upthrottle".
Looking up action name.
Comparing "upthrottle" to "UpThrottle".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "s".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "downthrottle=a".
Action name is "downthrottle".
Looking up action name.
Comparing "downthrottle" to "UpThrottle".
Comparing "downthrottle" to "DownThrottle".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "a".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "onoff=enter, runalways, passthru".
Action name is "onoff".
Looking up action name.
Comparing "onoff" to "UpThrottle".
Comparing "onoff" to "DownThrottle".
Comparing "onoff" to "ShowLog".
Comparing "onoff" to "AdvancedDisplayQuery".
Comparing "onoff" to "OnOff".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 5 chars into string.
VKEY token found: "enter".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found RUNWHENOFF flag.
Found PASSTHRU flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "; ***** energy commands *****".
Could not find "=" sign.
Command string "; ***** energy commands *****" could not be parsed.
Parsing command line "loadhullprofile1=f1, ctrl".
Action name is "loadhullprofile1".
Looking up action name.
Comparing "loadhullprofile1" to "UpThrottle".
Comparing "loadhullprofile1" to "DownThrottle".
Comparing "loadhullprofile1" to "ShowLog".
Comparing "loadhullprofile1" to "AdvancedDisplayQuery".
Comparing "loadhullprofile1" to "OnOff".
Comparing "loadhullprofile1" to "LoadHullProfile1".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f1".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found CTRL flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "loadhullprofile2=f2, ctrl".
Action name is "loadhullprofile2".
Looking up action name.
Comparing "loadhullprofile2" to "UpThrottle".
Comparing "loadhullprofile2" to "DownThrottle".
Comparing "loadhullprofile2" to "ShowLog".
Comparing "loadhullprofile2" to "AdvancedDisplayQuery".
Comparing "loadhullprofile2" to "OnOff".
Comparing "loadhullprofile2" to "LoadHullProfile1".
Comparing "loadhullprofile2" to "LoadHullProfile2".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f2".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found CTRL flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "loadhullprofile3=f3, ctrl".
Action name is "loadhullprofile3".
Looking up action name.
Comparing "loadhullprofile3" to "UpThrottle".
Comparing "loadhullprofile3" to "DownThrottle".
Comparing "loadhullprofile3" to "ShowLog".
Comparing "loadhullprofile3" to "AdvancedDisplayQuery".
Comparing "loadhullprofile3" to "OnOff".
Comparing "loadhullprofile3" to "LoadHullProfile1".
Comparing "loadhullprofile3" to "LoadHullProfile2".
Comparing "loadhullprofile3" to "LoadHullProfile3".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f3".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found CTRL flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "cyclepreviousenergyset=q".
Action name is "cyclepreviousenergyset".
Looking up action name.
Comparing "cyclepreviousenergyset" to "UpThrottle".
Comparing "cyclepreviousenergyset" to "DownThrottle".
Comparing "cyclepreviousenergyset" to "ShowLog".
Comparing "cyclepreviousenergyset" to "AdvancedDisplayQuery".
Comparing "cyclepreviousenergyset" to "OnOff".
Comparing "cyclepreviousenergyset" to "LoadHullProfile1".
Comparing "cyclepreviousenergyset" to "LoadHullProfile2".
Comparing "cyclepreviousenergyset" to "LoadHullProfile3".
Comparing "cyclepreviousenergyset" to "LoadHullProfile4".
Comparing "cyclepreviousenergyset" to "LoadHullProfile5".
Comparing "cyclepreviousenergyset" to "LoadHullProfile6".
Comparing "cyclepreviousenergyset" to "LoadHullProfile7".
Comparing "cyclepreviousenergyset" to "LoadHullProfile8".
Comparing "cyclepreviousenergyset" to "LoadHullProfile9".
Comparing "cyclepreviousenergyset" to "LoadHullProfile10".
Comparing "cyclepreviousenergyset" to "CyclePreviousEnergySet".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "q".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "cyclenextenergyset=e".
Action name is "cyclenextenergyset".
Looking up action name.
Comparing "cyclenextenergyset" to "UpThrottle".
Comparing "cyclenextenergyset" to "DownThrottle".
Comparing "cyclenextenergyset" to "ShowLog".
Comparing "cyclenextenergyset" to "AdvancedDisplayQuery".
Comparing "cyclenextenergyset" to "OnOff".
Comparing "cyclenextenergyset" to "LoadHullProfile1".
Comparing "cyclenextenergyset" to "LoadHullProfile2".
Comparing "cyclenextenergyset" to "LoadHullProfile3".
Comparing "cyclenextenergyset" to "LoadHullProfile4".
Comparing "cyclenextenergyset" to "LoadHullProfile5".
Comparing "cyclenextenergyset" to "LoadHullProfile6".
Comparing "cyclenextenergyset" to "LoadHullProfile7".
Comparing "cyclenextenergyset" to "LoadHullProfile8".
Comparing "cyclenextenergyset" to "LoadHullProfile9".
Comparing "cyclenextenergyset" to "LoadHullProfile10".
Comparing "cyclenextenergyset" to "CyclePreviousEnergySet".
Comparing "cyclenextenergyset" to "CycleNextEnergySet".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "e".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "savecustomenergyset=enter, shift".
Action name is "savecustomenergyset".
Looking up action name.
Comparing "savecustomenergyset" to "UpThrottle".
Comparing "savecustomenergyset" to "DownThrottle".
Comparing "savecustomenergyset" to "ShowLog".
Comparing "savecustomenergyset" to "AdvancedDisplayQuery".
Comparing "savecustomenergyset" to "OnOff".
Comparing "savecustomenergyset" to "LoadHullProfile1".
Comparing "savecustomenergyset" to "LoadHullProfile2".
Comparing "savecustomenergyset" to "LoadHullProfile3".
Comparing "savecustomenergyset" to "LoadHullProfile4".
Comparing "savecustomenergyset" to "LoadHullProfile5".
Comparing "savecustomenergyset" to "LoadHullProfile6".
Comparing "savecustomenergyset" to "LoadHullProfile7".
Comparing "savecustomenergyset" to "LoadHullProfile8".
Comparing "savecustomenergyset" to "LoadHullProfile9".
Comparing "savecustomenergyset" to "LoadHullProfile10".
Comparing "savecustomenergyset" to "CyclePreviousEnergySet".
Comparing "savecustomenergyset" to "CycleNextEnergySet".
Comparing "savecustomenergyset" to "SaveCustomEnergySet".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 5 chars into string.
VKEY token found: "enter".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found SHIFT flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "; ***** troubleshooting commands. *****".
Could not find "=" sign.
Command string "; ***** troubleshooting commands. *****" could not be parsed.
Parsing command line "showlog=f6, runalways".
Action name is "showlog".
Looking up action name.
Comparing "showlog" to "UpThrottle".
Comparing "showlog" to "DownThrottle".
Comparing "showlog" to "ShowLog".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f6".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found RUNWHENOFF flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line ";advanceddisplayquery=f7, runalways  <- currently disabled.".
Action name is ";advanceddisplayquery".
Looking up action name.
Comparing ";advanceddisplayquery" to "UpThrottle".
Comparing ";advanceddisplayquery" to "DownThrottle".
Comparing ";advanceddisplayquery" to "ShowLog".
Comparing ";advanceddisplayquery" to "AdvancedDisplayQuery".
Comparing ";advanceddisplayquery" to "OnOff".
Comparing ";advanceddisplayquery" to "LoadHullProfile1".
Comparing ";advanceddisplayquery" to "LoadHullProfile2".
Comparing ";advanceddisplayquery" to "LoadHullProfile3".
Comparing ";advanceddisplayquery" to "LoadHullProfile4".
Comparing ";advanceddisplayquery" to "LoadHullProfile5".
Comparing ";advanceddisplayquery" to "LoadHullProfile6".
Comparing ";advanceddisplayquery" to "LoadHullProfile7".
Comparing ";advanceddisplayquery" to "LoadHullProfile8".
Comparing ";advanceddisplayquery" to "LoadHullProfile9".
Comparing ";advanceddisplayquery" to "LoadHullProfile10".
Comparing ";advanceddisplayquery" to "CyclePreviousEnergySet".
Comparing ";advanceddisplayquery" to "CycleNextEnergySet".
Comparing ";advanceddisplayquery" to "SaveCustomEnergySet".
FOund no matching tokens.
Could not find action name.
Command string ";advanceddisplayquery=f7, runalways  <- currently disabled." could not be parsed.
Parsing command line ";------------------------------------------------------------------------------".
Could not find "=" sign.
Command string ";------------------------------------------------------------------------------" could not be parsed.
Parsing command line "; energy profiles - this is your list of energy profiles.  each profile is ".
Could not find "=" sign.
Command string "; energy profiles - this is your list of energy profiles.  each profile is " could not be parsed.
Parsing command line "; intended to be used with one hull configuration.  within each profile, you ".
Could not find "=" sign.
Command string "; intended to be used with one hull configuration.  within each profile, you " could not be parsed.
Parsing command line "; can define multiple sets, which you can cycle through in-game.  ".
Could not find "=" sign.
Command string "; can define multiple sets, which you can cycle through in-game.  " could not be parsed.
Parsing command line ";".
Invalid command line.
Command string ";" could not be parsed.
Parsing command line "; for instructions about using and creating profiles, see energy profiles.txt.".
Could not find "=" sign.
Command string "; for instructions about using and creating profiles, see energy profiles.txt." could not be parsed.
Parsing command line ";".
Invalid command line.
Command string ";" could not be parsed.
Summary of all bound commands
----------------------------
 0) VKey:  83  CommandFunc: 0x 9E52AD0                            
 1) VKey:  65  CommandFunc: 0x 9E52AE0                            
 2) VKey:  13  CommandFunc: 0x 9E52B10               RUNALWAYS PASS
 3) VKey: 112  CommandFunc: 0x 9E52B60      CTRL                  
 4) VKey: 113  CommandFunc: 0x 9E52B70      CTRL                  
 5) VKey: 114  CommandFunc: 0x 9E52B80      CTRL                  
 6) VKey:  81  CommandFunc: 0x 9E52C00                            
 7) VKey:  69  CommandFunc: 0x 9E52C10                            
 8) VKey:  13  CommandFunc: 0x 9E52C20 SHFT                        
 9) VKey: 117  CommandFunc: 0x 9E52AF0               RUNALWAYS    
----------------------------
Fetching INI section name "[Hull 1 Energy Profile]".
Energy profile [Hull 1 Energy Profile] as read from INI:
----------------------
; Energy profile for the default Akira in Skirmish.
DEFAULT=118p, 113h, 114s
BALANCED=159p, 100h, 100s
MAX_PHOTON=10p, 200h, 100s
MAX_SHIELDS=58p, 72h, 200s

----------------------
Parsing Energy Set Line "; energy profile for the default akira in skirmish.".
Could not find "=" sign.
Parsing Energy Set Line "default=118p, 113h, 114s".
Set name is "default".
Processing Token "118p".
Number component: 118.
Bar is Primary.
Processing Token " 113h".
Number component: 113.
Bar is Heavy.
Processing Token " 114s".
Number component: 114.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line "balanced=159p, 100h, 100s".
Set name is "balanced".
Processing Token "159p".
Number component: 159.
Bar is Primary.
Processing Token " 100h".
Number component: 100.
Bar is Heavy.
Processing Token " 100s".
Number component: 100.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line "max_photon=10p, 200h, 100s".
Set name is "max_photon".
Processing Token "10p".
Number component: 10.
Bar is Primary.
Processing Token " 200h".
Number component: 200.
Bar is Heavy.
Processing Token " 100s".
Number component: 100.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line "max_shields=58p, 72h, 200s".
Set name is "max_shields".
Processing Token "58p".
Number component: 58.
Bar is Primary.
Processing Token " 72h".
Number component: 72.
Bar is Heavy.
Processing Token " 200s".
Number component: 200.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Fetching INI section name "[Hull 2 Energy Profile]".
Energy profile [Hull 2 Energy Profile] as read from INI:
----------------------
Optimal=100p, 100h, 100s
;------------------------------------------------------------------------------
; Custom Energy Sets - Whenever you record an energy set (using the
; SaveCustomEnergySet command), it is stored here.
;

----------------------
Parsing Energy Set Line "optimal=100p, 100h, 100s".
Set name is "optimal".
Processing Token "100p".
Number component: 100.
Bar is Primary.
Processing Token " 100h".
Number component: 100.
Bar is Heavy.
Processing Token " 100s".
Number component: 100.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line ";------------------------------------------------------------------------------".
Could not find "=" sign.
Parsing Energy Set Line "; custom energy sets - whenever you record an energy set (using the ".
Could not find "=" sign.
Parsing Energy Set Line "; savecustomenergyset command), it is stored here.".
Could not find "=" sign.
Parsing Energy Set Line ";".
Invalid Set line.
Fetching INI section name "[Hull 3 Energy Profile]".
Energy profile [Hull 3 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 4 Energy Profile]".
Energy profile [Hull 4 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 5 Energy Profile]".
Energy profile [Hull 5 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 6 Energy Profile]".
Energy profile [Hull 6 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 7 Energy Profile]".
Energy profile [Hull 7 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 8 Energy Profile]".
Energy profile [Hull 8 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 9 Energy Profile]".
Energy profile [Hull 9 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 10 Energy Profile]".
Energy profile [Hull 10 Energy Profile] as read from INI:
----------------------

----------------------
---------------------------
List of Energy profiles.
Energy Profile 0:
   default = 118P, 113H, 114S
   balanced = 159P, 100H, 100S
   max_photon = 10P, 200H, 100S
   max_shields = 58P, 72H, 200S
Energy Profile 1:
   optimal = 100P, 100H, 100S
---------------------------
Minimum wait time for Proxy: 50.
Successfully read from INI file.
Querying Display.
Getting DC.
DC has been gotten.
Width is 1024.
Releasing DC.
DC released.
Throttle index is 0.
QueryDisplay() succeeded.
Applying throttle offsets.
Throttle offsets have been applied.
Energy subsystem initializing.
Creating proxy mutex.
Mutex created.
Creating singaling event.
Event created.
Creating the timing thread.
Thread created.
Initialization complete.
Initialization complete.
-----------------------
Detected key, VK = 18, Code = 0, lParam = 0x20380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Timing thread is going to sleep.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 115, Code = 0, lParam = 0x203E0001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (115, 83).
match failed.
Trying next command.
Matching virtual key codes (115, 65).
match failed.
Trying next command.
Matching virtual key codes (115, 13).
match failed.
Trying next command.
Matching virtual key codes (115, 112).
match failed.
Trying next command.
Matching virtual key codes (115, 113).
match failed.
Trying next command.
Matching virtual key codes (115, 114).
match failed.
Trying next command.
Matching virtual key codes (115, 81).
match failed.
Trying next command.
Matching virtual key codes (115, 69).
match failed.
Trying next command.
Matching virtual key codes (115, 13).
match failed.
Trying next command.
Matching virtual key codes (115, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
SFC3 is closing.  Closing Log.
Deleting command list.
Deleted 10 commands.
Deallocating Energy config.
Deleted 4 Energy Nodes.
Deleted 1 Energy Nodes.
Deallocation complete.

Welcome to the dryest, least interesting post on Taldren BBS!    I hope this helps.  If I can assist in any other way, please let me know.  

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #52 on: February 07, 2003, 12:07:07 am »
Quote:

Guess what?  I figured out what was happening!

I reinstalled the game, so the INTRO MOVIES started playing on startup again!  I had previously deleted them.

So, your program is polling for screen resolution WHILE THE MOVIES ARE PLAYING.  Wow, I can't believe I figured it out.  My head hurts now.

And now that I've deleted the intro movies, everything works great, as advertised.  (Until I find the next bug, of course! )




Even the new energy commands? They work too?

AH!  The fog lifts.  I deleted the movies long ago, and it never occured to me that it could be a problem.  Unfortunately, there is no "elegant" way to work around this problem.  I'll have to hack something up.  I've got an idea on how to fix it.

The LOG also explains the "=" errors.  In an INI file, any line that starts with a semicolon is supposed to be a comment, and is supposed to be ignored.  The API calls filter this for you.  At least, they are supposed to.  I'm using Win2K, which does the right thing.  What OS are you using?  Anway, that's a dirt easy fix.  I'll just check for the semicolon manually.

I have an idea.  The next time I ask for a log, just PM it to me  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #53 on: February 07, 2003, 12:47:31 am »
Yes my friend, the power settings are working perfectly!

My operating system is Windows 98 SE.

In future, I'll PM them to you, in order to spare everyone the gory details (no pass on this one for you, I'm afraid! )

That one was the hardest puzzle with the easiest solution, wasn't it?

I like the rules you've established on using the utility in multiplayer.  If anyone asks, of course I'll tell them I'm using it, and I'll even provide a link they can get it from.  I don't know what I'll do if they ask that I not use it.  Maybe if they are in a smaller/equal ship I'll honor the request, and if their ship outclasses mine, tough noogies.  All subject to server rules, of course.

And I'm toying with the idea of starting each new pvp with "Powered by SFC3 Macro" chatted out to them.  Up to them to figure it out, as far as I'm concerned, other than as I said above.  Of course if I lose, that'll make the utility look bad, which is why I shy away from this option (I don't want my bad play messing up the reputation of your fine software).

Though I must say this does provide somewhat of an advantage, if you come up against someone whose tactics are superior, this utility isn't going to make a difference.  It helps you with a kludgy interface, it does nothing to make you a better player.  No Server Pixie Dust here, just handiness up the yin-yang.

I'm here to help, as always...  

SirWilliam

  • Guest
Re: Version 1.0 has been released!
« Reply #54 on: February 07, 2003, 12:59:26 am »
Quote:

I don't know what I'll do if they ask that I not use it.  Maybe if they are in a smaller/equal ship I'll honor the request, and if their ship outclasses mine, tough noogies.  All subject to server rules, of course.




I don't have this utility yet.  That said, I would have no reservations about using it freely since anyone else can get it.  As a rule (with occasional tactical exceptions) I do not kill human-piloted ships which my own ship far outrates, as neither, I suspect, do you; hence using it in battle against a far outgunned opponent would not be an issue. However I am impressed by your chivalry, Sir.  When/if I start using this, I will emulate your honorable example and advise others on how to obtain it.

Qa'pla!

Sir William    

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #55 on: February 07, 2003, 01:43:37 am »
I can' t tell you how happy I am that the silly thing works.  There is always a seed of doubt until someone else tries it.

For the record, Tulmahk is referring to an paragraph I put in the README.  Here's what I said:

---------- snip ------------
Macro Etiquette
It is always debatable whether using a utility like this constitutes ?cheating.?  It is my opinion that this specific utility, in this specific case, only adds features that should have been present anyway.  Therefore I do not consider it cheating to use on D3 or other non-money environments.  However, if you use this utility I ask you heed these rules of Etiquette:

1) If asked, always affirm you are using this utility.  Do not evade the question.
2) If asked to stop using the utility during a match, you must agree.
3) To be extra polite, chat to your opponents at the beginning of a match that you are using a utility.
4) If part of a Fleet, make sure that the utility is allowed under Fleet charter.
5) If convenient, always ask/inform the server admin about the utility.
---------- snip ------------

Chivalry, Politeness, these things make an online community worthwhile.  That, or trashtalking and telefragging.  Depends on the community.    

That remindes me, I gotta join a Fleet one of these days.  Tulmahk, any good SFC3 Rom Fleets running around right now?

   

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #56 on: February 07, 2003, 02:57:35 am »
Some say the mythic SPQR is the best Romulan fleet, but I can neither confirm nor deny their existance.  I'm a lone wolf myself; my views on fleets in SFC is starting to become infamous.

The ones I would recommend:

KOTH
KAT
TAG

And maybe, just maybe SSCF (though I'm still uncertain about them).  KOTH seems to fly a lot of Romulan, TAG would seem to be mostly Klingon/Fed.  KAT, I don't know.  They fly Lyran in D2, I believe.

I'll add, without comment, that I do not currently recommend FSF.  

Cocomoe

  • Guest
Re: Version 1.0 has been released!
« Reply #57 on: February 07, 2003, 07:21:04 am »
  GFL has a decent size Romulan contingent.  Or any race for that matter.

   Take a look around, I ' authorize you as a honored guest.
  (Sound nice eh, but I do that for any non-gfl'er that wants to post on the forums.)


 
  Cocomoe

SghnDubh

  • Guest
Re: Version 1.0 has been released!
« Reply #58 on: February 07, 2003, 11:04:42 am »

Now on BattleClinic. Sorry for the delay.


Check the "analysis" section.
 

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #59 on: February 08, 2003, 03:05:38 am »
OK, the bug with the intro messing up stuff is fixed.  It's easy to work around anyway.  Just click past the intros, instead of pressing a key.  As long as you don't press a key before the main menu, you are all set.

I'm going to fix the "=" problem too, that's a one line fix.  

However, I've got in-law duty this weekend, so I might not issue a release until Sunday night.

Other than Tulmahk, my greatest fan , has anyone else even downloaded this util?  Does it work?  I can see the "views" column, I know you are out there.  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #60 on: February 08, 2003, 06:40:04 pm »
Nevermind the views column, that's just me!  

Would anyone else really come to this godforsaken thread?  Not if they wanted to retain their sanity.

Especailly after my infamous log post.  I challenge ANYONE (SgnhDubh, that means you!) to read that entire thing and not go on medication afterwords.  

Keep up the good work, BTW.  I'm making a bug list and checking it twice...  

P.S.  I am your #1 fan Vertigo.  Care to have a car wreck in front of my house sometime?    Just remember my penguin figurine always points to the SOUTH not north...
« Last Edit: February 08, 2003, 06:43:29 pm by Tulmahk »

Cocomoe

  • Guest
Re: Version 1.0 has been released!
« Reply #61 on: February 10, 2003, 09:34:11 am »
  1.01 is uploaed at www.gfluniverse.net/downloads  
 It should fix the thins you posted Tulmahk.  According to Sam's e-mail./

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #62 on: February 10, 2003, 08:58:25 pm »
Quote:

P.S.  I am your #1 fan Vertigo.  Care to have a car wreck in front of my house sometime?    Just remember my penguin figurine always points to the SOUTH not north...




A truly creepy book/movie.  

Subspace

  • Guest
Re: SFC3Macro v093 READY!
« Reply #63 on: February 10, 2003, 11:18:11 pm »
Nice !!      

CptCastrin

  • Guest
Re: Version 1.0 has been released!
« Reply #64 on: February 11, 2003, 11:58:36 am »
Having come into to this late excuse my ignorance but has anyone thought to tie the controls to a joy stick? That would free up a lot of keys on the keyboard.

Looks really cool either way. Great work Vertigo. If you need a fourth (fifth?) host for the file send me a PM of email me directly and we'll put it up at SFCx.org. In the mean time I've put up a news article and uploaded the curent version to www.sfcx.org .

Keep it up!        

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #65 on: February 11, 2003, 03:52:02 pm »
Quote:

Having come into to this late excuse my ignorance but has anyone thought to tie the controls to a joy stick? That would free up a lot of keys on the keyboard.

Looks really cool either way. Great work Vertigo. If you need a fourth (fifth?) host for the file send me a PM of email me directly and we'll put it up at SFCx.org. In the mean time I've put up a news article and uploaded the curent version to www.sfcx.org .

Keep it up!        




Implementing a joystick never occured to me.  Unfortunately, implementing a joystick properly is a tremendous pain, DirectInput isn't exactly elegant.  Also, the existing utility would require some serious re-work to accept the code properly.  So, sorry, I think I'm going to have to say no for now.  However, thanks for the suggestion!

I love SFCX, BTW.  Great site!  

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #66 on: February 11, 2003, 04:07:52 pm »
OK, I think this thread should be retired.  It's kind of a mess to wade through.  Therefore, I've opened a new thread at:

http://208.57.228.4/ubbthreads/showflat.php?Cat=&Board=UBB1&Number=19380

The opening post also does a better job of explaining what SFC3Macro does.  

zaniwhoop2

  • Guest
Re: Version 1.0 has been released!
« Reply #67 on: February 11, 2003, 11:20:12 pm »
Quote:


Implementing a joystick never occured to me.  Unfortunately, implementing a joystick properly is a tremendous pain, DirectInput isn't exactly elegant.  Also, the existing utility would require some serious re-work to accept the code properly.  So, sorry, I think I'm going to have to say no for now.  However, thanks for the suggestion!




I see a use for my skills...that is if you want it. I have dealt with a joystick specifally (I never have mine plugged in), but it's not too different from a mouse or keyboard (thanks to DirectInput for that). I also had a little work done for an out-of-game GUI for the utility that lets you set hotkeys, but I don't know if that's still in demand.  

Vertigo

  • Guest
SFC3 MACRO UTILITY v0.9 READY!
« Reply #68 on: January 26, 2003, 04:42:49 am »
...Now, who can host it for me?

What it does:
---------------------------------
Once you have installed and started the utility it hides in the background.  This version alters the behavior of the "A" and "S" keys to make changing speeds easier.  "A" and "S" now increment and decrement speeds by 1/4 impulses.  So, if you are at a dead stop and press "S" repeatedly, your speed changes to:

1st press - 1/4 impulse (actually 26% due to the turning "sweet spot")
2nd press - half impulse
3rd press - 3/4 impulse
4th press - full impulse

The "A" key decelerates the same way, only the last press takes you to full reverse.
---------------------------------

I've got a nice Zip file with readme and source code.  I just need someone to host it for me, as I don't have a website.

More stuff coming, such as macros for energy settings.  But first people need to start banging on it, and find me some bugs.

Anyone willing to help me out?  Send me a PM.
   
« Last Edit: January 26, 2003, 04:46:23 am by Vertigo »

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #69 on: January 26, 2003, 03:04:30 pm »
*bump*

C'mon, where's the love?

Xantim

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #70 on: January 26, 2003, 11:04:02 pm »
Sounds good.  

Arcilte

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #71 on: January 26, 2003, 11:15:33 pm »
I like it. Sorry I have no where to host it  

Cocomoe

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #72 on: January 26, 2003, 11:45:54 pm »
  Send it to me I should be able to put it up.
 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #73 on: January 27, 2003, 01:28:06 am »
Let's get this out of the way: I'm so sorry, you Oakland fans.  Ouch, ouch, ouch.  I'd rub it in, but I don't really like Tampa Bay either.

I've started mailing out copies to people who have contacted me.  As soon as someone sends me a URL, I'll post it here.

I've actually completed another rev, which now works at all resolutions.  The code is also a lot cleaner, and I've added a basic logging ability (for my own sanity).  When I complete the release build procedure, I'll mail it out to you nice people.

I've got a dilemma.  Currently the code hijacks "A" and "S", so SFC3 never sees these keystrokes.  I just realized that may totally mess up in-game chatting.  There's no easy way around this except to move the keys somewhere else.  Alternately, I could pass the keys onto SFC3, but that creates a "double-press effect" unless you unbind "A" and "S" in your options.  Any suggestions?  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #74 on: January 27, 2003, 01:49:33 am »
Cocomoe got me a working URL first, so props to him.  You can download the SCF3Macro util (v.9) from:

http://www.gfluniverse.net/downloads

 

Cocomoe

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #75 on: January 27, 2003, 04:55:41 pm »
  He just released a .91  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #76 on: January 27, 2003, 07:37:51 pm »
There is also now a UK link, thanks to Jaffa:

http://www.whopperchopper.pwp.blueyonder.co.uk/SFC3Macro_v091.zip

-Vertigo  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #77 on: January 27, 2003, 07:39:24 pm »
BTW, has anyone actually TRIED this yet?    

I'd like to know if my util works outside the realm of my development PC.

Bueller?  

DrSchreber

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #78 on: January 27, 2003, 08:32:25 pm »
Just curious, but.......

Does it come with a manual?

DrSchreber  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #79 on: January 27, 2003, 08:55:08 pm »
Quote:


I've got a dilemma.  Currently the code hijacks "A" and "S", so SFC3 never sees these keystrokes.  I just realized that may totally mess up in-game chatting.  There's no easy way around this except to move the keys somewhere else.  Alternately, I could pass the keys onto SFC3, but that creates a "double-press effect" unless you unbind "A" and "S" in your options.  Any suggestions?  



I have a little program I made that captures keystrokes without disrupting other progs. It's written in C++ and uses DirectInput, and the  graphical frontend uses MFC. I'd be willing to share the source with you. Unfotunately I can't test it with SFC3 since I don't have the game (yet).  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #80 on: January 27, 2003, 11:22:02 pm »
Quote:

Just curious, but.......

Does it come with a manual?

DrSchreber  



A simple readme file.  I mean, you only use two keys after all...


Quote:


I have a little program I made that captures keystrokes without disrupting other progs. It's written in C++ and uses DirectInput, and the  graphical frontend uses MFC. I'd be willing to share the source with you. Unfotunately I can't test it with SFC3 since I don't have the game (yet).  




You misunderstand.  I've done that already.  When you capture keystrokes, you have two (and only two) options:

1) do your thing, and "eat" the keystrokes.  The main app (SFC3) never sees them.
2) do your thing, and pass the keystrokes onto SFC3.

With Option #1, chat doesn't work since any "a" and "s" keys never get to SFC3.

With Option #2, SFC3 sees the keystrokes and acts on them.  So you get this example:

1) You press "S."
2) My app sets your speed to EXACTLY 1/4 impulse.
3) The keystroke is then passed onto SFC3.
4) SFC3 sees the "S" command, and...
5) incremements your speed again by about 3%.
6) Your speed is no longer 1/4 impulse.

Ugly.

What I think I'll do:  I'll define ENTER as a Macro ON/OFF switch, and also pass ENTER commands through to SFC3.  So, you get this:
1) You Press ENTER to chat.
2) Seeing this, the SFC3Macro goes to sleep, and passes the ENTER key.
3) SFC3 sees your ENTER keystroke, and opens the chat window.
4) You type your message.  
5) You press ENTER to send your message.
6) Seeing this, the  SFC3Macro wakes up again, but after passing the ENTER key.
7) SFC3 sees your ENTER keystroke, and sends the message.

It's elegant, and seems like it would work.    

Blitzkrieg

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #81 on: January 28, 2003, 04:43:25 am »
Please define that key as somthing that isnt used when typing. Perhaps the ` key or # key or even the Insert key. Anything but the enter key or anything that takes up standard letters / important typing keys, please.

ksfung

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #82 on: January 28, 2003, 08:45:41 am »
Please re-read his last response, He plans on using the ENTER key to both toggle the macro, and pass through the ENTER key. I think that is a very elegant solution.

3dot14

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #83 on: January 29, 2003, 11:24:36 pm »
just wondering how good is it when responding to customized key maps?

I don't use A and S for speed. I use Num7 and Num9. would the utility work with them?

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #84 on: January 30, 2003, 01:54:59 am »
Quote:

just wondering how good is it when responding to customized key maps?

I don't use A and S for speed. I use Num7 and Num9. would the utility work with them?  




In the current rev, no.  

However, I'm currently working on putting keybindings into an INI file.  (I saw this question coming).  Then you'll be able to simply change (for instance)

[Commands]
UpThrottle=A

to

[Commands]
UpThrottle=PAD7  (or whatever name I settle on).  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #85 on: January 30, 2003, 01:57:03 am »
SghnDubh is also now hosting the file on BattleClinic.com, under the analysis section.  Thanks, SghnDubh!  
« Last Edit: January 30, 2003, 01:59:20 am by Vertigo »

SghnDubh

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #86 on: January 30, 2003, 05:26:48 pm »

(Standing on the porch, ringing the triangle)

COME N GET IT!

 

Vertigo

  • Guest
SFC3Macro v093 READY!
« Reply #87 on: January 31, 2003, 10:45:47 am »
Version 0.93 is done, and has been sent to my gracious hosters.

Pi, you can now  use keypad buttons to change speeds, if you so desire.

Some moderate improvements in this version:

* Enter key now toggles macro utility on/off to allow for easier chat.
* Settings now kept in INI file.
* New file: Commands.txt, which explains key bindings.
* Added support for virtually all possible keybindings, about 83 keys.
* Added support for some non-standard keybindings, about 10 keys.
* Added support for key combos, such as SHIFT-CTRL-S.
* Added support for extended key flags (see commands.txt for more).

So you can now choose from perhaps about 500 different key combinations, but still
only have 3 commands to actually to bind them.  

That's about it for the groundwork.  The only thing left to do now is add actual
commands to make this thing more useful.

I'll tell you one thing: after using this util for a while, I can't stand clicking on the
speed bar anymore.  The hotkeys are sooo nice.
 

Krusaderr

  • Guest
Re: SFC3Macro v093 READY!
« Reply #88 on: January 31, 2003, 10:57:09 am »
Excellent work Vertigo. Thank you for taking time out of your schedule to make this.    

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #89 on: January 31, 2003, 11:13:02 pm »
Quote:


You misunderstand.  I've done that already.  When you capture keystrokes, you have two (and only two) options:

1) do your thing, and "eat" the keystrokes.  The main app (SFC3) never sees them.
2) do your thing, and pass the keystrokes onto SFC3.

With Option #1, chat doesn't work since any "a" and "s" keys never get to SFC3.

With Option #2, SFC3 sees the keystrokes and acts on them.  So you get this example:

1) You press "S."
2) My app sets your speed to EXACTLY 1/4 impulse.
3) The keystroke is then passed onto SFC3.
4) SFC3 sees the "S" command, and...
5) incremements your speed again by about 3%.
6) Your speed is no longer 1/4 impulse.

Ugly.

What I think I'll do:  I'll define ENTER as a Macro ON/OFF switch, and also pass ENTER commands through to SFC3.  So, you get this:
1) You Press ENTER to chat.
2) Seeing this, the SFC3Macro goes to sleep, and passes the ENTER key.
3) SFC3 sees your ENTER keystroke, and opens the chat window.
4) You type your message.  
5) You press ENTER to send your message.
6) Seeing this, the  SFC3Macro wakes up again, but after passing the ENTER key.
7) SFC3 sees your ENTER keystroke, and sends the message.

It's elegant, and seems like it would work.    



I guess I did misunderstand. Maybe if I could play with it, I'd understand better what's happening. What functions/interfaces are you using to catch the keystrokes (I'm assuming SFC3 uses DInput, maybe not)? As an alternative to the ENTER method, you could set the speed to a bit below 1/4 impulse so when SFC3  increases speed, it sets it to exactly 1/4 impulse. As it sounds, I think the ENTER method is strange, but maybe it's one of those things that works better that it sounds (at least to me).  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #90 on: January 31, 2003, 11:37:03 pm »
Quote:


I guess I did misunderstand. Maybe if I could play with it, I'd understand better what's happening. What functions/interfaces are you using to catch the keystrokes (I'm assuming SFC3 uses DInput, maybe not)? As an alternative to the ENTER method, you could set the speed to a bit below 1/4 impulse so when SFC3  increases speed, it sets it to exactly 1/4 impulse. As it sounds, I think the ENTER method is strange, but maybe it's one of those things that works better that it sounds (at least to me).  




Well, why can't you play with it? I mean, it's a free download, available from three places.  Or do you not have SFC3?

Anyway, having tried it out, the "Enter key as toggle approach" seems to work pretty well, actually.  I'm pretty happy with it, and will let it stay as the final fix.

Trying to increase it a "little less" and add a keystroke could be made to work, but it's even uglier than the Enter solution.  Also there are timing issues there I don't want to go into.  To summarize, if you give SFC3 a keystroke immediately after a mouse action, it tends to lose the keystroke.  Ugly.

If SFC3 were actually using a "instant" call like GetAsychKeyState(), I'd be out of luck.  Lucky for me, they are using a standard message queue.  If you are adept at Win32 programming, download the utility.  The source code is included.  To catch keystrokes, I'm using SetWindowsHookEx(), which allows me to intercept the message queue.  Sounds simple, but it can be very tricky in practice.  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #91 on: February 01, 2003, 02:13:52 pm »
Sadly enough, I don't have SFC3 . But when I do, I'll play around with it a bit. Something I noticed while looking (breifly) though the code is that you had a function to get a screenshot. I haven't played around with DCs that much, but can you write to the fullscreen DC, or does that not work? If it does, that could open up a new realm of features...  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #92 on: February 02, 2003, 02:36:10 am »
Quote:

Sadly enough, I don't have SFC3 . But when I do, I'll play around with it a bit. Something I noticed while looking (breifly) though the code is that you had a function to get a screenshot. I haven't played around with DCs that much, but can you write to the fullscreen DC, or does that not work? If it does, that could open up a new realm of features...  




Yes, and No.  Sure, you can write to the fullscreen DC, and that will might last about 1/60th of a second before the next frame comes along.  

I'm not sure if you have done any Direct3D programming, but the Immediate Mode rendering code will clear the entire frame buffer every frame.  Any graphics you inserted would get wiped almost instantly.  In order to get persistent graphics, you have to get yourself into the rendering pipeline.

This is really, really, REALLY hard, if not impossible to do when you just latching onto someone else?s program.  It?s not quite technically impossible, but that is some really fancy (and time consuming) reverse engineering.

Basically, I?d have to
1) intercept every D3D call (I know how to do this), use that to
2) puzzle out the basic workings of the SFC3 engine.
3) Somehow insert new rendering commands into the pipeline without breaking everything.

That ain?t no joke.  That?s full time work, the kind you could get paid $80K a year to do.

But persistent overlays could be very cool.

And is SFC3 really a good enough game to warrant this effort?  I don?t think so.  You?d be better served taking my code and porting it back to a better game, like OP.  It actually should be relatively trivial for someone who?s motivated, and anyone has my permission to try.

Come to think of it, I?ve never looked at the released public source for previous SFC games.  Is the retained 3D engine code public, too?  That would make step #2 almost easy.

You actually looked at my source code?  I?m FLATTERED!  What do you think?
 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #93 on: February 02, 2003, 02:37:41 am »
BTW, HAS ANYONE ACTUALLY TRIED THIS UTILITY YET?  DOES IT WORK?

I wanna know...  please?  

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #94 on: February 02, 2003, 04:25:14 am »
When I tried to use it, the log file records the following:

*********** SFC3MACRO Message Log ***********


Message Logging Level = 1.
Could not find action name.
Could not find action name.
Could not find "=" sign.
Could not find "=" sign.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 Macro has been stopped.
SFC3 Macro has been started.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 is closing.  Closing Log.


This is a very interesting utility, I sure hope the kinks can be worked out.  It is very promising.

If I may offer my layman's opinion of what is going on above, it could have something to do with different monitors having different Color Profiles (and/or the video card itself).

My setup is a GeForce2 200MX PCI with a 19" GEM Delta DC 995 monitor & an inactive S3 onboard video chip.

I hope this helps, I'd love to see this thing work.  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #95 on: February 02, 2003, 05:48:54 pm »
Quote:

Quote:

Sadly enough, I don't have SFC3 . But when I do, I'll play around with it a bit. Something I noticed while looking (breifly) though the code is that you had a function to get a screenshot. I haven't played around with DCs that much, but can you write to the fullscreen DC, or does that not work? If it does, that could open up a new realm of features...  




Yes, and No.  Sure, you can write to the fullscreen DC, and that will might last about 1/60th of a second before the next frame comes along.  

I'm not sure if you have done any Direct3D programming, but the Immediate Mode rendering code will clear the entire frame buffer every frame.  Any graphics you inserted would get wiped almost instantly.  In order to get persistent graphics, you have to get yourself into the rendering pipeline.

This is really, really, REALLY hard, if not impossible to do when you just latching onto someone else?s program.  It?s not quite technically impossible, but that is some really fancy (and time consuming) reverse engineering.

Basically, I?d have to
1) intercept every D3D call (I know how to do this), use that to
2) puzzle out the basic workings of the SFC3 engine.
3) Somehow insert new rendering commands into the pipeline without breaking everything.

That ain?t no joke.  That?s full time work, the kind you could get paid $80K a year to do.

But persistent overlays could be very cool.

And is SFC3 really a good enough game to warrant this effort?  I don?t think so.  You?d be better served taking my code and porting it back to a better game, like OP.  It actually should be relatively trivial for someone who?s motivated, and anyone has my permission to try.

Come to think of it, I?ve never looked at the released public source for previous SFC games.  Is the retained 3D engine code public, too?  That would make step #2 almost easy.

You actually looked at my source code?  I?m FLATTERED!  What do you think?




Well, I actually have had some experience with Direct3D, but only DX8 and 9. Currently I have a few little programs that can read, render, optimize, and distort (with vertex and pixel shaders) SFC2 and most Armada models (many thanks to assimsoft.com for the formats), SFC3 is closer to what I'd like to work with and have experience with. All I'd need is the a pointer to the Direct3D device and I'd be set (as long as there was no switching video modes in game).

Unfortunately, there is no source code for SFC 1 or 2 (something about proprietary code I think). If you could block and execute code before the D3D scene ended, you could do a lot. Or, have your app use another instance of D3D to render to a surface, and then copy it to the DC. Although slow, it could be interesting...I need to get SFC3.  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #96 on: February 02, 2003, 10:18:32 pm »
Quote:

When I tried to use it, the log file records the following:

*********** SFC3MACRO Message Log ***********


Message Logging Level = 1.
Could not find action name.
Could not find action name.
Could not find "=" sign.
Could not find "=" sign.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 Macro has been stopped.
SFC3 Macro has been started.
Could not find throttle!  Green Color: 5AC300.
Error finding throttle.
SFC3 is closing.  Closing Log.


This is a very interesting utility, I sure hope the kinks can be worked out.  It is very promising.

If I may offer my layman's opinion of what is going on above, it could have something to do with different monitors having different Color Profiles (and/or the video card itself).

My setup is a GeForce2 200MX PCI with a 19" GEM Delta DC 995 monitor & an inactive S3 onboard video chip.

I hope this helps, I'd love to see this thing work.  




It does, and I half expected that problem.  I'd say there are two separate problems:

1) Sounds like there is an error in the  [Command List] section of the .INI file.  It's of no consequence since the throttle command are being found anyway.  If you want to cut'n paste that section into a post, I'll take a look at it.

2) I HOPED beyond hope that the color of the throttle bar would be constant across all systems, but it doesn't look like it will be that easy.  This is the number one reason I kept trying to get someone to test it.  It's also the reason that the color is defined in the INI file, so it can be changed, just in case.

*Tech note: My video card does 16-bit RGB in 5-6-5 format, the problem is probably that your card uses 5-5-5 format.  No big deal, I just have to find out the actual combined color value, so the utility can find the throttle.

OK, I've got alternate code that spends more effort searching for the throttle color, I'll get that polished and into the next revision.  It eats more CPU time, so I wasn't going to add it unless I had to.

Anyone else?




 

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #97 on: February 03, 2003, 07:46:24 pm »
That's another concern, does it make a differance if you're in 16 or 32 bit color mode?  I was playing in 16, but it sounds like you coded with that color depth in mind.

Still, should be worth a test.  I'll do that and report back.  

LATER...
Ok, I tested it in 32 bit color depth and same problem.

Maybe a fuzzy logic routine would help?  Instead of requiring an exact color match, match it to within 10% or so?  Surely there is some hardware-independent way to do this.

Of course, Taldren should've designed the game this way from the get-go.  There's a button for full impulse, but not one for any other speed (except 0).  And there should be power-slider presets.  Well, hindsight is 20/20 I suppose.

Good luck, I hope you get this working, it will provide a great advantage for anyone using it (if your opponent isn't).  
« Last Edit: February 03, 2003, 07:58:33 pm by Tulmahk »

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #98 on: February 03, 2003, 08:02:34 pm »
As you requested, here is the entire [Command] section of the .ini file:

;------------------------------------------------------------------------------
;This is where you bind your keystrokes to the commands you want SFC3Macro to
;perform.
;
;For instructions about available keys and commands, please see Commands.txt.
;
;Format:
;(Command) = 'key', [SHIFT], [CONTROL], [ALT], [RunAlways], [PassThru], [IsExtended], [NotExtended]
;
[Command List]
UpThrottle=S
DownThrottle=A
OnOff=ENTER, RunAlways, PassThru
;ShowLog=F6, RunAlWays
;AdvancedDisplayQuery=F7, RunAlWays
 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #99 on: February 03, 2003, 08:47:28 pm »
Quote:

That's another concern, does it make a differance if you're in 16 or 32 bit color mode?  I was playing in 16, but it sounds like you coded with that color depth in mind.

Still, should be worth a test.  I'll do that and report back.  

LATER...
Ok, I tested it in 32 bit color depth and same problem.

Maybe a fuzzy logic routine would help?  Instead of requiring an exact color match, match it to within 10% or so?  Surely there is some hardware-independent way to do this.

Of course, Taldren should've designed the game this way from the get-go.  There's a button for full impulse, but not one for any other speed (except 0).  And there should be power-slider presets.  Well, hindsight is 20/20 I suppose.

Good luck, I hope you get this working, it will provide a great advantage for anyone using it (if your opponent isn't).  




I've just sent out v0.931, which has a crude matching algorithim.  I don't want to spend the CPU cycles doing anything as heavy as fuzzy logic.  I am, after all, leeching CPU cycles from an unaware program as it is.  Hopefully, this revision will fix your problems.  Let me know.

Technically, GetPixel() should be returning a device-independent 32bit RGB color, but it just doesn't seem to work that way.  So, I gotta kludge a little.

SFC3 does 32 bit color?  :O  This I didn't know, not having seen any ability in SFC.INI or the GUI config tool.  How do you do this?

 

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #100 on: February 03, 2003, 11:13:42 pm »
Tulmahk,

     You can fetch the updated v0.931 file from:

http://www.gfluniverse.net/downloads


 

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #101 on: February 04, 2003, 02:36:41 am »
I'll be grabbing that presently.

As to the color depth thing, that's the way I believe the game works.  The game uses the resolution you set it to use in the config utility, but the color depth you happen to be at when the game launches (but no less than 16bit).

Anyone feel free to correct me if I'm wrong on that, but I do believe that's the way it works (learned that by reading these forums).  

Tulmahk

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #102 on: February 04, 2003, 03:14:18 am »
IT WORKS!

Whatever you did, the damned thing is actually working now!

Shouldn't be too great a leap from here to get the power sliders working.  Same basic principle, right?

That's an excellent bit of programming.  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #103 on: February 04, 2003, 05:09:51 am »
Tulmahk,

     Great to hear that the fix worked.  It's a bit of a hack, but I don't care at this point.

     I don't know about the desktop color thing.  When I was first running tests, the color rez ALWAYS came up at 16 bit, and I run my desktop at 32.  I think that may be either an urban legend, or hardware specific.  I was querying color depth through the DC, so I know it's right.

     For a technical point of view, sliders are a piece o' cake.  It's the interface that is tricky.  Not being able to use a GUI during gametime makes it tough.  Here's what I settled on:

     For every hull you fly (up to 10), you can save a profile.  For every profile, you can define an unlimited amount of power sets.  A set is the settings of the 3 power bars, expressed as percentages.  When you start a match, you first load the profile for the ship you are in.  Then you can cycle through your energy sets at the press of a button.

So far I have added these bindable commands:

LoadHullProfileX (where X goes from 0-9, giving 10 profiles.)
CycleEnergySetsUp (Cycles through your energy sets)
CycleEnergySetsDown (reverse cycles)

Sets are cycled in the order they are listed in the INI file.

By default, I'll bind the load commands to CTRL-Fx, so loading Hull Profile 5 is CTRL-F5, etc.

A profile looks like this in the INI:

[Hull 0 Energy Profile]
Optimal=100P,100H,100S
MaxShields=200S, 100P, 100H
Alpha=200H,200P, 10S
_Custom1=103P, 122H, 110S

The entries can be decoded as follows.  The set name is first, that's whatever name you choose, it's only there for human reference.  The 3 commands following show what percentages of power you want to each system.  The systems must be  listed in order of priority.  Taking the Maxshields set as an example, Shields will get 200% power, then Primaries get 100% power, then Heavies get 100% last.  If there isn't enough energy, heavies won't get 100%, etc.  In reality, I'm just going to send mouse messages in reverse order of priority.

Seems simple enough to me.  There's only one real hassle, and that's creating the Sets in the first place.  It will take a lot of trail and error to get the percentages just right if you want to create Sets.  Without access to a GUI, there is no easy answer.

I'm gonna start by creating another command, something like SaveCustomEnergySet.  This command reads your current energy settings off the display, converts to percentages, and saves it as a "_CustomX" Set , where X increments every time.    It will save it in your current profile.  Then you can rename it to what you want.  Not perfect, but it works.

What would be really awesome is a stand-alone GUI utility so you can tweak your INI settings when you aren't playing.  In a perfect world, this app would allow you to perform refits and select Officers, calculate power nominals, allow you to move energy sliders just like the game, and then save those settings to the INI file.  Anyone interested?

Comments?  Sheesh, I feel like I'm writing RFCs.  

zaniwhoop2

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #104 on: February 04, 2003, 07:37:02 pm »
Quote:


What would be really awesome is a stand-alone GUI utility so you can tweak your INI settings when you aren't playing.  In a perfect world, this app would allow you to perform refits and select Officers, calculate power nominals, allow you to move energy sliders just like the game, and then save those settings to the INI file.  Anyone interested?
 



Yes, but getting the time to do it will be difficult for a week or so. Have you also considered a scripting language (Lua, Python come to mind)? I still need the game to get the sliders to work right (right?)? Somewhere I have an amazon gift certificate that should cover the cost.  

Vertigo

  • Guest
Re: SFC3 MACRO UTILITY v0.9 READY!
« Reply #105 on: February 04, 2003, 07:50:48 pm »
Quote:

Quote:


What would be really awesome is a stand-alone GUI utility so you can tweak your INI settings when you aren't playing.  In a perfect world, this app would allow you to perform refits and select Officers, calculate power nominals, allow you to move energy sliders just like the game, and then save those settings to the INI file.  Anyone interested?
 



Yes, but getting the time to do it will be difficult for a week or so. Have you also considered a scripting language (Lua, Python come to mind)? I still need the game to get the sliders to work right (right?)? Somewhere I have an amazon gift certificate that should cover the cost.  




Scripting doesn't help because you still won't have an easy-to-use GUI.  I mean, I'm a Perl junkie, but that doesn't help the average joe.  

Vertigo

  • Guest
UK host...
« Reply #106 on: February 04, 2003, 07:51:46 pm »
Jaffa has updated his hosting link for version v.0931:

http://www.whopperchopper.pwp.blueyonder.co.uk/SFC3Macro_v0931.zip  

SghnDubh

  • Guest
Now on BattleClinic!
« Reply #107 on: February 04, 2003, 08:24:14 pm »
Visit the Analysis section of BattleClinic for prompt and courteous d/l.  


BTW, follow link #4 that looks like this:










  .    

Tulmahk

  • Guest
Re: UK host...
« Reply #108 on: February 04, 2003, 10:01:43 pm »
Vertigo, you know more about these things than I, so I'll gladly defer to your interpretation of the color-depth thing.

The rest of it sounds just amazing.  I can't wait to try it all out.  I'm using your utility on a regular basis in multiplayer, and the results have been excellent.  I spend much, much less time messing with my ship's speed.  Mousing it is a major hassle, and the traditional hotkeys are only marginally better (still time consuming).  Your utility has done away with all that hassle.  1 or 2 key presses, and I'm off to mess with the power.

Keep up the good work!  

Vertigo

  • Guest
Re: UK host...
« Reply #109 on: February 05, 2003, 05:26:07 am »
Quote:

Vertigo, you know more about these things than I, so I'll gladly defer to your interpretation of the color-depth thing.

The rest of it sounds just amazing.  I can't wait to try it all out.  I'm using your utility on a regular basis in multiplayer, and the results have been excellent.  I spend much, much less time messing with my ship's speed.  Mousing it is a major hassle, and the traditional hotkeys are only marginally better (still time consuming).  Your utility has done away with all that hassle.  1 or 2 key presses, and I'm off to mess with the power.

Keep up the good work!  





I concur, it's like a microwave oven.  You quickly can't live without it.  Thanks for the praise!

I'm actually quite annoyed at the moment.  I can't get the energy sliders to work 100%.  I've got everything else done, and you can cycle through profiles, and everything works great except for one BIG problem.

When you try to use too much power, you know how the sliders "auto-adjust?"  That part just freaks out when you use the macro program.  I've tested and tested, and it just doesn't work right.

If you send a FAST sequence that doesn't kick in the "auto-adjusting," everything works great.  If you send mouse messages SLOWLY, auto-adjusting works great.  But if you send fast AND auto-adjusting kicks in, the sliders start warping to strange positions.

My theory is that the SFC3 code is "cheating" a little, by peeking into the message queue and getting all of the mouse messages at once.  It actually re-orders the mouse messages. It probably assumes that you'll never be able to get multiple mouse commands in between checks.  Which you usually can't unless you have a program doing it for you.

Even if you tweak your energy profiles perfectly, you'll still have problems the first time you take warp core damage.

Gah!  I'm mad.  I may have to create a second thread that sends timed messages.  Bleah.

Once that problem is licked, it's clear sailing (I hope).
 

Tulmahk

  • Guest
Re: UK host...
« Reply #110 on: February 05, 2003, 07:28:17 pm »
Please do stick with it.  This is worth a certain large amount of annoyance and frustration, as it makes your eventual victory all the sweeter

How much you want to bet Taldren is watching your progress closely (in a good way)?  

Vertigo

  • Guest
Re: UK host...
« Reply #111 on: February 06, 2003, 12:52:19 am »
Quote:

Please do stick with it.  This is worth a certain large amount of annoyance and frustration, as it makes your eventual victory all the sweeter

How much you want to bet Taldren is watching your progress closely (in a good way)?  




Who knows?  None of this stuff is rocket science, I just think it is stuff they didn't have time to get in.  Not a lot of polish in SFC3...  Every programmer always needs more time.

What I would really like is to help them formally.  I'd sign any NDA they want if they would let me work with the source code.  I've got references, I've held a TS clearance,  I'm trustworthy.  I am a real Software Developer who's worked on real code.  And I mean REAL code, like embedded OS kernels.  Cool stuff.  Until I find a (paying) job, I'll work pro bono, for the resume bullets.

Anyway, I've licked the slider bug problem.  I spun up a second thread which sends the mouse messages slower.  From initial testing, the fastest rate I can achieve is about 20ms.  Any faster and the bars freak out.  That's on a 1300 XP+, your mileage may vary.  Just to be safe, I'll put the delay value into the INI file so anyone can change it.

So, that's it.  All the hurdles are... um, hurdled, I guess.  I've got to merge the test code into the release code, and do all that pesky finalization stuff.  Since energy bars were the whole point of this util, I can finally call it v1.0!    Hopefully it will be out sometime in the next 24 hours.  

Vertigo

  • Guest
Version 1.0 has been released!
« Reply #112 on: February 06, 2003, 01:17:38 pm »
Yay!  I've mailed off SFC3Macro v1.0.  This version adds support for energy management, pretty much the way I described it in earlier posts.  I really, really like this feature.

If anyone is having trouble getting their head around the concepts of the energy stuff, just follow the guided tour in the ReadMe file.   It only takes about 5 minutes to get through, and shows the basics.

To me, this utility is now feature-complete.  That means, except for bug fixes, I'll be laying off of it for a while.  

Of course, suggestions for improvements are welcome, and I'll put in anything I really like.  An add-on GUI would be nice at some point, but is not required.  I kinda like the solution I came up with, all things considered.  

Cocomoe

  • Guest
Re: Version 1.0 has been released!
« Reply #113 on: February 06, 2003, 05:36:59 pm »
  OK updated the file and link.

  www.gfluniverse.net/downloads  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #114 on: February 06, 2003, 07:52:20 pm »
Quote:

If anyone is having trouble getting their head around the concepts of the energy stuff, just follow the guided tour in the ReadMe file...




Hahaha!  Anyone named Tulmahk, you mean.  

Well, it's good to have a cement-headed Romulan test your stuff out.  Just to see if it's truly 'Tulmahk proof'.  

I'm currently taking bets on whether the power sliders are going to work for me.  I've got 500 quatloos riding on this, so if you see me flying around in a Talon on SFC3.net 4 Corners, you'll know I lost!  

Thanks once again for all your hard work.  People like you make this game more fun than it has any right to be.  And thanks to the hosters Cocomoe and BattleClinic.com, too.  It's always useful to actually be able to get ahold of the thing.  I'll let you know how things go.

And Taldren?  Hire this guy please.  There's only so much government cheese a talented programmer can stomach, you know?    

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #115 on: February 06, 2003, 09:27:12 pm »

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #116 on: February 06, 2003, 11:09:08 pm »
When using a new version of an old program, I always test the old features first to find out if they're still working.  In this case, and because it is me , they are not working.

Well, my old friend the Throttle bug is back.  Here's the log text:

*********** SFC3MACRO Message Log ***********


Message Logging Level = 1.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Could not find action name.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Invalid command line.
Could not find "=" sign.
Invalid command line.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Could not find "=" sign.
Invalid Set line.
---------------------------
List of Energy profiles.
Energy Profile 0:
   default = 118P, 113H, 114S
   balanced = 159P, 100H, 100S
   max_photon = 10P, 200H, 100S
   max_shields = 58P, 72H, 200S
Energy Profile 1:
   optimal = 100P, 100H, 100S
---------------------------
Could not find matching resolution (640 was returned).
QueryDisplay() failed.
Error in initialization.
SFC3 Macro has been started.
SFC3 Macro has been stopped.
SFC3 is closing.  Closing Log.

I don't know what any of it means, but I'm betting another 500 quatloos that you do (I've already lost 500, that's the luck of the Romulans, eh?)

Maybe I'm doing something really obviously wrong?  I'll test it with a higher delay number (50 rather than the default 20) and maybe that'll clear it up.  My cpu is a Duron 750, so it might need more time to process everything.

***LATER...

No, setting the delay to 50 didn't help at all.  Exactly the same error report as above.  I guess something got 'broken' in the process of adding new functionality.  Hmmm, maybe Activision isn't off their rocker after all?  
« Last Edit: February 06, 2003, 11:20:15 pm by Tulmahk »

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #117 on: February 06, 2003, 11:24:46 pm »
Quote:


Could not find matching resolution (640 was returned).
QueryDisplay() failed.
Error in initialization.
SFC3 Macro has been started.
SFC3 Macro has been stopped.
SFC3 is closing.  Closing Log.





Are you running this at 640x480?  That's what the utility is reporting, and it isn't capable of handling it.  As far as I know, the minimum resolution is 1024x768, so I'm curious about that.

Also, those continual "=" messages are annoying, and I can't figure out why you keep getting them.  Sigh.  Whats the locale (language) on your computer?

OK, try this:  Goto into the INI file.  Set this:

MessageLevel=3
EnableLogging=1

Start the program.  Press ALT-F4 to exit.  Press NO other keys, don't mouse the mouse.  Get in, get out.  Then cut n' paste the log here.  It will prbobably be quite long.

Don't worry about breaking my stuff.  You find bugs now, or you find them later.  Given the choice, I'll find them now.  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #118 on: February 06, 2003, 11:28:34 pm »
Guess what?  I figured out what was happening!

I reinstalled the game, so the INTRO MOVIES started playing on startup again!  I had previously deleted them.

So, your program is polling for screen resolution WHILE THE MOVIES ARE PLAYING.  Wow, I can't believe I figured it out.  My head hurts now.

And now that I've deleted the intro movies, everything works great, as advertised.  (Until I find the next bug, of course! )
« Last Edit: February 06, 2003, 11:31:23 pm by Tulmahk »

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #119 on: February 06, 2003, 11:40:32 pm »
Here is the additional information you requested:

My computer is using English (United States).

*********** SFC3MACRO Message Log ***********


Message Logging Level = 3.
Value of Full Path: "D:\PROGRAM FILES\ACTIVISION\SFC3".
Show Log on Exit: N.
Throttle Scan Width = 202.
Green Bar Color = 0x5ac300.
Red Bar Color = 0x20ff.
Command List as read from INI:
----------------------
; ***** General commands *****
UpThrottle=S
DownThrottle=A
OnOff=ENTER, RunAlways, PassThru
; ***** Energy commands *****
LoadHullProfile1=F1, CTRL
LoadHullProfile2=F2, CTRL
LoadHullProfile3=F3, CTRL
CyclePreviousEnergySet=Q
CycleNextEnergySet=E
SaveCustomEnergySet=ENTER, SHIFT
; ***** Troubleshooting commands. *****
ShowLog=F6, RunAlWays
;AdvancedDisplayQuery=F7, RunAlWays  <- Currently disabled.
;------------------------------------------------------------------------------
; Energy Profiles - This is your list of energy profiles.  Each Profile is
; intended to be used with one hull configuration.  Within each profile, you
; can define multiple Sets, which you can cycle through in-game.  
;
; For instructions about using and creating Profiles, see Energy Profiles.txt.
;

----------------------
Parsing command line "; ***** general commands *****".
Could not find "=" sign.
Command string "; ***** general commands *****" could not be parsed.
Parsing command line "upthrottle=s".
Action name is "upthrottle".
Looking up action name.
Comparing "upthrottle" to "UpThrottle".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "s".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "downthrottle=a".
Action name is "downthrottle".
Looking up action name.
Comparing "downthrottle" to "UpThrottle".
Comparing "downthrottle" to "DownThrottle".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "a".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "onoff=enter, runalways, passthru".
Action name is "onoff".
Looking up action name.
Comparing "onoff" to "UpThrottle".
Comparing "onoff" to "DownThrottle".
Comparing "onoff" to "ShowLog".
Comparing "onoff" to "AdvancedDisplayQuery".
Comparing "onoff" to "OnOff".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 5 chars into string.
VKEY token found: "enter".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found RUNWHENOFF flag.
Found PASSTHRU flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "; ***** energy commands *****".
Could not find "=" sign.
Command string "; ***** energy commands *****" could not be parsed.
Parsing command line "loadhullprofile1=f1, ctrl".
Action name is "loadhullprofile1".
Looking up action name.
Comparing "loadhullprofile1" to "UpThrottle".
Comparing "loadhullprofile1" to "DownThrottle".
Comparing "loadhullprofile1" to "ShowLog".
Comparing "loadhullprofile1" to "AdvancedDisplayQuery".
Comparing "loadhullprofile1" to "OnOff".
Comparing "loadhullprofile1" to "LoadHullProfile1".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f1".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found CTRL flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "loadhullprofile2=f2, ctrl".
Action name is "loadhullprofile2".
Looking up action name.
Comparing "loadhullprofile2" to "UpThrottle".
Comparing "loadhullprofile2" to "DownThrottle".
Comparing "loadhullprofile2" to "ShowLog".
Comparing "loadhullprofile2" to "AdvancedDisplayQuery".
Comparing "loadhullprofile2" to "OnOff".
Comparing "loadhullprofile2" to "LoadHullProfile1".
Comparing "loadhullprofile2" to "LoadHullProfile2".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f2".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found CTRL flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "loadhullprofile3=f3, ctrl".
Action name is "loadhullprofile3".
Looking up action name.
Comparing "loadhullprofile3" to "UpThrottle".
Comparing "loadhullprofile3" to "DownThrottle".
Comparing "loadhullprofile3" to "ShowLog".
Comparing "loadhullprofile3" to "AdvancedDisplayQuery".
Comparing "loadhullprofile3" to "OnOff".
Comparing "loadhullprofile3" to "LoadHullProfile1".
Comparing "loadhullprofile3" to "LoadHullProfile2".
Comparing "loadhullprofile3" to "LoadHullProfile3".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f3".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found CTRL flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "cyclepreviousenergyset=q".
Action name is "cyclepreviousenergyset".
Looking up action name.
Comparing "cyclepreviousenergyset" to "UpThrottle".
Comparing "cyclepreviousenergyset" to "DownThrottle".
Comparing "cyclepreviousenergyset" to "ShowLog".
Comparing "cyclepreviousenergyset" to "AdvancedDisplayQuery".
Comparing "cyclepreviousenergyset" to "OnOff".
Comparing "cyclepreviousenergyset" to "LoadHullProfile1".
Comparing "cyclepreviousenergyset" to "LoadHullProfile2".
Comparing "cyclepreviousenergyset" to "LoadHullProfile3".
Comparing "cyclepreviousenergyset" to "LoadHullProfile4".
Comparing "cyclepreviousenergyset" to "LoadHullProfile5".
Comparing "cyclepreviousenergyset" to "LoadHullProfile6".
Comparing "cyclepreviousenergyset" to "LoadHullProfile7".
Comparing "cyclepreviousenergyset" to "LoadHullProfile8".
Comparing "cyclepreviousenergyset" to "LoadHullProfile9".
Comparing "cyclepreviousenergyset" to "LoadHullProfile10".
Comparing "cyclepreviousenergyset" to "CyclePreviousEnergySet".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "q".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "cyclenextenergyset=e".
Action name is "cyclenextenergyset".
Looking up action name.
Comparing "cyclenextenergyset" to "UpThrottle".
Comparing "cyclenextenergyset" to "DownThrottle".
Comparing "cyclenextenergyset" to "ShowLog".
Comparing "cyclenextenergyset" to "AdvancedDisplayQuery".
Comparing "cyclenextenergyset" to "OnOff".
Comparing "cyclenextenergyset" to "LoadHullProfile1".
Comparing "cyclenextenergyset" to "LoadHullProfile2".
Comparing "cyclenextenergyset" to "LoadHullProfile3".
Comparing "cyclenextenergyset" to "LoadHullProfile4".
Comparing "cyclenextenergyset" to "LoadHullProfile5".
Comparing "cyclenextenergyset" to "LoadHullProfile6".
Comparing "cyclenextenergyset" to "LoadHullProfile7".
Comparing "cyclenextenergyset" to "LoadHullProfile8".
Comparing "cyclenextenergyset" to "LoadHullProfile9".
Comparing "cyclenextenergyset" to "LoadHullProfile10".
Comparing "cyclenextenergyset" to "CyclePreviousEnergySet".
Comparing "cyclenextenergyset" to "CycleNextEnergySet".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 1 chars into string.
VKEY token found: "e".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "savecustomenergyset=enter, shift".
Action name is "savecustomenergyset".
Looking up action name.
Comparing "savecustomenergyset" to "UpThrottle".
Comparing "savecustomenergyset" to "DownThrottle".
Comparing "savecustomenergyset" to "ShowLog".
Comparing "savecustomenergyset" to "AdvancedDisplayQuery".
Comparing "savecustomenergyset" to "OnOff".
Comparing "savecustomenergyset" to "LoadHullProfile1".
Comparing "savecustomenergyset" to "LoadHullProfile2".
Comparing "savecustomenergyset" to "LoadHullProfile3".
Comparing "savecustomenergyset" to "LoadHullProfile4".
Comparing "savecustomenergyset" to "LoadHullProfile5".
Comparing "savecustomenergyset" to "LoadHullProfile6".
Comparing "savecustomenergyset" to "LoadHullProfile7".
Comparing "savecustomenergyset" to "LoadHullProfile8".
Comparing "savecustomenergyset" to "LoadHullProfile9".
Comparing "savecustomenergyset" to "LoadHullProfile10".
Comparing "savecustomenergyset" to "CyclePreviousEnergySet".
Comparing "savecustomenergyset" to "CycleNextEnergySet".
Comparing "savecustomenergyset" to "SaveCustomEnergySet".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 5 chars into string.
VKEY token found: "enter".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found SHIFT flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line "; ***** troubleshooting commands. *****".
Could not find "=" sign.
Command string "; ***** troubleshooting commands. *****" could not be parsed.
Parsing command line "showlog=f6, runalways".
Action name is "showlog".
Looking up action name.
Comparing "showlog" to "UpThrottle".
Comparing "showlog" to "DownThrottle".
Comparing "showlog" to "ShowLog".
Tokens match.
Action name found.
Looking for the VKEY token.
Delimiter found 2 chars into string.
VKEY token found: "f6".
Looking up VKEY token.
Vkey token found.
Scanning for flags.
Found RUNWHENOFF flag.
Flag search finished.
Command entry complete; adding to list.
Command entry has been added.
Parsing command line ";advanceddisplayquery=f7, runalways  <- currently disabled.".
Action name is ";advanceddisplayquery".
Looking up action name.
Comparing ";advanceddisplayquery" to "UpThrottle".
Comparing ";advanceddisplayquery" to "DownThrottle".
Comparing ";advanceddisplayquery" to "ShowLog".
Comparing ";advanceddisplayquery" to "AdvancedDisplayQuery".
Comparing ";advanceddisplayquery" to "OnOff".
Comparing ";advanceddisplayquery" to "LoadHullProfile1".
Comparing ";advanceddisplayquery" to "LoadHullProfile2".
Comparing ";advanceddisplayquery" to "LoadHullProfile3".
Comparing ";advanceddisplayquery" to "LoadHullProfile4".
Comparing ";advanceddisplayquery" to "LoadHullProfile5".
Comparing ";advanceddisplayquery" to "LoadHullProfile6".
Comparing ";advanceddisplayquery" to "LoadHullProfile7".
Comparing ";advanceddisplayquery" to "LoadHullProfile8".
Comparing ";advanceddisplayquery" to "LoadHullProfile9".
Comparing ";advanceddisplayquery" to "LoadHullProfile10".
Comparing ";advanceddisplayquery" to "CyclePreviousEnergySet".
Comparing ";advanceddisplayquery" to "CycleNextEnergySet".
Comparing ";advanceddisplayquery" to "SaveCustomEnergySet".
FOund no matching tokens.
Could not find action name.
Command string ";advanceddisplayquery=f7, runalways  <- currently disabled." could not be parsed.
Parsing command line ";------------------------------------------------------------------------------".
Could not find "=" sign.
Command string ";------------------------------------------------------------------------------" could not be parsed.
Parsing command line "; energy profiles - this is your list of energy profiles.  each profile is ".
Could not find "=" sign.
Command string "; energy profiles - this is your list of energy profiles.  each profile is " could not be parsed.
Parsing command line "; intended to be used with one hull configuration.  within each profile, you ".
Could not find "=" sign.
Command string "; intended to be used with one hull configuration.  within each profile, you " could not be parsed.
Parsing command line "; can define multiple sets, which you can cycle through in-game.  ".
Could not find "=" sign.
Command string "; can define multiple sets, which you can cycle through in-game.  " could not be parsed.
Parsing command line ";".
Invalid command line.
Command string ";" could not be parsed.
Parsing command line "; for instructions about using and creating profiles, see energy profiles.txt.".
Could not find "=" sign.
Command string "; for instructions about using and creating profiles, see energy profiles.txt." could not be parsed.
Parsing command line ";".
Invalid command line.
Command string ";" could not be parsed.
Summary of all bound commands
----------------------------
 0) VKey:  83  CommandFunc: 0x 9E52AD0                            
 1) VKey:  65  CommandFunc: 0x 9E52AE0                            
 2) VKey:  13  CommandFunc: 0x 9E52B10               RUNALWAYS PASS
 3) VKey: 112  CommandFunc: 0x 9E52B60      CTRL                  
 4) VKey: 113  CommandFunc: 0x 9E52B70      CTRL                  
 5) VKey: 114  CommandFunc: 0x 9E52B80      CTRL                  
 6) VKey:  81  CommandFunc: 0x 9E52C00                            
 7) VKey:  69  CommandFunc: 0x 9E52C10                            
 8) VKey:  13  CommandFunc: 0x 9E52C20 SHFT                        
 9) VKey: 117  CommandFunc: 0x 9E52AF0               RUNALWAYS    
----------------------------
Fetching INI section name "[Hull 1 Energy Profile]".
Energy profile [Hull 1 Energy Profile] as read from INI:
----------------------
; Energy profile for the default Akira in Skirmish.
DEFAULT=118p, 113h, 114s
BALANCED=159p, 100h, 100s
MAX_PHOTON=10p, 200h, 100s
MAX_SHIELDS=58p, 72h, 200s

----------------------
Parsing Energy Set Line "; energy profile for the default akira in skirmish.".
Could not find "=" sign.
Parsing Energy Set Line "default=118p, 113h, 114s".
Set name is "default".
Processing Token "118p".
Number component: 118.
Bar is Primary.
Processing Token " 113h".
Number component: 113.
Bar is Heavy.
Processing Token " 114s".
Number component: 114.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line "balanced=159p, 100h, 100s".
Set name is "balanced".
Processing Token "159p".
Number component: 159.
Bar is Primary.
Processing Token " 100h".
Number component: 100.
Bar is Heavy.
Processing Token " 100s".
Number component: 100.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line "max_photon=10p, 200h, 100s".
Set name is "max_photon".
Processing Token "10p".
Number component: 10.
Bar is Primary.
Processing Token " 200h".
Number component: 200.
Bar is Heavy.
Processing Token " 100s".
Number component: 100.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line "max_shields=58p, 72h, 200s".
Set name is "max_shields".
Processing Token "58p".
Number component: 58.
Bar is Primary.
Processing Token " 72h".
Number component: 72.
Bar is Heavy.
Processing Token " 200s".
Number component: 200.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Fetching INI section name "[Hull 2 Energy Profile]".
Energy profile [Hull 2 Energy Profile] as read from INI:
----------------------
Optimal=100p, 100h, 100s
;------------------------------------------------------------------------------
; Custom Energy Sets - Whenever you record an energy set (using the
; SaveCustomEnergySet command), it is stored here.
;

----------------------
Parsing Energy Set Line "optimal=100p, 100h, 100s".
Set name is "optimal".
Processing Token "100p".
Number component: 100.
Bar is Primary.
Processing Token " 100h".
Number component: 100.
Bar is Heavy.
Processing Token " 100s".
Number component: 100.
Bar is Shields.
Adding an energy set.
Energy set has been added.
Parsing Energy Set Line ";------------------------------------------------------------------------------".
Could not find "=" sign.
Parsing Energy Set Line "; custom energy sets - whenever you record an energy set (using the ".
Could not find "=" sign.
Parsing Energy Set Line "; savecustomenergyset command), it is stored here.".
Could not find "=" sign.
Parsing Energy Set Line ";".
Invalid Set line.
Fetching INI section name "[Hull 3 Energy Profile]".
Energy profile [Hull 3 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 4 Energy Profile]".
Energy profile [Hull 4 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 5 Energy Profile]".
Energy profile [Hull 5 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 6 Energy Profile]".
Energy profile [Hull 6 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 7 Energy Profile]".
Energy profile [Hull 7 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 8 Energy Profile]".
Energy profile [Hull 8 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 9 Energy Profile]".
Energy profile [Hull 9 Energy Profile] as read from INI:
----------------------

----------------------
Fetching INI section name "[Hull 10 Energy Profile]".
Energy profile [Hull 10 Energy Profile] as read from INI:
----------------------

----------------------
---------------------------
List of Energy profiles.
Energy Profile 0:
   default = 118P, 113H, 114S
   balanced = 159P, 100H, 100S
   max_photon = 10P, 200H, 100S
   max_shields = 58P, 72H, 200S
Energy Profile 1:
   optimal = 100P, 100H, 100S
---------------------------
Minimum wait time for Proxy: 50.
Successfully read from INI file.
Querying Display.
Getting DC.
DC has been gotten.
Width is 1024.
Releasing DC.
DC released.
Throttle index is 0.
QueryDisplay() succeeded.
Applying throttle offsets.
Throttle offsets have been applied.
Energy subsystem initializing.
Creating proxy mutex.
Mutex created.
Creating singaling event.
Event created.
Creating the timing thread.
Thread created.
Initialization complete.
Initialization complete.
-----------------------
Detected key, VK = 18, Code = 0, lParam = 0x20380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Timing thread is going to sleep.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 18, Code = 0, lParam = 0x60380001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (18, 83).
match failed.
Trying next command.
Matching virtual key codes (18, 65).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 112).
match failed.
Trying next command.
Matching virtual key codes (18, 113).
match failed.
Trying next command.
Matching virtual key codes (18, 114).
match failed.
Trying next command.
Matching virtual key codes (18, 81).
match failed.
Trying next command.
Matching virtual key codes (18, 69).
match failed.
Trying next command.
Matching virtual key codes (18, 13).
match failed.
Trying next command.
Matching virtual key codes (18, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
Detected key, VK = 115, Code = 0, lParam = 0x203E0001.
----------
Keyboard Handler invoked, RunState = Running.
Attempting to process a keystroke.
Matching virtual key codes (115, 83).
match failed.
Trying next command.
Matching virtual key codes (115, 65).
match failed.
Trying next command.
Matching virtual key codes (115, 13).
match failed.
Trying next command.
Matching virtual key codes (115, 112).
match failed.
Trying next command.
Matching virtual key codes (115, 113).
match failed.
Trying next command.
Matching virtual key codes (115, 114).
match failed.
Trying next command.
Matching virtual key codes (115, 81).
match failed.
Trying next command.
Matching virtual key codes (115, 69).
match failed.
Trying next command.
Matching virtual key codes (115, 13).
match failed.
Trying next command.
Matching virtual key codes (115, 117).
match failed.
Trying next command.
No commands matched.
Handler exiting, did not eat keystroke.
SFC3 is closing.  Closing Log.
Deleting command list.
Deleted 10 commands.
Deallocating Energy config.
Deleted 4 Energy Nodes.
Deleted 1 Energy Nodes.
Deallocation complete.

Welcome to the dryest, least interesting post on Taldren BBS!    I hope this helps.  If I can assist in any other way, please let me know.  

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #120 on: February 07, 2003, 12:07:07 am »
Quote:

Guess what?  I figured out what was happening!

I reinstalled the game, so the INTRO MOVIES started playing on startup again!  I had previously deleted them.

So, your program is polling for screen resolution WHILE THE MOVIES ARE PLAYING.  Wow, I can't believe I figured it out.  My head hurts now.

And now that I've deleted the intro movies, everything works great, as advertised.  (Until I find the next bug, of course! )




Even the new energy commands? They work too?

AH!  The fog lifts.  I deleted the movies long ago, and it never occured to me that it could be a problem.  Unfortunately, there is no "elegant" way to work around this problem.  I'll have to hack something up.  I've got an idea on how to fix it.

The LOG also explains the "=" errors.  In an INI file, any line that starts with a semicolon is supposed to be a comment, and is supposed to be ignored.  The API calls filter this for you.  At least, they are supposed to.  I'm using Win2K, which does the right thing.  What OS are you using?  Anway, that's a dirt easy fix.  I'll just check for the semicolon manually.

I have an idea.  The next time I ask for a log, just PM it to me  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #121 on: February 07, 2003, 12:47:31 am »
Yes my friend, the power settings are working perfectly!

My operating system is Windows 98 SE.

In future, I'll PM them to you, in order to spare everyone the gory details (no pass on this one for you, I'm afraid! )

That one was the hardest puzzle with the easiest solution, wasn't it?

I like the rules you've established on using the utility in multiplayer.  If anyone asks, of course I'll tell them I'm using it, and I'll even provide a link they can get it from.  I don't know what I'll do if they ask that I not use it.  Maybe if they are in a smaller/equal ship I'll honor the request, and if their ship outclasses mine, tough noogies.  All subject to server rules, of course.

And I'm toying with the idea of starting each new pvp with "Powered by SFC3 Macro" chatted out to them.  Up to them to figure it out, as far as I'm concerned, other than as I said above.  Of course if I lose, that'll make the utility look bad, which is why I shy away from this option (I don't want my bad play messing up the reputation of your fine software).

Though I must say this does provide somewhat of an advantage, if you come up against someone whose tactics are superior, this utility isn't going to make a difference.  It helps you with a kludgy interface, it does nothing to make you a better player.  No Server Pixie Dust here, just handiness up the yin-yang.

I'm here to help, as always...  

SirWilliam

  • Guest
Re: Version 1.0 has been released!
« Reply #122 on: February 07, 2003, 12:59:26 am »
Quote:

I don't know what I'll do if they ask that I not use it.  Maybe if they are in a smaller/equal ship I'll honor the request, and if their ship outclasses mine, tough noogies.  All subject to server rules, of course.




I don't have this utility yet.  That said, I would have no reservations about using it freely since anyone else can get it.  As a rule (with occasional tactical exceptions) I do not kill human-piloted ships which my own ship far outrates, as neither, I suspect, do you; hence using it in battle against a far outgunned opponent would not be an issue. However I am impressed by your chivalry, Sir.  When/if I start using this, I will emulate your honorable example and advise others on how to obtain it.

Qa'pla!

Sir William    

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #123 on: February 07, 2003, 01:43:37 am »
I can' t tell you how happy I am that the silly thing works.  There is always a seed of doubt until someone else tries it.

For the record, Tulmahk is referring to an paragraph I put in the README.  Here's what I said:

---------- snip ------------
Macro Etiquette
It is always debatable whether using a utility like this constitutes ?cheating.?  It is my opinion that this specific utility, in this specific case, only adds features that should have been present anyway.  Therefore I do not consider it cheating to use on D3 or other non-money environments.  However, if you use this utility I ask you heed these rules of Etiquette:

1) If asked, always affirm you are using this utility.  Do not evade the question.
2) If asked to stop using the utility during a match, you must agree.
3) To be extra polite, chat to your opponents at the beginning of a match that you are using a utility.
4) If part of a Fleet, make sure that the utility is allowed under Fleet charter.
5) If convenient, always ask/inform the server admin about the utility.
---------- snip ------------

Chivalry, Politeness, these things make an online community worthwhile.  That, or trashtalking and telefragging.  Depends on the community.    

That remindes me, I gotta join a Fleet one of these days.  Tulmahk, any good SFC3 Rom Fleets running around right now?

   

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #124 on: February 07, 2003, 02:57:35 am »
Some say the mythic SPQR is the best Romulan fleet, but I can neither confirm nor deny their existance.  I'm a lone wolf myself; my views on fleets in SFC is starting to become infamous.

The ones I would recommend:

KOTH
KAT
TAG

And maybe, just maybe SSCF (though I'm still uncertain about them).  KOTH seems to fly a lot of Romulan, TAG would seem to be mostly Klingon/Fed.  KAT, I don't know.  They fly Lyran in D2, I believe.

I'll add, without comment, that I do not currently recommend FSF.  

Cocomoe

  • Guest
Re: Version 1.0 has been released!
« Reply #125 on: February 07, 2003, 07:21:04 am »
  GFL has a decent size Romulan contingent.  Or any race for that matter.

   Take a look around, I ' authorize you as a honored guest.
  (Sound nice eh, but I do that for any non-gfl'er that wants to post on the forums.)


 
  Cocomoe

SghnDubh

  • Guest
Re: Version 1.0 has been released!
« Reply #126 on: February 07, 2003, 11:04:42 am »

Now on BattleClinic. Sorry for the delay.


Check the "analysis" section.
 

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #127 on: February 08, 2003, 03:05:38 am »
OK, the bug with the intro messing up stuff is fixed.  It's easy to work around anyway.  Just click past the intros, instead of pressing a key.  As long as you don't press a key before the main menu, you are all set.

I'm going to fix the "=" problem too, that's a one line fix.  

However, I've got in-law duty this weekend, so I might not issue a release until Sunday night.

Other than Tulmahk, my greatest fan , has anyone else even downloaded this util?  Does it work?  I can see the "views" column, I know you are out there.  

Tulmahk

  • Guest
Re: Version 1.0 has been released!
« Reply #128 on: February 08, 2003, 06:40:04 pm »
Nevermind the views column, that's just me!  

Would anyone else really come to this godforsaken thread?  Not if they wanted to retain their sanity.

Especailly after my infamous log post.  I challenge ANYONE (SgnhDubh, that means you!) to read that entire thing and not go on medication afterwords.  

Keep up the good work, BTW.  I'm making a bug list and checking it twice...  

P.S.  I am your #1 fan Vertigo.  Care to have a car wreck in front of my house sometime?    Just remember my penguin figurine always points to the SOUTH not north...
« Last Edit: February 08, 2003, 06:43:29 pm by Tulmahk »

Cocomoe

  • Guest
Re: Version 1.0 has been released!
« Reply #129 on: February 10, 2003, 09:34:11 am »
  1.01 is uploaed at www.gfluniverse.net/downloads  
 It should fix the thins you posted Tulmahk.  According to Sam's e-mail./

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #130 on: February 10, 2003, 08:58:25 pm »
Quote:

P.S.  I am your #1 fan Vertigo.  Care to have a car wreck in front of my house sometime?    Just remember my penguin figurine always points to the SOUTH not north...




A truly creepy book/movie.  

Subspace

  • Guest
Re: SFC3Macro v093 READY!
« Reply #131 on: February 10, 2003, 11:18:11 pm »
Nice !!      

CptCastrin

  • Guest
Re: Version 1.0 has been released!
« Reply #132 on: February 11, 2003, 11:58:36 am »
Having come into to this late excuse my ignorance but has anyone thought to tie the controls to a joy stick? That would free up a lot of keys on the keyboard.

Looks really cool either way. Great work Vertigo. If you need a fourth (fifth?) host for the file send me a PM of email me directly and we'll put it up at SFCx.org. In the mean time I've put up a news article and uploaded the curent version to www.sfcx.org .

Keep it up!        

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #133 on: February 11, 2003, 03:52:02 pm »
Quote:

Having come into to this late excuse my ignorance but has anyone thought to tie the controls to a joy stick? That would free up a lot of keys on the keyboard.

Looks really cool either way. Great work Vertigo. If you need a fourth (fifth?) host for the file send me a PM of email me directly and we'll put it up at SFCx.org. In the mean time I've put up a news article and uploaded the curent version to www.sfcx.org .

Keep it up!        




Implementing a joystick never occured to me.  Unfortunately, implementing a joystick properly is a tremendous pain, DirectInput isn't exactly elegant.  Also, the existing utility would require some serious re-work to accept the code properly.  So, sorry, I think I'm going to have to say no for now.  However, thanks for the suggestion!

I love SFCX, BTW.  Great site!  

Vertigo

  • Guest
Re: Version 1.0 has been released!
« Reply #134 on: February 11, 2003, 04:07:52 pm »
OK, I think this thread should be retired.  It's kind of a mess to wade through.  Therefore, I've opened a new thread at:

http://208.57.228.4/ubbthreads/showflat.php?Cat=&Board=UBB1&Number=19380

The opening post also does a better job of explaining what SFC3Macro does.  

zaniwhoop2

  • Guest
Re: Version 1.0 has been released!
« Reply #135 on: February 11, 2003, 11:20:12 pm »
Quote:


Implementing a joystick never occured to me.  Unfortunately, implementing a joystick properly is a tremendous pain, DirectInput isn't exactly elegant.  Also, the existing utility would require some serious re-work to accept the code properly.  So, sorry, I think I'm going to have to say no for now.  However, thanks for the suggestion!




I see a use for my skills...that is if you want it. I have dealt with a joystick specifally (I never have mine plugged in), but it's not too different from a mouse or keyboard (thanks to DirectInput for that). I also had a little work done for an out-of-game GUI for the utility that lets you set hotkeys, but I don't know if that's still in demand.