CaveEditor again (beta, maybe alpha)

Nov 2, 2010 at 1:35 PM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6211
Age: 38
Celtic Minstrel said:
The UPS format falls short of this goal, and while it would be technically possible to use it, it would be a whole lot of work on the Mac side translating Windows offsets to Mac offsets in the executable.
Compared to what? You still need to convert from your patch to the Mac format as well.

Celtic Minstrel said:
Actually, I might have a go at writing something like that myself... I could look at the Cave Editor source and figure out the offsets from there, I expect.
If you really want to do this then there is one thing you need to understand...

Do not attempt to make it human readable. You need it to be as machine readable as possible if you want people to use it and develop for it, so store your values as bytes. For instance:
0x00 Starting Health
0x02 Starting Map
0x03 Starting X Pos
0x05 Starting Y Pos
0x07 Starting Event
0x09 Intro Map
0x0a Intro X Pos
0x0c Intro Y Pos
0x0e Intro Event
etc.

..and document the patch file in the readme file (like the example above) for developer use.

Still think it's a bad idea either way but a bit of advice can't hurt.
 
Nov 6, 2010 at 12:36 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
I found a map editing issue.

diph.php


So, when I try to erase one of the map tiles with the Draw tool, the tile doesn't get erased.

The Rectangle tool seems to work fine, but the Draw tool doesn't.
I'm using CE version 0.99c with Windows XP. Anyone else having this problem?
 
Nov 8, 2010 at 10:21 PM
In front of a computer
"Man, if only I had an apple..."
Join Date: Mar 1, 2008
Location: Grasstown
Posts: 1435
andwhyisit said:
Compared to what? You still need to convert from your patch to the Mac format as well.
The comparison I made was applying the patch on Windows to applying the patch on Mac (same patch file). Suppose you did use the UPS format. As I understand, UPS is a generic binary diff format, which compares two binary files and outputs a file which can then be used to transform one of those files into the other. So, that UPS patch would be trivial to apply to a copy of Windows Cave Story.

But then suppose that you wanted to apply the patch to a copy of Mac Cave Story. It's no longer trivial, because the Mac executable has an entirely different format. Applying said patch would require that the Mac patcher know both the format of the Windows executable and the format of the Mac executable, in order to file all the data into the correct location.

A custom patch format such as I have suggested, however, is independent of the actual layout of the executable, and thus it is fairly easy (though not quite trivial) for the patch to be applied to any executable, on any platform.

andwhyisit said:
If you really want to do this then there is one thing you need to understand...

Do not attempt to make it human readable. You need it to be as machine readable as possible if you want people to use it and develop for it, so store your values as bytes.
Uh. A human readable format is still machine readable. Suppose it was text-based of the form "attribute<tab>value". In that case, a patcher would simply need to have a loop where it first reads a string and then, depending on what the string is, reads a second value and stores it in the proper location. Furthermore, it has the advantage of being endian-independent, so that a patcher does not need to care about what endian the file should use.

Of course, it has disadvantages too; it's less compact, for example. But the main point here is that "human-readable" and "machine-readable" are by no means mutually exclusive.

andwhyisit said:
..and document the patch file in the readme file (like the example above) for developer use.
Well, of course. Whichever format I choose (text, binary, whatever), it will be documented.

Note that text handling in Python is actually easier than handling of binary files, so that might factor into my choice. (And in C++, they're both just as easy provided you use std::string for your text handling.)

andwhyisit said:
Still think it's a bad idea either way but a bit of advice can't hurt.
 
Nov 8, 2010 at 11: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
Yeah, all that stuff sounds cool. Whatever it is.
Anyway, I would like to suggest some minor changes to CE for clarification and to reflect our better understanding of the engine.

1) Change Option 1 to read "Run event on Contact". Really, the only entity that has information marked under Option 1 is the H/V trigger and guess what - that entity sets flag 0x100 on itself should you forget to.
2) Change Option 2 to read "Direction = 2" or something similar, since that's what it does. Somehow make it apparant that an alternate direction can have other effects on an entity in the Extra Info segment of the NPC Editor perhaps.
3) The Entity flags listing in the map editor and the NPC editor don't match up. I'm pretty sure these are all the same flags so their explanation should be consistent.
4) Flag 0x400 does nothing, so it should say so instead of '???'
5) 'Entity ID' is a somewhat vauge term, perhaps it would be more clear if we called it 'Entity Flag', and called 'Flags' 'Behaviour flags' instead? That empty box could be used to make some space for text, seeing as it doesn't seem to serve any purpose. This is probably a hard one to change since it's sort of always been that way.
6) There are a total of 0x9B different sound effects slots in the game (at least, the numbers for them go that high). I think there's currently only provision for 72 or something.

Also:
p20189-0-noterasing.png


Having a minor issue with the background not showing up properly when writing over tiles. The things go away if I press ctrl-z or something like that.
 
Nov 9, 2010 at 3:03 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
1-4) As for the Flag descriptions and the like, I'll have to overhaul that data to get it up to date. I'll even make the text editable via the config file.
5) I always thought if the 'Entity ID' as the 'Entity script identifier' but the names are a bet confusing as they are. That black box can go. It was a space holder for displaying sprites long ago that's not needed.
6) 155 sound effects is a lot more than 72. I highest sound effect used in game was 72 I thought. Beyond that I wasn't sure so they were omitted. If there is a definitive list I'll include that instead.

carrotlord said:
I found a map editing issue.

So, when I try to erase one of the map tiles with the Draw tool, the tile doesn't get erased.

The Rectangle tool seems to work fine, but the Draw tool doesn't.
I'm using CE version 0.99c with Windows XP. Anyone else having this problem?

That's odd. I did just do a rewrite of the map display code to half its mem usage. Both this and Noxid's errors are probably related to that.

Noxid said:
Having a minor issue with the background not showing up properly when writing over tiles. The things go away if I press ctrl-z or something like that.

I thought I had that one nailed down already. I guess not. I'll look at it again.
 
Nov 9, 2010 at 3:35 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
If you get SeaTone and use it to extract all the sounds from the game, it gives them a name and the corresponding number, and they go up to 0x9B for the drums. Granted, a great many of those are simply null. Pixel seems to like spacing them out for whatever reason. Maybe they weren't all part of the same list, who knows. I could probably put together a list if you wanted.
 
Nov 15, 2010 at 11:33 AM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6211
Age: 38
Celtic Minstrel said:
Uh. A human readable format is still machine readable. Suppose it was text-based of the form "attribute<tab>value". In that case, a patcher would simply need to have a loop where it first reads a string and then, depending on what the string is, reads a second value and stores it in the proper location. Furthermore, it has the advantage of being endian-independent, so that a patcher does not need to care about what endian the file should use.

Of course, it has disadvantages too; it's less compact, for example. But the main point here is that "human-readable" and "machine-readable" are by no means mutually exclusive.
I am afraid that you have missed my point. A human-readable format can still be machine-readable, but you want the interpreter to be as simple to create as possible since you want people to develop for the format. The more human-readable you make it the more complex the interpreter you will need to write.

Secondly the format need not be endian-independent, just platform-independent.

And last of all your format is hopelessly redundant. Starting maps, health, events, all can be replaced with simple TSC, assembly hacks can never be platform independent, mapdata is already handled, and anything else in the exe is not used in 97% of mods out there.
 
Nov 15, 2010 at 7:36 PM
In front of a computer
"Man, if only I had an apple..."
Join Date: Mar 1, 2008
Location: Grasstown
Posts: 1435
andwhyisit said:
I am afraid that you have missed my point. A human-readable format can still be machine-readable, but you want the interpreter to be as simple to create as possible since you want people to develop for the format. The more human-readable you make it the more complex the interpreter you will need to write.
The interpreter wouldn't really be that complex for a text format... that said, for a binary format it would be a little simpler.

andwhyisit said:
Secondly the format need not be endian-independent, just platform-independent.
Correct.

andwhyisit said:
Starting maps, health, events, all can be replaced with simple TSC,
Why would you want to do an ugly TSC hack when you can just replace the constant in the exe?

andwhyisit said:
assembly hacks can never be platform independent, mapdata is already handled,
I am aware of both of these.
 
Nov 20, 2010 at 7:53 PM
Hey.
"In Soviet Russia, graves keep YOU!"
Join Date: Oct 20, 2010
Location: Within the hearts of all
Posts: 691
Age: 104
I've got a problem, though I'm not sure if it's Cave Editor's fault or not.
You see, I had just finished a map. I come back an hour later, the files for it are nowhere to be found on my computer.
The map took me all day! I was just wondering, is it Cave Editor's fault? If it is, it really needs to be fixed. I would also like a reason for it, as there's none apparent.
 
Nov 21, 2010 at 7:07 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
Did you save it?
 
Nov 21, 2010 at 4:22 PM
Hey.
"In Soviet Russia, graves keep YOU!"
Join Date: Oct 20, 2010
Location: Within the hearts of all
Posts: 691
Age: 104
I did in fact, save it. I was testing it as I was making it.

Edit: The NPC table editor has a glitch in which it deletes the sounds of the enemies if you save, though I'm sure you've heard this one before. This should be fixed.
 
Feb 2, 2011 at 8:07 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Cave Editor Complaint

This is the second time I've accidently done this, and I fear it won't be the last unless something is changed. o.e

Basically, why is there not a Y/N confirmation popup when clicking on "delete map"? Twice now, I've double clicked on something that closes that window; by mistake or habit; and had the second click land on the "delete map" button. Not to mention there's no apparent recovery what so ever. Not even a setting that forces cave editor to use the recycle bin.

If anyone with the source has the inkling to do so, I for one would -love- a simple confirmation popup for the delete map button, or the delete map function being forced to utilize the recycle bin.

*grumbles*
 
Feb 2, 2011 at 8: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
Merge'd
Cave editor does have its own thread..
and you can download the source yourself if you want to change it

Anyway that sounds like a good idea I guess. I can't say I've ever had this happen to me though...
 
Feb 2, 2011 at 10:22 PM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
Wouldn't it be great if there was like a red border that showed where the text ends and a new line appears?
 
Feb 3, 2011 at 12:15 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
Dubby said:
I never could download the source. I'd always 404.
Check the first post of this thread.
 
Feb 8, 2011 at 3:05 AM
In front of a computer
"Man, if only I had an apple..."
Join Date: Mar 1, 2008
Location: Grasstown
Posts: 1435
Or even better, get a mod to edit the correct link into the first post.
 
Feb 8, 2011 at 12:39 PM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
Celtic Minstrel said:
Or even better, get a mod to edit the correct link into the first post.

That's retarded
 
Feb 14, 2011 at 8:55 PM
In front of a computer
"Man, if only I had an apple..."
Join Date: Mar 1, 2008
Location: Grasstown
Posts: 1435
Now I'm confused. I could've sworn Noxid's post said something about hunting through the thread for a link, but that is clearly not the case at this time.

Oh well. It's in the first post, that's the important part.

WoodenRat said:
That's retarded
What is?
 
Feb 21, 2011 at 6:07 PM
Junior Member
"Wow! The more I drink of this magical beverage, the more games I can play! Wheee!"
Join Date: Oct 14, 2008
Location: Georgia
Posts: 29
Age: 31
EDIT: Never mind. Why is there an OPTION to remove the read-only status from files? Shouldn't that be, you know, a given?
 
Top