f_001: Resolve Compatibility Issues with KSP v.1.10
hoovler opened this issue ยท 8 comments
I've always wanted to use a balloon mod for KSP, but I never managed to find a good mod that was compatible with the version of KSP I was running. So rather than complain about it, I'd like to try my hand at KSP modding by bringing Kerballoons---Reinflated
up-to-date with the latest KSP release (v.1.10
).
Several things need to happen for full compatibility to occur such that it can reach the widest audience of players:
- The target framework should be updated from
.NET Framework 3.5
to.NET Framework 4.5
- while consideration should be given to keeping the mod backwards, it shouldn't be at the expense of taking advantage of new functionality
- a stable release for each major KSP version would be the ideal solution, but not the target of this specific issue.
Kerballoons---Reinflated
should be refactored / rewritten in such a way as to make it compatible with KSPv.1.10
.- All necessary
CKAN
metadata and delivery requirements should be likewise updated to ensure users ofCKAN
may find and install the mod.
I nominate myself to take this issue and resolve it... Just sayin'...
Mission accomplished! I've gotten Kerballoons to work perfectly with KSP.v.1.10
! This build should actually work with KSP.v.1.8+
, as that is when the .NET framework KSP compiled against was updated. Here are the steps I took:
KSP.v.1.7
and below used .NET Framework3.5
, butKSP.v.1.8+
is built with .NET Framework4.5
. I updated the target framework accordingly, which resolved most of the compilation errors.- I updated the existing reference libraries and added new ones to cover certain objects had been refactored out of the original libraries.
- I ran the DEBUG build, then:
- copied
Kerballoons.dll
to the expanded directory from theKerballoons_v0.4.3.zip
release currently in the repository (replacing theGameData\KerBalloons\Plugins\KerBalloons.dll
from that build), - moved the
GameData
directory (with the newly-built `KerBalloons.dll from above) to my KSP sandbox instance, and; - fired up the game!
- copied
All libraries I updated and added came from the latest built and released version of Kerbal Space Program, KSP.v.1.10
. I took them from <ksp.v.1.10-installation-dir>\KSP_x64_Data\Managed
, which is the same as <ksp.v.1.10-installation-dir>\KSP_Data\Managed
for non-64-bit installations.
KSP.log Loading Information
What follows are excerpts of the KSP.log
file were it pertains to the new build of Kerballoons being loaded as a plugin for KSP.v.1.10
. I snip out the longer bits to reduce the massive size of this comment:
Loading the Assembly
[LOG 13:45:07.448] Load(Assembly): KerBalloons/Plugins/KerBalloons
[LOG 13:45:07.448] AssemblyLoader: Loading assembly at A:\dev\000-personal\ksp\ksp-v.1.10_sandbox\GameData\KerBalloons\Plugins\KerBalloons.dll
General Environment Info
Environment Info
Win32NT 7FFFFFFFFFFFFFFF Args: KSP_x64.exe
Mod DLLs found:
Stock assembly: Assembly-CSharp v0.0.0.0
HolaKerbin v1.0.0.0
KerBalloons v1.0.0.0
Stock assembly: KSPSteamCtrlr v0.0.1.35
Folders and files in GameData:
HolaKerbin
KerBalloons
Stock folder: Squad
Loading Sounds
[LOG 13:45:08.127] Load(Audio): KerBalloons/Sounds/burst
[LOG 13:45:08.260] Load(Audio): KerBalloons/Sounds/deflate
[LOG 13:45:08.278] Load(Audio): KerBalloons/Sounds/inflate
Loading Textures
[LOG 13:45:08.994] Load(Texture): KerBalloons/Flags/KerBalloonsFlag
[LOG 13:45:09.010] Load(Texture): KerBalloons/Flags/KerBalloonsFlagAlpha
[LOG 13:45:09.023] Load(Texture): KerBalloons/Parts/DunaBalloons/KBTexDuna
[LOG 13:45:09.069] Load(Texture): KerBalloons/Parts/EveBalloons/KBTexEve
[LOG 13:45:09.113] Load(Texture): KerBalloons/Parts/KerbinBalloons/KBTexKerbin
[LOG 13:45:09.154] Load(Texture): KerBalloons/Parts/LaytheBalloons/KBTexLaythe
[LOG 13:45:09.197] Load(Texture): KerBalloons/Parts/Parachutes/KerBalloonsChuteTex
[LOG 13:45:09.205] Load(Texture): KerBalloons/Plugins/Kerballoons_off
[LOG 13:45:09.210] Load(Texture): KerBalloons/Plugins/Kerballoons_on
Loading Models
[LOG 13:45:44.177] Load(Model): KerBalloons/Parts/DunaBalloons/balloon0625
[LOG 13:45:44.252] Load(Model): KerBalloons/Parts/DunaBalloons/balloon125
[LOG 13:45:44.280] Load(Model): KerBalloons/Parts/DunaBalloons/balloon25
[LOG 13:45:44.307] Load(Model): KerBalloons/Parts/DunaBalloons/balloon375
[LOG 13:45:44.337] Load(Model): KerBalloons/Parts/EveBalloons/balloon0625
[LOG 13:45:44.364] Load(Model): KerBalloons/Parts/EveBalloons/balloon125
[LOG 13:45:44.391] Load(Model): KerBalloons/Parts/EveBalloons/balloon25
[LOG 13:45:44.418] Load(Model): KerBalloons/Parts/EveBalloons/balloon375
[LOG 13:45:44.444] Load(Model): KerBalloons/Parts/KerbinBalloons/balloon0625
[LOG 13:45:44.471] Load(Model): KerBalloons/Parts/KerbinBalloons/balloon125
[LOG 13:45:44.498] Load(Model): KerBalloons/Parts/KerbinBalloons/balloon25
[LOG 13:45:44.526] Load(Model): KerBalloons/Parts/KerbinBalloons/balloon375
[LOG 13:45:44.553] Load(Model): KerBalloons/Parts/LaytheBalloons/balloon0625
[LOG 13:45:44.579] Load(Model): KerBalloons/Parts/LaytheBalloons/balloon125
[LOG 13:45:44.607] Load(Model): KerBalloons/Parts/LaytheBalloons/balloon25
[LOG 13:45:44.634] Load(Model): KerBalloons/Parts/LaytheBalloons/balloon375
[LOG 13:45:44.661] Load(Model): KerBalloons/Parts/Parachutes/model
Compiling Part Configs
[LOG 13:46:08.775] Compiling Configs:
[LOG 13:46:08.775] Config(PART) KerBalloons/Parts/DunaBalloons/heavyPayload0625/duna625BalloonHP
[LOG 13:46:08.776] Config(PART) KerBalloons/Parts/DunaBalloons/heavyPayload125/duna125BalloonHP
[LOG 13:46:08.776] Config(PART) KerBalloons/Parts/DunaBalloons/heavyPayload25/duna25BalloonHP
[LOG 13:46:08.776] Config(PART) KerBalloons/Parts/DunaBalloons/heavyPayload375/duna375BalloonHP
[LOG 13:46:08.776] Config(PART) KerBalloons/Parts/DunaBalloons/highAltitude0625/duna625BalloonHA
[LOG 13:46:08.776] Config(PART) KerBalloons/Parts/DunaBalloons/highAltitude125/duna125BalloonHA
<snip> .... </snip>
[LOG 13:46:08.779] Config(PART) KerBalloons/Parts/Parachutes/chute0625/KBChute0625
[LOG 13:46:08.779] Config(PART) KerBalloons/Parts/Parachutes/chute125/KBChute125
[LOG 13:46:08.779] Config(PART) KerBalloons/Parts/Parachutes/chute25/KBChute25
[LOG 13:46:08.779] Config(PART) KerBalloons/Parts/Parachutes/chute375/KBChute375
[LOG 13:46:08.779] Config(PART) KerBalloons/Parts/ServiceBays/ServiceBay_0625/ServiceBay_0625
[LOG 13:46:08.779] Config(PART) KerBalloons/Parts/ServiceBays/ServiceBay_375/ServiceBay_375
Adding New Parts to Database
[LOG 13:46:08.949] GameDatabase: Assets loaded in 68.843s
[LOG 13:46:08.986] PartLoader: Loading part database
[LOG 13:46:08.988] PartLoader: Compiling Part 'KerBalloons/Parts/DunaBalloons/heavyPayload0625/duna625BalloonHP'
[LOG 13:46:09.014] EffectList: Created 15 effect types
[LOG 13:46:09.062] PartLoader: Part 'KerBalloons/Parts/DunaBalloons/heavyPayload0625/duna625BalloonHP' has no database record. Creating.
[LOG 13:46:09.062] [DragCubeSystem]: Drag cubes not found or cannot be read for part Part. Generating New drag cubes.
[LOG 13:46:09.067] DragCubeSystem: Creating drag cubes for part 'duna625BalloonHP'
[LOG 13:46:09.128] PartLoader: Compiling Part 'KerBalloons/Parts/DunaBalloons/heavyPayload125/duna125BalloonHP'
[LOG 13:46:09.135] PartLoader: Part 'KerBalloons/Parts/DunaBalloons/heavyPayload125/duna125BalloonHP' has no database record. Creating.
[LOG 13:46:09.135] [DragCubeSystem]: Drag cubes not found or cannot be read for part Part. Generating New drag cubes.
[LOG 13:46:09.136] DragCubeSystem: Creating drag cubes for part 'duna125BalloonHP'
[LOG 13:46:09.197] PartLoader: Compiling Part 'KerBalloons/Parts/DunaBalloons/heavyPayload25/duna25BalloonHP'
[LOG 13:46:09.203] PartLoader: Part 'KerBalloons/Parts/DunaBalloons/heavyPayload25/duna25BalloonHP' has no database record. Creating.
[LOG 13:46:09.203] [DragCubeSystem]: Drag cubes not found or cannot be read for part Part. Generating New drag cubes.
[LOG 13:46:09.206] DragCubeSystem: Creating drag cubes for part 'duna25BalloonHP'
<snip> .... </snip>
[LOG 13:46:13.135] PartLoader: Compiling Part 'KerBalloons/Parts/Parachutes/chute0625/KBChute0625'
[LOG 13:46:13.154] PartLoader: Part 'KerBalloons/Parts/Parachutes/chute0625/KBChute0625' has no database record. Creating.
[LOG 13:46:13.158] PartLoader: Compiling Part 'KerBalloons/Parts/Parachutes/chute125/KBChute125'
[LOG 13:46:13.164] PartLoader: Part 'KerBalloons/Parts/Parachutes/chute125/KBChute125' has no database record. Creating.
[LOG 13:46:13.165] PartLoader: Compiling Part 'KerBalloons/Parts/Parachutes/chute25/KBChute25'
[LOG 13:46:13.175] PartLoader: Part 'KerBalloons/Parts/Parachutes/chute25/KBChute25' has no database record. Creating.
[LOG 13:46:13.176] PartLoader: Compiling Part 'KerBalloons/Parts/Parachutes/chute375/KBChute375'
[LOG 13:46:13.181] PartLoader: Part 'KerBalloons/Parts/Parachutes/chute375/KBChute375' has no database record. Creating.
[LOG 13:46:13.183] PartLoader: Compiling Part 'KerBalloons/Parts/ServiceBays/ServiceBay_0625/ServiceBay_0625'
[LOG 13:46:13.204] PartLoader: Part 'KerBalloons/Parts/ServiceBays/ServiceBay_0625/ServiceBay_0625' has no database record. Creating.
[LOG 13:46:13.204] [DragCubeSystem]: Drag cubes not found or cannot be read for part Part. Generating New drag cubes.
[LOG 13:46:13.207] DragCubeSystem: Creating drag cubes for part 'ServiceBay.0625'
[LOG 13:46:13.313] PartLoader: Compiling Part 'KerBalloons/Parts/ServiceBays/ServiceBay_375/ServiceBay_375'
[LOG 13:46:13.320] PartLoader: Part 'KerBalloons/Parts/ServiceBays/ServiceBay_375/ServiceBay_375' has no database record. Creating.
[LOG 13:46:13.320] [DragCubeSystem]: Drag cubes not found or cannot be read for part Part. Generating New drag cubes.
[LOG 13:46:13.322] DragCubeSystem: Creating drag cubes for part 'ServiceBay.375'
Loading Kerballoons Add-on
[LOG 13:46:48.648] [AddonLoader]: Instantiating addon 'KBFilter' from assembly 'KerBalloons'
In-Game Action
Some screenshots showing my build of Kerballoons for KSP.v.1.10
in action!
- Here's the detailed build information for my specific sandbox instance of
KSP.v.1.10
that shows on the KSP title screen upon application launch:
- This is the display of the
Kerballoons category
within the VAB construction mode:
- And here's a balloon launch from the pad, demonstrating the successful flight of a Kerballoon part, and showing the KSP version information in the bottom-left of the screen:
All the changes made to resolve this issue have been committed to a local branch. I'll make a pull request whenever I can make contact with the author / repo owner and figure out how he/she wants to handle this.
@hoovler did you ever manage to resolve this issue about forking?
Thank you! Could you upload the 4.4 code to github? I've been able to get by decompiling the 4.4 release, but would prefer to get the original
Thanks
Thank you! Could you upload the 4.4 code to github? I've been able to get by decompiling the 4.4 release, but would prefer to get the original
Thanks
I'll do one better. www.twistedvoid.com/Kerballoons.zip That includes all of the new models I created in Wings 3D, some testing I did, etc. I'll leave that up for a few weeks.