Dynaverse.net
Please login or register.

Login with username, password and session length
Advanced search  

News:

Dynaverse.Net ... your friend for SFC3 and SFC2.
We support all versions of these great games!

Pages: 1 2 [All]

Author Topic: Strat and Bonk - Mod Chooser, SFC Direct integration - Mods standardisation  (Read 2360 times)

0 Members and 1 Guest are viewing this topic.

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
Strat sent me PM the other day with some good ideas to discuss, I though I'd start a record here for now.

We just had a chat on IRC:

Quote
<Bonk> hiya.... one sec...
<Bonk> some good ideas in that PM...
<Bonk> you'll notice that OP+4 already has registry entries
<Bonk> SFB-OP-04 does as well... but only relating to the uninstall
<Bonk> we shoould start a thread to develop this somewhere
<Strat> oh hey!
<Bonk> hey!
<Strat> yeah
<Strat> I saw those keys
<Strat> But the chooser would need more info
<Bonk> yup
<Strat> and I've been debateing if another method of saving the data would be better
<Bonk> I think we should discuss a possible mods standardisation in an apporpriate forum
<Strat> Basically I've decided that I would try another method of file verification than file size
<Bonk> so we have a record and some input
<Strat> MD5
<Bonk> or CRC32
<Strat> I'm not really familiar with either
<Bonk> thats what the serverkit uses
<Strat> oh ok
<Strat> wow
<Strat> I guess I could start a thread
<Bonk> shouldn;t be do hard to get a CRC of a file in VB
<Strat> well I'd have to research it
<Bonk> worst case it might need a windows API call
<Strat> MD5 look like real hard.. at least for me
<Bonk> there's probably some code snippets out there to do it.
<Bonk> lemme did up your PM here...
<Bonk> oh yes...
<Bonk> integration with SFC direct...
<Strat> well i was brainsotrming and that was a thought
<Bonk> if the mod chooser could accept a command line parameter
<Strat> thats what I trhought too
<Strat> of course I dn't know how to do that yet
<Strat> but I'm hopeful
<Bonk> again, shouldn't be too hard
<Bonk> I'd bet there's help on VB websites for both command line parameters and CRCs
<Strat> oh yes
<Strat> I'll keep searching
<Bonk> whcih version you using?
<Strat> most of my troubles are not the code, there is substabntial documentation
<Strat> Express
<Strat> VB
<Bonk> 2005?
<Strat> Yeah
<Bonk> k...
<Strat> Free stuff ;)
<Bonk> yay!
<Strat> lol
<Bonk> for the command line
<Bonk> we'd jsut need to pass something like
<Bonk> "/mod=hardcore"
<Bonk> or 
<Strat> Yes
<Bonk> "/mod=OPP4"
<Strat> exactly
<Strat> which means
<Strat> (Dunno if you've used my older version 6.5 before)
<Bonk> once you come up with that I'd jsut need a list of the mod codes used in the command line
<Strat> The Mod Developter would have to determine his own mod code
<Bonk> have it installed but onoly used it once I think...
<Strat> right now people name thier own mods
<Bonk> you can decide on the mod code...
<Strat> if each user determined a mod code they would not be consistant
<Bonk> or we could make it part of our porpsed stadardised mod structure
<Strat> That my thought
<Bonk> well you can assign them unique codes...
<Bonk> as long as I know which code corresponds to which mod
<Strat> If I was willing to do that for every mod ever made and ask people to DL updates
<Strat> if the delevoper did it, its all much faster and cohesive
<Bonk> they could even be numbers...
<Strat> just two devs cant use same code lol
<Strat> that too
<Strat> Hey
<Strat> the CRC could be the code!
<Strat> hmm
<Strat> perhaps..
<Bonk> could be.... that might be a good idea...
<Strat> well, it would need CRC of shiplist, ftrlist, and modelsiz at least
<Strat> and that a long number
<Strat> Mod code might be better
<Bonk> CRC of the shiplist only would do
<Bonk> mod code would be easier
<Strat> yeah
<Bonk> about the mod chooser and models however...
<Strat> uhuh?
<Bonk> my models folder is huge...
<Strat> lol
<Bonk> 2.29GB
<Bonk> !!!
<Strat> ok, so whats the problem?
<Bonk> does the mod chooser deal with models?
<Strat> From watching people like firesoul and Chris
<Bonk> its vital that the proper models are in place for a mod
<Strat> They mostly don't edit the Models folder at all excet for the modelssiz file
<Strat> They make a serpate folder with the models
<Bonk> or the mod won't work
<Strat> and use the shiplsit and ftrlist to point to those
<Bonk> yes, the models siz is critical
<Strat> but see
<Strat> this would also need to be a standerd
<Bonk> but if a user does not have the proper models in place the mod can crash unpredicatably
<Strat> that no dev edit the models fodler
<Strat> he must make his owm models folder and point the shiplsit to that
<Bonk> SFB-OP-O4 used a subfolder of the models folder
<Strat> just as long as the models themselves artn't edited
<Strat> OP doesn't know
<Strat> but I do think
<Strat> that another folers, perhaps called Mods below assets
<Strat> and each Mod in its own folder below there
<Bonk> I've learned that you cannot caount on the stock models being intact
<Strat> with files like shiplsit models sizes and other thing (sounds GF's_)
<Strat> would be more oranized
<Bonk> particularly with folks like dizzy or kroma
<Strat> hmm
<Bonk> perhaps mods should have an ini file in the op root with all these locations...
<Strat> as long as the model.siz file is ok, then it sohuld not matter what picuteres they use if it doesn't crash them
<Strat> Exactly!
<Bonk> these are the kind of ideas we should put into a thread...
<Strat> I need the dev to proviede the Chooser with a list of all files and there CRC's
<Bonk> just where do we start it... hmmm...
<Bonk> mods forum?
<Strat> Well Bonk, I'm just
<Bonk> beta forum for now and moce it later?
<Strat> My last mod chooser never cught on, Firesoul nor Chris really ever aknowldged it
<Strat> They kep giving poeple batch files
<Bonk> I think if we work on it a bit, and integrate it with SFC DIrect it might help
<Strat> that my hop ealso
<Bonk> I just spent most of this week making a
<Bonk> msi installer for Apache 2.2.0
<Strat> I think that if we (or I) work out enough details, they will see that we've thought of everything to make it easer for them the dev and the end user
<Bonk> I used the evaluation of InstallSheild
<Strat> Making installers is not easy stuff
<Bonk> you might want to take a look at it
<Bonk> it has a lot of the features you're thinking of
<Strat> For my last version I used a freeware tool
<Strat> GInstall
<Bonk> installation repair, upates, downloads etc...
<Strat> hmm
<Bonk> I'm a fan of NSIS (free!)
<Strat> lol
<Strat> I'll have to look that up too
<Bonk> the problem with INstllSheild is its a 3 week eval
<Strat> yeah
<Strat> and really expensive
<Bonk> and the full premier edition costs $2500
<Strat> lol
<Bonk> yup, really expensive
<Strat> I really want the installer to only install
<Strat> I want the Chooser to do eveything else itself
<Bonk> cool, stick with what works for ya...
<Strat> an all in one place tool
<Strat> yeah
<Bonk> I think we're on the same page here...
<Strat> let me ask you though
<Strat> you've already given me idea to use the CRC
<Strat> but as for a files data
<Strat> do you think I should have a file name and CRC of EVERY file in the mod? or just critical files?
<Strat> I've been thinking that there are a lot of pictures
<Strat> and if a few are missing, well that will crash OP
<Bonk> hmmm.... you could skip textures....
<Strat> and the chooser could catch that
<Strat> but thats a BIG list
<Bonk> ah perhaps
<Bonk> depends on how ffast you can get t to run and store...
<Bonk> ini editing/checking capability might be good too...
<Bonk> (warp doubling)
<Strat> aha!
<Strat> good idea!
<Strat> I wrote that down lol
<Bonk> of course only modifying the desired lines of sfc.ini
<Strat> right
<Strat> and I've done that in my oldder version
<Bonk> I'll copy this chat transcript to a thread int he beta forum if that's OK with you
<Bonk> so we have a record
<Strat> sure thing
<Strat> back to my long question
<Strat> lol
<Bonk> shoot
<Strat> If I save file data on ALL files in a devs mod, where do you think a good place is to store alll that info?
<Strat> Not the registry?
<Bonk> i'd be tempted to use a flatfile db
<Strat> I don't know how to do that
<Strat> lol
<Strat> yet I guess, if there info on how
<Bonk> I have a setup to read a flatfile db in VB
<Bonk> nice n simple
<Bonk> csv db loadable in excel
<Bonk> just used a standard ms schema.ini
<Strat> just a tab delimted Text file?
<Bonk> I'll pass it along to ya
<Strat> ok
<Bonk> csv, but tab delimited would do to...
<Bonk> it ws for a F&E project that never took off
<Strat> do you know how to make a program read a compressed file?
<Strat> like op does with sounds and music?
<Bonk> with php or NSIS yes
<Bonk> should be doable in C
<Strat> but not VB?
<Bonk> also in VB
<Bonk> might take a windows api call...
<Bonk> or something like zlib
<Strat> I think compressing the flatfile with all that info would save a considerable amount fo space
<Bonk> have you called a dll in VB?
<Strat> no
<Strat> Hev'ent really messed with DLLs yet
<Bonk> no compressions would only slow access to a flatfile db
<Bonk> the simple databse code I have is witten for a dll
<Strat> well text I suppose doesn't take up that much space relative speaking
<Strat> like a 500 Meg Mod
<Strat> ok
<Bonk> a vb dll that is, I just called it from a simple form to test it
<Bonk> you'll see when I send it to ya...
<Strat> excellent
<Bonk> might try and make a simple windows API call project
<Bonk> like calling muldiv
<Bonk> opens a lot of doors for bv
<Strat> just to test it out yeah
<Bonk> *vb
<Bonk> lets start a thread in the beta forums for development
<Strat> ok
<Bonk> and send ya that old F&E project (was for VB5)
<Strat> you may also put my PM
<Strat> oh wow lol
<Bonk> oh might have been VB 6 I forget now...
<Bonk> but it should be readable/convertable
<Strat> VB 5 is rpetty old
<Strat> yeah
<Strat> I tell what one of the thing most frustrated me was hardcore
<Strat> The installer will NOT install hardcore if you have OP+ 4
<Strat> and a mod choose cant change a od that wont install itself if there are other mods
<Bonk> the idea is OK but making all the pirate ships bpv 999 was not such a great ideaIMO
<Strat> lol
<Bonk> ah, yes I see your difficulty
<Strat> yeah so I was pissed
<Strat> but I got over it lol
<Bonk> well, I'll go start that thread and pack that old vb stuff up to mail to ya
<Strat> sounds great
<Strat> Thanks Bonk

Which should give you the idea of where we're going here.

Todo:
- discuss/establish a propsed standardised mod structure and information file.
- decide on a SFC Direct - Mod chooser integration strategy (command line with mod codes...?)
- discuss coding details.

And whatever else comes along!  ;D  Just wanted to get something down to get the ball rolling on this. (myself, I need to put some more work into the serverside of SFC Direct to get it up and running, its not far off now.)
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
A windows API call to get the command line:

Code: [Select]
Public Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String

Might come in handy... ;)
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
A possible CRC utility for you in VB:

http://www.di-mgt.com.au/crypto.html#CRC

or perhaps:

http://edais.mvps.org/Tutorials/ZLib/ZLibch2.html

would be better...

or maybe:

http://homepage.ntlworld.com/chris_a/#CRCOcx  (this one looks most useful if it will work in VB 2005)
« Last Edit: March 26, 2006, 02:50:27 pm by Bonk »
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
Ok, let me expand a little further on what I want to accomplish.

Problems/Challenges

1) Myriads of Mods
-  Right now ther are many mods for OP, and Mods are continually made as the Dyna progresses
-  As mods are made by different people, there wind up eing many installs, many batch files, many copies of files, and there is no guarantee that mods will not interfere with one another.  This is especialyl true as eachd dev makes his own Batch files that only switch specific mods.
- it is inevitable that people less familiar with computers as a result of this confusion will corrupt thier OP install, which lead to next challenge

2) OP File Corruption
- As of now, it is not to difficult to corrupt an Op install to the point where a complete reinstallation is nessesary
- There is no quality check before the game is launched, causing untold number of crashes when finally in match

3) Verification
-  not technially a problem, but a shortfall
- No Launchers check the loaded lists if hey are appropriate for the game they are joining
- Means possible crashes, not for file corruption, but wrong mod loaded

4) Ease of use
- Not all Op players are technilogically inclined
- for many, having many different mods is too much to handle
- they don;t know what cuases crashes
- they don't know how to fix Op when te install goes bad
- They don't know how to configure GameSpy for multiple installs of OP
- What they really like a point and click for everything in one place

I think that hits the main points.   For a while I've been wanting a solution, and my first incarnation of the Mod Chooser dealt with a few of the issues.   Now I want to work on a more thorough and complete solution.

Current Version 6.5 Shortfalls I wish to address in next version:
1) File Verification
- Does not scan ALL the appropriate files
- Scans by file size, next version will use MD5 or CRC for file verification
- Provide command line based access to load (or make sure loaded) a specific mod before OP is launched

2) Only 4 mods
- Next version do 14 Mods, more is possible, but highly unlikly to be needed

3) File Corruption
- Next version will feature a specific feature to repait Op in such a way to prevent the need for complete reinstalls

4) Many Mods
- The mod Chooser will be able to organise and make compatible most of not all mods
- I propose a way though, that devs in the future, will design thier mods in such a way to directly inegrate with the Mod Chooser
--- The future will provide a way for te Dev to give it information such that it automatically know the new mod is there w/o having to detect it
--- The devs will also provide nessesary file information to verify the files (the CRC or MD5 info)
------ Else, the Mod chooser can detect this info on mod install, thought not as sure as if the Mod Developer provided it

5) easy to use! The Mod Chooser features:
- Auto Repair (Does a quick scan at startup if files are damamged)
- Deep Repair (does a deep scan of all OP files and Mods to verify thier quality)
- Point and click interface for changing Mods
- Auto Detection of Mods
- Mod File Back-up and Restore (smaller files)
- Auto Clean (If 1 Mod becomes damaged, remove the mod and all registry and files related to it)
--- This makes the reinstallation of the Damaged easier
- Auto Integration with new mods (Provided the devs follow guidelines and give needed info to the Chooser)


Now I have sat down and been writing psuedo code and notes to do all this, its just a matter of hasing so some few details left and seeing how the Devs feel about the ideas.  Some of it does require them to do things a little different, for better compatibility and standarization.

I'll post more as I have the time.

Strat

Logged

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
Ok, here are more of my plans.

1) The database holding the File verification information will be encrypted.
This will prevent, after inegration with the SFC Direct launcher, a person from modifying the DB to possibly allow some custom file to be loaded while launching SFC.

Using the Mod Chooser as a launching utility, it will effectively prevent any kind of cheating (from edited files) by only allowing certain files to be loaded in order to join the game session.  This is further compounded by the fact that even the SFC Direct contains encryption to dissallow poeple to simple find a seesion's IP and joining manually.

2) I have also decided to create this version to switch any file in the OP directory that the Mod Developer chooses, as long as the Developer provides the Mod Switcher with the nessary information.  Otherwise, the Mod Chooser will only change more default files, those modable without the source code, and only those that are likely to be modded.  It will do this by scanning a preset list of files to see if any are edited.

3)The mod developer will be able to supply information to the Mod Chooser
-  The way this will work has not been totally decided yet, but I have in mind that the Dev will simply, using his Mods installer, put a text file with a specific name in the Mod Chooser Directory.  The text file will be a list of Files in his Mod, perhaps thier location, and thier CRC or MD5 (Not yet decided which I will use).  The Mod chooser will load these file details into its encrypted database, verify the mods integrity according to the file, make the mod available for selection, and erase the txt file the mod developer provided.
Edit:
- I think I will have the program leave the Mod Installer's File Detail list indstead of deleting it.  Having one of these with every mod gives an additional way of providing proof of the integrity of a mod.  Even if I encrypted the DB, without this file nothing prevents a creative person from making his own Mod with edited files and using the same Mod code as another mod.  When the mod chooser imported this mod, it would have false files, but it would not know that.

- Solution:  Leave the file detail list provided by the Dev for his mod, and have the the SFC Direct provide this File's MD5 and Mod Code to the Chooser for launching OP.  Even if the 'creative person' had edited the mod and kept another mod's Mod Code, he could not escape the fact his installer file has a different MD5.  The chooser would have to very the MD5 of the installer file also, so that the 'creative person' did not simply install his own mod, then replace his installer file with the installer file of the genuine mod.


4)  This will also depend on the Devs agreeing to a standerd of how they make thier mods.  Basically in the location of the files.  I propose the following:
--OP DIR
----|
----|-Assets
----|-ect
----|-Modifications
-----------|
-----------|-<Mod>
-----------|-<Mod>
-----------------|
-----------------|-Specs
-----------------|-Models
-----------------|-Strings
-----------------|-MetaAssets
-----------------|-Bitmaps


Of course more or less directories depening on what files a Mod is composed of. Just as long as this pattermn is followed, which almost directly mimics OP's existing directory structure, things are very well organized.  I think for the most part, the only thing a Dev would have to adjust is the location if his models and the shiplist ofr that new location.  The Mod Chooser will relocate all other files as needed.

I also suggest that the Stock models Folder not be edited Except for the Models.siz file.  This is just for data integrety issues, it would take too much room for the mod chooser to back up all those files.  Of course, there is no preventing a person from editing his own stock models folder. No data verification will be done on the bitmaps in the Stock models folder, there is no need as long as no mod edits it.  Also follows though, that if the adventurist screws up his OP by editing the Stock models, the Mod Chooser can not repair it.  The Mod Chooser will however verify that the files EXIST, so that a model for every ship exists and the absence of one can not crash OP. This will also mean that any mod(shiplist) can point to stock models and expect that they will be there.

I think this will make an excellent tool for OP.

Let me know you guys thoughts.
« Last Edit: April 02, 2006, 10:14:09 am by Strat »
Logged

KBF-Crim

  • 1st Deacon ,Church of Taldren
  • Global Moderator
  • Captain
  • *
  • Online Online
  • Gender: Male
  • Posts: 8756
  • Crim,son of Rus'l
Drool....
Logged


Klingon ARM

 “The religion of Islam above all others was founded upon the sword … Moreover it provides incentives to slaughter, and in three continents has produced fighting breeds of men – filled with a wild and merciless fanaticism”. – Winston Churchill

http://falconparty.com/

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
I need to celebrate!

I just finished the encryption module!
 :multi: :woot: :tonybanks:

This will allow, like mentioned above, us to make sure that with the integrated SFC Direct, only certain files can be loaded in OP for someone to join a game session.

No, I don't expect anyone to cheat, but I figured, why not do it?  It only adds more capability to the program and its make me think.

I see this feature having more impact if the source ever got released.

Logged

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
I wish I could currently share your enthusiasm. Unfortunately other factors have interfered. I had some comments to make and some more input, but they have been completly wiped from my mind. Hopefully these interfereing issues can soon be resolved one way or the other.  :(

Edit: I'll get back to you with my thoughts as soon as I can gather them up again.
« Last Edit: April 02, 2006, 04:52:11 pm by Bonk »
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
Update:

Today I finished the MD5 file checking function, and the commmand line parameters.

The hardest part I'm facing in connecting to a random access data file, but I'm going to have some help from some programmers I know that will help me set up a database.

I've been thinking about the command line parameters:

/loadmod:<modcode>
'Will cause the switcher to switch to the defined mod if it exists, without opening a GUI except for a progress bar

/modhash:<md5hash>
'Optional to accompany the loadmod command.   Will provide the switcher the MD5 of the mod's installer file to verify the integrety of the mod fixing to be loaded.

/checkmod:<modcode>
'Just threw that is there as an idea.  basically returns if a mod is valid or not.  Could return (damaged, OK, non existant)

/fullscan
'Will do a full scan of all mods and OP files to verify they are OK

/devmode
'also just an idea, a special mode for a mod dev to run the mod chooser in.  One major function would be for the Switcher to scan an installation of OP (where OP was clean installed with the Mod devs mod only mod installed over it) to generate the Installer file and all the MD5 file data needed.

Lest not forget

/help
'that should be self explanatory.

Ideas anyone?
Logged

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
Update:

Today I finished the MD5 file checking function, and the commmand line parameters.

...

I've been thinking about the command line parameters:

/loadmod:<modcode>
'Will cause the switcher to switch to the defined mod if it exists, without opening a GUI except for a progress bar

/modhash:<md5hash>
'Optional to accompany the loadmod command.   Will provide the switcher the MD5 of the mod's installer file to verify the integrety of the mod fixing to be loaded.

/checkmod:<modcode>
'Just threw that is there as an idea.  basically returns if a mod is valid or not.  Could return (damaged, OK, non existant)

Whoot! Good job man!

These make sense to me and I should be able to work them into SFC Direct. Though using the form:
/LOADMOD=<modcode> would be much easier for me to deal with.

Oh wait though, I cant use an MD5 hash in a url as some of the characters used get mangled in a url. But the /CHECKMOD=<modcode> ought to do the job... ah but wait... if you base64 encode the md5 hash I could use it in urls... though I think just the other two parameters would be needed for basic SFC direct integration anyway (in such a way that would not require updating SFC direct with mod files MD5 hashes as they are added...)

Has the mod chooser got a registry key for its install location so I can tell SFC Direct where to find the copy of it installed on the client machine?

More thoughts on mods standardisation in general to come....
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
Hey,

Do you need the parameter to be all caps?

/LOADMOD=

Or does it matter?

As for the = or :, its very easy for mr to use either, so I will use '=' for you.

Also, can you give me some information about base64 encoding?

Logged

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
= would be great, all caps is not really necessay but is just the way I have been doing it.

I'll see what I can dig up for ya on base64 encoding...

About that Mod Chooser install location registry key? (I could dig for the existing one but I do not see an uninstalltion entry for it in my add/remove programs dialog..)
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
I will make sure there is a key. ;)

Something like HKLocalMachine\Software\ModSwitcher
dir=<location>
Logged

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
Cool...

Base64 stuff...:

http://en.wikipedia.org/wiki/Base64 (relevant RFCs linked here)

and from one of the same sites linked above:

http://www.di-mgt.com.au/crypto.html#Base64

Some hits on a google search: http://www.google.ca/search?q=base64+encoding+in+VB

http://www.aspsimply.com/vb/MIMECode.aspx

http://www.sevillaonline.com/ActiveX/Base64.htm
(also http://www.sevillaonline.com/ActiveX/code_snippets/crc32.htm linked from http://www.sevillaonline.com/ActiveX/)

And from MSDN:
http://lab.msdn.microsoft.com/search/?query=base64

Using the .NET Framework SDK:

http://msdn2.microsoft.com/en-us/library/system.xml.xmltextreader.readbase64.aspx

Visual Basic (Declaration)

Code: [Select]
Public Function ReadBase64 ( _
    array As Byte(), _
    offset As Integer, _
    len As Integer _
) As Integer

Visual Basic (Usage)

Code: [Select]
Dim instance As XmlTextReader
Dim array As Byte()
Dim offset As Integer
Dim len As Integer
Dim returnValue As Integer

returnValue = instance.ReadBase64(array, offset, len)


http://msdn2.microsoft.com/en-us/library/system.xml.xmltextwriter.writebase64(VS.80).aspx

Visual Basic (Declaration)

Code: [Select]
Public Overrides Sub WriteBase64 ( _
    buffer As Byte(), _
    index As Integer, _
    count As Integer _
)

Visual Basic (Usage)
Code: [Select]
Dim instance As XmlTextWriter
Dim buffer As Byte()
Dim index As Integer
Dim count As Integer

instance.WriteBase64(buffer, index, count)


There, that ought to just about cover it! ;)
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
Actaully these classes should be more appropriate than the xmlwriter methods:

http://msdn2.microsoft.com/en-us/library/system.security.cryptography(VS.80).aspx

Covers MD5 and base64... among other more sophisticated encryption algorithms.
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

KBF-Crim

  • 1st Deacon ,Church of Taldren
  • Global Moderator
  • Captain
  • *
  • Online Online
  • Gender: Male
  • Posts: 8756
  • Crim,son of Rus'l
Id there anyway to set up something like a "first aid"?

I cant tell you how many times I screwed up my whole installation switching something basic...
Logged


Klingon ARM

 “The religion of Islam above all others was founded upon the sword … Moreover it provides incentives to slaughter, and in three continents has produced fighting breeds of men – filled with a wild and merciless fanaticism”. – Winston Churchill

http://falconparty.com/

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
Id there anyway to set up something like a "first aid"?

I cant tell you how many times I screwed up my whole installation switching something basic...

That's exactly one of the features Strat is looking at; a "Repair OP Installation" function of some sort I think... I'll let him fill you in on it though.

edit: yup... check above:

Quote
...
5) easy to use! The Mod Chooser features:
- Auto Repair (Does a quick scan at startup if files are damamged)
- Deep Repair (does a deep scan of all OP files and Mods to verify thier quality)
...
http://www.dynaverse.net/forum/index.php/topic,163365813.msg1122696594.html#msg1122696594
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
Id there anyway to set up something like a "first aid"?

I cant tell you how many times I screwed up my whole installation switching something basic...

That's exactly one of the features Strat is looking at; a "Repair OP Installation" function of some sort I think... I'll let him fill you in on it though.

edit: yup... check above:

Quote


...
5) easy to use! The Mod Chooser features:
- Auto Repair (Does a quick scan at startup if files are damamged)
- Deep Repair (does a deep scan of all OP files and Mods to verify thier quality)
...
http://www.dynaverse.net/forum/index.php/topic,163365813.msg1122696594.html#msg1122696594


Exactly  ;D
Logged

KBF-Crim

  • 1st Deacon ,Church of Taldren
  • Global Moderator
  • Captain
  • *
  • Online Online
  • Gender: Male
  • Posts: 8756
  • Crim,son of Rus'l
OK Ok....I read that before and forgot.... ::)

Anyways...I know many will appreciate that... ;D
Logged


Klingon ARM

 “The religion of Islam above all others was founded upon the sword … Moreover it provides incentives to slaughter, and in three continents has produced fighting breeds of men – filled with a wild and merciless fanaticism”. – Winston Churchill

http://falconparty.com/

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
Actually, let me ammend my command line parameter request:

If you could make the mod chooser accept command line paramters of the style:

ModChooser.exe -loadmod:<modcode> -modhash:<md5hash> -checkmod:<modcode>

That would actually be the easiest for me to deal with, now that I think about it... but I should be able to handle just about any format really...
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
I have updated the SFC Direct installer:
http://www.dynaverse.net/sfcdirect/sfcdirect_setup.exe
(uninstall old version)

And have updated the tests page:
http://www.dynaverse.net/sfcdirect/test.php
to include a sample firewall checking link and some sample Mod Switcher Links.

SFC Direct is currently setup to look for the ModChooser install dir in:
HKLM "SOFTWARE\ModSwitcher" "dir"
And will execute the example links as
ModChooser.exe -loadmod:opp4
or
ModChooser.exe -checkmod:opp4

Just let me know if the executable name changes (ModSwitcher.exe?) or if you use a different regkey for the install location.

We'll need to settle on some modcodes soon...

I was thinking:
stock
opp4
opp4hc
uaw (plus versions)
sfbop4
etc...

Let me know what you think of this stuff. I can adapt as necessary if any of it is a problem...

...Working on a basic game matching page today...
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
..., now that I think about it... but I should be able to handle just about any format really...

lol Bonk!

You are so funny :p

Ok, I'll makes dashes '-parameter=' instead of slashes '/parameter='.

Also you said that you would accept '-modhash=<md5hash>' now.  Does this mean that you found a way that Base64 would not be nessecary?  If not, thats ok too, I just want to be clear.
Logged

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
I have updated the SFC Direct installer:
http://www.dynaverse.net/sfcdirect/sfcdirect_setup.exe
(uninstall old version)

And have updated the tests page:
http://www.dynaverse.net/sfcdirect/test.php
to include a sample firewall checking link and some sample Mod Switcher Links.

SFC Direct is currently setup to look for the ModChooser install dir in:
HKLM "SOFTWARE\ModSwitcher" "dir"
And will execute the example links as
ModChooser.exe -loadmod:opp4
or
ModChooser.exe -checkmod:opp4

Just let me know if the executable name changes (ModSwitcher.exe?) or if you use a different regkey for the install location.

We'll need to settle on some modcodes soon...

I was thinking:
stock
opp4
opp4hc
uaw (plus versions)
sfbop4
etc...

Let me know what you think of this stuff. I can adapt as necessary if any of it is a problem...

...Working on a basic game matching page today...

Yeah this all looks great.  I'll be making this next version called the 'Mod Switcher' so yeah, the exe will be 'ModSwitcher.exe'.

Other than that, we're moving ahead!

The codes are what I was thinking too.  Simple acronyms that are self explanatory about the mod they represent.

Feels funny though that you are so far ahead of me, you'll have the SFC Direct able to call the Mod Switcher before it even has a exe. :p

Good work! and Thanks!
Strat
Logged

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
And have updated the tests page:
http://www.dynaverse.net/sfcdirect/test.php
to include a sample firewall checking link and some sample Mod Switcher Links.

SFC Direct is currently setup to look for the ModChooser install dir in:
HKLM "SOFTWARE\ModSwitcher" "dir"
And will execute the example links as
ModChooser.exe -loadmod:opp4
or
ModChooser.exe -checkmod:opp4


I took a quick peak at the new pages.  I like the firewall idea.  I see it does a ping test to see if everything is in order.

One question:  What about NAT's and port forwarding?  I guess there is no way to test if a person has port forwarding set up right unless we make some kind module that would run from both server and client side to test port communications.

I guess there may be no simple way to test for that.

What do you think?
Logged

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
..., now that I think about it... but I should be able to handle just about any format really...

lol Bonk!

You are so funny :p

Ok, I'll makes dashes '-parameter=' instead of slashes '/parameter='.

Also you said that you would accept '-modhash=<md5hash>' now.  Does this mean that you found a way that Base64 would not be nessecary?  If not, thats ok too, I just want to be clear.

sorry to flipflop....  :-[  Hope its not too much of a pain...

I have it currently set up to use parameters like -loadmod:opp4 (colon instead of equals sign)

I'd still need to have the MD% hashes base64 encoded if we decide to implement that functionality in SFC Direct.

I'll update SFC Direct to call ModSwitcher.exe

You going to use that regekeey for the install dir?
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
Oh hey, just another brainstorming idea.  I could have edited the previous post, but you might have missed it.

Check out this site. descent.cx

It does similar to what you are working on.  (Yeah I used to play Descent, cool game!)

Click on a server's IP to see the join page.  I dont' know how they do what they do, but there they can use almost any character, I estimate, in the call to launch the game.


;)
Strat
Logged

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
I took a quick peak at the new pages.  I like the firewall idea.  I see it does a ping test to see if everything is in order.

One question:  What about NAT's and port forwarding?  I guess there is no way to test if a person has port forwarding set up right unless we make some kind module that would run from both server and client side to test port communications.

I guess there may be no simple way to test for that.

What do you think?

Ya, would be nice to check for proper NAT function but it would be a bit complicated to get into. I looked at creating a port scanner in php to scan the directplay ports but the problem is it does not detect them unless there is an application currently listening on those ports, so the SFC Direct client would have to coordinate with a serverside port scanning script, a bit complicated to get into now, I need to get a basic game matching page setup, but NAT detection may be something I'll look at in more detail later. It would be awful handy to have (for D2 troubleshooting as well... something like the directplay test host of SFC3...)
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
You going to use that regekeey for the install dir?

By your command!

HKLM\Software\ModSwitcher\Dir=<path>

Edit:  ok, I'll be using the colons too in the parameters.

Ex: -parameter:<value>
Logged

Bonk

  • Ringworld Child
  • Administrator
  • Captain
  • *
  • Offline Offline
  • Posts: 9597
  • Tanj!
Oh hey, just another brainstorming idea.  I could have edited the previous post, but you might have missed it.

Check out this site. descent.cx

It does similar to what you are working on.  (Yeah I used to play Descent, cool game!)

Click on a server's IP to see the join page.  I dont' know how they do what they do, but there they can use almost any character, I estimate, in the call to launch the game.


;)
Strat


INteresting, I'll check that out.

Sounds similar to:
http://aluigi.altervista.org/papers.htm#gslist

Which I'm using here:
http://www.dynaverse.net/gslist.php
(hmmm gamespy looks empty there at the moment... I need to confirm this poage is still working properly after the move to the new server...)

It also has the capability to launch and join games but is a bit complicated to configure for the client for the point and click crowd we're aiming for here...
Logged

Reality is what doesn't go away when you stop believing in it. - Philip K. Dick

Strat

  • D.Net Beta Tester
  • Lt. Junior Grade
  • *
  • Offline Offline
  • Posts: 349
It also has the capability to launch and join games but is a bit complicated to configure for the client for the point and click crowd we're aiming for here...

Hehe, I'm with ya there.

I just suggested it becuase it seems very friendly with calling command line parameters. (for the MD5 issue)

But under the assumption that it is not feasab