This is a "base" cart with extra features (wow!)
Would appreciate notification of any bugs
How to set up cart:
- delete all demo values (functions included)
- delete the sections in the loop functions which say "delete this"
- if you are using cartdata, set
using_cartdatato true, and setsave_menuitemto the string that you want to appear in the menu when saving - if you want to use more than 64 cartdata values, set
saverange_startto the first memory address in the range subtracted by 0x8000, setsaveidsto how many more save groups of 64 cartdata values you need, andusing_cartdata_extrato true - set
game_idto your cartridge id. this will be used in cartdata functions and reloading for calibrating and recalibrating save values
okay so basically this trick almost gives you infinite savedata
first, choose a memory address above 0x7fff to represent a progress counter, a memory address above 0x7fff to represent if the game has already set the progress counter to 0, a memory address above 0x7fff to represent the progress before updating, a memory address to declare if the game has started, a variable declaring if the game is calibrating the save values, and a variable inside the game declaring how many extra groups of 64 savedata values are required.
second, in the _init function, set the initial progress counter to the actual progress counter. make an if statement which checks if the progress counter is equal or over the limit. inside that statement, run cartdata with an id concatenated with the progress, set a group of memory addresses to the cartdata values, change the progress counter by one by using the initial progress counter, and then finally load the cartridge again.
third, in the _update function, add an if statement which checks if the game has started. move all of the previous code inside of the _update function into that statement.
this method exists which almost no information is spread about on the internet
all you have to do is print "\A" concatenated with the note, and then the octave e.g:print("\AD#3"). this plays the D# note on the third octave you can also print a message as it plays if you concatenate the string with a space, and then the message e.g:print("\AD#2 Hello World!"). one thing i find really cool about this feature is that you can harmonize notes by concatenating multiple notes by a space e.g:print("\AD#3 \AD2 \AD1 \AC#1 \AD0").
hey so i've come to the realisation that as i continue to work on new celeste mods, i am most likely going to come across alot more techs which i am not familiar with, so i guess this post can be like an area for creating cc techs and verifying which cc techs already existed.
-- dash trajectory manipulation --
the logic of this tech is pretty strange so prepare yourselves
anyway basically what i mean by "dash trajectory manipulation", is changing the direction of your dash midway through the dash itself
i don't really know how it works
i was just kinda messing around and then i got this
| | | | | | | | | | | | | | | | | | | | | | | | | |
V V V V V V V V V V V V V V V V V V V V V V V V V V
i think i was turning around as soon as i got to the edge of the screen, then performing the spike walk.
for some reason it only works on the edges of the screen tho?
anyone know anything about this?
-- vertical movement manipulation --
hey so i've seen a lot of carts which have a function for printing a string of text in the centre of the area on the x axis which they have depicted, and it often ends up looking something like this:
-- actual function
function cprint(txt,centre,y,c)
print(txt,centre-#txt*2,y,c)
end
-- example
function _init()
cls()
end
function _draw()
cprint("Centre:64",64,0,7)
for x=0,127,8 do
for y=16,127,8 do
line(x,0,x,127,8)
line(0,y,127,0,8)
end
end
cprint("Hello World!",64,62,7)
end |
but often one thing that they don't account for is the extra space in which the characters with an id over 127 cover. for example,
-- chr(151)
cprint("❎❎❎❎❎❎❎",64,62,7)
cprint("❎❎❎❎❎❎",64,68,7)
cprint("❎❎❎❎",64,74,7) |

hey so i think i just found a new tech
basically, from what i can see, the player falls down, and with enough precision and velocity in which the player falls, there is a one-frame window where you can jump off of the wall with the spikes
this just stood out to me because the hitbox of a right-facing spike is larger than a left-facing spike's hitbox. This allows the player to jump off of a left-facing spike's wall while stationary, but not with a right-facing spike's.
maybe this was already a tech?

Kaileste
Only those who have ventured so far as to see what truely awaits, will never return the same as whence they were stable
One holds the secrets
Alternating from white to black
19 emblems of Havoc and chaos
Find IT
And you shall see
01000001 01001111 01001100 00100000 01001001 01010011 01001100 01001100 01001011 01001100 01011001 01001010 01010011 01010110 01000100 01010101
117 116 103 105 40 131 117 125 40 110 101 126 105 40 123 105 105 116 40 111 124
131 117 125 40 103 101 116 116 117 124 40 122 125 116
131 117 125 40 103 101 116 116 117 124 40 110 111 104 105
106 111 107 110 124 40 101 116 104 40 110 117 120 105 40 124 117 40 123 125 122 126 111 126 105







0 comments










