• Please stop embedding files/images from Discord. Discord has anti-hotlinking logic in place that breaks links to Discord hosted files and images when linked to from anywhere outside of Discord. There are a multitude of file/image hosting sites you can use instead.

    (more info here)

Quick Modding/Hacking Answers Thread

Jun 21, 2016 at 3:17 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
How would I change the rate that the bubbler fires at? (As in, the rate of fire while holding down X)
I'm assuming level 2 or 3?
CPU Disasm
Address Command
0041F2DA CMP ECX,7
Basically that 7 is the fire rate. The lower it is, the faster it will repeat, and the faster it will shoot. Will affect both level 2 and 3.
Here's the whole checking algorithm; it's pretty inefficient though, IN TERMS OF SPACE
CPU Disasm
Address Command
0041F2AE MOV BYTE PTR DS:[49E6CA],6
0041F2B5 MOV EDX,DWORD PTR DS:[49E210]
0041F2BB AND EDX,DWORD PTR DS:[493614]
0041F2C1 JE 0041F54D
0041F2C7 MOV AL,BYTE PTR DS:[49E6CA]
0041F2CC ADD AL,1
0041F2CE MOV BYTE PTR DS:[49E6CA],AL
0041F2D3 MOVZX ECX,BYTE PTR DS:[49E6CA]
0041F2DA CMP ECX,7
0041F2DD JGE SHORT 0041F2E4
0041F2DF JMP 0041F579
0041F2E4 MOV BYTE PTR DS:[49E6CA],0
 
Last edited:
Jun 21, 2016 at 3:26 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
Thanks for finding that for me. Do you know where the max number of bubbles that can be on-screen at a time is, too?
Er...
CPU Disasm
Address Command
0041F280 PUSH EBP
0041F281 MOV EBP,ESP
0041F283 PUSH 7
0041F285 CALL 00403C40
0041F28A ADD ESP,4
0041F28D CMP EAX,0F
0041F290 JLE SHORT 0041F297
0041F292 JMP 0041F579
I think the CMP EAX, 0F is the max bullets for level 2&3.
For level 1:
CPU Disasm
Address Command
0041EFD0 PUSH EBP
0041EFD1 MOV EBP,ESP
0041EFD3 PUSH 7
0041EFD5 CALL 00403C40
0041EFDA ADD ESP,4
0041EFDD CMP EAX,3
0041EFE0 JLE SHORT 0041EFE7
0041EFE2 JMP 0041F279
The CMP EAX,3 is the max bullets for level 1. Keep in mind it's a JLE, so the max for levels 2&3 is actually 0x10, and 4 for level 1.
EDIT: I'm assuming that you will also be pestering me about the ammo recharge rate?
CPU Disasm
Address Command
0041F54D MOV ECX,DWORD PTR DS:[4A555C]
0041F553 ADD ECX,1
0041F556 MOV DWORD PTR DS:[4A555C],ECX
0041F55C CMP DWORD PTR DS:[4A555C],1
0041F563 JLE SHORT 0041F579
0041F565 MOV DWORD PTR DS:[4A555C],0
0041F56F PUSH 1
0041F571 CALL 00402020
0041F576 ADD ESP,4
The ammo recharge rate is 1 per 2 frames, set by ADD ECX, 1 and CMP DWORD [4A555C], 1. For levels 2&3.
For level 1:
CPU Disasm
Address Command
0041F24F MOV EAX,DWORD PTR DS:[4A5558]
0041F254 ADD EAX,1
0041F257 MOV DWORD PTR DS:[4A5558],EAX
0041F25C CMP DWORD PTR DS:[4A5558],14
0041F263 JLE SHORT 0041F279
0041F265 MOV DWORD PTR DS:[4A5558],0
0041F26F PUSH 1
0041F271 CALL 00402020
0041F276 ADD ESP,4
That is set by CMP DWORD [4A5558], 14
 
Last edited:
Jun 21, 2016 at 3:43 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
[QUOTE="zxin, post: 217496, member: 7232"[QUOTE="Thomas Xin, post: 217493, member: 7964"EDIT: I'm assuming that you will also be pestering me about the ammo recharge rate?[/QUOTE]Actually, no--thanks for telling me anyway,--but how do I make the max bullets > F? I tried overwriting the JLE part (even though I suspected it wouldn't work) but then the gun just stopped firing entirely. (for obvious reasons)[/QUOTE]
^10/10 quote there lol


10 is 1 more than F.
The max bullets is 40 hex by the way (64 dec). Change it to CMP EAX, 40
When you overwrote the JLE, it made an unconditional jump to the return instead of the fire part.
If you want the game to limit the bullets by itself, without a limit for the bubbler gun, an easier alternative would to be to replace the JMP after the JLE with NOPs/FNOPs. Changing JLE to JNO or JS does the same thing.
Keep in mind if you have 64 bullets on screen, no weapon will be able to shoot anything. I recommend changing it to CMP EAX, 38 just to leave 8 slots for other weapon bullets, but it's your choice whether to let the player break the game and suffer from it or not
EDIT:
Since we're currently on the topic of the Bubbler, I found the offsets for the stats.
0x048F386
00 00 00 00 00 01 01 00 00 14 00 00 00 08 00 00
00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00
00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00
00 02 01 00 00 14 00 00 00 08 00 00 00 02 00 00
00 02 00 00 00 02 00 00 00 02 00 00 00 04 00 00
00 04 00 00 00 04 00 00 00 04 00 00 00 02 01 00
00 14 00 00 00 08 00 00 00 04 00 00 00 04 00 00
00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00
00 04 00
Sort through it yourself. Can be accessed via BL/CE as well, so this is probably useless. It was interesting to find out though.
TL;DR:
There are 3 ways you can do this.
Change CMP EAX, 0F to CMP EAX, 38 - Best way since it doesn't break the game, unless the player is super fast/doing a TAS
Replace JLE with JNO, JMP or JS
Replace the JMP after the JLE with NOPs or FNOPs
 
Last edited:
Jun 21, 2016 at 11:11 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
I mean add a new weapon. Just make a copy of the Machine Gun, so I can edit it with CE and make the bullets do more damage and stuff.
I could do that easily, but don't have a computer so can't do it right now
 
Jun 22, 2016 at 12:18 AM
Junior Member
"Fresh from the Bakery"
Join Date: Jun 20, 2016
Location:
Posts: 13
Pronouns: he/him
Really easy question, I just don't know where to look: If Say, Quote was walking right, how many ticks would I have to wait before he moves EXACTLY 6 tiles so I can stop him? Thanks.
16x6=96, i think that's it.
 
Jun 22, 2016 at 12:39 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
Pronouns: he/him
quote doesn't move at one pixel per tick though
as well, is he going full speed? are you in the air? is the booster being used? there are a lot of considerations.
 
Jun 22, 2016 at 1:09 AM
Its dark in here
"Deaths: 4000"
Join Date: Nov 21, 2013
Location: farther
Posts: 922
Age: 29
Pronouns: he/him
How do I put the Guest tileset, and the Weed tileset on one map w/out sprite glitches?
make sure the npc's are set to the correct tile sets

as a matter a fact you can have npc's set to the Guest sprites rather than the 2 sprite sets set to the map
 
Jun 22, 2016 at 1:13 AM
Its dark in here
"Deaths: 4000"
Join Date: Nov 21, 2013
Location: farther
Posts: 922
Age: 29
Pronouns: he/him
Both of them need to be at Tileset 1. How do I change that?
make some of the npc's you are using set to tileset 2, or if thats already being used for a boss, use the tileset that isn't guest for the tileset 1 and just set the npc's to take sprites from guest
 
Jun 22, 2016 at 8:15 AM
The miracles of alchemy...!
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 831
Age: 27
Pronouns: 菓子
How do I change how much damage you get when make contact with Balrog.(when fighting him, of course.)
 
Jun 22, 2016 at 10:17 AM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
How do I change how much damage you get when make contact with Balrog.(when fighting him, of course.)
I'm assuming you mean the first Balrog fight?
CPU Disasm
Address Command
00435024 MOVZX EAX,BYTE PTR DS:[49E638]
0043502B OR EAX,00000002
0043502E MOV BYTE PTR DS:[49E638],AL
00435033 PUSH 2
00435035 CALL 00419910
0043503A ADD ESP,4
0043503D JMP 0043525B
Replace PUSH 2 with the hex of the required damage.
EDIT: I'll just post the rest of the balrogs just cause I can.
CPU Disasm
Address Command
00428736 MOV ECX,DWORD PTR SS:[EBP+8]
00428739 MOV DWORD PTR DS:[ECX+0A4],5
00428743 JMP SHORT 00428752
^ For Balrog shooting, the 5 is the value of damage.
CPU Disasm
Address Command
0042D326 MOV ECX,DWORD PTR SS:[EBP+8]
0042D329 MOV DWORD PTR DS:[ECX+0A4],0A
0042D333 JMP SHORT 0042D342
^ For when Balrog lands on Quote, 0A is the value of damage.
CPU Disasm
Address Command Comments
00448DB6 MOVZX EDX,BYTE PTR DS:[49E638]
00448DBD OR EDX,00000002
00448DC0 MOV BYTE PTR DS:[49E638],DL
00448DC6 PUSH 5
00448DC8 CALL 00419910
00448DCD ADD ESP,4
00448DD0 JMP 00449211
^ For balrog missiles, once again 5 is the damage
If you also need Balfrog, I'll post it later
 
Last edited:
Jun 22, 2016 at 4:43 PM
Eevee Enthusiast
"All your forum are belong to us!"
Join Date: Mar 26, 2014
Location: Somewhere with Wi-Fi
Posts: 553
Age: 28
Pronouns: he/him
Or you can just do it in CE by going to his NPC settings and changing the Attack damage.
You can do the same in Booster's Lab using the "Edit npc.tbl" feature under "Entities".
 
Jun 22, 2016 at 4:50 PM
The miracles of alchemy...!
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 831
Age: 27
Pronouns: 菓子
Jun 22, 2016 at 4:52 PM
Eevee Enthusiast
"All your forum are belong to us!"
Join Date: Mar 26, 2014
Location: Somewhere with Wi-Fi
Posts: 553
Age: 28
Pronouns: he/him
Jun 22, 2016 at 5:49 PM
Eevee Enthusiast
"All your forum are belong to us!"
Join Date: Mar 26, 2014
Location: Somewhere with Wi-Fi
Posts: 553
Age: 28
Pronouns: he/him
the npc.tbl lets you edit touch damage to.

but not this, I think you need asm for that
p217531-0-vftr4dm.png
Despite being Balrog's first form, it doesn't show how much damage his grapple does. However, it does let you change his health; in this case, Balrog's health would be 300 instead of whatever it would be when you first fight him in vanilla Cave Story.
 
Jun 22, 2016 at 11:24 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
p217531-0-vftr4dm.png
Despite being Balrog's first form, it doesn't show how much damage his grapple does. However, it does let you change his health; in this case, Balrog's health would be 300 instead of whatever it would be when you first fight him in vanilla Cave Story.
Changing the damage seems to combine the damage with the one in asm. So if you set the first form damage to 8, it will do 10 (Dec) damage altogether. But sometimes it just does 8 and doesn't hug you.
 
Jun 23, 2016 at 12:08 PM
The miracles of alchemy...!
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 831
Age: 27
Pronouns: 菓子
I'm assuming you mean the first Balrog fight?
CPU Disasm
Address Command
00435024 MOVZX EAX,BYTE PTR DS:[49E638]
0043502B OR EAX,00000002
0043502E MOV BYTE PTR DS:[49E638],AL
00435033 PUSH 2
00435035 CALL 00419910
0043503A ADD ESP,4
0043503D JMP 0043525B
Replace PUSH 2 with the hex of the required damage.
So I replaced 2 with something higher, and it only worked when he was leaping at me.
Did I do something wrong?
 
Jun 23, 2016 at 12:22 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
So I replaced 2 with something higher, and it only worked when he was leaping at me.
Did I do something wrong?
So... does he only do damage when he's jumping, or does he only do a higher amount of damage when jumping?
 
Jun 23, 2016 at 12:26 PM
The miracles of alchemy...!
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 831
Age: 27
Pronouns: 菓子
He does more damage while leaping at me, but still does 2 damage when he runs into me.
 
Jun 23, 2016 at 12:35 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 25
Pronouns: he/him
He does more damage while leaping at me, but still does 2 damage when he runs into me.
Hmm... did you change the damage he does in npc.tbl? Because you shouldn't

EDIT: I missed one of the damage functions. This should be the other one.
CPU Disasm
Address Command
00434EF6 PUSH 2
00434EF8 CALL 00419910
00434EFD ADD ESP,4
00434F00 JMP 0043525B
^ This is for the damage while running. Separate to the damage while jumping on you
 
Last edited:
Back
Top