Sep 13, 2019 at 10:01 PM
Join Date: Aug 5, 2019
Location: Hell
Posts: 41
Pronouns: he/him
Do you know what else could be causing it?I doubt it could be that. Just two days ago, I ran the enhanced branch on a device with only 1GB of RAM.
Do you know what else could be causing it?I doubt it could be that. Just two days ago, I ran the enhanced branch on a device with only 1GB of RAM.
Will-do.Nope. If you make a debug build, and run it through gdb, you might be able to track down the cause.
(gdb) run
Starting program: /home/lazil/Cave Story/CSE2/Vanilla CSE2 Enhanced/game/CSE2
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffec849700 (LWP 29867)]
[New Thread 0x7ffff7fa4700 (LWP 29869)]
[New Thread 0x7fffc3fff700 (LWP 29871)]
*** buffer overflow detected ***: /home/lazil/Cave Story/CSE2/Vanilla CSE2 Enhanced/game/CSE2 terminated
Thread 1 "CSE2" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
This makes no sense to me, never touched a developer command prompt in my life, and I don't know what 'cd into it' meansIn this folder, create another folder called 'build', then switch to the command-line (Visual Studio users should open the Developer Command Prompt) and cd into it. After that, generate the files for your build system with
Will-do.
Edit: I have no idea how to make a debug build.
The enhanced building directions lists no options for making a debug build, and I have no idea where else to look.
cd = change directoryI don't know what 'cd into it' means
cd C:\path\to\CSE2\build - if your current directory is somewhere random
cd build - if you're in a directory that has a child directory called "build", you can list the files and directories of your cwd using the "dir" command
Seems a little pointless since you can just use the 'open command window here' feature in windows by holding shift whilst you right click (might also be ctrl, I forgot, I have a registry change that makes it appear by default)cd = change directory
basically you can write "cd", a space, and then an absolute or a relative directory path and you'll switch your current working directory (cwd) to that directory
You can create a debug build by changing '-DCMAKE_BUILD_TYPE=Release' to '-DCMAKE_BUILD_TYPE=Debug'.
I'm pretty unsure, but I think it was grandfathered in from MS-DOS.Seems a little pointless since you can just use the 'open command window here' feature in windows by holding shift whilst you right click (might also be ctrl, I forgot, I have a registry change that makes it appear by default)
//Get 4 digit number from TSC data
int GetTextScriptNo(int a)
{
return gTS.data[a + 3] - 48
+ 10 * gTS.data[a + 2] - 480
+ 100 * gTS.data[a + 1] - 4800
+ 1000 * gTS.data[a] - 48000;
}
//Get 4 digit number from TSC data
int GetTextScriptNo(int a)
{
int b = 0;
b += (gTS.data[a++] - '0') * 1000;
b += (gTS.data[a++] - '0') * 100;
b += (gTS.data[a++] - '0') * 10;
b += gTS.data[a] - '0';
return b;
}
I would love to see <MS4, <MIM, <PHY, <BUY, and <VAR in CSE2. They're the most go-to custom commands a mod could ever use, and could definitely help benefit CSE2 modding.maybe add some common community-made TSC commands or hackinator patches.
I'm quite new to this - what do <MS4, <MIM, <PHY, <BUY, and <VAR do?I would love to see <MS4, <MIM, <PHY, <BUY, and <VAR in CSE2. They're the most go-to custom commands a mod could ever use, and could definitely help benefit CSE2 modding.
<MS4 - MeSsage 4I'm quite new to this - what do <MS4, <MIM, <PHY, <BUY, and <VAR do?
<MS4 - MeSsage 4
Invisible textbox but on the bottom screen. Cuz why didn't Pixel do this???
<MIM - MImiga Mask (<MIMXXXX)
You can have multiple player skins upon command rather than having two dependent on an Equip flag.
<PHY - PHYsics (<PHYXXXX:YYYY)
A player physics toggler through TSC. The Hackinator guide in Booster's Lab best defines how to modify them.
The <BUY pack
A hack that not only creates a new enemy drop for currency, but it also comes with two new TSC commands, <BUY (<BUYXXXX:YYYY) and <SEL (<SELXXXX). This thread best explains how to use it.
The <VAR pack
An absolutely necessary TSC pack that allows for more complex flags and statistics through five commands:
<VAR - VARiable (<VARXXXX:YYYY)
Sets a number to a variable.
<VAO - VAriable Operation (<VARXXXX$YYYY, $ can be replaced with +, -, *, or /, the number for YYYY cannot equal 0 when dividing)
Performs a basic mathematical operation to a variable.
<VAJ - VAriable Jump (<VARWWWW:XXXX:YYYY:ZZZZ)
Sets an inequality equation between a variable and a number. If the inequality is true, then the TSC script will jump to another event.
<VAZ - VAriable Zero (<VAZXXXX:YYYY)
Zeroes out a set amount of variables starting with the first variable you start it at.
<RND - RaNDom (<RNDXXXX:YYYY:ZZZZ)
Sets a range of numbers between a minimum value and a maximum value for a variable to use for a random number generator. Can work well for TSC trickery and pseudo-RPG elements.
For more information on <VAR, the hackinator guide in Booster's Lab also provides a few more pointers.
I hope the descriptions for these commands are good enough to understand. They're the most commonly used custom TSC commands on vanilla, and they would make good candidates to be included in CSE2.There is no <IMG command, moving on.
function IS_COMMAND(c1, c2, c3) {
if ((gTS.data[gTS.p_read + 1] == c1) && (gTS.data[gTS.p_read + 2] == c2) && (gTS.data[gTS.p_read + 3] == c3)) {
return true;
} else {
return false;
}
}
function IS_COMMAND(c1, c2, c3) {
if (params.length > 3) {
for (let i = o; i < params.length; i++) {
if (gTS.data[gTS.p_read + i] === params[i]) {
return true;
}
}
return false;
} else {
if ((gTS.data[gTS.p_read + 1] == c1) && (gTS.data[gTS.p_read + 2] == c2) && (gTS.data[gTS.p_read + 3] == c3)) {
return true;
} else {
return false;
}
}
}
ClearTextLine(); // obvious
gTS.flags &= ~0x10; // set flags
gTS.flags |= 0x23; // set more flags
if (gTS.flags & 0x40) // if a flag is on
gTS.flags |= 0x10; // set a DIFFERENT flag (I have no idea what the |= or &= operators do - bit-shifting?)
gTS.p_read += 4; // skip forward past the command
bExit = TRUE; // exit the while loop
That can probably just have its own memory in CSE2, but you'd still have to use numbers, sadlyDoesn't it also use flag memory?