Author Topic:  High res launcher! Have you guys seen this?  (Read 9011 times)

17 Feb 14

Read 9011 times

Offline Morkrah86

  • Rookie
  • *

Hey guys,

Had to register so I could give you a heads up on this that I found over of a Russian forum. Have to say it looks pretty sweet if you translate it! Only trouble is i cant seem to get it to work - just says "has stopped working" for me. Maybe you guys can figure it out somehow! Great job with everything your doing, about time someone gave this awesome old gem some attention!

http://www.old-games.ru/forum/showthread.php?t=55849&page=2

MechCommander Shell [aka "mcshell" - hires and engine modding tool]


Universal bypass protection systems (NoCD), working for lyuby versions including version and Gold
Change permissions to anyone, including non-standard and widescreen (800h2400 - Malolo which are perverts )
Apskeyl main menu and video Flexible configuration (for example, you can allow to stretch the video but prevent stretch the main menu)
Support algorithms: LQ2x, HQ2x, 2xSaI, SuperEagle, Super2xSaI, Scale2xSaI. With the possibility of software apskeyla rezulate to size.
Adjusting the position of the window at startup area rendinga menu / video.
Skip intro and \ or the intro, take away the window frame in windowed mode, change icons and windows to process alternative high resolution.
Filter imaging in pre-and post-rendinge, the filter can be used for noise reduction and for light smoothing.
Enable / disable the fingerprint furs, mapping terrain overlays, as well as the grid. (The latter is useful for debugging your cards)

Milestone :
Fixing colors when playing videos.
Changing the position of the interface and its apskeyl.
Adding super zoom - apskeyl standard zoom.
Changing the speed of the game.
Modify, and configure hotkeys.
Adding hotkeys for quick selection of furs.
Setting color furs player and computer.
Quick Restart mission (without the need to re-forming units)
Editing the game mechanics (damage calculations, parameters, etc.).
..... (There may be and your wishes )


One other link i found seemed pretty cool too...

http://www.ppmsite.com/forum/viewtopic.php?t=28570&sid=8abef439f5df7566cc9dee4caf8abb31

Have no idea how he was making some of these changes but it must have been possible! I especially liked the one where he mentioned increasing pilots accuracy a bit when aiming for specific Mech parts!

Mork
« Last Edit: 18 Feb 14 by Morkrah86 »

17 Feb 14

Reply #1

Offline Bestia Infernali

  • Regular
  • **

Exe hackery? This is what MC really needs  8) a lot of it  :o So far it looks like fiddling around resolutions, display modes, and related stuff.

Only trouble is i cant seem to get it to work - just says "has stopped working" for me. Maybe you guys can figure it out somehow!

I got it running - just for test. Download mcshell-002.tbz (debugger is enabled by default) and unpack it like this: ROOT\mcshell\. When game hang-ups read what debugger tells you and then try to find a cause in ini file - comments are Cyrillic, but options not.

I especially liked the one where he mentioned increasing pilots accuracy a bit when aiming for specific Mech parts!

Search ROOT\DATA\MISSIONS\gamesys.fit* for "WeaponFireModifiers".

* if you don't have it then unpack it from MISSIONS.FST.
« Last Edit: 17 Feb 14 by Bestia Infernali »

18 Feb 14

Reply #2

Offline Morkrah86

  • Rookie
  • *

Hey,

Well done mate! Will give it a try when i get chance. Did the graphics filters/enhancements seem any good?

18 Feb 14

Reply #3

Offline Bestia Infernali

  • Regular
  • **

I haven't looked at this:

Code: [Select]
Filter imaging in pre-and post-rendinge, the filter can be used for noise reduction and for light smoothing.
The rest are scale filters.

Author wrote GUI-based Editor of ini too, but it's in Russian. Also, looks like development of the patcher has stopped.

I forgot to add that if your screen resolution < what is set in ini file, game may crash, I think. So check that first.

Btw, could you change thread title to something more informative, like "Hi-Res Patch for MCG", or so? Will be easier to find a solution for people who want to play at different resolutions other than built-in ones. Thanks.
« Last Edit: 18 Feb 14 by Bestia Infernali »

18 Feb 14

Reply #4

Offline Morkrah86

  • Rookie
  • *

No problem, done.

Yeah its a shame its all in russian, looks like the guy knew what he was doing - this thing appears to have a lot of potential. Maybe if someone speaks russian they can contact him and bring him over here?

16 Mar 14

Reply #5

Offline StaticZ

  • Rookie
  • *

Yeah its a shame its all in russian, looks like the guy knew what he was doing - this thing appears to have a lot of potential. Maybe if someone speaks russian they can contact him and bring him over here?
Hey, thanks. I was plesant suprised when soo that this project was soo interest for other world. So its me and I'm ready for your quastions and advices ))



Also, looks like development of the patcher has stopped.
For personal reasons I was very busy for some time. So it's slows down, but don't stoped...
« Last Edit: 16 Mar 14 by StaticZ »
Game isn't a dream, it is the reality, reality which is coming while we dream...

16 Mar 14

Reply #6

Offline Bestia Infernali

  • Regular
  • **

Thanks for registering StaticZ. Since you're here...


allcomp.fit is packed in MISC.FST. This is how structure of it looks like:

Code: [Select]
FITini

[Components]
ul NumComponents = 50 // MAX NUMBER OF COMPONENTS IDs

[Componant0]
uc ComponantID = 154 // COMPONENT ID

[Componant1]
uc ComponantID = 151 // COMPONENT ID

...

[Componant49]
uc ComponantID = 129 // COMPONENT ID

FITend

(it's a copy&paste of master definition file from each savegame - file 0)

As I said game checks its syntax (if wrong, will crash). No idea why this file is even there beacuse it does nothing.

I've launched IDA, and there's in fact hardcoded database of components' IDs, and functions responisble for it, but I'm too dumb to hack the exe on my own, or even figure out what's going on. But to me it looks like this:

a) when going on mission (or saving), game uses hardcoded components IDs database as a pointer to know what compnents save. Note that I'm talking about components not placed on Mechs (when placed on Mechs they'll be saved in Mech Profile).

b) because of that new components (new IDs) aren't saved - they will disappear beacuse game doesn't know about their existence,

c) the idea is to hack the exe and force the game to use allcomp.fit as non-hardcoded, components' IDs database.

d) there's probably something more going on - like objsort.rsp (file responsible for components sorting).

Modified files:

- \DATA\SAVEGAME\START0.PKK,
- \DATA\OBJECTS\objsort.rsp,
- \DATA\OBJECTS\compbas.csv,
- \DATA\OBJECTS\allcomp.fit,
- \DATA\MISSIONS\MIS0101.ABL,
- \DATA\OBJECTS\original\ - contains original, not changed files.

what is changed:

- there are 58 components,
- component sort is changed,
- at start you have 10 of each,
- original ID 103 isn't used (IS Ultra AC/5),
- START0.PKK is overpowered (Vulture/Madcat/Vixen/Blaze),
- mission should end in 5 seconds.

Launch original campaign, go for the mission, cancel/end the mission, and game will crash. The reason of crash is:

if

Code: [Select]
(hardcoded ID > 49) or (hardcoded ID == -1)
in objsort.rsp.

You'll noticed that purchase list is broken too - it shows only <= 49 from objsort.rsp (which is a Basic Sensor):

Code: [Select]
49, 13,Basic Sensor
everything behind it (no matter if original ID, or the new one) will not show - there's empty space.


I also added START0.PKK source files - run START0.PKK.BAT to make savegame out of it - the reason is - there's some relation between first file (0.masterdef.fit) and objsort.rsp:

if present in 0.masterdef.fit, and -1 in objsort.rsp game will crash.

You'll be able to check/alter it, as well as look at purchase list (8.initstore.fit).
« Last Edit: 16 Mar 14 by Bestia Infernali »

16 Mar 14

Reply #7

Offline StaticZ

  • Rookie
  • *

Small update: mshell-0006(14075).tbz Nothing special, small changes and translating to english config description.

PS My english isn't perfect, so sorry if something is wrong - if you see some mistake in text please report about them...
« Last Edit: 16 Mar 14 by StaticZ »
Game isn't a dream, it is the reality, reality which is coming while we dream...

16 Mar 14

Reply #8

Offline Bestia Infernali

  • Regular
  • **

I forgot to add that both crashes I mentioned in my previous post are the same:

Code: [Select]
ASSERT (00000000 - Could not reindex player inventory. Probably an old savegame)

Also, thanks for translation. It deserves frontpage newspost!  :)

16 Mar 14

Reply #9

Offline SeanLang

  • NGNG Founder
  • Legendary
  • *

I wish I could read Russian, but would love for someone to talk to about this!

17 Mar 14

Reply #10

Offline StaticZ

  • Rookie
  • *

Ok, it's really had hardcoded values and don't save what it need to savegame (MIS0101.pkk). Here new version which can overide harcoded data at game saving: mshell-0008(14076).tbz

See config.ecd file in profile sub directory, which has overided values. Try and test it, I don't know will it helps, but now it realy saves in save files what we say. If it will need smth more to patch or change as saving - please report, i will try to do it...
Game isn't a dream, it is the reality, reality which is coming while we dream...

17 Mar 14

Reply #11

Offline Bestia Infernali

  • Regular
  • **

Indeed, it writes config.ecd to savegames, but if number of components > 50 hardcoded data is written instead of stuff from config.ecd. Or maybe I did something wrong? Stupid shit.

Anyway, can you use DATA.ZIP I provided and [email protected] this to config.ecd to see what will happen?:

Code: [Select]
[Logistics]
$NumComponents: 58

$ComponentDesc:

{
~ ENERGY/PLASMA
147, "// Heavy Flamer",
155, "// C/Heavy Flamer",
~ ENERGY/STANDARD LASER
143, "// Medium Laser",
152, "// C/Medium ER Laser",
140, "// Large Laser",
141, "// Large ER Laser",
150, "// C/Large ER Laser",
~ ENERGY/PULSE LASER
144, "// Medium Pulse Laser",
153, "// C/Medium Pulse Laser",
142, "// Large Pulse Laser",
151, "// C/Large Pulse Laser",
139, "// Large ER Pulse Laser",
~ ENERGY/PARTICLE
145, "// PPC",
97, "// C/PPC",
146, "// ER PPC",
154, "// C/ER PPC",
~ BALLISTIC/STANDARD
102, "// AC/20",
101, "// AC/10",
100, "// AC/5",
112, "// C/Ultra AC/20",
111, "// C/Ultra AC/10",
110, "// C/Ultra AC/5",
~ BALLISTIC/LB-X
109, "// LB-X AC/20",
118, "// C/LB-X AC/20",
108, "// LB-X AC/10",
117, "// C/LB-X AC/10",
107, "// LB-X AC/5",
116, "// C/LB-X AC/5",
~ BALLISTIC/RAIL
99, "// Light Gauss Rifle",
104, "// Gauss Rifle",
113, "// C/Gauss Rifle",
98, "// Rail Cannon",
~ BALLISTIC/AREA
161, "// LT Cannon",
160, "// Heavy LT Cannon",
~ MISSILE/STANDARD
123, "// SRM/2",
133, "// C/SRM/2",
124, "// SRM/6",
134, "// C/SRM/6",
126, "// Thunderbolt/15",
120, "// LRM/5",
130, "// C/LRM/5",
121, "// LRM/10",
131, "// C/LRM/15",
122, "// LRM/20",
132, "// C/LRM/20",
~ MISSILE/STREAK
125, "// Streak SRM/2",
135, "// C/Streak SRM/2",
136, "// C/Streak SRM/6",
119, "// C/Streak LRM/20",
~ SENSORS
13, "// Basic Sensor",
14, "// Intermediate Sensor",
15, "// Advanced Sensor",
16, "// C/Standard Sensor",
17, "// C/Extended Sensor",
~ ECM
37, "// Beagle Probe",
43, "// C/Active Probe",
38, "// Guardian ECM",
42, "// C/ECM Suite",
~ UNUSED
~,105, Machine Gun,
~,114, C/Machine Gun,
~,106, Anti-Missile System,
~,115, C/Anti-Missile System,
~ REMOVED
~,103,
~ UNSORTED
}
   
Order represents sorting in objsort.rsp.


btw, BestiaI (oldgames.ru), and Bestia Infernali (nogutsnogalaxy.net) is the same person  :P
« Last Edit: 17 Mar 14 by Bestia Infernali »

17 Mar 14

Reply #12

Offline StaticZ

  • Rookie
  • *

Indeed, it writes config.ecd to savegames, but if number of components > 50 hardcoded data is written instead of stuff from config.ecd. Or maybe I did something wrong? Stupid shit.

When I was tessting it saved 58 enties without any problems. Just be careful with config - if smth is wrong I'll try to skip sections, so in this case its work same - if it has problems with parsing data it just skip PE patching and game used original data at saving. Look at your file you have comma after last entry befor bracket. Thats why it tries to load next value and can't read it.

PS By the way, for edditing may be good to enable debug mode with console. Most errors are logged there.

Order represents sorting in objsort.rsp.
Order is also importatnt, game will save all in that order as they are written, thow I don't know if it's critical for work. Shell just replays data tables in code for game saving. Also for second desc - never remove first splashes "//".



btw, BestiaI (oldgames.ru), and Bestia Infernali (nogutsnogalaxy.net) is the same person  :P
I already understand, just i think it will be more easy for you to speak on english-speaking forum =)


Game isn't a dream, it is the reality, reality which is coming while we dream...

17 Mar 14

Reply #13

Offline Bestia Infernali

  • Regular
  • **

Look at your file you have comma after last entry befor bracket. Thats why it tries to load next value and can't read it.

Yeah, shame on me  :P It works now! AWESOME!



But purchase list still looks like this:



Have I made a mistake somewhere?


-------------------------------------EDIT

Here's lil' improved English text for config.ecd:

Code: [Select]
~ Max array length is limited up to 256.
~ Format: <UINT8>ComponantId, <TEXT>ComponantComment, ...
~ Note, array length can be different from $NumComponents, but this can damage application logic.
~ Entries will be written to file in declaration order.

Note that English isn't my primary language  :P
« Last Edit: 17 Mar 14 by Bestia Infernali »

17 Mar 14

Reply #14

Offline StaticZ

  • Rookie
  • *

But purchase list still looks like this:

Have I made a mistake somewhere?
Maybe not. Friendly speaking I don't know how it works, I just patch code that write components to save file. As I say now it writes all components, but maybe it need some other changes to save file correct.
Game isn't a dream, it is the reality, reality which is coming while we dream...