Resource icon

[Open Assets] SOC++ 1.0.0

SOC++ implements what could be best described as assembly code encoded into SOC Actions.
It has several features, including:
  • Up to 8GB read-write dynamic memory per object (2^31 32-bit numbers)
  • Conditional jumping, unconditional and conditional branching.
  • Addition, Subtraction, Multiplication, Division, Modulo operations.
  • Facilities to print numbers and strings.
  • FIFO stack.
As this is basically its own programming language, there are no screenshots. I can however provide a working "Hello World!"!

To run it, paste the following code into a blank SOC, run the SOC after loading SOC++, then simply die!

Sonic Object Configuration (SOC):
Freeslot
S_SOCpp_MAIN_HELLOWORLD_PC0
S_SOCpp_MAIN_HELLOWORLD_PC1
S_SOCpp_MAIN_HELLOWORLD_PC2
S_SOCpp_MAIN_HELLOWORLD_PC3
S_SOCpp_MAIN_HELLOWORLD_PC4

Object MT_PLAYER
DeathState S_SOCpp_MAIN_HELLOWORLD_PC0

State S_SOCpp_MAIN_HELLOWORLD_PC0
Duration = 1
Next = S_SOCpp_MAIN_HELLOWORLD_PC1

State S_SOCpp_MAIN_HELLOWORLD_PC1
Action = A_SOC++_SetLongWord
Var1 = 0
Var2 = 0x48656C6C # "Hell"
Next = S_SOCpp_MAIN_HELLOWORLD_PC2

State S_SOCpp_MAIN_HELLOWORLD_PC2
Action = A_SOC++_SetLongWord
Var1 = 4
Var2 = 0x6F20576F # "o Wo"
Next = S_SOCpp_MAIN_HELLOWORLD_PC3

State S_SOCpp_MAIN_HELLOWORLD_PC3
Action = A_SOC++_SetLongWord
Var1 = 8
Var2 = 0x726C6421 # "rld!"
Next = S_SOCpp_MAIN_HELLOWORLD_PC4

State S_SOCpp_MAIN_HELLOWORLD_PC4
Action = A_SOC++_PrintCString # memory is initialised with zeros, so we don't have to specify length
Duration = 1
Next = S_PLAY_DEAD
Author
Golden
Downloads
509
Views
3,035
Extension type
lua
File size
33.9 KB
MD5 Hash
fac696c97685de2d996a22e90f930cbc
First release
Last update

Share this resource

Latest reviews

Welcome to releases! I'll admit, I don't know the full scope of this thing's capabilities, but from what I've been told, this is great stuff!
Upvote 0
Back
Top