add installation and vm notes

master
an 2019-12-12 16:54:50 -05:00
parent 51c33e86ee
commit 4a5b268e2e
2 changed files with 112 additions and 0 deletions

40
doc/install.md Normal file
View File

@ -0,0 +1,40 @@
# Spingle Installation
To compile Spingle, you will need:
- Any reasonably new C compiler
- pkg-config (any version)
- CMake (>=3.14)
- SDL2 (>=2.0.0)
- OpenGL (1.0 or newer, 1.3 for shaders)
For FLAC support:
- libFLAC (>=1.3.3)
For Ogg Vorbis support:
- libvorbis (>=1.3.6)
- libvorbisfile (>=1.3.6)
- libogg (>=1.3.4)
For Ogg Opus support:
- libopus (>=1.3.1)
- libopusfile (>=0.11)
- libogg (>=1.3.4)
For tracker music support:
- libmikmod (>=3.3.11)
To generate build files:
```
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
```
After that, use the generated build files to compile. (For Makefiles simply run
`make`, for Ninja use `ninja`, etc.)

72
doc/vm.md Normal file
View File

@ -0,0 +1,72 @@
## Spingle VM
### `OP_DONE`, `OP_RETURN`
Sets the 3 return globals to the 3 globals pointed to by A and returns control
to the statement pointed to by the top of the stack by restoring locals and
jumping.
### `OP_MUL_F`, `OP_DIV_F`, `OP_ADD_F`, `OP_SUB_F`
### `OP_MUL_V`
### `OP_MUL_FV`
### `OP_MUL_VF`
### `OP_ADD_V`
### `OP_SUB_V`
### `OP_EQ_F`
### `OP_EQ_V`
### `OP_EQ_S`
### `OP_EQ_E`
### `OP_EQ_FNC`
### `OP_NE_F`
### `OP_NE_V`
### `OP_NE_S`
### `OP_NE_E`
### `OP_NE_FNC`
### `OP_LE`
### `OP_GE`
### `OP_LT`
### `OP_GT`
### `OP_LOAD_F`
### `OP_LOAD_V`
### `OP_LOAD_S`
### `OP_LOAD_ENT`
### `OP_LOAD_FLD`
### `OP_LOAD_FNC`
### `OP_ADDRESS`
### `OP_STORE_F`
### `OP_STORE_V`
### `OP_STORE_S`
### `OP_STORE_ENT`
### `OP_STORE_FLD`
### `OP_STORE_FNC`
### `OP_STOREP_F`
### `OP_STOREP_V`
### `OP_STOREP_S`
### `OP_STOREP_ENT`
### `OP_STOREP_FLD`
### `OP_STOREP_FNC`
### `OP_NOT_F`
### `OP_NOT_V`
### `OP_NOT_S`
### `OP_NOT_ENT`
### `OP_NOT_FNC`
### `OP_IF`
### `OP_IFNOT`
### `OP_CALL0`
### `OP_CALL1`
### `OP_CALL2`
### `OP_CALL3`
### `OP_CALL4`
### `OP_CALL5`
### `OP_CALL6`
### `OP_CALL7`
### `OP_CALL8`
### `OP_STATE`
### `OP_GOTO`
### `OP_AND`
### `OP_OR`
### `OP_BITAND`
### `OP_BITOR`