Page 2 of 4 FirstFirst 1234 LastLast
Results 21 to 40 of 74

Thread: MMM modding memory modified

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    /|\/|\/|\/|\/|\/|\/
    Join Date
    Jun 2005
    Posts
    10,770

    Default Re: MMM modding memory modified

    This conversation is becoming very confusing... you appear to present evidence of your error as if it proves you are correct. I wonder if you are completely misunderstanding me, and possibly I misunderstand you too.

    I have not said that config_ai_battle.xml is generated randomly, also I know through my own testing that this is not true. I've said that the one in the pack is not used when there is none present, and that the behaviour is generated by the .exe alone. I discovered this by myself about a year ago when noone else in the community appeared to know it. And my discovery now appears to be something that you are agreeing with, where you were disagreeing with it in the previous post.

    Test 1, is meaningless to me but I trust it has some for you, and I respect that, I wish it had the same for me. So I am not willing to guess at the meaning of what you are looking at here, as I think you are doing to some extent, because I lack the time to test my guesses. I would consider experience of behaviour in the game to be more reliable than interpretation of code, I suspect that it is with this we should be at first interpretting what we find in the .exe and memory. Not the other way around.

    Test 2, just illustrates exactly what I have told you, and it should have you admitting that you were wrong to assume the AI in the pack would be used:
    Quote Originally Posted by Argantonio View Post
    For that MTWII reads obstinately config_ai_battle.xml packed.
    It is very strange that you seem to be presenting Test 2 as evidence of you being right when as far as I can see your test shows you were wrong... And it can't be evidence of me being wrong since it illustrates and confirms my point perfectly, it demonstrates the discovery of mine which I was explaining to you in the first place.

    We don't seem to be disagreeing at all about what is happening anymore, since with your latest post you seem to have started to agree with me. Perhaps we are getting confused with different ways of representing the same thing. I'm sure you can appreciate that it would piss me off if you pretended to already know something which I discovered, and after telling me that my discovery was in error.

    So now that, hopefully, we are understanding each other better, do you see what I was talking about in post 18? Do you think it's possible that with your investigation you might find a way to extract more settings to an .xml? Or maybe you think it's probable that in order for this to happen the .exe would need to be edited to look outside itself at the right moments, which means legal problems.

    Ideally the stuff which determines which unit will attack which other unit, since being largely unable to control this is a massive limitation to AI modding.

    I realise I am asking on the off-chance, I do not know what is possible and so I ask you, who I hope might. I don't expect you to know, but I thought you might have an idea...


    Please don't let me detract from discussion of what you are actually doing, which is very interesting indeed

    On topic with that, have you managed to automate a 'memory modification' process yet? It would be great to see an example of it actually working in a mod.
    Last edited by Taiji; January 04, 2010 at 12:34 PM.

  2. #2

    Default Re: MMM modding memory modified

    I am surprised.
    You are right , and sincerely I have not understood anything of what you have said.

    1) I understood , "that the MTWII does not need the file config_ai_battle.xml , to work, since it regenerates, produces or has in his interior the file config_ai_battle.xml"
    Correct?
    2) My previous post confirms, that you are right, MTWII can works without config_ai_battle.xml, but it does not regenerate a new file, directly it omits his content and works badly,"resigned" and "pacific" manner. without "ai brain".


    Certainly, is an opinon ," based on tests that your you consider that evidence of my error "

    "Test 2, just illustrates exactly what I have told you, and it should have you admitting that you were wrong to assume the AI in the pack would be used"

    Repeat for last time : Test2 is realizated without any config_ai_battle.xml, packed or unpacked , repeat without config_ai_battle.xml.

    Nothing more far from my intention that to bother to you , my English is very limited, and for me was difficult to understand your post.
    I repeat lament that happened, my intention is only advanced in the knowledge.



    Thanks to this animated conversation we start to understand that means config_ai_battle.xml not for you that one year ago knows it.
    Last edited by Argantonio; January 04, 2010 at 03:08 PM.

  3. #3
    /|\/|\/|\/|\/|\/|\/
    Join Date
    Jun 2005
    Posts
    10,770

    Default Re: MMM modding memory modified

    I am so pleased we are getting somewhere

    1) & 2) I nearly agree and I can see where I have not made myself clear enough. What I mean is that the behaviour generated is not produced by a config_ai_battle.xml file at all. The .exe does not contain and cannot generate a config_ai_battle.xml. The functions that .exe performs without the config_ai_battle.xml show that some behaviours (like siege defence) are missing. But it also shows that some behaviours and settings that we can adjust with the config_ai_battle.xml are present. Also still present in the .exe are the behaviours that we cannot adjust, and so my hope is to find a way to define them in the .xml.

    Argantonio, I am sorry for my part in the confusion. Also I had really hoped not to get in the way of discussing your work, just to ask a quick question, but sometimes these things are a gamble and I was very excited at the possibility.

    Thank you for your time and patience and if you come across anything about how the AI is deciding which unit to attack, I would be most interested

    edit:

    I've noticed things like AI archers will target a unit until it is down to a certain percentage, and typically all will target the same unit if several come into range at once. And that the unit type attacked can be affected by changing this:
    Code:
    	<missile-analyser>
    		<!-- Adjusts how much importance is placed on the enemy unit's missile strength when deciding to shoot at them -->
    		<missile-strength-base-priority-modifier>0.001</missile-strength-base-priority-modifier>
    	</missile-analyser>
    But as you can imagine with 1 modifier and many unit classes it's impossible to have a sensible system. And there is no way to tell the AI what strength to leave an enemy unit at before attacking another.

    Ideally we can give different unit types different attack priorities, as well as giving them different unit strengths to determine whether to move to the next target. In some places in the AI it does not deal with unit classes exclusively but also reads from the EDU entry's attribute line, or reads different formations from the formation line. In my testing of the missile setting listed above (0.001) I noticed a tendency to target units that lack a shield, though I could be mistaken, so it could also be reading if the unit has a shield, and so logically perhaps it also checks armor. As a bit of a leap here, if we can give armored units a higher attack priority but only for AP weapon units... wow that's a big step forward... there are so many areas like this, it's a tiny sample.

    Any improvement of our understanding of how the existing settings actually function is very valuable also. We can always make a better AI with what we have if we come to understand it better.
    Last edited by Taiji; January 04, 2010 at 03:34 PM.

  4. #4

    Default Re: MMM modding memory modified

    Well, we have a lot of work
    Taiji help me ...


    <missile-analyser>
    <!-- Adjusts how much importance is placed on the enemy unit's missile strength when deciding to shoot at them -->
    <missile-strength-base-priority-modifier>0.001</missile-strength-base-priority-modifier>
    </missile-analyser>


    Where are this code? I dont find in any MTWII file

  5. #5
    /|\/|\/|\/|\/|\/|\/
    Join Date
    Jun 2005
    Posts
    10,770

    Default Re: MMM modding memory modified

    Perhaps it's a new kingdoms thing, I work on a kingdoms based mod. But here is a recent one of mine:

    Attachment 68514

    I think I'm not allowed to upload unaltered vanilla files or I would upload the vanilla one for your reference.

    The thing is that this setting affects missile troops in predictable ways, it might help highlight how the AI is making this targeting decision...
    Last edited by Taiji; January 08, 2010 at 03:12 PM.

  6. #6

    Default Re: MMM modding memory modified

    Is a new label of Kingdoms , in melee-manager section
    I work on MTWII , config_ai_battle.xml ( kingdoms-MTWII) are differents.
    In MTWII <melee-manager> have four sub-labels

    <open>
    <settlement>
    <attack-brace>
    <retreat-analyser>

    Kingdoms have two more

    <outflank-analyser>
    <missile-analyser>

    Difficult for me
    Obviusly new labels there are not in MTWII.exe ( strings) , MTWII cannot recognize it... or yes ?

  7. #7
    /|\/|\/|\/|\/|\/|\/
    Join Date
    Jun 2005
    Posts
    10,770

    Default Re: MMM modding memory modified

    I don't know about m2tw.exe...

    I have to go from holidays back to work right now, or I would answer in more detail ... I want to investigate this myself and right now!!

    I'd suggest you test to see if any behaviour changes in battle. I'm hoping this is an example of already existing .exe function being dealt with using an xml with no adjustment to the .exe ... (praying..)

    edit:

    I think I could have worked it out this morning... both .exes appear to use the same .xml. So yes, it seems it should work fine for medieval2.exe...

    edit:

    Although this is kingdoms 1.5 and possibly medieval2.exe got upgraded in the patching process...

    ...no it seems the date modified on the .exe is 04/08/07.
    Last edited by Taiji; January 07, 2010 at 01:00 PM.

  8. #8
    Opifex
    Join Date
    Feb 2005
    Location
    New York, USA
    Posts
    15,154

    Default Re: MMM modding memory modified

    Argantonio, is there any way to modify where the leader stands in the unit formation (i.e. only to the left for now)?


    "If ye love wealth greater than liberty,
    the tranquility of servitude greater than
    the animating contest for freedom, go
    home from us in peace. We seek not
    your counsel, nor your arms. Crouch
    down and lick the hand that feeds you,
    and may posterity forget that ye were
    our countrymen."
    -Samuel Adams

  9. #9
    xeryx's Avatar Follow the White Rabbit
    Join Date
    Nov 2006
    Location
    Wyoming, Usa
    Posts
    4,337

    Default Re: MMM modding memory modified

    Argantonio,

    Great work, and I gave you a rep!! This is a huge find and definitely takes the steam out of some of the assumptions on the boards. You are the kind of modder that PROVES your work, that scores HIGHLY with me! Here is a huge BEER HUG too..you deserve it!!



    Can you please take some time, also prove the battle_config.xml file as well as you did the config_ai_battle.xml, as there seems to be some dissension about skirmishing. Can you help clear this up? Specifically, is it handled in the hardcode? or not? Or is the battle config just like the config file and loaded into memory...I say yes it is. Then we need to find out why it acts irregular.

    BTW that link, sets off as unsafe to go to tucows.

    Also the missile analyzer does work, however from our testing it is dependent upon another command set. Some things in the battle AI are not, straight-forward. That is why you do not see immediate results when adjusting.

    It is important to note, that new valid commands and combinations can be used. We have successfully done so, many times in our code.

    I think you may have also discounted the file cache, that is not the same as the archived game files, or the vanilla game files.

    There are differences between the versions of the game, for instance 1.2 will not use negative values in the campaign AI and most likely other areas.

    We are interested in facts. Your efforts are greatly appreciated, and we will help..because we seek truth. (time permitting of course)

    BTW
    Quote Originally Posted by Argantonio View Post
    Well, we have a lot of work
    Taiji help me ...


    <missile-analyser>
    <!-- Adjusts how much importance is placed on the enemy unit's missile strength when deciding to shoot at them -->
    <missile-strength-base-priority-modifier>0.001</missile-strength-base-priority-modifier>
    </missile-analyser>


    Where are this code? I dont find in any MTWII file
    it is in the config_ai_battle.xml the one you have been looking at.
    Last edited by xeryx; March 13, 2010 at 02:50 PM.
    Proudly patronized by B. Ward Click Sig Logo for Downloads, Click forums here and here
    "Do not try and bend the spoon, that is impossible, instead only try and realize the truth.
    There is no spoon, and you will see, it is not the spoon that bends, only yourself."-The Matrix


  10. #10
    Yarrum's Avatar Ducenarius
    Join Date
    Nov 2008
    Location
    America
    Posts
    913

    Default Re: MMM modding memory modified

    This is an excellent find. Could this be used to do things like re-assigning settlements to a particular culture or strat map model when they upgrade?

  11. #11
    beho's Avatar Libertus
    Join Date
    Nov 2006
    Location
    Germany, BW
    Posts
    59

    Default Re: MMM modding memory modified

    Hi,



    @ Argantonio great work!

    I got some questions:

    1.) Can you explain how to use Cheat engine? I looked for some tutorials, but I don't know how to use it for medieval2. Maybe you can describe it step by step.

    2.) Is it possible to change the framerate for the cinematic editor? It has no effect when you change the value in the cineeditor.cfg.

    3.) What happens when you change the max. limit of soldiers to more than 300?

    4.) Is there any way to read the positions of the cam you can create with the cineed? ( So you wouldn't have to track the sequences)

    And my last question - would it be possible to convert a battlemap into a 3d format? (like obj, 3ds or somethin like this)


    Pls don't stop your great work.

    Best regars and thanks in advance


    André

  12. #12

    Default Re: MMM modding memory modified

    Thank you for the interest. Many questions
    Cheat engine, is a powerful, complex and dark creature.( created by dark Byte)
    There is not tutorials.
    I dont know to handle it in all his capacities.
    Only I used for vision memory and scanner memory to find values.
    It is very useful to see real time changes
    To follow the coordinates ( x y z) of position of an individual soldier.
    Minitutorial:
    Open Cheat Engine 5.5
    Click Process list
    Open MTWII
    Click on Memory view
    GotoAdress 01958A38
    Display type Float
    Attachment 87154Attachment 87156
    You see the coordinates of your mouse on the map!!
    The mountain out of the map are 3.5 km of of the center of the map and his height is 609 meters
    Really I use it for try to understand the mecanichal of game.
    Remenber Mrs. Bean, "I only sit down and look at the pictures"

    I do not locate this file cineeditor.cfg , in MTWII arrange references to
    cineSettings.cfgXml
    Cine.cameraGroupXml
    cine.cfgXml
    When a change a data on a file and not work, is for two things : or the program reads the packed file, or MTWII.exe limits, modifies or prevents these modifications, placing those dates that it has indicated, ( all the programs are Obstinate )
    I dont know why from 300 soldiers for unit , game crash, I continue searching.
    About the camera and his properties, I havent studied , but I say to you that all information is write , only is necessary to located , read it.

    On the last question ,I have doubts .
    I think that is not possible, because the system that uses the program separates three coordinates
    ; x z are separated of y, let's say that the height plays for different places.
    Let's say that the game is 2d, using the height only for the position of the soil.

  13. #13
    beho's Avatar Libertus
    Join Date
    Nov 2006
    Location
    Germany, BW
    Posts
    59

    Default Re: MMM modding memory modified

    Hi Argantonio,


    thank you very much for your answers and your work.
    I'll try to follow your tutorial. Cheat Engine looks complex .


    André

  14. #14

    Default Re: MMM modding memory modified

    The time of study, offers his results:
    I present to you the "random numbers generators" of MTWII.
    I have identified four, I will show in this post who works , one of them.
    First a bit of theory:
    All the events of the game they seem to be associate to variability.
    The composition of every soldier of a unit, The animation action of every individual soldier, the decisions in campaign-mode , the own AI of the game.

    These variabilities are produced by computation algorithms , and determine all the aspects of game.
    subroutine 01127EA0 , and controls between other many things, the assign the different mesh groups of a individual soldier , for to the soldiers seem to be different.
    True .... remenber
    Unit_Model file mesh
    mesh type example Head
    mesh groups ex. Head_12 Head_13 Head_14

    The mechanisms of generation of random numbers that are in use in the majority of the Informatic systems are actually pseudo-random processes
    http://en.wikipedia.org/wiki/Random_number_generation
    http://en.wikipedia.org/wiki/Pseudor...mber_generator
    http://en.wikipedia.org/wiki/Linear_...tial_generator
    http://en.wikipedia.org/wiki/Pseudorandom_numbers

    A pseudo-random number is a number generated in a process that seems to produce numbers at random, but it does not do it really. The sequences of pseudo-random numbers do not show any regularity from a statistical point of view, in spite of having being generated by a completely deterministic algorithm, in which the same initial conditions produce always the same result.


    I present to you a small precious.

    01127EA0 / 8B01 MOV EAX,DWORD PTR DS:[ECX] (guessed Arg1,Arg2)
    01127EA2 69C0 FD430300 IMUL EAX,EAX,343FD
    01127EA8 05 C39E2600 ADD EAX,269EC3
    01127EAD |. 8901 MOV DWORD PTR DS:[ECX],EAX
    01127EAF |. 8B4C24 08 MOV ECX,DWORD PTR SS:[ARG.2]
    01127EB3 |. C1F8 10 SAR EAX,10
    01127EB6 |. 56 PUSH ESI
    01127EB7 |. 8B7424 08 MOV ESI,DWORD PTR SS:[ARG.1]
    01127EBB |. 25 FF7F0000 AND EAX,00007FFF
    01127EC0 |. 2BCE SUB ECX,ESI
    01127EC2 |. 83C1 01 ADD ECX,1
    01127EC5 |. 0FAFC8 IMUL ECX,EAX
    01127EC8 |. 83E9 01 SUB ECX,1
    01127ECB |. B8 03000180 MOV EAX,80010003
    01127ED0 |. F7E9 IMUL ECX
    01127ED2 |. 03D1 ADD EDX,ECX
    01127ED4 |. C1FA 0E SAR EDX,0E
    01127ED7 |. 8BC2 MOV EAX,EDX
    01127ED9 |. C1E8 1F SHR EAX,1F
    01127EDC |. 03C2 ADD EAX,EDX
    01127EDE |. 03C6 ADD EAX,ESI
    01127EE0 |. 5E POP ESI
    01127EE1 \. C2 0800 RETN 8


    From a seed, it realizes a multiplication and a sum, and there assigns an entire positive number, that this in the range that we determine. ( 3 Heads 0,1,2 Arg1, 0 Arg2, 2)
    In the memory the mesh groups are placed arranged in mesh type position, since the drawing shows, the subroutine generates a number, and this will be the chosen mesh groups of a model.
    Attachment 103709
    By means of a Debuger ( Ollydebug ) I can see the assignation process step to step and assign the mesh groups that I wish for every individual soldier.

    I propose a simple exercise , we modify the algorithm so that it multiplies for 0 and adds 0, the result of generated number will be always 0.
    Attachment 103710Attachment 103711Attachment 103713
    The individual soldiers are equal composed on mesh groups that first appears in the file mesh of every mesh type
    The composition of trebizond_archers_ug1_lod0.mesh are
    Hands Hands01 Arms Arms 1 Body Body_04 Legs Legs_06 Head Head_08
    Helmet helmet_06Helmet Object01Hands Hands 2Head Head_12
    Head Head_13Head Head_14Arms Arms 02 Arms Arms 03Legs Legs_09
    Legs Legs_10Body Body_15 Body Body_16secondaryactive0 sword secondary_3 sword
    secondary_4 sword secondary_5secondaryactive1 sword secondary_9 sword secondary_10
    sword secondary_11shield0 small round plain_18 round plain_19 small round plain_20
    small round plain_21 small round plain_22 small round plain_23 small round plain_24
    small round plain_25 small round plain_26 small round plain_27primaryactive0
    composite bow_40 composite bow_41 composite bow_42equipment0 quiver_67
    quiver_68 quiver_69

    with random number 0 , all soldier are
    Hands Hands01 Arms Arms 1 Body Body_04
    Legs Legs_06 Head Head_08 Helmet helmet_06
    secondaryactive0 sword secondary_3 shield0 small round plain_18
    primaryactive0 composite bow_40 equipment0 quiver_67


    Attachment 103714

    But that's not all, also controls the Non-Combat animations (stand, taunt) all soldiers do the same.
    His control is subroutine 01127EA0
    Attachment 103717
    All soldiers animated by MTW2_Musket_taunt_1.cas

    I'm sure that the success or failure in combat, the effectiveness of an arrow impact are guided by these or similar mechanisms, do you find interesting?
    Last edited by Argantonio; August 17, 2010 at 01:04 PM.

  15. #15
    irishron's Avatar Cura Palatii
    Moderator Emeritus

    Join Date
    Feb 2005
    Location
    Cirith Ungol
    Posts
    47,023

    Default Re: MMM modding memory modified

    Yes, I do find it intersting. Good work.

  16. #16
    /|\/|\/|\/|\/|\/|\/
    Join Date
    Jun 2005
    Posts
    10,770

    Default Re: MMM modding memory modified

    Battle AI often behaves in a kind of random way, animations appear the same. Computers don't do random, of course, and then it's probably arguable that nothing in reality is actually 'random' once understood. But it's really interesting to see something of how the concept of randomness is simulated by the engine.

    Cool research, Argantonio
    Last edited by Taiji; August 17, 2010 at 01:23 PM.

  17. #17

    Default Re: MMM modding memory modified

    All we have ever think about playable area dimensions, the size of the battle map, and if we can cross
    the limit red line. In this post I will add a new knowledge about the size of the battle map.
    When we play with exported custom maps or battlefields without settlements the game marks a limit playable 512x512 (1024) , see radar map
    Attachment 114248
    If the battle map has settlement the playable area up to 864x864 (1728)
    Until recently I thought that ,was due to the file map itself.
    But it is not true the real responsable is the subroutine 005FE1F0 .

    005FE1F0 /$ 80B9 84000000 00 CMP BYTE PTR DS:[ECX+84],0 ; medieval2.005FE1F0(guessed void)
    .....
    005FE225 |. 74 3E JE SHORT 005FE265
    005FE227 |. 8B41 08 MOV EAX,DWORD PTR DS:[ECX+8]
    005FE22A 83F8 02 CMP EAX,2
    005FE22D |. 74 36 JE SHORT 005FE265
    005FE22F |. 83F8 04 CMP EAX,4

    .......
    005FE24A |. F30F1141 78 MOVSS DWORD PTR DS:[ECX+78],XMM0
    005FE24F |. F30F1005 90502F01 MOVSS XMM0,DWORD PTR DS:[12F5090] ; FLOAT 1024.000
    005FE257 |. F30F1141 7C MOVSS DWORD PTR DS:[ECX+7C],XMM0
    005FE25C |. F30F1181 80000000 MOVSS DWORD PTR DS:[ECX+80],XMM0
    005FE264 |. C3 RETN
    005FE265 |> 0F57C0 XORPS XMM0,XMM0
    005FE268 |. F30F1141 74 MOVSS DWORD PTR DS:[ECX+74],XMM0
    005FE26D |. F30F1141 78 MOVSS DWORD PTR DS:[ECX+78],XMM0
    005FE272 |. F30F1005 08153001 MOVSS XMM0,DWORD PTR DS:[1301508] ; FLOAT 1728.000
    005FE27A |. F30F1141 7C MOVSS DWORD PTR DS:[ECX+7C],XMM0
    005FE27F |. F30F1181 80000000 MOVSS DWORD PTR DS:[ECX+80],XMM0
    005FE287 \> C3 RETN

    It's very simple two ways , playable area of 1024 or 1728, and it depends on one byte, if 02 we go to 1024 03 if we go to 1728.
    This byte will be 03 , if the generated map has a settlement, otherwise it will be always 02.
    It is simple to modify the byte 02 for 03 and the program will always allow playable areas of 1728.
    Attachment 114249Attachment 114250
    I know what you think, why not do the map more bigger, changing the number 1728 for other
    Attachment 114252Attachment 114251Attachment 114253
    It can be done but only , until 2000, the explanation in next post, but I'm sure for you will be seem amazing.
    Attachment 114256
    Observe this picture is real size of battle map is 4096 (2048x2048) is all over the map beyond the red line exists with terrain heights and vegetation , but is not playable or overfly (with camera).
    Outside the mountain scenery are just triangles, which are located till (16364-16384).
    Last edited by Argantonio; October 19, 2010 at 07:25 AM.

  18. #18
    Greve Af Göteborg's Avatar Protector Domesticus
    Join Date
    Oct 2007
    Location
    Sweden
    Posts
    4,558

    Default Re: MMM modding memory modified

    Could this be used to remove the hardcoded number of factions limit?

  19. #19
    Civis
    Join Date
    Apr 2010
    Location
    France
    Posts
    130

    Default Re: MMM modding memory modified

    Hi Argantonio,

    Impressive work as always, I'm gonna see this !
    Your post #7 gave me an idea : a general killer unit.

    I removed the limits of men per units to 0 min and 255 max as you said
    I then created a unit called sniper with only one soldier, with a custom projectile with a perfect precision and put the bodyguard number of soldiers to 0, with this, there will be no bodyguard, just the general.

    image of the custom battle selection screen with the sniper and then the bodyguard :
    Spoiler Alert, click show to read: 






    And the sniper on the battlefield :
    Spoiler Alert, click show to read: 




    And the general alone without bodyguard :
    Spoiler Alert, click show to read: 




    And the sniper did a perfect headshot !
    uploaded a small video to show you (if you're interested) :
    here

    Not very useful, but quite funny

  20. #20

    Default Re: MMM modding memory modified

    Very good idea, really I did not think to create a unit with 0 soldiers, but logically if you select the first unit ( with 0 soldiers ) you get a General unit.
    The upper limit is 300 and not 255.
    I agree with you that is fun, but it is much more useful than you think, using a single soldier units, allows a better study the behavior of the individual unit, because you forget of coordinated movement ( next posts).
    Good video, I see that your battle map is 1024 (512x512), if you make the modification of the previous post, you'll have a battle map to 1728 (864x864).

Page 2 of 4 FirstFirst 1234 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •