Difference between revisions of "General Vritual Machine architecture"
Jump to navigation
Jump to search
Line 19: | Line 19: | ||
| style="text-align:right;" |unknown | | style="text-align:right;" |unknown | ||
|- | |- | ||
− | !Number of calls | + | ! style="text-align:left;" |Number of calls |
− | |~2000 | + | | style="text-align:right;" |~2000 |
|} | |} | ||
Final Fantasy XII contains a stack based '''virtual machine''' that runs field and event scripts. The implementation seems to be exactly the same starting with Japanese PS2 release, through PS4, PC and Nintendo Switch versions. The only thing that changes are available calls. Each subsequent version supports all previous calls and includes a few dozen of new ones at most. | Final Fantasy XII contains a stack based '''virtual machine''' that runs field and event scripts. The implementation seems to be exactly the same starting with Japanese PS2 release, through PS4, PC and Nintendo Switch versions. The only thing that changes are available calls. Each subsequent version supports all previous calls and includes a few dozen of new ones at most. |
Revision as of 09:27, 15 July 2019
Type | stack based |
---|---|
Integer registers | 4 (I0 to I3) |
Float registers | 4 (F0 to F3) |
Special registers | 3 (X, Y, A) |
Number of instructions | 100 |
Maximum stack size | unknown |
Number of calls | ~2000 |
Final Fantasy XII contains a stack based virtual machine that runs field and event scripts. The implementation seems to be exactly the same starting with Japanese PS2 release, through PS4, PC and Nintendo Switch versions. The only thing that changes are available calls. Each subsequent version supports all previous calls and includes a few dozen of new ones at most.
Even though the VM contains a set of registers, they are used either by compiler or have only quality of life purpose (so it is not needed to declare variables for iterators or temporary storage). All except a few instructions operate solely on stack.