• Most people probably don't realise this, but this forum has had two editors for a number of years. One is the xenForo default editor, and the other is a custom editor I made years back I called BBCEd.

    All the settings for which editor you use was lost during the upgrade. You can find the setting under Account Settings > Preferences > Editor.

Does a patch/mod exist for the Curse Broken achievement in Cave Story+?

Old topic!
The last post in this thread is over 60 days old. Posting in this thread will be considered a bump, so please make an attempt to be courteous if you go ahead with it.

If the last post is over 6 months old, it may instead be a better idea to start a new topic. If you aren't sure about what to do, feel free to ask a staff member for help, or try to locate a 'general questions'-type thread if it exists in this (sub-)forum.
Mar 10, 2017 at 7:46 PM
Junior Member
"Fresh from the Bakery"
Join Date: May 20, 2014
Location: Netherlands
Posts: 18
#1
So everyone here might know that this achievement has been broken since the beginning of it's release and Nicalis hasn't bothered to fix it. I have seen some stuff that people have looked into the code and there wasn't any mention of the Curse Broken achievement popping up when you beaten the game.
 
Mar 10, 2017 at 10:38 PM
Junior Member
"Fresh from the Bakery"
Join Date: May 20, 2014
Location: Netherlands
Posts: 18
#3
nope, there is no patch
Odd. For most games people tend to release patches for certain things to fix the games. Apparently there is none for Cave Story+, sadly.
 
Mar 11, 2017 at 12:00 AM
Perfectionist
CS Beta Content Discord Admin
CSE Discord Moderator
"Man, if only I had an apple..."
Join Date: Dec 26, 2014
Location: the back of their own hand.
Posts: 1494
Age: 119
#4
CaveStory+ actually has edit protection, making this task very difficult. Thomas Xin has managed to overwrite the write protection. But it cannot be boiled down into a small patch, he has to redistribute the entire .exe.
 
Mar 11, 2017 at 7:49 AM
Junior Member
"Fresh from the Bakery"
Join Date: May 20, 2014
Location: Netherlands
Posts: 18
#5
CaveStory+ actually has edit protection, making this task very difficult. Thomas Xin has managed to overwrite the write protection. But it cannot be boiled down into a small patch, he has to redistribute the entire .exe.
If that patch ever got released and you replace the Cave Story+ executable to the one he modified, would you still get the achievement upon beating Ballos?
 
Mar 11, 2017 at 7:53 AM
Perfectionist
CS Beta Content Discord Admin
CSE Discord Moderator
"Man, if only I had an apple..."
Join Date: Dec 26, 2014
Location: the back of their own hand.
Posts: 1494
Age: 119
#6
If that patch ever got released and you replace the Cave Story+ executable to the one he modified, would you still get the achievement upon beating Ballos?
The way you phrased your question is a little confusing. You do not get the achievement either way without further modification to fix the bug.
 
Mar 11, 2017 at 7:56 AM
Junior Member
"Fresh from the Bakery"
Join Date: May 20, 2014
Location: Netherlands
Posts: 18
#7
The way you phrased your question is a little confusing. You do not get the achievement either way without further modification to fix the bug.
That was I meant to say. My bad.
 
Mar 12, 2017 at 2:35 PM
Senior Member
CSE Discord Admin
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Jan 13, 2016
Location:
Posts: 102
#8
I think I found the cause. Turns out a fix only requires a simple TSC modification.

I did some digging through the Cave Story+ EXE, and found the code for triggering achievements. Each achievement is assigned an ID: the Normal Ending achievement ID is 50, the Mimiga Mask Ending is 52, and the Good Ending is 51. So I did some more digging, and found that CS+ added a TSC command for triggering achievements: 'ACH'. None of the achievements triggered by the game's code used ID 51, so that left only the TSC scripts. Looking in the script for the room 'Fall' (the cutscene where you're caught by Kazuma or Balrog), I found the following:

Code:
Let's go home.<NOD<CLO
<KEY<FAO0004<HMC
<ITJ0024:0101
<ACH0050<TRA0000:0100:0001:0015

#0101
<ACH0052<TRA0000:0100:0001:0015
As you can see, the Normal/Mimiga endings are properly unlocked. But, looking at the Good Ending...

Code:
<KEY<FAO0004<HMC<ITJ0032:0121<TRA0000:0100:0001:0015

#0121
<KEY<WAI0100<MSG<GIT1032
Aren't we forgetting something?<NOD<TRA0000:0100:0001:0015
...there's no such command. It seems like Nicalis just forgot to insert a '<ACH0051' before the 'TRA's.
 
Last edited:
Mar 12, 2017 at 3:38 PM
Perfectionist
CS Beta Content Discord Admin
CSE Discord Moderator
"Man, if only I had an apple..."
Join Date: Dec 26, 2014
Location: the back of their own hand.
Posts: 1494
Age: 119
#9
I think I found the cause. Turns out a fix only requires a simple TSC modification.

I did some digging through the Cave Story+ EXE, and found the code for triggering achievements. Each achievement is assigned an ID: the Normal Ending achievement ID is 50, the Mimiga Mask Ending is 52, and the Good Ending is 51. So I did some more digging, and found that CS+ added a TSC command for triggering achievements: 'ACH'. None of the achievements triggered by the game's code used ID 51, so that left only the TSC scripts. Looking in the script for the room 'Fall' (the cutscene where you're caught by Kazuma or Balrog), I found the following:

Code:
Let's go home.<NOD<CLO
<KEY<FAO0004<HMC
<ITJ0024:0101
<ACH0050<TRA0000:0100:0001:0015

#0101
<ACH0052<TRA0000:0100:0001:0015
As you can see, the Normal/Mimiga endings are properly unlocked. But, looking at the Good Ending...

Code:
<KEY<FAO0004<HMC<ITJ0032:0121<TRA0000:0100:0001:0015

#0121
<KEY<WAI0100<MSG<GIT1032
Aren't we forgetting something?<NOD<TRA0000:0100:0001:0015
...there's no such command. It seems like Nicalis just forgot to insert a '<ACH0051' before the 'TRA's.
I'm pretty sure I triggered <ACHs 1-150 at one point, and none of them gave me the Curse Broken achievement. But my reward for doing that is now I have every OTHER achievement.
LET ME TEST IT RIGHT NOW AS I'M WRITING THIS OH SHIT SO THAT MEANS I WAS PROBABLY WAITING TO POST THIS FOR LIKE 10 MINUTES BUT WHATEVER TESTING TIME WHY THE FUCKING HELL ARE YOU STILL READING THIS RUN-ON-SENTENCE?

Ugh, so I had to change my language back to English to do this as well...

Okay so the game crashed.
 
Last edited:
Mar 12, 2017 at 4:23 PM
Senior Member
CSE Discord Admin
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Jan 13, 2016
Location:
Posts: 102
#10
Ah, right. 51 isn't unlocked in Fall, it's in Ballo2. Achievements that depend on the good ending unlock properly, so 51 should be processed properly. Each achievement is represented by a string, which is passed to the steam_api.dll file. Maybe the good ending's one is wrong. The one in the game is 'ENDGOOD', but maybe the one on steam's server is different?

EDIT: According to this page, the string Steam expects is 'ENDBEST'. That explains it. So the 'ENDGOOD' string inside the EXE needs changing.

EDIT2: In other news, whoa: the internal name for the achievement for beating Hard Mode is 'BAMF', which I'm pretty sure is short for 'Bad-Ass Mother-Fucker'. Dayum, Nicalis.
 
Last edited:
Mar 12, 2017 at 4:27 PM
Perfectionist
CS Beta Content Discord Admin
CSE Discord Moderator
"Man, if only I had an apple..."
Join Date: Dec 26, 2014
Location: the back of their own hand.
Posts: 1494
Age: 119
#11
EDIT: According to this page, the string Steam expects is 'ENDBEST'. That explains it. So the 'ENDGOOD' string inside the EXE needs changing.
Ah. I'll be sure to have this in my Megafix project.
EDIT: YUSS NOW I HAVE EVERY ACHIEVEMENT SUCK MY-- UH. Uh. Well thank you. (my arm still hurts though)
 
Last edited:
Jan 10, 2018 at 8:50 PM
Neophyte Member
"Fresh from the Bakery"
Join Date: Jan 10, 2018
Location:
Posts: 2
#12
Apologies for the necro, but I created an account just to ask for further details on this. I'm no stranger to hex editing, but I was curious as to what needs to happen to bypass the exe's "edit protection". Simply editing the ENDGOOD string causes the exe to bomb. Is there some kind of checksum?
 
Jan 10, 2018 at 9:30 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: 6004
#13
works fine for me, ive made way more heinous exe edits than this and still had the game run fine. pretty sure theres no protections.
 
Jan 11, 2018 at 5:23 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Jan 10, 2018
Location:
Posts: 2
#14
You are right! I was double-clicking the exe, but running it through Steam works just fine.
 
Aug 3, 2019 at 5:21 AM
Senior Member
CSE Discord Admin
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Jan 13, 2016
Location:
Posts: 102
#15
Last edited:
Aug 3, 2019 at 5:31 AM
Perfectionist
CS Beta Content Discord Admin
CSE Discord Moderator
"Man, if only I had an apple..."
Join Date: Dec 26, 2014
Location: the back of their own hand.
Posts: 1494
Age: 119
#16
Big bump, but this issue's finally been fixed!


...


And I didn't get any credit!
Cave Story+ didn't receive an update - does this mean that the previously incorrect code "ENDGOOD" is now the correct one? (I can't test this because I already have the achievement)

P.S. Can someone tell them to initialise the scoreboards now so that I can hack my way to the top of them?
 
Last edited:
Aug 3, 2019 at 11:48 PM
Junior Member
"It's dangerous to go alone!"
Join Date: Dec 22, 2018
Location: Sand Zone Residence
Posts: 32
#17
Cave Story+ didn't receive an update - does this mean that the previously incorrect code "ENDGOOD" is now the correct one?
Yeah, they changed it on the server side, so ENDGOOD is the correct code.

Can someone tell them to initialise the scoreboards now
yes please

so that I can hack my way to the top of them?
bad zxin, very bad
 
Aug 4, 2019 at 5:06 AM
Perfectionist
CS Beta Content Discord Admin
CSE Discord Moderator
"Man, if only I had an apple..."
Join Date: Dec 26, 2014
Location: the back of their own hand.
Posts: 1494
Age: 119
#18
Yeah, they changed it on the server side, so ENDGOOD is the correct code.
R.I.P. Curse Broken fix patch
Code:
0x491C37
42 45 53 54
I should've probably released this before, but applying it like this requires people to disable the relocation table first.
bad zxin, very bad
What, you think they're gonna moderate them?
 
Top