Assembly Hacks

Jul 3, 2006 at 9:41 PM
Senior Member
"Huzzah!"
Join Date: Mar 24, 2006
Location:
Posts: 194
I don't really care if you release the information your witholding but others might & I'm just pointing out an analogy that might make you change your mind for their sake
 
Jul 3, 2006 at 9:54 PM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
A video game character is fictional. It won't change a way of working I've followed with success for 12 years. :p Effort is rewarded by success. And frankly, I want my more important findings to remain private until I complete my hack - what's the point in staying up past 3 am finding out how to create new weapons and enemy AI when everyone has it in their hack by the time you're done?

I'll gladly lend my help just like any other poster here would, but it is my belief that the journey of a thousand miles begins with a single step, not by hailing a cab. And I'd like it if that belief were respected. :)
 
Jul 4, 2006 at 1:20 AM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Mar 1, 2006
Location: Grasstown
Posts: 155
Age: 39
Last I checked the cave story hacking community was open source.
How is sharing scripts different from sharing machine code? you still have to figure out how it works and write the whole thing yourself.
 
Jul 4, 2006 at 1:30 AM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
I'm here to work on my projects and share the end result, not give away all of my secrets on a silver platter. I think we've established that already. :p

I'm also here because I expect to be working with people who are not necessarily talented and/or skilled, but at least serious enough to do their own research before asking for answers. Technika did that, which was damned cool, and I was glad to have a look at his work and prod him in the right direction after he gave it a try. He tried, he wasn't able to get his events to work like he wanted them to, but at least he tried, and I don't know about you but I think that's a damn lot more than most people on the intar-web are willing to do.

Like I said, the journey of a thousand miles begins with a single step. And if after a while you're going in circles and decide to hail a cab, well at least you tried. Beats getting a cab to pick you up at your front door right off the bat!
 
Jul 4, 2006 at 2:13 AM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Mar 1, 2006
Location: Grasstown
Posts: 155
Age: 39
Oh man, you should have been around when technika introduced himself... youve got it all backwards.
 
Jul 4, 2006 at 2:20 AM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
Naw, I was there for his earlier work on his Balrog event. He got around to trying it himself and then asking for help again, and IMO that was damned cool of him. But before that, yeah, there was a bit of unwillingness. :p

I've updated the first post with something that might spark off the creativity of a few hackers. Unfortunately any info past that is being retained until the final release of my hack. Enjoy. :)
 
Jul 4, 2006 at 12:38 PM
Been here way too long...
"..."
Join Date: Jun 25, 2005
Location:
Posts: 372
Even if I don't agree with your ideas, you're damn inspirational when you describe them. :p
 
Jul 4, 2006 at 4:27 PM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
upthorn said:
I refer you here: http://www.cavestory.org/forums/threads/154/

(Technika's first post)
I retract my statement and offer you an appology. Turns out I misinterpreted the situation; you were right in your assessment. :p

Osmose said:
Even if I don't agree with your ideas, you're damn inspirational when you describe them. :D
I love my work. :) That, and drinksmixing, are my only two hobbies.
 
Jul 5, 2006 at 3:01 AM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Apr 14, 2006
Location:
Posts: 112
Osmose said:
Personally, I think that creating an easy editor for those that have no assembly knowledge would be a great idea, because there could be someone who is a wonderful game designer, and could have great plans for a Cave Story mod, but doesn't have the experience or wish to learn assembly. Even if they didn't do all the work, the end result could still be a great mod that people enjoy. Besides, people definately will give major credit to the creator of the tool, as well as the one who uses it, and those that claim all the credit will be shunned by the community. ;)

It wouldn't even need to be an editor, just documentation of offsets where information for attributes or behaviors are stored and basic information on how they can be modified, much like what Shining Phantom and Kapow gave us for modifying npc.tbl. As for the rest, I agree 100%. I have little respect for someone who loves to tell everyone what he can do in the same breath that he's telling them that he won't show them how. The stuff at the beginning of this thread is a good start, but the longer this thread gets, the more obvious it is that it's nothing Rune considers significant.

I really don't care if I'm never able to "hack" the executable. Good game design is more important to the quality of a mod than hacking anyway. But it really grates on my nerves watching someone purposefully withholding potentially useful information from anyone when this community has always been about sharing and building upon each other's efforts.
 
Jul 5, 2006 at 3:26 AM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
Shmitz said:
It wouldn't even need to be an editor, just documentation of offsets where information for attributes or behaviors are stored and basic information on how they can be modified, much like what Shining Phantom and Kapow gave us for modifying npc.tbl.
The problem is how the game doesn't store these things directly. They're hammered into the code at variable locations, sometimes even the result of a function (such as when determining which frame to display during an animation - there are no actual numbers involved.) It cannot be edited directly.

Shmitz said:
But it really grates on my nerves watching someone purposefully withholding potentially useful information from anyone when this community has always been about sharing and building upon each other's efforts.
Mind you, I'm not some random schmoe who's been around since the start. Maybe you and your friends are all some tight-knit clique working hard together towards some greater common goal, but I've been here only about 2 weeks. I have no obligations towards anyone to post anything at all and I could've just hovered around the boards without registering and taking in info without giving anything back.

None of the things I know that wouldn't require assembly knowledge to edit have gone unposted. I even research for others sometimes. For people I don't even know, and will never meet IRL. Nor is anyone going to tell me how to code in a command to switch characters mid-game - that, too, I'll have to do on my own.

If you're so set back by there being someone completely new who doesn't know you yet knows more about all this, and won't spill every last one of his secrets before releasing his hack, then why not learn assembly yourself?
 
Jul 10, 2006 at 3:04 AM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
Added info on weapon energy.
 
Jul 12, 2008 at 8:45 PM
Junior Member
"Wow! The more I drink of this magical beverage, the more games I can play! Wheee!"
Join Date: Jun 28, 2008
Location:
Posts: 24
whats the offset for the hover thing?
 
Jul 12, 2008 at 9:44 PM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
lmaokrn said:
whats the offset for the hover thing?
Wow. You didn't look very hard, did you?
 
Jul 12, 2008 at 11:06 PM
Junior Member
"Wow! The more I drink of this magical beverage, the more games I can play! Wheee!"
Join Date: Jun 28, 2008
Location:
Posts: 24
well i couldnt locate the text string and u dint put the code in so yea xD
srrrrry man
 
Jul 12, 2008 at 11:38 PM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
Have you... perchance... tried reading the thread? :)

Works wonders, I heard, when you're trying to find something. Especially when it happens to be right on the first page of the thread, in the first post, as the first line.

See where I'm coming from here? :p
 
Aug 3, 2008 at 12:48 AM
Senior Member
"Huzzah!"
Join Date: Jul 4, 2008
Location: South Australia
Posts: 217
Age: 29
i know i sound like a noob face but where do u put the codes and find the original ones
 
Aug 3, 2008 at 1:02 AM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
This is assembly. Assembly is the stuff that makes a program run. The codes were obtained by dumping the game's assembly code, analyzing it, and rewriting bits and pieces. What you see are the actual changes being made to the code.

To put them in, open your Cave Story.exe with a hex editor (hunt around for one if you don't have any; XVI 32 is pretty decent) and replace the values at the address specified with the new ones.

Make sure to back up your executable first.
 
Aug 10, 2008 at 1:03 AM
Senior Member
"Huzzah!"
Join Date: Jul 4, 2008
Location: South Australia
Posts: 217
Age: 29
Thanks i used my hex editor ((hex workshop) thanks for sharing these codes with everyone much apriciated
 
Aug 10, 2008 at 1:33 AM
Senior Member
"Huzzah!"
Join Date: Jul 4, 2008
Location: South Australia
Posts: 217
Age: 29
RuneLancer said:
Infinit Hover
To prevent the Booster from running out of juice, simply change the following line to the one underneath...
85 D2 74 16 83 3D E8 E6 49 00 00 74 0D A1 E8 E6
85 D2 74 16 83 3D E8 E6 49 00 01 74 0D A1 E8 E6
This tells the code to stop removing "juice" from the Booster once it hits 1 instead of 0. This is the simplest way of doing this.

Changing Text Color
Offsets 0141EE and 014358 push an RGB triplet onto the stack and later drop into a text-rendering function. The value you will find at these offsets is 0x11002200. Each byte is a different component (Red Green Blue Unused.) Change to whatever you want (ie, 0xFF000000 -> completely red.)

There are quite a few instances of regular text and I don't feel like going through them all right now. Look for 0xFFFFEF00 in your executable and try replacing them with colors of your own - test them one by one. I don't think that string exists outside of text colors so you should be fine. I'll update this when I feel like looking through offsets for the right ones. :)

Manipulating Oxygen
Offsets 0x0169A3 and 0x0169CA control the oxygen you get when you go underwater. Oxygen depletes at the rate of 1 per 1/10th of a second, but you only see every 10 unit (so 1000 means 100, 350 means 35...) They're set to 0xE8030000 (0x000003E8; which is 1000.) Try changing them to, say, 0xF4010000 (500; 50 units) or 0xC4090000 (2500; 250 units.)

Infinit Ammo
While this could be done as an assembly hack, you just need to give a weapon 0 ammo when you obtain it. So why bother. :p

Startup Info
Startup info is set in a routine at 0x014B50. You can find the startup information for health at 0x014BCF (current health) and 0x014BD8 (max health.) The other MOV instructions, I'm not clear on yet. 0x1000 and 0x0A000 get set a lot.

Fun with Water
The sounds played when you jump in and out of water are PUSHed onto the stack. You can find the instructions at 0x00016216 and 0x000162bd respectively. Just change the value the PUSH instruction uses from 0x22 to whatever sound you want.

Basic Weapon System Info
0x0009366C contains the weapon experience tables. Each is 3 x 4 bytes in length. For instance, 0x00093678 to 0x00093684 is for the shooting star. The majority of the info on a weapon (number of shots, frames, sound, behavior...) is hard-coded into the code itself, but some basic info exists elswhere in the executable. I'll leave that one for the aspiring hacker to find. Here's a hint: it's 0x2C in length and starts by the damage.

Weapon Energy's duration can easily be altered by changing a single value. This should be around 0x0026AA0.
08 81 79 6C 90 01 00 00 7E 38 8B 55 08 8B 42 6C

Also, the following two values control how much a weapon energy crystal has to be worth in order to switch sizes (ie, medium and large.) This is somewhere in the vicinity of 0x0026A10.
48 44 89 4D 8C 83 7D 8C 05 74 08 83 7D 8C 14 74

The sound it makes when bouncing can be found here, near 0x00267D0.
E1 0D 74 38 6A 01 6A 2D E8 63 9E FF FF 83 C4 08

Just asking what type of hex editor do u use
 
Top