AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   General (https://forums.alliedmods.net/forumdisplay.php?f=58)
-   -   Sourcemod Info Help (https://forums.alliedmods.net/showthread.php?t=296963)

Chief149 05-02-2017 16:53

Sourcemod Info Help
 
So I had an idea for something to code over the Summer because I have a few ideas in my head, but no clue which one I actually wanna dedicate my new-found time to.

One of my ideas involves playing around with some SM language related stuff.
Does anyone know where I could find documentation on the .smx file format and documentation on the Sourcemod VM instruction set?



Or is my only option to go through the source code to figure it all out myself?

Fyren 05-02-2017 21:45

Re: Sourcemod Info Help
 
There isn't really documentation. The upstream Pawn docs have some information about the instruction set in this document. However, SourcePawn forked off long ago and our VM will not handle instructions we know our compiler won't generate.

What are you looking to do?

Chief149 05-02-2017 21:51

Re: Sourcemod Info Help
 
I read up on Bailopans blog. Found a couple of posts from 2007 involving the structure of .smx files, and I was able to get some info from looking at the source code, but I wasn't able to get a complete picture.

Additionally, I found a bunch of instructions from the Sourcemod header files, but not the corresponding opcodes and bit layouts for the VM instructions. Also some of the instructions weren't self-explanatory by name.

I was thinking of writing a compiler for Sourcemod that rethinks how plugins are developed. I would give details, but I don't even know all of them myself.

I have multiple ideas, but I haven't been investing myself into any of them to a huge extent because I'm figuring out which ideas to pursue.

BAILOPAN 05-03-2017 00:57

Re: Sourcemod Info Help
 
The file format is documented in smx-headers.h, smx-v1-opcodes.h, and smx-v1.h here: https://github.com/alliedmodders/sou...er/include/smx

There's a reference implementation of the VM in interpreter.cpp.

We have another repo, "smxtools" (should probably be merged into the SP repo): https://github.com/alliedmodders/smxtools

It's basically a C# implementation of everything but the VM, and it's a bit easier to read than the C++ code.

Chief149 05-03-2017 14:04

Re: Sourcemod Info Help
 
Personally I wouldn't merge the two. If one is in C# and the other is C++ I'd keep them separate.


All times are GMT -4. The time now is 22:14.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.