Proof-of-concept hack: CS + PxTone.dll

Oct 12, 2010 at 3:04 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
I had another one of those massive strokes of ambition today and dug around long enough to figure out how to manually link a DLL File. I then integrated PxTone.dll, added a song, and here you go: PxTone support in Cave Story. This isn't really a functioning hack but rather a proof-of-concept, so it only supports one song and also is full of clumsy code. Still, I've been told it works so here you go: http://www.mediafire.com/?09b64hx7ilhb6cw

Whaddya think?
 
Oct 12, 2010 at 3:27 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Epic. You can put in ASM/hack stuff into the DLL too right? Not sure about the specifics.

Interesting how you got pxtone to play... was this especially difficult to achieve?

Also, Mute's Story skin? What?
 
Oct 12, 2010 at 3:31 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Oh dear, I left that in there didn't I. I keep forgetting that I snuck that into what is supposed to be my unmodified doukutsu folder.

Anyways, yes, the big point here is that I could theoretically link *any* DLL containing any code you can write and compile. The hard part was figuring out how the whole deal actually worked, once I got the concept down it wasn't too hard. As for actually using PxTone, it's pretty simple and I've used the dll before so I kind of knew what to expect.
 
Oct 12, 2010 at 3:35 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Noxid said:
Oh dear, I left that in there didn't I. I keep forgetting that I snuck that into what is supposed to be my unmodified doukutsu folder.

Anyways, yes, the big point here is that I could theoretically link *any* DLL containing any code you can write and compile. The hard part was figuring out how the whole deal actually worked, once I got the concept down it wasn't too hard. As for actually using PxTone, it's pretty simple and I've used the dll before so I kind of knew what to expect.

Oh, so you mean linking the file was difficult to figure out, but calling code from the DLL or whatever to make Pxtone work was pretty easy, right?

What about a blank template DLL so you can just insert whatever code you want? Wouldn't that be useful?
 
Oct 12, 2010 at 3:42 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Umm, a blank DLL is an interesting concept - Techincally I suppose it can be edited just like a regular .exe or something. Still, it would also be just as easy if not easier to write the DLL in C++ proper, compile it and then link that, don't you think?
Either way though, personally I only plan to use it for PxTone since that's one of the things I've always wanted for my mod. Unless I can get a DLL that will handle blitting and graphics to let me do alpha-blending and use PNG Graphics.... Hmmm...
 
Oct 12, 2010 at 7:03 PM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
Hmm, what if you add a few JNPs?
 
Oct 12, 2010 at 7:31 PM
inactive user
"All your forum are belong to us!"
Join Date: Feb 13, 2010
Location: undead parish
Posts: 625
WoodenRat said:
Hmm, what if you add a few JNPs?

JNP? Oh, Java! I thought you meant a tsc command like <JNP

WAIT: <JNP=jump npc to x, y? NOXID MAKE THIS SHIT NOW
 
Oct 12, 2010 at 7:35 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
We already have <MNPXXXX:YYYY:ZZZZ:WWW Move NPC X to coords Y:Z with direction W....
 
Oct 13, 2010 at 2:16 PM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
Hmmm yeah we do.
 
Oct 13, 2010 at 3:13 PM
Only Love, Maximum Love, Forever
"Life begins and ends with Nu."
Join Date: May 6, 2009
Location: somewhere new
Posts: 2137
Age: 29
Another fail, brought to you by:
SIXTYSECONDS

ontopic:
Noxid, does it look like px-tone will be the music format in Cave Story now?
 
Oct 13, 2010 at 4:02 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
cultr1 said:
Another fail, brought to you by:
SIXTYSECONDS

ontopic:
Noxid, does it look like px-tone will be the music format in Cave Story now?

I'd love to say yes, but first I need a way to automate the linking process AKA get off my lazy but and write a program to do it. It's somewhat labor-intensive and I honestly dont' trust anybody other than myself to do it right without having their hands held through the process. Also, as usual, there's the issue of space; for this one here I just commandeered a considerable portion of the Old Map Data to basically duplicate the Import Table and Import Address table. I'm looking into data segments to see if I could make my own or if I'll have to come up with a more dodgy solution.
 
Oct 13, 2010 at 4:40 PM
graters gonna grate
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jul 2, 2008
Location: &
Posts: 1886
Age: 31
If I had to guess, I'd say probably not, at least not for most mods. Some people will be too lazy to do whatever you have to do, some people will want to preserve as much "character" of the original CS as possible, and some will just prefer organya over pxtone.
 
Oct 13, 2010 at 6:52 PM
inactive user
"All your forum are belong to us!"
Join Date: Feb 13, 2010
Location: undead parish
Posts: 625
Noxid said:
We already have <MNPXXXX:YYYY:ZZZZ:WWW Move NPC X to coords Y:Z with direction W....

*still sucks at tsc*
The most complicated thing I can do is <CNP, gimme a break.

cultr1 said:
Another fail, brought to you by:
SIXTYSECONDS

Shut up. :eek:
 
Oct 21, 2010 at 5:09 AM
Junior Member
"It's dangerous to go alone!"
Join Date: Dec 12, 2009
Location: A place.
Posts: 42
Is there any way somebody could refine this? It would be cool to use.
 
Oct 21, 2010 at 5:15 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
I could refine it to a publishable state if I wanted to. I just didn't think there would be enough interest to justify the time, seeing as my last music improvement (the WAV drums) met fairly lukewarm response.
 
Oct 21, 2010 at 9:06 AM
Assistance
"All your forum are belong to us!"
Join Date: May 7, 2009
Location:
Posts: 552
Wow, I can't belive that was even possible to intergrate Pxtone music into Cavestory. You guys just learn more things more better and better as time moves on.. Soon enough Cavestory would become more of a platforming game creation program other than some independant game. I wonder what Pixel may think of this, I'm guessing he most likely would be kind of frustrated about it with all of this tampering.
 
Oct 21, 2010 at 9:04 PM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Noxid said:
I could refine it to a publishable state if I wanted to. I just didn't think there would be enough interest to justify the time, seeing as my last music improvement (the WAV drums) met fairly lukewarm response.

Hey, the WAV hack was a good one.

Ralren said:
Wow, I can't belive that was even possible to intergrate Pxtone music into Cavestory. You guys just learn more things more better and better as time moves on.. Soon enough Cavestory would become more of a platforming game creation program other than some independant game. I wonder what Pixel may think of this, I'm guessing he most likely would be kind of frustrated about it with all of this tampering.

Yes, Pixel allows people to mod his games, but he doesn't really approve of it in any real way. *irony time*
 
Oct 22, 2010 at 12:11 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
carrotlord said:
Hey, the WAV hack was a good one.

It has a memory leak >_>

Totally not my fault, Pixel for some reason either didn't bother to or didn't know how to destroy the WAV when the song was un-loaded so they built up.
Same thing happens in OrgView.exe

I patched the leak though so no worries.
Well, later. The version of the hack that's out there is leaky, I mean.
 
Oct 22, 2010 at 11:34 PM
Junior Member
"It's dangerous to go alone!"
Join Date: Dec 12, 2009
Location: A place.
Posts: 42
Noxid said:
It has a memory leak >_>

Totally not my fault, Pixel for some reason either didn't bother to or didn't know how to destroy the WAV when the song was un-loaded so they built up.
Same thing happens in OrgView.exe

I patched the leak though so no worries.
Well, later. The version of the hack that's out there is leaky, I mean.

Still was awesome. :J
 
Oct 23, 2010 at 7:41 PM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Noxid said:
It has a memory leak >_>

Totally not my fault, Pixel for some reason either didn't bother to or didn't know how to destroy the WAV when the song was un-loaded so they built up.
Same thing happens in OrgView.exe

I patched the leak though so no worries.
Well, later. The version of the hack that's out there is leaky, I mean.

But that's the one we're all using! Crap...
 
Top