gokuta Posted July 13, 2020 Share Posted July 13, 2020 (edited) Okay, I grab random GXT entry and perform this: 0AE0: remove_dynamic_gxt_entry [email protected] I don't want to delete GXT entries that are not dynamic and it seems to me deleting non-dynamic GXT entries is the reason I get crashed so much okay, so how do I make sure GXT entry is definitely dynamic? Need an opcode 7FFF: is_gxt_entry_dynamic or some other method to check it Edited July 13, 2020 by gokuta Link to comment Share on other sites More sharing options...
OrionSR Posted July 13, 2020 Share Posted July 13, 2020 20 minutes ago, gokuta said: Okay, I grab random GXT entry and perform this: 0AE0: remove_dynamic_gxt_entry [email protected] How? No, never mind how. Why? If you're having problems figuring out how to delete one of your own entries, try storing them in an array and generating a random array index, Link to comment Share on other sites More sharing options...
gokuta Posted July 13, 2020 Author Share Posted July 13, 2020 Just now, OrionSR said: How? No, never mind how. Why? If you're having problems figuring out how to delete one of your own entries, try storing them in an array and generating a random array index, Not an option Link to comment Share on other sites More sharing options...
OrionSR Posted July 13, 2020 Share Posted July 13, 2020 Would it be an option if I could get you 8000 shorts to work with? Link to comment Share on other sites More sharing options...
gokuta Posted July 13, 2020 Author Share Posted July 13, 2020 (edited) Maybe depends on what it is that you mean. Most likely not if you are going to spit some 8000 lines of random characters as a solution Edited July 13, 2020 by gokuta Link to comment Share on other sites More sharing options...
OrionSR Posted July 13, 2020 Share Posted July 13, 2020 (edited) 2 hours ago, gokuta said: Most likely not if you are going to spit some 8000 lines of random characters as a solution Oh, no. Code-wise this is as easy as it can be. But I misspoke, the space available is 16000 bytes, or 4000 variables, so only 2000 shorts. s$11000[0] = "MYGXT0" $11000([email protected],2000s) Primary issues are that others might eventually learn this trick and corrupt your variables, the variables will not be empty on a script start, and the 2000s part in the array won't decompile back to 2000 because the array size is stored as a byte. The actual space available is a bit larger. I usually round it off to $10950 to $15000 on PC and PS2. On PC you'll get into trouble overwriting $15012 and above because that portion of SCM is still in use. You'll be overwriting the SCM header and early parts of the main.scm, but by the time a save is loaded this space isn't needed anymore. If this all seems just too weird, and your list of GXT entries isn't too long, you might be better off using jump tables with your random int as a table index. Edited July 13, 2020 by OrionSR gokuta 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now