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
405
Views
2,699
Extension type
lua
File size
33.9 KB
MD5 Hash
fac696c97685de2d996a22e90f930cbc
First release
Last update
Rating
5.00 star(s) 1 ratings

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