Quick Modding/Hacking Answers Thread

Feb 20, 2011 at 9:04 AM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
The question is though, is it possible to have nearly infinite facepics?
 
Feb 20, 2011 at 10:34 AM
Been here way too long...
"Big Joe Tire and Battery Restaurant! Opening Soon! Eat at Big Joes!"
Join Date: Sep 16, 2009
Location:
Posts: 519
No one's ever checked, people never even tried extending the face.pbm until last year.
 
Feb 20, 2011 at 3:36 PM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
Interesting, eh?
 
Feb 20, 2011 at 4:53 PM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 32
There's probably a limit as to how far down you can extend it, simply because of the fact that the game sets some fixed amount of memory for most of the bitmaps to load into and, if you go over those dimensions (that the memory allows for), anything past the limit wouldn't load.
 
Feb 20, 2011 at 5:46 PM
graters gonna grate
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jul 2, 2008
Location: &
Posts: 1886
Age: 32
Pronouns: he/him
Re: Inserting custom music doesn't work for me

leafbarrett said:
Sue's Workshop

Well there's your problem; SW doesn't work with custom music. Use CaveEdit (or do like I did for my first year of modding and edit in the music after you've done all your SW editing).
 
Feb 20, 2011 at 5:53 PM
Hey.
"In Soviet Russia, graves keep YOU!"
Join Date: Oct 20, 2010
Location: Within the hearts of all
Posts: 691
Age: 104
Pronouns: he/him
Re: Flandre's also the only one I really know...

VoidMage_Lowell said:
this horrid lag.

I know how you feel....

And yes, I do believe that it's Sue's fault.
 
Feb 20, 2011 at 5:58 PM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 32
Thread merged.

But 2 things basically:

1) Make sure the doukutsu.exe isn't readable
2) Sue's Workshop doesn't like it when you import resources (or change them), so if you want to mod and import resources at the same time Cave Editor is your best bet.
 
Feb 21, 2011 at 9:45 AM
Hax on....Hax off....
"Keep on rollin'!"
Join Date: Jan 5, 2009
Location: Easter Island
Posts: 474
A quick question, is there anyone else who has had problems adding events to the head script? I've added quite a few events to the head script, and I've noticed that when I try to call some map script events, it causes a completely unrelated script to be run.

I would just like to know if I am the first to have had this problem or not.
 
Feb 21, 2011 at 1:28 PM
Level 73 Procrastinator
"Life begins and ends with Nu."
Join Date: Apr 6, 2009
Location: Forgotten Tower
Posts: 2052
I wonder if we should write an actual guide to CS hacking

Are you adding events over 0090?
Since the TSC script is all about order, and most maps have 0090-ish events in them, left-overs from the original game if you haven't gone through and removed/completely changed them all, it'd most likely freak the heck out if you have Head events over 0090.
Basically the same stuff that happens if you get your events out of order in any regular TSC script.

You'll either have to limit your Head to 0089 and below and/or change all of the other leftovers to give yourself more room.

Otherwise I have no idea.
 
Feb 21, 2011 at 3:12 PM
graters gonna grate
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jul 2, 2008
Location: &
Posts: 1886
Age: 32
Pronouns: he/him
Yep. The engine treats the Head script as being appended to the beginning of every individual map script, and, within an individual script, event numbers must be in ascending order. This means that the highest event # in Head must be lower than the lowest event # in each individual map script. In Cave Story, the lower event # in each individual map is always #0090, so, as Lowell said, Head events are limited to the range #0000-#0089. However, there's nothing magical about the number 90 that it has to be the dividing number, as long as you pick some number and consistently make all Head events less than that number, and all map script events (including armsitem and stageselect events) greater than or equal to that number.

And does the fact that you're asking modding questions imply you're still working on Pirate - The Untold Story? :pignon:
 
Feb 21, 2011 at 10:24 PM
Hax on....Hax off....
"Keep on rollin'!"
Join Date: Jan 5, 2009
Location: Easter Island
Posts: 474
Oh alright thanks guys.
The problem for me is I was trying to make a system of teleports which could be used at a number of maps. For this, I thought it would be easier to put the teleport events in the head script, which is what must be the problem.

And unfortunately no, I will not be finishing the Untold Story. That said, I do have other plans for Pirate, but it will not involve any cave story modding.
 
Feb 24, 2011 at 3:51 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
In the Missile Launcher function at 0041E7B0, where is the portion of the code that makes the weapon fire three missiles simultaneously when the weapon is at level 3?
 
Feb 24, 2011 at 4:00 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
Pronouns: he/him
It just makes 3 sequential calls to CreateBullet()...
As an example, at 41EC18 - 41EC9F

A for loop would be much smaller... D:
 
Feb 24, 2011 at 5:09 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Bah, so I just had to cut out two of them huh D:

Also, is there any way to fix that "can't new-game" bug? I've got it now too. I know Ollie's TheShow has it also.
 
Feb 24, 2011 at 5:16 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
Pronouns: he/him
I'm not familiar with this glitch.
 
Feb 24, 2011 at 5:22 PM
Hey.
"In Soviet Russia, graves keep YOU!"
Join Date: Oct 20, 2010
Location: Within the hearts of all
Posts: 691
Age: 104
Pronouns: he/him
It makes it so that you can't start a new game. When you start it doesn't show the character, nor does it let them move. I have no idea how it occurs.
 
Feb 24, 2011 at 5:33 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
It's screwing around with the TSC parser i think.

I'm experiencing bizarre problems in the graveyard in my mod atm, where <SNP fails to work in one instance, but DOES work in another instance. Similar problems with <SMC and <HMC. And for some reason, it's reading #0301 as #0391

Edit 1: Also, I tried replacing my exe with an earlier backup of it (before I had done the asm hacking to the missile launcher) and I remember newgame working fine. Even after swapping the newer exe with the older one, newgame still didn't work. I think it's something with the exe -and- another file. Maybe something is partially corrupt, or something.

Edit 2: Tried loading the profile.dat from v0.10.3 of my mod in a v0.10.2 install. Worked. Newgame worked fine. Going to use BC3 to see if I can't get to the bottom of what's "different" with the two folders, and causing the damned glitch to occur. :S

Edit 3: removed

Edit 4: Okay, I fixed it. I think it's something CE did erroneously, but I really don't know exactly what it had changed. Here's the hex address of the problem, and there were two of them.
Code:
00014B24 [is 81, was 80]
00014B74 [is 00, was 02]
When the two bytes were returned to 80, and 02, quote appeared again when new game was used. Weird, huh? *shrug*
 
Feb 24, 2011 at 5:53 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
Pronouns: he/him
I have figured out at least Ollie's problem. Compare these two sets of code:
Code:
CPU Disasm
Address   Hex dump          Command                                  Comments
00414B20  /$  55            push ebp                                 ; Dokutsu_Clean.00414B20(guessed void)
00414B21  |.  8BEC          mov ebp,esp
00414B23  |.  68 5F000000   push 5F                                  ; /Arg3 = 5F
00414B28  |.  6A 00         push 0                                   ; |Arg2 = 0
00414B2A  |.  68 B8E54900   push 0049E5B8                            ; |Arg1 = Dokutsu_Clean.49E5B8
00414B2F  |.  E8 FCC10600   call 00480D30                            ; \Dokutsu_Clean.00480D30
00414B34  |.  83C4 0C       add esp,0C
00414B37  |.  5D            pop ebp
00414B38  \.  C3            retn
Code:
CPU Disasm
Address   Hex dump          Command                                  Comments
00414B20  /$  55            push ebp                                 ; The_Show.00414B20(guessed void)
00414B21  |.  8BEC          mov ebp,esp
00414B23  |.  68 8A000000   push 8A                                  ; /Arg3 = 8A
00414B28  |.  6A 00         push 0                                   ; |Arg2 = 0
00414B2A  |.  68 B8E54900   push 0049E5B8                            ; |Arg1 = The_Show.49E5B8
00414B2F  |.  E8 FCC10600   call 00480D30                            ; \The_Show.00480D30
00414B34  |.  83C4 0C       add esp,0C
00414B37  |.  5D            pop ebp
00414B38  \.  C3            retn
The first is from regular Doukutsu, the second is from The Show. What's happening here is this function clears the map flag array for like <MPJ or whatever. CE increases the number of bytes that get memset'd if you increase the number of maps. The trouble is, eventually this overflows into the player data and what happens is that your Player InUse flag gets zero'd.

This is the cause of your problem.
 
Feb 24, 2011 at 6:06 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Noxid said:
CE increases the number of bytes that get memset'd if you increase the number of maps. The trouble is, eventually this overflows into the player data and what happens is that your Player InUse flag gets zero'd.

This is the cause of your problem.

Ouch. So what's a "safe" limit on the number of maps one can possibly have? I haven't gone past 127 maps. (Well, actually I did, which probably explains why my new game broke. I removed the maps shortly after, though. It was done to "swap" a pair of maps to fix a background problem in one)
 
Feb 24, 2011 at 6:10 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
Pronouns: he/him
The size of the memory buffer allocated is 0x80 so 0-127 theoretically should be the safe 'zone' of maps. I don't know exactly how CE calculates it though. Anyway, there's also the option of just assembler/hex editing the value push'd since nobody uses <MPJ anyway.
 
Back
Top