Plus Porter (1.1.0.1)

Dec 2, 2013 at 8:40 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
Download here: Plus Porter v1.1.0.1

Version history:
Plus Porter v0.4.0.0 (ORIGINAL VERSION) 12/2/2013

Plus Porter v0.5.0.0 1/21/2014 Changes:
-Fixed the glitch with some Cave Story+ installations where the error "Credit19.bmp not found!" is shown when opening up a Cave Story+ directory (Thanks to ThePotatoWhisperer for reporting)
-Implemented a preferences window
-Made it display the name of the current port opened in the main window title
-Made the program detect changes being made to the port, and prompt you to save before exiting, opening another port, or starting a new port, if it has unsaved changes
-Added a progress bar window for when an exe is being loaded to extract map data
-Added a progress bar for when a port is getting applied
-Made it able to open ports that are already installed
-Made it automatically detect if the user is trying to apply a port with a name and/or folder name identical to one already installed, and handle the situation accordingly
-Implemented the "Replace miscellaneous file" feature
Plus Porter v0.5.1.0 3/16/2014 Changes:
-Fixed the problem of not properly loading mapdata from edited exes. I could have sworn I had it working before, but whatever. Thanks goes to Noxid for letting me use his mapdata-extracting code which I modified to suit my needs. The map list now populates instantly rather than having a progress bar.
Plus Porter v0.6.0.0 5/9/2014 Changes:
-Fixed the glitch where it would automatically save your port in the selected directory even if you click cancel in the filechooser while using the "save as" feature.
-Fixed the error which occurred when opening ports that take the form of an installed port, but are not listed on a local "mods.txt" file.
-Removed the cancel button from the port properties window if you selected "New port..." from the file menu, because clicking it under those circumstances messes up a bunch of stuff and there's no point in doing it anyway.
-Made it so that the user can manage the order of ports in their CS+ directory even if there's no port open.
-Made it so that the user can uninstall ports with the click of a button.
-Made it so that the "Apply port" option is always grayed out upon starting a new port.
-Added the widgets necessary for replacing miscellaneous images, credit images, backgrounds, and NPC tilesets.
-Fixed the glitch where the program would fail to complete the applying process on a port which did not include a "stage.tbl" file.
Plus Porter v0.7.0.0 6/15/2014 Changes:
-Fixed the glitch with the item and weapon selectors in the port properties window where the item or weapon ID would under some circumstances not properly refresh, reset, or load
-Fixed the glitch where it would fail to overwrite the files if there was an existing folder with the same name as that which the port has
-Made it so that the apply port window redesigns itself appropriately if you delete the mod you were intending to apply
-Fixed the very minor bug of the Org, Stage, and Npc folders getting created when they shouldn't be if you start a new mod after having one open that has those
-Made it so that the NICALiS Graphics filtering window doesn't refresh unless it comes across an image that has potential matches. That way the process completes a bit faster
-Made the progress bar for applying ports much more precise
-Fixed the glitch where an image whose filters reduced it to a blank image got corrupted
-Enabled the program to delete a folder when uninstalling a port and made this toggleable in preferences. Please note that this doesn't always work, I still need to make this more reliable
-Improved the automatic exe detection when loading a stage folder such that it will detect ones with dissenting filenames
-Made the preview in the replace image widget display the image you've used as a replacement under all conditions, and in its unfiltered state
-Added the widget that enables the user to add backgrounds, NPC Tilesets, and credit images without replacing any existing ones
-Modified the replace resource window such that you can undo a replace by clicking to replace a file when the field for the path for the file is blank
-Added the widgets necessary for adding and replacing tilesets
-Removed "Face picture" from the add and replace sub-menus, as plans for those features have been canceled since they would have been redundant and unnecessary
-Expanded the capability of the "Replace Stage Folder" feature so that you can now replace tilesets in the process, and also specify which file types you want to ignore, if any
Plus Porter v0.7.1.1 6/26/2014 Changes:
-Made it so that the close button on the port properties window doesn't make the window close if you've just started a new port, for the same reason I removed the cancel button under those circumstances
-Packaged the program into an exe so that I was able to set a JVM property that fixes the glitch where the graphics filtering window would crash if the image in question had clumps that were too large
Plus Porter v0.8.0.0 7/4/2014 Changes:
-Made it so that when replacing a stage folder, each file is inspected to make sure it isn't identical to its base counterpart and if so it's skipped
-Added a progress bar for when a stage folder is being replaced, in order to compensate for the larger amount of time replacing a stage folder now takes due to inspecting each file
-Added a progress bar for when a port is being saved
-Fixed the glitch where replacing just images from a stage folder would mess stuff up. I could have sworn I had this all working in the previous release, but it's all working now
-Made it so that, when applying a port, the program appends any custom face pictures in a mod to the base Face.bmp since that's the only one the game reads from, and changes all <FAC commands in said mod's scripts accordingly
-Changed the characters used in the file replacing window to ones that can't appear in filenames so that using obscure characters in your paths or files won't mess anything up
-Implemented the widgets necessary for adding and replacing individual maps
-Fixed the glitch where the program would fail to overwrite existing files when saving your port
-Enabled the user to preview images and maps loaded up in a port
Plus Porter v0.9.0.0 9/3/2014 Changes:
-Fixed the glitch where the map preview would improperly generate if the mod's map being viewed had a custom .pxm file, which in effect also fixed the glitch where maps wouldn't display if you'd just edited a map's properties
-Made it so that the add map feature is greyed out if 95 or more maps are on the list
-Made it so that a warning is displayed when a map list is loaded that exceeds 95 maps
-Made it so that clicking the Ok button on the port properties window will only make the main window refresh if you're starting a new port.
-Made it so that your port won't be marked as having unsaved changes if you click ok on the port properties window but didn't actually make any changes.
-Made the replacement window focus on the proper item upon opening and refreshing when clicking the "Replace" button.
-Made it so that, when the main window refreshes, the selected items in all the scrollpanes are always visible.
-Fixed the glitch where a "null" folder would be created if you messed with the "Manage ports" option at all
-Fixed the glitch where it would sometimes fail to fully delete the accompanying folder of a mod that's being uninstalled
-Enabled the user to view maps even if no stage.tbl file has been loaded.
-Removed the planned option for adding music without replacing it because I discovered that it's impossible in CS+ mods without hacking the exe
-Fixed the minor graphical error where all the replace buttons on the main window, except for the one below the maps scrollpane, protruded one pixel to the right past the scrollpanes that they were beneath.
-Made it so that, when clicking the accept button on the replace resource window, your port only gets marked as having unsaved changes if files were replaced
-Synchronized the clickability of all the add and replace buttons on the main window with their edit menu counterparts
-Implemented the widgets necessary for replacing music.
Plus Porter v1.0.0.0 10/18/2014 Changes:
-Made the "Save port as..." feature jump to the folder local to the last opened port, and the open feature as well if the last opened port does not appear to exist anymore
-Enabled the user to remove resources that they have replaced or added via right-clicking on the main window
-Enabled the user to scan already loaded images for NICALiS graphics by right-clicking on them on the main window
-Enabled the user to load data from the exe for arms_level.tbl, bullet.tbl, and wave.dat via the "Replace Miscellaneous File" feature.
-Fixed the glitch where a replaced tileset image would not display in the replace tileset preview if both the image and a pxa file were being replaced.
-Fixed the glitch where map previews would be garbled if the tileset the map used had been filtered
-Fixed the glitch where the map preview wouldn't generate under some circumstances if a map's properties had been messed with
-Added a wizard that makes almost the entire port for you with the click of a button
-Fixed the glitch where the "Add Credit Image" widget wouldn't automatically suggest a vacant credit image slot upon opening.
Plus Porter v1.0.0.1 11/20/2014 Changes:
-Fixed the glitch where the "Save" and "Save as" menu options would not always work.
Plus Porter v1.0.2.0 12/20/2014 Changes:
-Made the graphics filtering wizard not skip over casts.bmp if that's the image being replaced
-Made the auto-port wizard properly replace global scripts
-Fixed the glitch where the auto-port wizard would get the numbers of credit art illustrations wrong past 12.
-Made the map title to the "Studio Pixel Presents" map default to "Studio Pixel" if it's set to "u" when loading mapdata from a freeware exe
-Made it so that custom Face.bmp images are properly handled if the user chooses to leave the non-replaced slots blank to save space.
-Made the map scrolltype and special boss id be included in the stage.tbl file, which fixed numerous problems previously present in some ports generated by Plus Porter.
-Modified the applying process to properly handle custom items.
Plus Porter v1.0.5.0 1/17/2015 Changes:
-Made the auto-port wizard judge whether or not global scripts in a mod should be replaced based on comparing them with those in the base directory of the Cave Story+ installation, rather than the freeware installation.
-Gave the auto-port wizard a progress bar.
-Added an option in the auto-port wizard to remove the equal signs from all text in message boxes
-Made the program automatically re-route event #200 on map 13 to the start point specified in the mod if it's different from the default game.
-Modified the algorithm for comparing files to be more efficient so that the process of replacing the mod's stage folder completes much faster
Plus Porter v1.0.5.1 3/26/2015 Changes:
-Made the program also check global scripts when removing equal signs from tsc files
-Integrated a debug option in preferences in order to hopefully help find the root cause of the glitch of the file chooser not always showing up
Plus Porter v1.1.0.0 5/6/2015 Changes:
-Made the image filtering process something that is done at the request of the user rather than automatically
-Finally fixed the glitch that would corrupt bitmaps of a bit depth lower than 24
-Discontinued wrapping the program into an exe, and made some behind the scenes tweaking to facilitate cross-compatibility.
Plus Porter v1.1.0.1 8/11/2015 (CURRENT VERSION) Changes:
-Fixed the glitch where having a map list loaded would cause some unnecessary GUI components to pop up when adding a credit image.
-Removed the "enable debug" feature from the preferences window since I won't be vigilantly acting on bug reports anymore.

Plus Porter is a user-friendly GUI application that facilitates porting mods to Cave Story+. The program works by letting the user select all the modified resources from said mod and packages them into a patch that can be distributed to others and patched into a Cave Story+ installation with the click of a button. While some aspects of this could be done manually, there are some things that can NOT be done manually but are made possible with Plus Porter, such as legally distributing ports with partially edited spritesheets while maintaining double resolution all throughout. It should be noted that use of Plus Porter requires that you have a valid installation of Cave Story+ on your hard drive.

Here are some screenshots:
PlusPorterScreenshot27_zpsa01d11e2.png
PlusPorterScreenshot23_zpsf264b297.png
PlusPorterScreenshot24_zps9731f37e.png
PlusPorterScreenshot25_zps0bfdcb13.png
PlusPorterScreenshot28_zpsbe55c677.png
PlusPorterScreenshot26_zpsdd77719c.png

Here are some sample CS+ ports to demonstrate Plus Porter's functionality:
AGTP Story - edited scripts courtesy of Loaffy
Pyramid - by Noxid and Lace
WTF Challenge - by GIRakaCHEEZER (ported by Aar)
Labyrinth Escape - by metalsonic71 (utilizes partially modified spritesheet)
WAHAHA Story
Cave Story 2
Cave Story with a Fourth Ending

Known issues:
-If your port uses one or more custom images located somewhere other than the stage folder, then your mod will automatically have to share save slots with Curly Story and all other mods that do. If you try to force it to use a different save slot set, then it will use all the base graphics. I've been trying to find a fix for this, but progress has been very slow.
-The auto-port wizard will not function properly if the song "Zombie" has been replaced in the mod being loaded.
-On some systems, the "Open port..." file menu option and many browse buttons don't seem to work
-The map preview sometimes has trouble displaying tiles exclusive to a replaced tileset
-After replacing a stage.tbl file via an exe, the mod has trouble saving
-The program has trouble detecting file extensions that are capitalized
-The program sometimes has trouble automatically detecting modified .pxm and .pxe files
 
Last edited:
Dec 2, 2013 at 10:44 PM
The TideWalker
Modding Community Discord Founder
"That dog!"
Join Date: Apr 5, 2013
Location: In my mind and of my body.
Posts: 1640
Age: 26
This is really cool, I applied Pyramid and it looked nice.


Now all that's left is to give Cave Story's forth ending a CS+ port.


I didn't check it, but what happens when you apply a lot of mods? Is there a scroll feature build into CS+ or something?
 
Dec 2, 2013 at 11:24 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
Bombchu Link said:
This is really cool, I applied Pyramid and it looked nice.
Thanks!

Bombchu Link said:
Now all that's left is to give Cave Story's forth ending a CS+ port.
Yeah, that's the first example port I'm going to make when I've gotten all of the graphics manipulation features implemented.

Bombchu Link said:
I didn't check it, but what happens when you apply a lot of mods? Is there a scroll feature build into CS+ or something?
I'm afraid not. The box just goes off the screen if you apply too many ports. It also gets really wide if you give one port a really long name.
 
Dec 4, 2013 at 12:51 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
Fatih120 said:
HOLY. SHIT.

This is goddamn amazing! I'm really trying this out! Trying to port your own mods yourself is hard~
Thanks!

Fatih120 said:
So...

Can it support ASM mods? :D
I'm afraid not. ASM hacks are outside of Plus Porter's capability, even in later versions.
 
Dec 5, 2013 at 1:32 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Nov 28, 2013
Location:
Posts: 2
YES.


But really, How do I even port partial Cave Story edits, Such as your fourth ending one?
 
Dec 5, 2013 at 2:29 AM
Giving it my all and shooting for the moon.
Modding Community Discord Admin
"What're YOU lookin' at?"
Join Date: Apr 23, 2013
Location: In a cave above the surface.
Posts: 1068
Age: 25
I'll definitely have to look into this program when time allows.

e: Also, this most likely qualifies to be added to the tribute site modding tools catalogue, ever thought about asking for it's inclusion?
 
Jan 21, 2014 at 11:10 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
ORIGINALLY POSTED ON 04 DECEMBER, 2013:
Fatih120 said:
Damn

Well,

at least I can port in WAHAHA story :p
I'm afraid not yet. As of right now, the program can't properly do the trick I'm planning for mods with partially edited sprite sheets and retaining double resolution all throughout.

hevanavix said:
YES.
But really, How do I even port partial Cave Story edits, Such as your fourth ending one?
The first step I recommend in porting a mod is importing the mod's maps. This is done by going to "edit" -> "replace" -> "Stage folder", and browsing to said mod's stage folder. That then imports the mod's list of maps. You then add any additional edited resources in the mod (I.E. modified global scripts, modified .tbl files, modified spritesheets, etc.), save it, and then it can be applied to a CS+ directory. The resource gathering features aren't supported yet, though, so in the current version you'll have to add these resources manually. And ports with partially edited sprite sheets can't legally be distributed yet. My fourth ending mod partially modifies a few sprite sheets. I'll try to have Miscellaneous file gathering supported in the next release.

Perhaps I should provide a bit of documentation on actually using Plus Porter in the readme of the next release. Hopefully that will reduce questions of this nature.

EnlightenedOne said:
I'll definitely have to look into this program when time allows.
Looking forward to it!

EnlightenedOne said:
e: Also, this most likely qualifies to be added to the tribute site modding tools catalogue, ever thought about asking for it's inclusion?
I would be honored, and I would say yes if Andwhy requested to do so. Although I myself am not going to personally request for him to add it until it has a bit more functionality.

For those of you who are interested, here's my current to-do list for the next release of Plus Porter:
-Let the user edit some preferences in the application -- Done (12/7/2013)
-Add an option in the prefs window to make it automatically open up the last opened CS+ directory upon startup if one exists in the prefs file. -- Done (12/7/2013)
-Display the name of the current port opened in the main window title -- Done (12/7/2013)
-Make the program detect changes being made to the port, and prompt you to save before exiting if it has unsaved changes -- Done (12/7/2013)
-Add a progress bar window for when an exe is being loaded to extract map data -- Done (1/16/2014)
-Add a progress bar for when a port is getting applied. -- Done (1/16/2014)
-Enable the user to replace their own miscellaneous files.
----------------------------------------


Hey guys, I know I left this thread for a little, but I've been working on this when I've been able to, and a new version is now available! You may either download it from the original post, or here: Plus Porter v0.5.0.0

Changes in this new version:

- Fixed the glitch with some Cave Story+ installations where the error "Credit19.bmp not found!" is shown when opening up a Cave Story+ directory
- Implemented a preferences window
- Made it display the name of the current port opened in the main window title
- Made the program detect changes being made to the port, and prompt you to save before exiting, opening another port, or starting a new port, if it has unsaved changes
- Added a progress bar window for when an exe is being loaded to extract map data
- Added a progress bar for when a port is getting applied
- Made it able to open ports that are already installed
- Made it automatically detect if the user is trying to apply a port with a name and/or folder name identical to one already installed, and handle the situation accordingly
- Implemented the "Replace miscellaneous file" feature
 
Jan 22, 2014 at 6:29 AM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6211
Age: 38
Just checking in to see if it's okay to add this one to the tribute site.
 
Mar 16, 2014 at 6:43 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
ORIGINALLY POSTED ON 22 JANUARY, 2014:
andwhyisit said:
Just checking in to see if it's okay to add this one to the tribute site.
I'd be honored.
----------------------------------------


New version available. I'm sorry that I didn't have an update last month, and that this update doesn't have much, but this is a necessary bug fix. You may either download the new version from the original post, or here: Plus Porter v0.5.1.0

Changes in this new version:

- Fixed the problem of not properly loading mapdata from edited exes. I could have sworn I had it working before, but whatever. Thanks goes to Noxid for letting me use his mapdata-extracting code which I modified to suit my needs. The map list now populates instantly rather than having a progress bar.
 
Mar 16, 2014 at 6:44 PM
lol
Modding Community Discord Moderator
"All your forum are belong to us!"
Join Date: Oct 20, 2013
Location: Florida
Posts: 604
Question is there a way to reverse the effects?
 
Mar 16, 2014 at 6:51 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
You mean can you uninstall a port? If so, then yes, quite easily. Simply edit the "mods.txt" file, located in the data folder, and remove the port you want to uninstall from the list. For extra thoroughness, also delete the folder for your mod from the data folder. I've been considering implementing a feature in Plus Porter that does this. If you want, I can put that on my to-do list for the next release.
 
Mar 16, 2014 at 6:51 PM
lol
Modding Community Discord Moderator
"All your forum are belong to us!"
Join Date: Oct 20, 2013
Location: Florida
Posts: 604
Ok thanks.
 
May 9, 2014 at 9:48 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
Hey guys, a new version is now available! You may either download it from the original post, or here: Plus Porter v0.6.0.0

Changes in this new version:

-Fixed the glitch where it would automatically save your port in the selected directory even if you click cancel in the filechooser while using the "save as" feature.
-Fixed the error which occurred when opening ports that take the form of an installed port, but are not listed on a local "mods.txt" file.
-Removed the cancel button from the port properties window if you selected "New port..." from the file menu, because clicking it under those circumstances messes up a bunch of stuff and there's no point in doing it anyway.
-Made it so that the user can manage the order of ports in their CS+ directory even if there's no port open.
-Made it so that the user can uninstall ports with the click of a button.
-Made it so that the "Apply port" option is always grayed out upon starting a new port.
-Added the widgets necessary for replacing miscellaneous images, credit images, backgrounds, and NPC tilesets.
-Fixed the glitch where the program would fail to complete the applying process on a port which did not include a "stage.tbl" file.


If you haven't looked into this tool much yet, then now would be an excellent time. This new version features the long-talked about graphics manipulation features that allow you to legally distribute partially edited spritesheets while maintaining double resolution all throughout. Additionally, I present to you two more ports to try this application out with:

WTF Challenge - by GIRakaCHEEZER (ported by Aar)
Labyrinth Escape - by metalsonic71 (utilizes partially modified spritesheet)

The first one is a demonstration of the last bugfix mentioned, and the second one demonstrates the power of the new-found graphics manipulation features.

Please consider trying this out, and tell me what you think.
 
May 9, 2014 at 11:19 PM
The TideWalker
Modding Community Discord Founder
"That dog!"
Join Date: Apr 5, 2013
Location: In my mind and of my body.
Posts: 1640
Age: 26
Nice work Hayden, you've done sone nice work, especially with the bitmap partial replacing.


Could you make plus porter apply hex patches in the next release?
 
May 10, 2014 at 1:05 AM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
Bombchu Link said:
Nice work Hayden, you've done sone nice work, especially with the bitmap partial replacing.
Thanks!

Bombchu Link said:
Could you make plus porter apply hex patches in the next release?
You mean make it change stuff about the EXE? If so, then I'm afraid that's out of the question. I don't know what offsets of the original game correspond to what parts of the CS+ exe, so I wouldn't know what part of the EXE to change.

However, there are some files located in the base directory of the CS+ installation that can be replaced by putting alternate versions in a mod, and some of them appear to hold data that's stored in the EXE in the original Cave Story. Among these are "arms_level.tbl," "banner.bin," "bullet.tbl," "csfont.fnt," "music.tbl," "pixtone.tbl," "stage.tbl," and "wave.dat." If you can make your own versions of these files, then Plus Porter will do the rest by letting you import them via the "Replace Miscellaneous file" feature. I suppose if you want me to add some support for actually making those files (I.E., importing that data from a selected EXE [the replace misc. file feature already lets you do that with stage.tbl]), then that would definitely be feasible. So I can put that on my to-do list.

I wasn't entirely sure what you were asking, so if I didn't answer your question then please be more specific.
 
May 10, 2014 at 1:14 AM
The TideWalker
Modding Community Discord Founder
"That dog!"
Join Date: Apr 5, 2013
Location: In my mind and of my body.
Posts: 1640
Age: 26
HaydenStudios said:
Thanks!

You mean make it change stuff about the EXE? If so, then I'm afraid that's out of the question. I don't know what offsets of the original game correspond to what parts of the CS+ exe, so I wouldn't know what part of the EXE to change.

However, there are some files located in the base directory of the CS+ installation that can be replaced by putting alternate versions in a mod, and some of them appear to hold data that's stored in the EXE in the original Cave Story. Among these are "arms_level.tbl," "banner.bin," "bullet.tbl," "csfont.fnt," "music.tbl," "pixtone.tbl," "stage.tbl," and "wave.dat." If you can make your own versions of these files, then Plus Porter will do the rest by letting you import them via the "Replace Miscellaneous file" feature. I suppose if you want me to add some support for actually making those files (I.E., importing that data from a selected EXE [the replace misc. file feature already lets you do that with stage.tbl]), then that would definitely be feasible. So I can put that on my to-do list.

I wasn't entirely sure what you were asking, so if I didn't answer your question then please be more specific.
On no no, I don't mean find the equivalent offset, that would be far to hard to do.

I just meant for it to directly apply patches from a .txt file like this.
0x400000

12 39 39 20 29 90 45 30 29

I realize that the offsets still need to be discovered. :rolleyes:
 
May 10, 2014 at 1:32 AM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2307
Age: 27
Bombchu Link said:
On no no, I don't mean find the equivalent offset, that would be far to hard to do.

I just meant for it to directly apply patches from a .txt file like this.
Code:
0x400000

12 39 39 20 29 90 45 30 29

I realize that the offsets still need to be discovered. :rolleyes:
In that case then, sure. I'll put it on my to-do list. Don't expect it to happen in the next release or the release after that, though. I'd prefer to get some more fundamental things out of the way before I move onto something obscure like hex editing.
 
May 10, 2014 at 1:54 AM
scrungy
Bobomb says: "I need a hug!"
Join Date: Oct 7, 2011
Location: PrtWeed
Posts: 776
Age: 24
Top