Quick Modding/Hacking Answers Thread

Nov 24, 2012 at 9:36 PM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
Pronouns: she/her
Ugh you stupid blackberry
IPbored butchered my post and I can't bothered to write it out again. Just do what noxid.
 
Nov 25, 2012 at 1:25 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him
You can use Sue's Workshop if you're a masochist or you're Lace.
Or if you're a masochist who wears frilly laces.

But seriously, Booster's Lab has the following advantage:
diph.php
 
Dec 5, 2012 at 2:40 AM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Dec 10, 2011
Location: South Florida
Posts: 91
Age: 24
Pronouns: he/him

I am having trouble moving the Curly boss to another room. When I encounter her, she walks up normally and all that. But when she's about to take her machine gun out, she disappears. The battle starts and she is still invisible. I can attack her, but she doesnt attack back. She doesnt make her gun noise either.





Here is the script that I have down (NOTE: I did fiddle around with it because she had to look left instead of right):

Code:
#0300
<KEY<DNP0300<MM0<MYD0000<CMU0000
<FL+0561<MSGAaaaahhhh!<NOD<CLO<KEY
<ANP0500:0003:0000<WAI0079<ANP0500:0000:0000
<MSG<FAC0019Ooohhhh!<NOD<CLO
<MSGWe have a VISITOR!<NOD<CLRI know what it is
you're looking for!<NOD
But wake up!<NOD
Mimigas aren't your
enemies!<NOD
Mimigas are harmless!!<NOD<CLRToo bad for you, but...<NOD<CLO
<WAI0020<SOU0004<CNP0400:0118:0000<DNP0500
<WAI0010
<MSGI'm on their side!<NOD<CLRYou're going down!!<NOD<CLO
<BSL0400
<CMU0004
<ANP0313:0010:0000
<END

#0400
<KEY<MYD0400
<FL-0561<FL-0565
<ANP0310:0020:0005
<ANP0311:0020:0005
<ANP0312:0020:0005
<ANP0313:0020:0005
<CNP0400:0117:0005
<ANP0400:0005:0005<WAI0002
<ANP0400:0030:0004<SOU0070
<WAI0100<PRI<CMU0015<MSG
Victory!<WAI0140<CMU0000<NOD<CLO
<KEY<ANP0400:0006:0005<WAI0002<PRI
<WAI0050<CMU0002
<MSG<FAC0020You win...<NOD
I can't fight anymore...<NOD<CLRI suppose you're going
to kill all the Mimigas,<NOD
just like the other robots?
<YNJ0410<CLRI see...<NOD<CLRWhat a pity...<NOD<PRI<CLO
<FAO0004<TRA0029:0090:0012:0009
 
Dec 5, 2012 at 2:48 AM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 32
This is just a guess but... she has to be entity 400 for this script to work. And from the looks of it you tried to make her entity 313 instead.

Also make sure you're using the right entity sprite sheet for the map, she has a seperate one for her boss form.
 
Dec 5, 2012 at 3:05 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him
I got it to work in a room that wasn't the original.

I don't think Curly is a boss - she's a regular monster entity who is treated like a boss.
LIKE A BAUS. YEH.
 
Dec 9, 2012 at 3:59 AM
Melon Lord
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Sep 20, 2011
Location: Rialto
Posts: 337
Age: 27
Pronouns: he/him
Alright, despite the progress I've made with my mod, I can't seem to learn flags despite repeated tries. I know I'm going to need flags in order to make the whole morals-system work. (Different choices, different text, etc.) So here's the first one that WILL require flags to work out. (Or I may be having an idiot moment and may not need flags for this after all.)
p199646-0-9qckef.png


Event 120 is the first meeting.
Event 121 is the conversation that inevitably happens, but you can refuse to segway into this in the form of a Yes/No question at the end of Event 120. I need to know how to start the conversation at Event 121 if you refuse to segway into it.
Event 121 and 122 are also the crossroads on what weapons you get, but both end up going to Event 123, that will change into some other event once your objective is complete.

I may have to set flags for the door that leads to the room it takes place in, it just depends on how I want to execute it. Let's call it door #0106
 
Dec 9, 2012 at 4:23 AM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2326
Age: 28
Pronouns: he/him
When I open up an unmodified version of Cave Story in OllyDbg, and I go to address 0048B8FF, all of the Instructions appear as DB 00, and the hex dump as 00 from there to the bottom. Is this empty space in the .exe that I can fill with whatever code I want and not mess anything up? I would automatically assume this if the "DB 00"s were "NOP"s, but since that's not the case, I'm not sure. It would be nice if a knowledgeable Cave Story assembly hacker could clarify.
 
Dec 9, 2012 at 4:26 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
The space is leftover from segment alignment by the compiler
do what you will with it.
 
Dec 9, 2012 at 7:26 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him
I would be very careful about editing random chunks.

Editing the "unused code" from the Bubbler is safe. Editing the part that says "free space" and "old mapdata" is totally safe, despite what some people might say.
Resources can also be edited and filled with code. Anyone who can't run your mod or gets an error because you put correct, runnable code in a weird place is just really dumb and knows nothing about program compatibility on computers.
 
Dec 10, 2012 at 9:55 PM
Veteran Member
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Aug 21, 2012
Location: At a computer
Posts: 337
How do you change a tilesets collision in cave editor? I'm trying to make an edit of the house tileset.
 
Dec 11, 2012 at 12:51 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him
Use CaveEditor's tileset editor?

You need to change the 1-byte type of each tile.
Bytes could be like 0x41 or something or other. You can go from 0x0 to 0xFF, but not all of them are useful.
Putting in bad bytes will crash your game when you enter the map.

If you do not know what 0x means, or have no grasp of binary / hexdecimal, or you have no idea what a byte is, then God help us all.
 
Dec 11, 2012 at 12:59 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
Carrotlord said:
Putting in bad bytes will crash your game when you enter the map.
what the hell carrotlord
no it doesn't

your misinformation is starting to piss me off, if you don't know what you're saying then shut up.
 
Dec 11, 2012 at 1:59 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him
Yes it does Noxid.
If you don't believe me, edit Cave Story and shove in bad bytes for tiles like 0x7 or 0x4.

NOT CSEngine.
 
Dec 11, 2012 at 2:07 AM
Melon Lord
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Sep 20, 2011
Location: Rialto
Posts: 337
Age: 27
Pronouns: he/him
Oh hey, uh, sorry, but I kinda get swept under the rug because of an ASM question. I'll just spoiler my original post, which was about how to set flags in order to correctly do Flagjumps. I tried doing it, but I kept failing. Repeatedly. Sorry if I sound a bit needy, or something.
Alright, despite the progress I've made with my mod, I can't seem to learn flags despite repeated tries. I know I'm going to need flags in order to make the whole morals-system work. (Different choices, different text, etc.) So here's the first one that WILL require flags to work out. (Or I may be having an idiot moment and may not need flags for this after all.)
1j5lcj.png

Event 120 is the first meeting.
Event 121 is the conversation that inevitably happens, but you can refuse to segway into this in the form of a Yes/No question at the end of Event 120. I need to know how to start the conversation at Event 121 if you refuse to segway into it.
Event 121 and 122 are also the crossroads on what weapons you get, but both end up going to Event 123, that will change into some other event once your objective is complete.

I may have to set flags for the door that leads to the room it takes place in, it just depends on how I want to execute it. Let's call it door #0106

Oh, and I also have another small question. How can one modify item descriptions?
 
Dec 11, 2012 at 2:19 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him

You need to use the command <FL+ to use a certain flag.

Flags are like this...



<FL+XXXX = Activates flag XXXX.

<FL-XXXX = Deactivates flag XXXX.

<FLJFFFF:EEEE = Jumps to event EEEE only if flag FFFF is activated.



http://www.cavestory.org/guides/basicmodding/guide/flags.html



Flags are very important. It is impossible to mod without them, unless you're only doing map edits, which isn't much editing at all.



EDIT: This is what happens when you put really weird bytes into your tilesets.

http://www.mediafire.com/?nxfx8dttkqm52p5

When you load a saved game, does it load correctly? Profile.dat is valid and not messed with in any way. However, the tiles for one of the tilesets (Oside I think...) have been screwed up because I shoveled in bytes like 0xFF, 0x9A, 0xCE, 0xC5, 0xD7, and so on.



EDIT2: Also, if you're having trouble with flags, please watch Noxid's modding tutorials on YouTube. They are very helpful.
 
Dec 11, 2012 at 2:28 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
Carrotlord said:
Yes it does Noxid.
If you don't believe me, edit Cave Story and shove in bad bytes for tiles like 0x7 or 0x4.

NOT CSEngine.
Code:
CPU Disasm
Address   Hex dump          Command                                  Comments
00417EF2  |.  8B55 E4       |mov edx,[local.7]
00417EF5  |.  884415 E0     |mov [edx+ebp-20],al
00417EF9  |.  8B45 E4       |mov eax,[local.7]
00417EFC  |.  0FB64C05 E0   |movzx ecx,byte ptr [eax+ebp-20]
00417F01  |.  894D CC       |mov [local.13],ecx
00417F04  |.  8B55 CC       |mov edx,[local.13]
00417F07  |.  83EA 02       |sub edx,2
00417F0A  |.  8955 CC       |mov [local.13],edx
00417F0D  |.  817D CC A1000 |cmp dword ptr [local.13],0A1
00417F14  |.^ 0F87 82070000 |ja 0041869C
00417F1A  |.  8B45 CC       |mov eax,[local.13]
00417F1D  |.  0FB688 458741 |movzx ecx,byte ptr [eax+418745]         ; Switch (cases 0..1E, 31. exits)
00417F24  |.x FF248D C98641 |jmp [ecx*4+4186C9]
Code:
CPU Dump
Address   Hex dump                                         ASCII
00418745  00 1E 1E 01|1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E| .
00418755  1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E| 
00418765  1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E| 
00418775  1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 01| 
00418785  02 01 1E 1E|01 1E 1E 1E|1E 1E 1E 1E|1E 1E 03 04| 
00418795  05 06 07 08|09 0A 1E 1E|1E 1E 1E 1E|1E 1E 0B 0C| ...
004187A5  0D 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 0E 0F| .
004187B5  10 11 12 13|14 15 1E 1E|1E 1E 1E 1E|1E 1E 16 17| 
004187C5  18 19 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E| 
004187D5  1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1E 1E|1E 1E 1A 1B| 
004187E5  1C 1D
Code:
CPU Dump
Address   Hex dump                                         ASCII
004186C9  DD 81 41 00|2B 7F 41 00|C9 80 41 00|59 7F 41 00| ÝA.+A.ÉA.YA.
004186D9  87 7F 41 00|B5 7F 41 00|E3 7F 41 00|11 80 41 00| A.µA.ãA.A.
004186E9  3F 80 41 00|6D 80 41 00|9B 80 41 00|0B 82 41 00| ?A.mA.A.A.
004186F9  39 82 41 00|F7 80 41 00|90 82 41 00|E7 82 41 00| 9A.÷A.A.çA.
00418709  3E 83 41 00|95 83 41 00|EC 83 41 00|43 84 41 00| >A.A.ìA.CA.
00418719  9A 84 41 00|F1 84 41 00|25 81 41 00|53 81 41 00| A.ñA.%A.SA.
00418729  81 81 41 00|AF 81 41 00|48 85 41 00|9F 85 41 00| A.¯A.HA.A.
00418739  F6 85 41 00|4A 86 41 00|9C 86 41 00|             öA.JA.A.

No. It doesn't.
 
Dec 11, 2012 at 2:31 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him
Noxid, I don't know how to read assembly code or hack the executable. Who do you take me for? GIR or Dubby?
Seriously... that code is like moonspeak to me. I work in TSC and map editing.

http://www.youtube.com/watch?v=sTSA_sWGM44
 
Dec 11, 2012 at 2:33 AM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2326
Age: 28
Pronouns: he/him
JonSpider said:
Oh, and I also have another small question. How can one modify item descriptions?
Open up ArmsItem.tsc, and you will see the scripts for the descriptions of all the items, and you will be able to edit them at your leisure.
 
Dec 11, 2012 at 2:34 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Pronouns: he/him

ArmsItems.tsc is one of the globally available TSC files, used for the inventory.

It is a very important one. However, don't use <TRA to a different map inside it or else you will mess up your event system very badly.
 
Back
Top