View Single Post
Neobeo

JCF Member

Joined: Sep 2002

Posts: 409

Neobeo is an asset to this forumNeobeo is an asset to this forum

May 12, 2007, 03:15 PM
Neobeo is offline
Reply With Quote
Quote:
Originally Posted by Jerrythabest View Post
Meh, I ran into a problem... I'm trying to change 'Jazz Creation' into 'Battery Check Creation' and 'JCS' into 'BCCS' but the problem is that I have no idea how to insert bytes without screwing up the whole exe file ;p
For various reasons (technical and non-technical), it would not be such a good idea to change the title. For all the effort you'd have to put into performing such a feat, in the end it's just a useless title which people could not care less about. Nevertheless, if you really have to change a short string into a longer one, here's how you do it. It would most definitely require a knowledge of x86 asm though, if not as insight into the PE file format as well.

Disclaimer: Not for the weak of heart; read at your own risk.

Highlight block to show spoiler: JCS was most likely programmed in C/C++, so it uses null-terminated C-strings. These strings are referenced as a pointer. These pointers are referenced by some ASM instruction. These ASM instructions are contained inside some well-defined function. These functions would be collectively grouped inside some section of code. The offsets of these code sections would be specified inside the PE section table. The PE section table can be found without too much effort by reading the PE header. The PE header is near the start of the EXE file. So, as long as you have an EXE file, you can work backwards through these steps, and change the ASM instruction to point to another string in another location.

Quote:
Originally Posted by Jerrythabest View Post
Until now I've done the events by putting a few in a level (starting by #1) but I'm going to do it another way: first, I make a list of all event numbers that are used in the original BC levels with the highest values for the parameters that have been used. This way I'll have the clearest possible overview of the working events. Then I'm going to view them all individually, preferably in their original levels, so that I can find out their purpose.
My sentiments exactly. In fact this process can be automated via a J2L cruncher. You can use one to process the Data2 stream (events) to produce a list of all events being used. Maybe even one step further is to filter out bitmasks that are being used for each event ID. This way you won't need the clearest possible overview, but you'll have a thorough list which does not miss out anything.
__________________
<TABLE border=1><TR><TD>Facts:
Jazz Sprite Dynamite (JSD)
Tileset Extractor
Neobeo's Firetruck

</TD><TD>Myths:
Jazz Creation Station Plus (JCS+) - 10%
Coming soon - a dedicated server! - 25%
Jazz Sprite Dynamite v2 (JSDv2) - 2%
Another generic single-player level - 0%
</TD></TR></TABLE>