Log in

View Full Version : Taking MODs in another direction


Commander Gizmo
10-25-08, 01:07 AM
There are many things in SH3 that are not modifyalbe by us poor commoners due to copywrites and hard coding. These limitations are certainly felt in the moding community. I have stumbled upon a possiblity that I don't think has been yet explored.

Has anyone considered trying to locate the memory addresses for the different data points in SH3? Doing so would allow a trainer-esque type of MOD that edited the data in real time to create senarios that would be otherwise impossible. While this is certainly trickier than regular moding and could be impossible, I think it is worth a look.

If anyone has checked into this or considered it, please let me know what you found. My programming expertise are not well practiced in this particular area, but I get the mechanics of it. Perhaps we could make a go of it together?

makman94
10-25-08, 10:34 AM
nobody? !!

very strange this modder's silence...maybe there is something special here !

gismo, my knowledge at theese things are pretty poor but if your idea have no answer by modders does that mean that is out of discassion? i don't understand theese things but a modder ,sure, can and if i was one of them i defenately search it!

good luck

Madox58
10-25-08, 10:39 AM
It's not far fetched and has and still is being looked into.
;)

A DLL intercept is also very possible to do.
:cool:

Graf Paper
10-25-08, 03:32 PM
YARRR! Thar she codes, mateys! Get the DLL Hooks ready and prepare to board! :arrgh!:

geosub1978
10-25-08, 03:39 PM
dlls! Hmmm! Possible to do....hard to get results!

makman94
10-25-08, 04:18 PM
(this is out of the theme of this thread)

geosub which is the skin of the sub in your signature? (very nice...)

Madox58
10-25-08, 04:25 PM
dlls! Hmmm! Possible to do....hard to get results!

Not as hard as you invision.

One thing you must be good at?
Reading assembly language!

My first language is assembly.
Then C and on to C++

Then you need the programs to read the assembly code
as the Game is run.
Got those.

One screen runs the Game, the other runs the code!
:rock:

Graf Paper
10-25-08, 06:15 PM
DLL hooking and injecting is an old, tried and true method for making software do things the original programmers did not intend.

Cracks and game trainers have used that method for years... along with pointer spoofing, stack insertion, and buffer swapping.

Makes me feel all misty-eyed and nostalgic for the good ol' days! *sniff* :cool:

Madox58
10-25-08, 09:09 PM
:roll:
:nope:

FIREWALL
10-25-08, 09:11 PM
While I don't have a clue what you guys are talking about , I'm impressed and even envious. :yep: :up:

kylania
10-25-08, 09:23 PM
Will people use programs which will most certainly be picked up as viruses/trojans? This seems like a dangerous path to go down to be honest. While the OP might have only noble goals in mind, I can certainly see someone taking advantage of this in other ways.

JScones
10-25-08, 09:24 PM
It's not far fetched and has and still is being looked into.
;)

A DLL intercept is also very possible to do.
:cool:
dlls! Hmmm! Possible to do....hard to get results!

Not as hard as you invision.

One thing you must be good at?
Reading assembly language!

My first language is assembly.
Then C and on to C++

Then you need the programs to read the assembly code
as the Game is run.
Got those.

One screen runs the Game, the other runs the code!
:rock:
:o Why be so convoluted? You only need a small TSR and a smidge of lateral thinking. SH3Cmdr has been using a small TSR for years to intercept SH3 behaviour.

Here's a hint for one great way to use such a simple TSR - saving a game mid-patrol creates a trigger point for any number of game changes that can occur *without* the player needing to exit the career, run a third party app and reload. ;)

Date based graphics changes mid patrol? Let me just say...I know it can be done. ;)

And the way SH3 memory is handled, even simple BASIC Peek/Poke instructions should suffice.

Enjoy reading your assembly!

Graf Paper
10-25-08, 10:23 PM
The master has spoken!

Heed his words.

Trust his wisdom.

Learn much.

:rock:

Hitman
10-26-08, 02:59 AM
Forgive my ignorance but....

this all sounds very interesting -and also frighteningly close to the ilegal modification of the program's core- but what exactly could be done with this? I mean, the things that are as of today still the big letdowns in SH3 like Wolfpacks can't be added like this. Or can they? What areas of the game could be improved using this technique?

To add an AI for submarines that allows submerging, evading and such -and hence allow wolfpacks- by adding it to an extra DLL and then telling the game to read it, you would need to know how the game is programmed inside its exe so you can use the same format, right?

Can that be done?

Can it be done without -ilegally- reverse engineering the whole exe? :hmm:

And will all this be worth it?

Commander Gizmo
10-26-08, 04:40 AM
@Hitman: The main method of this sort of thing would be editing the game data in memory while it is running. This is not illegal, and is how trainers work. The main usefulness of this would be to cause events to occur in game such as changing crew stats, adding map data, simulating mechanical problems, etc. These sorts of things would still be limited, but would be far better than having to close the whole game down, run an exe, and then launch and load it all over again.

Letum
10-26-08, 05:30 AM
Forgive my ignorance but....

this all sounds very interesting -and also frighteningly close to the ilegal modification of the program's core- but what exactly could be done with this? I mean, the things that are as of today still the big letdowns in SH3 like Wolfpacks can't be added like this. Or can they? What areas of the game could be improved using this technique?

To add an AI for submarines that allows submerging, evading and such -and hence allow wolfpacks- by adding it to an extra DLL and then telling the game to read it, you would need to know how the game is programmed inside its exe so you can use the same format, right?

Can that be done?

Can it be done without -ilegally- reverse engineering the whole exe? :hmm:

And will all this be worth it?

On the legal aspect: All modding is a breach of the user agreement and therefor illegal without permission. So I would not worry too much about that.

Uber Gruber
10-26-08, 06:29 AM
This is indeed an interesting topic...something which JScones "hinted" at a few Sh3Commander releases ago. There is quite a lot of stuff that can be "played with" in mem via a good TSR.

Takes me back to my Commodore PET days....oh bring back the 6502E....and the horse 'n cart.

:rock:

Graf Paper
10-26-08, 06:52 AM
Actually, modding SH3 is legal...within certain limits.

Although it may or may not give explicit permission in the EULA, the fact that mods are listed and promoted in the Community section of the SH3 homepage and Ubi Forums does give an implicit permission.

Also, the mods we've seen so far do not require decompiling or reverse-engineering the game's program code, either with a tools like a disassembler or by hand (although you'd have to be an uber-programming god and/or crazy to do it by hand).

Ubisoft is very aware that SH3 has been far more popular and successful because of the efforts of dedicated modders. Nobody here is trying to steal Ubisoft's secrets, just make SH3 the best sim it can possibly be and all for the love of the game, not financial profit. It seems Ubisoft understands this and the "suits" are smart enough to realize the goodwill generated with this community can only ensure greater successes for the Silent Hunter Franchise in the future (if they listen to their fans).

As for what can be achieved with the methods speculated upon in this thread, I refer you back to JScones' post to contemplate some ideas.

Letum
10-26-08, 08:24 AM
Also, the mods we've seen so far do not require decompiling or reverse-engineering the game's program code

Even a simple skin replacement requires basic reverse engineering and it doen't
need to be part of the .exes or .dlls to be against the user agreement.
Even if there was a file called uboatskin.tga, you still have to change it, run the
game and see if the skin has changed. All such activity is reverse engineering.

Of course, there will never be any complaints from the copyright owners because
almost all modding is good for business. Same applies to the modding under
discussion here.

Back on topic:

I had a go at editing some of the .DLL a while ago. I got results, but not the
ones I wanted.

Commander Gizmo
10-26-08, 11:17 AM
Thanks for the input guys. I think this would be a very interesting addition to the game. What are your ideas on how to make use of memory editing as such? Any new events/changes that havn't been mentioned yet?

This thread is for discussing the creation, use, and viablity of this idea from a programming standpoint. All issues regarding legality should be fought over in a seperate thread. Lets keep this on topic people.

Letum
10-29-08, 06:37 PM
If you could change the weather patterns.....that would be good.

Simdata.dll has to word "weather" in it several times. It might be a good place to look.

Laufen zum Ziel
11-01-08, 12:22 PM
While I don't have a clue what you guys are talking about , I'm impressed and even envious. :yep: :up:



Me too! Got to love this forum

Laufen zum Ziel
11-01-08, 12:28 PM
Confused with no idea of what you guys are talking about but if
it concerns mods and mod abilities I LOVE IT.

Like a lot of others I can not mod so I depend on Subsims great
modders to keep this simulation better and better.

Never give up on thinking of more and more.



Me too! Got to love this forum

Laufen zum Ziel
11-01-08, 12:30 PM
Confused with no idea of what you guys are talking about but if
it concerns mods and mod abilities I LOVE IT.

Like a lot of others I can not mod so I depend on Subsims great
modders to keep this simulation better and better.

Never give up on thinking of more and more.