Very cool! I haven't gotten the SPU DLC yet, but I'm seeing some impressive stuff being done with it. What's your opinion on it? Do you think it's worth it?
An array is a collection of elements, each that can be accessed as an index of the array. It can hold multiple elements, but all of them must have the same type. Here's a visual example...
DIM ARR[5] 'Declare an array of size 5.
ARR[3]=7 'Assign 7 to the element in the array at index 3
___ ___ ___ ___ ___
|_0_|_1_|_2_|_3_|_4_| < Indices
|_0_|_0_|_0_|_7_|_0_| < Elements and their values
You can specify OPTION DEFINT so that identifiers without suffix declare as integers by default.
DATA's usage isn't really too obvious or apparent.
It is mainly used to save constant struct-like data, which can be recovered using the READ instruction. In other words, it is mainly used as a way to save specifically structured data inside your program's code, such as enemy data, for example.
You can declare multiple variables by separating each identifier with commas. Like this... VAR FOO, BAR
You can also specify the type of a variable by suffixing certain characters...
No Suffix - FOO - Will declare as decimal by default.
Percent Sign - FOO% - Will declare as integer.
Numeral - FOO# - Will declare as decimal.
Dollar Sign - FOO$ - Will declare as string.
VAR is really only necessary when specifying OPTION STRICT, which won't let you declare variables on the fly. This means that you are forced to declare each variable you will use using VAR.
To use VAR, you simply specify the identifier of the variable you want. In other words, if you want a variable named FOO, you'd have to declare it like this... VAR FOO
You can then call each individual element by specifying the element in the sub-array. Like this... ARR[1,0]=10
You can declare a string array by writing a dollar sign after the array's identifier. Like this... DIM NAMES$[10]
There are various commands that operate over arrays, but you can probably study them own your own. The most basic ones are probably PUSH, POP, SHIFT and UNSHIFT.
As Aaron said, DIM is used to declare arrays, which can have up to 4 "dimensions". In multi-dimensional arrays, each primary element is itself its own array with its own elements.
Such that...
DIM AR[2,2]
...will declare a 2-dimensional array, where you must first call the sub-array and then the element of the sub-array. In other words, AR[0] and AR[1] will each be a 2 element array.
There is also a parameter for terminal ID, but that's only used when doing multi-console local wireless multiplayer.
To know which buttons are being pressed using BUTTON, you can use the variable you assigned it to (in this case it's B), along with constants and logic gates.
For example...
B=BUTTON(2)
IF B AND #A THEN 'DO SMTH
...will do something if the A button was pressed.
You can specify the way you want to receive presses by sending a parameter to button. If I recall correctly, they are...
0 - for held down buttons.
1 - for pressed buttons with repeat.
2 - for pressed buttons without repeat.
3 - for buttons that were just released.
In this case BUTTON(2) will return the buttons that were just pressed.
You can use the BUTTON function. This will allow you to condition your code depending on which button the user presses. You can assign BUTTON to a variable for more convenient usage. Like this...
B=BUTTON(2)
Also, assuming you are using INPUT, if you don't want a question mark to print after the INPUT command, you can use a comma instead of a semicolon when separating its parameters.
Like this...
INPUT "Guiding text: ",USR$
At the very least you should make it clear that it's not your own game, but cobinee's... Uploading other people's games, even when they're modified, without their permission is not cool.
Also, this is very likely to be taken down since you changed the original sprites to copyrighted ones.
I downloaded this game a really, really long time ago.
Its called Arcanum Stone. Pretty good fighting game, even if it's almost purely in Japanese. I'm not sure if it still has a key, but even then I wouldn't know it. Sorry!