Import Own Orgs And Maybe Sue's Workshop Boss Error Fix!!!

Apr 23, 2006 at 12:36 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
First the NPC Hacking, now that ^^...
New Cave Story Hacking avaible: Inserting Orgs!!!
AND MAYBE: FIX THE BOSS ERROR OF SUE'S WORKSHOP!!
Well, for this i started a thread for good Org designers, for other people who want free Orgs
for them Mods, well don't forget the Credits for Org designers!!! ^^

Now, iam here with my mod!
and a way to fix the Boss bug in sue's workshop (i hope so) ^^!
WELL THAT ONLY ANSWER (°°°THE MAGIC°°° lol) seems to be:

HELL, (Sorry Skywelse for this word ^^) KEEP THE ORIGINAL SIZE OF THE GAME!!!!!(Well, u can add at the END of the FILE but don't DELETE in the middle or the start of the EXE!!!)

Adding Maps can cause problems, because something in the middle have
a wrong adress...
Well in the Game is some HARDCODE LOOKS LIKE THIS:

 bk0 Guest 0 Null Pens Pens1  BkBlue Guest 0 Arthur's House Eggs Eggs  BkGreen Eggs1 Ravil Egg Corridor EggX EggX  bk0 Eggs1 0 Egg No. 00 EggIn Egg6  bk0 Eggs1 0 Egg No. 06 Store

Well that looooots of Space is HEX: 00...

And my Theorie is:

All of the Things in the EXE (Well, i seen that the NPC Scripts aren't in the TBL, so they must be in the EXE) have an Adress
also the Bosses...
So if you change that HARDCODE, and make it longer or shorter the Game cause errors, because the things in the EXE have all adresses...
Well but you CAN change names and e.t.c. because it isn't saved:

bk0 Guest

it's saved:

bk0 Guest

so you can change that many space to:

bkblue Guest ( i deleted 3 space signs, because bkblue is 3 letters longer than bk0!)

Well, what did eich doo?

Well, he was very intelligent:

I think he taked that Code in the Middle of the Game

and put it at the End...

Well, it worked greatly, but he maded a little mistake:

He forgot to fill the middle room in the EXE with HEX: 00 (Space)

So some Variables are not right...

Well, thats just a theorie, but i think it is right...
BECAUSE:

(NOW ORG IMPORT!)
I changed the CAVESTORY.ORG to my NEWDATA.ORG! (THE FILES ARE STORED INTO THE EXE AND DOESN'T HAVE A NAME!)

It's just easy:

I deleted the CAVESTORY TITLE ORG DATA in the EXE and inseted the NEW DATA...
After that errors happend...

THEN, i had a IDEA!!

I fill the MISSING SPACE in the EXE File with 00 after the NEWDATA

and TADDAM!! Now the Exe's Space is original: 1.478.656 Byte!!
and hey... IT WORKS!!

Well, but if u add bigger size files, u can only add less files...

Well, and sorry for my english, iam only 14... (Well 14 1/2 ^^ Iam a little young hacker lol)

Edit:

So here's the Link with Exe and NewData.org.
Make sure u have a copy of your EXE

LINK:

http://www.filespace.org/ShInInG_PhAnToM/CSNEWDATA.zip (THE NEWDATA ORG IS STORED INTO THE EXE)
 
Apr 23, 2006 at 3:05 PM
Senior Member
"Master using it, and you can have this!"
Join Date: Feb 4, 2006
Location:
Posts: 73
Nice, but, where's the Title ORG? I wana swap that for something else...
 
Apr 25, 2006 at 9:18 PM
Senior Member
"Huzzah!"
Join Date: Mar 24, 2006
Location:
Posts: 194
can you explain more clearly how to fix the boss glitch? I can't discern you talking about importing ORG's from you talking about how to fix the boss glitch
 
Apr 25, 2006 at 10:54 PM
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
The best I can figure out is he's saying that you need to keep the file size of the exe the same. I took a look at it and there's a large portion at the beginning that starts at 2A0 and ends at 1000 that is nothing but zeros. It's concievable you could add to or subtract from this area as needed to keep your exe the same size. I could be completely wrong, of course.
 
Apr 26, 2006 at 5:20 AM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
no no, shmitz, you're right ^^!
Well, sue's workshop i think forgot these 00! Or only one of these...
But u can add something at the end of the file...
 
Apr 26, 2006 at 8:18 PM
Senior Member
"Huzzah!"
Join Date: Mar 24, 2006
Location:
Posts: 194
It doesn't work

when I delete any of the 00 hex inbetween 2A0 & 1000 the game won't run
 
Apr 28, 2006 at 9:14 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
why it doesn't work? wich org do you used??
What did you done?
 
Apr 28, 2006 at 11:52 PM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Mar 1, 2006
Location: Grasstown
Posts: 155
Age: 39
He's trying to fix a doukutsu.exe that's been modified by Sue's Workshop, not one that's had an org imported.
 
May 4, 2006 at 6:34 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Well, curently i try too...
He don't put it from the middle to the end, he copied it >_>
Well, but he changed some HEX in the game, that can cause that bug maybe?
A wrong Hex number?
 
Jun 18, 2006 at 5:56 PM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
Hi, new. Thought I'd share some programmer wisdom.

The game can't magically figure out that offset xyz contains, say, map data. SOMETHING has to tell it that, yep, the maps are stored there. Often, something will also tell it that "Map 1 is at x, map 2 is at y, map 3 is at z, etc." And if map 1 takes up 5 bytes more than it should, since the game still says map 2 is at y (but is really now at y + 5; we made map 1 5 bytes larger than it should be, remember?) it'll point to invalid junk.

In ROM hacking, this is called a pointer. It's either stored directly in the source (65816 hackers may be familiar with the good old 4 byte LDA bb:aaaa type instructions) or in a table where each entry holds the address to a different chunk of data (ie, a different piece of text, map, whatever.)

when I delete any of the 00 hex inbetween 2A0 & 1000 the game won't run
Because the data gets moved around, the pointer table breaks. You have quite a lot of data there; if the game's even functional enough to be able to load a map, it would most likely start loading halfway through the mimiga village instead of the starting room and crash spectacularly as a flood of incorrect bytes start shooting impossible values into it.

Never delete bytes from the file. It's like if your friend told you he lived on the 5th house on Street X, but then removed the 3rd house and pushed all other houses back; you'd go to the 5th house like you were told to, but it wouldn't be the right one anymore. Now suppose he told you to go exactly 300m down the street then turn left and walk all the way to the door - you'd end up walking into a wall or worse, and your little trip would essentially be screwed. Only now it's data and pointers instead of houses and people.
 
Jun 18, 2006 at 10:12 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Well, i long thought about it, there must be somethiing in the EXE who tells wich Boss is in wich map and what for X:Y Coordinates!! or something like thatr
 
Jun 18, 2006 at 11:37 PM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Mar 1, 2006
Location: Grasstown
Posts: 155
Age: 39
RuneLancer said:
In ROM hacking, this is called a pointer. It's either stored directly in the source (65816 hackers may be familiar with the good old 4 byte LDA bb:aaaa type instructions) or in a table where each entry holds the address to a different chunk of data (ie, a different piece of text, map, whatever.)

I have been trying to apply common wisdom from ROM hacking to this problem, but, you see, the data doesn't get moved, it gets copied. All data other than for the levels are left at their original offsets, so it can't be a pointer table problem.

Aside from that, I can't find any pointers to exe offsets whatsoever, so I think we're going to have to take a different approach to the problem.
 
Jun 19, 2006 at 1:09 AM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
hm, there was a programm called HEX WIZARD who can make u see the diffenrences beetween 2 files... maybe u can edit a DOUKUTSU EXE and add a map, and then look with hex wizard what is changed and what not...
 
Jun 19, 2006 at 3:10 AM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
upthorn said:
Aside from that, I can't find any pointers to exe offsets whatsoever, so I think we're going to have to take a different approach to the problem.
EXEs usually don't have to resort to pointer tables, especially with today's high-level heuristics and patterns. At least not in the conventional way ROMs would. But lookup tables still exist internally, and we're dealing with a compiled executable here, not some source, anyhow.

I'm not sure what you mean by it getting copied though. If you have a binary file containing 16 bytes...

DF EE F4 00 00 00 00 00 00 04 EB BC 5D C1 F9 CA (Pilfered from my game :p)

...and you decide to delete the 6 0s (in the same way the quote in my earlier post mentions)...

DF EE F4 04 EB BC 5D C1 F9 CA

...Then the data gets moved, not copied.

What's at offset 0x03 isn't 0x00 anymore, it's 0x04. And the data at offset 0x09 where 0x04 was supposed to be is now 0xCA. Worse yet, if 0x04 was some kind of length telling it to read 4 bytes, after the modifications we'd tell the game to read 202 bytes. Which would obviously be qutie a mess. ;) Probably a crash - even with a fairly high level language, invalid junk would still end up being loaded and the game would slowly fall apart as it suddently gets told to load 600 enemy 0xA350s (out of only ~50-60 enemies.)

I'll try Shining Phantom's idea and see what happens.

Edit: Eh... no. Actually I won't. Too short on time tonight. Tomorrow. :)
 
Jun 19, 2006 at 6:02 AM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Mar 1, 2006
Location: Grasstown
Posts: 155
Age: 39
RuneLancer said:
...and you decide to delete the 6 0s (in the same way the quote in my earlier post mentions)...

Oh, I see. You were referring to a specific post.
I thought you were talking about the more generic problem with bosses in games that have been edited using sue's workshop (see thread title).
 
Jun 19, 2006 at 6:21 AM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
Aaaah, I see where the misunderstanding came from. Yeah, I was talking about deleting "blank" data from the game. ;)
 
Jun 23, 2006 at 4:28 AM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: May 4, 2006
Location: Florida
Posts: 115
Age: 43
Possible Boss Bug Solution

It's been a little while since I've been here. A certain game, which will remain nameless for the sake of those who haven't been abducted by it, absorbed the last month or so of my life.

Anyways, I think you all will find this usefull in the whole Boss bug thing. While parsing through the map data in the exe I noticed an odd byte just before the map caption. It's always 0-9 and seems to coorespond to certain Boss fights!

As a test I removed the 8 from in front of the "Passage?" map (address 0x097abc) where the Heavy Press falls through the floor. Then I played through the boss fight above to find NO Heavy Press afterwards falling through the Passage? map.

Here's a list of which bosses these values seem to go with:
0 - no special boss
1 - Sand Zone Boss
2 - Balrog Frog
3 - Weapon X (also in Jenka's house during credits 'e_Jenk')
4 - Core
5 - Fish Boss
6 - Dragon Sisters
7 - Undead Core
8 - Heavy Press (also in Passage?)
9 - Ballos (also in Balrog escape from Ballos and Misery standing on balcony in credits)


I'm still working on getting an editor up and running but I've been pretty busy lately (outside of the game mentioned above). Hopefully this will help some people out once someone checks on the details. I will eventually, but again it will be a while.
 
Jun 23, 2006 at 10:30 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Well, so the bug is fixed! puh! so you make a patch soon wistil?
 
Jun 23, 2006 at 10:56 PM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: May 4, 2006
Location: Florida
Posts: 115
Age: 43
Well since I didn't write Sue's Workshop I can't make a patch. However, it should be a semi-trivial matter to place these values in the maps you need them to fix the exe. Again, I haven't tested this but I should have some time this weekend to do so, assuming no one beats me to it.
 
Jun 23, 2006 at 11:06 PM
The Bartender
"All your forum are belong to us!"
Join Date: Jun 18, 2006
Location: Montreal, Canada
Posts: 581
Age: 39
I'll give testing a shot. I'm just about to create the end-of-demo boss fight for my hack, so I'll mess around with this and post my findings. ;)
 
Top