Difference between revisions of "FF8/Variables"

From Final Fantasy Inside
< FF8
Jump to navigation Jump to search
my_wiki>Shard
(Bedtime for me)
 
(18 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<noinclude>By [[User:Shard|Shard]].
+
By [[User:Shard|Shard]].
  
 
Game variables can be accessed using the PSHM family of script functions, and can be written to by using the POPM family of functions. Which one you use depends on the size of the variable.
 
Game variables can be accessed using the PSHM family of script functions, and can be written to by using the POPM family of functions. Which one you use depends on the size of the variable.
 
+
The variables are all stored in save files, with the save block starting at address 0xD10 on uncompressed PC saves. The parameter to access a variable in the game scripts is basically the offset from this point in the variable block. For example, getting main story progress (word 256, which is word 0x100 in hex) just gets the two bytes starting at address 0xD10 + 0x100 = 0xE10. The varmap is continuous in memory while the game is running as well. In the en-US version of the original and SE releases (and likely most other versions), the varblock begins at 0x18fe9b8. You can use this [https://www.mediafire.com/?ucolf65ewq1yoty Cheat Engine Table] to track them as you play.
The variables are all stored in save files, with the save block starting at address 0xD10 on uncompressed PC saves. The parameter to access a variable in the game scripts is basically the offset from this point in the variable block. For example, getting main story progress (word 256, which is word 0x100 in hex) just gets the two bytes starting at address 0xD10 + 0x100 = 0xE10. The varmap is continuous in memory while the game is running as well. In the en-US version of the original and SE releases (and likely most other versions), the varblock begins at 0x18fe9b8. You can use [https://www.mediafire.com/?ucolf65ewq1yoty this Cheat Engine table] to track them as you play.
 
  
 
Items in grey are unused by field scripts (some of them may be used in battle scripts).
 
Items in grey are unused by field scripts (some of them may be used in battle scripts).
 
+
{| class="wikitable"
</noinclude>
+
|-
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse;"
+
! Var type
! style="background:rgb(204,204,204)" | Var type
+
! Var Number
! style="background:rgb(204,204,204)" | Var Number
+
! Description
! style="background:rgb(204,204,204)" | Description
+
|-
 +
! Byte
 +
| 0-3
 +
| unused in fields (always "FF-8")
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Long
| style="background:rgb(224,224,224)" | 0-3
+
| 4
| style="background:rgb(224,224,224)" | unused in fields
+
| Steps (used to generate random encounters)
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Long
+
! Long
| style="background:rgb(224,224,224)" | 4
+
| 8
| style="background:rgb(224,224,224)" | Steps (used to generate random encounters)
+
| Payslip
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 8-15
+
| 12-15
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Signed Word
+
! Signed Word
 
| 16
 
| 16
 
| SeeD rank points?
 
| SeeD rank points?
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 18-19
+
| 18-19
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Long
+
! Long
 
| 20
 
| 20
 
| Battles won. (Fun fact: this affects the basketball shot in Trabia.)
 
| Battles won. (Fun fact: this affects the basketball shot in Trabia.)
 
|-
 
|-
! align="left" | Word
+
! Byte
 +
| 24-25
 +
| unused in fields
 +
|-
 +
! Word
 
| 26
 
| 26
 
| Battles escaped.
 
| Battles escaped.
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 28
 
| 28
 
| Enemies killed by Squall
 
| Enemies killed by Squall
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Word
| style="background:rgb(224,224,224)" | 30-33
+
| 30
| style="background:rgb(224,224,224)" | unused in fields
+
| Enemies killed by Zell
 +
|-
 +
! Word
 +
| 32
 +
| Enemies killed by Irvine
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 34
 
| 34
 
| Enemies killed by Quistis
 
| Enemies killed by Quistis
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Word
| style="background:rgb(224,224,224)" | 36-43
+
| 36
| style="background:rgb(224,224,224)" | unused in fields
+
| Enemies killed by Rinoa
 +
|-
 +
! Word
 +
| 38
 +
| Enemies killed by Selphie
 +
|-
 +
! Word
 +
| 40
 +
| Enemies killed by Seifer
 +
|-
 +
! Word
 +
| 42
 +
| Enemies killed by Edea
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 44
 
| 44
| Number of times Squall has died in battle.
+
| Squall death count
 +
|-
 +
! Word
 +
| 46
 +
| Zell death count
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Word
| style="background:rgb(224,224,224)" | 46-49
+
| 48
| style="background:rgb(224,224,224)" | unused in fields
+
| Irvine death count
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 50
 
| 50
| Number of times Quistis has died in battle.
+
| Quistis death count
 +
|-
 +
! Word
 +
| 52
 +
| Rinoa death count
 +
|-
 +
! Word
 +
| 54
 +
| Selphie death count
 +
|-
 +
! Word
 +
| 56
 +
| Seifer death count
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Word
| style="background:rgb(224,224,224)" | 52-67
+
| 58
| style="background:rgb(224,224,224)" | unused in fields
+
| Edea death count
 
|-
 
|-
! align="left" | Long
+
! Byte
 +
| 60-67
 +
| unused in fields
 +
|-
 +
! Long
 
| 68
 
| 68
 
| Enemies killed
 
| Enemies killed
 
|-
 
|-
! align="left" | Long
+
! Long
 
| 72
 
| 72
 
| Amount of Gil the party currently has
 
| Amount of Gil the party currently has
 
|-
 
|-
! align="left" | Long
+
! Long
 
| 76
 
| 76
 
| Amount of Gil Laguna's party has
 
| Amount of Gil Laguna's party has
 
|-
 
|-
! align="left" | Long
+
! Long
 
| 80
 
| 80
 
| Counts the number of frames since the current movie started playing.
 
| Counts the number of frames since the current movie started playing.
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 84
 
| 84
| Last area visited. This is related to [[FF8/Field/Script/Opcodes/133_SETPLACE|SETPLACE]] somehow.<sub>4</sub>
+
| Last area visited.
 
|-
 
|-
! align="left" | Signed Byte
+
! Signed Byte
 
| 86
 
| 86
| Has something to do with whether the party is entering a field in a vehicle from the world map. Type of vehicle maybe?
+
| Current car rent.
 
|-
 
|-
! align="left" | Signed Byte
+
! Signed Byte
 
| 87
 
| 87
| Built-in engine variable. No idea what it does. Scripts always check if it's equal to 0 or 10.
+
| Built-in engine variable. No idea what it does. Scripts always check if it's equal to 0 or 10. Related to music.
 
|-
 
|-
! align="left" | Signed Byte
+
! Signed Byte
 
| 88
 
| 88
| Built-in engine variable. Used exclusively on save points. Never written to with field scripts.
+
| Built-in engine variable. Used exclusively on save points. Never written to with field scripts. Related to Siren's Move-Find ability.
 +
|-
 +
! Byte
 +
| 89-103
 +
| unused in fields
 +
|-
 +
! Long
 +
| 104
 +
| Seems related to SARALYDISPON/SARALYON/MUSICLOAD/PHSPOWER opcodes
 +
|-
 +
! Long
 +
| 108
 +
| Music related
 +
|-
 +
! Long
 +
| 112
 +
| unused in fields
 +
|-
 +
! Byte
 +
| 116-147
 +
| Draw points in field
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 89-255
+
| 148-179
| style="background:rgb(224,224,224)" | unused in fields
+
| Draw points in worldmap
 
|-
 
|-
! align="left" | Word
+
! Byte
 +
| 180-255
 +
| unused in fields
 +
|-
 +
! Word
 
| 256
 
| 256
| Main Story quest progress.  
+
| Main Story quest progress.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 258
 
| 258
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 259-260
+
| 259-260
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 261
 
| 261
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 262-263
+
| 262-263
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 264
 
| 264
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 265
 
| 265
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 266
 
| 266
 
| World map version? (3=Esthar locations unlocked)
 
| World map version? (3=Esthar locations unlocked)
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 267
+
| 267
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 268
 
| 268
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 269
 
| 269
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 270
 
| 270
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 271
+
| 271
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 272-299
 
| 272-299
| style="background:rgb(255,255,150)" | SO MANY F***ING CARD GAME VARIABLES
+
| SO MANY F***ING CARD GAME VARIABLES
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 300
 
| 300
 
| Card Queen re-cards.
 
| Card Queen re-cards.
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 301-303
+
| 301-303
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 304-305
 
| 304-305
 
| Timber Maniacs issues found.
 
| Timber Maniacs issues found.
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 306-319
+
| 306-319
| style="background:rgb(224,224,224)" | unused in fields
+
| Reserved for Hacktuar / FF8Voice
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 320-332
 
| 320-332
 
| Ultimecia Gallery related (pictures viewed?)
 
| Ultimecia Gallery related (pictures viewed?)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 333
 
| 333
 
| Ultimecia Armory chest flags
 
| Ultimecia Armory chest flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 334
 
| 334
 
| Ultimecia Castle seals. See [[FF8/Field/Script/Opcodes/159_SEALEDOFF|SEALEDOFF]] for details.
 
| Ultimecia Castle seals. See [[FF8/Field/Script/Opcodes/159_SEALEDOFF|SEALEDOFF]] for details.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 335
 
| 335
 
| Card related
 
| Card related
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 336
 
| 336
 
| Deling City bus related
 
| Deling City bus related
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 338-340
 
| 338-340
 
| Deling Sewer gates opened
 
| Deling Sewer gates opened
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 341
 
| 341
 
| Does lots of things.<sub>5</sub>
 
| Does lots of things.<sub>5</sub>
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 342
 
| 342
 
| Deling City bus system
 
| Deling City bus system
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 343
 
| 343
 
| G-Garden door/event flags.
 
| G-Garden door/event flags.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 344
 
| 344
 
| B-Garden / G-Garden event flags (during GvG)
 
| B-Garden / G-Garden event flags (during GvG)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 345
 
| 345
 
| G-Garden door/event flags.
 
| G-Garden door/event flags.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 346-349
 
| 346-349
 
| FH Instrument (346 Zell, 347 Irvine, 348 Selphie, 349 Quistis)
 
| FH Instrument (346 Zell, 347 Irvine, 348 Selphie, 349 Quistis)
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 350-356
 
| 350-356
 
| Health Bars (Garden mech fight)
 
| Health Bars (Garden mech fight)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 358
 
| 358
 
| Space station talk flags, Centra ruins related (beat odin?).
 
| Space station talk flags, Centra ruins related (beat odin?).
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 359
 
| 359
 
| Centra ruins related (beat odin?).
 
| Centra ruins related (beat odin?).
 
|-
 
|-
! align="left" | Long
+
! Long
 
| 360
 
| 360
 
| Choice of FH music.
 
| Choice of FH music.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 364-368
 
| 364-368
 
| Randomly generated code for Centra Ruins.
 
| Randomly generated code for Centra Ruins.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 369-370
 
| 369-370
 
| Ultimecia Castle flags
 
| Ultimecia Castle flags
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 371
+
| 371
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 372-376
 
| 372-376
 
| Ultimecia boss/timer/item flags
 
| Ultimecia boss/timer/item flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 377
 
| 377
 
| Ultimecia organ note controller
 
| Ultimecia organ note controller
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 378
 
| 378
 
| Centra Ruins timer (controls blackout messages from Odin)
 
| Centra Ruins timer (controls blackout messages from Odin)
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 379
+
| 379
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 380
 
| 380
 
| Squall health during mech fight.
 
| Squall health during mech fight.
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 382-383
+
| 382-383
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 384
 
| 384
 
| Something about Laguna's time periods and GFs.
 
| Something about Laguna's time periods and GFs.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 385
 
| 385
 
| Laguna dialogue in pub. Only the +2 bit is ever set. Don't change the +1 bit.
 
| Laguna dialogue in pub. Only the +2 bit is ever set. Don't change the +1 bit.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 387
 
| 387
 
| Winhill progress?
 
| Winhill progress?
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 388
 
| 388
 
| Timber Maniacs HQ talk flags (main lobby)
 
| Timber Maniacs HQ talk flags (main lobby)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 389
 
| 389
 
| Timber Maniacs HQ talk flags (office room)
 
| Timber Maniacs HQ talk flags (office room)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 390
 
| 390
 
| Edea talk flags at her house
 
| Edea talk flags at her house
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 391
 
| 391
 
| Laguna talk flags (in his office, disc 3)
 
| Laguna talk flags (in his office, disc 3)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 392
 
| 392
 
| unknown (used in Edea's house and in the Balamb Garden computer system)
 
| unknown (used in Edea's house and in the Balamb Garden computer system)
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 393-399
+
| 393-399
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Long
+
! Long
 
| 400 and 404
 
| 400 and 404
 
| Related to monsters killed in Winhill, but I don't think it actually does anything. Will investigate.
 
| Related to monsters killed in Winhill, but I don't think it actually does anything. Will investigate.
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 408
+
| 408
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 409
 
| 409
 
| Balamb Garden computer system
 
| Balamb Garden computer system
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 410-431
+
| 410-431
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 432
 
| 432
 
| BG Main hall flags
 
| BG Main hall flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 433
 
| 433
 
| Flags. Switches are assigned all over BG. No idea what any of them control.
 
| Flags. Switches are assigned all over BG. No idea what any of them control.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 434
 
| 434
 
| Flags. Switches are assigned all over BG. No idea what any of them control.
 
| Flags. Switches are assigned all over BG. No idea what any of them control.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 435
 
| 435
 
| Flags. Switches are assigned all over BG. No idea what any of them control.
 
| Flags. Switches are assigned all over BG. No idea what any of them control.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 436
 
| 436
 
| Moomba friendship level in the prison? Some actions cause these flags to be set.
 
| Moomba friendship level in the prison? Some actions cause these flags to be set.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 437
 
| 437
 
| In BG on Disc 2, keeps track of who's in your party. In the prison, it's the current floor you're on.
 
| In BG on Disc 2, keeps track of who's in your party. In the prison, it's the current floor you're on.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 438
 
| 438
 
| Cid vs Norg event flags
 
| Cid vs Norg event flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 439
 
| 439
 
| Cid vs Norg event flags
 
| Cid vs Norg event flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 440
 
| 440
 
| Event flags. (+1 Quad ambush, +2 quad item giver, +4/+8 Infirmary helped, +16 Nida, +64 Kadowaki Elixir, +128 Training center)
 
| Event flags. (+1 Quad ambush, +2 quad item giver, +4/+8 Infirmary helped, +16 Nida, +64 Kadowaki Elixir, +128 Training center)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 441
 
| 441
 
| Cid vs Norg event flags
 
| Cid vs Norg event flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 442
 
| 442
 
| Rinoa Garden tour flags
 
| Rinoa Garden tour flags
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Word
| style="background:rgb(224,224,224)" | 443-444
+
| 443
| style="background:rgb(224,224,224)" | unused in fields
+
| Zell Health in Prison (Hacktuar)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 445-447
 
| 445-447
 
| Propagator defeated flags
 
| Propagator defeated flags
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 448
 
| 448
 
| Unknown
 
| Unknown
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 450-451
 
| 450-451
 
| Various magazine/talk flags
 
| Various magazine/talk flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 452
 
| 452
 
| Lunatic Pandora areas visited?
 
| Lunatic Pandora areas visited?
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 453-455
 
| 453-455
 
| Moomba teleport variables
 
| Moomba teleport variables
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 456-457
+
| 456-457
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 458-459
 
| 458-459
 
| Used with MUSICSKIP in some Balamb Garden areas
 
| Used with MUSICSKIP in some Balamb Garden areas
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 460
 
| 460
 
| Random flags (some used for Card Club)
 
| Random flags (some used for Card Club)
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 461-473
+
| 461-473
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 474
 
| 474
 
| Random flags (some used for Card Club)
 
| Random flags (some used for Card Club)
 
|-
 
|-
! align="left" | Byte
+
! Byte
| 475
+
| 475-478
| style="background:rgb(255,255,150)" | not investigated
+
| CC Group variables
|-
 
! align="left" | Byte
 
| 476
 
| style="background:rgb(255,255,150)" | not investigated
 
|-
 
! align="left" | Byte
 
| 477
 
| style="background:rgb(255,255,150)" | not investigated
 
 
|-
 
|-
! align="left" | Byte
+
! Byte
| 478
 
| style="background:rgb(255,255,150)" | not investigated
 
|-
 
! align="left" | Byte
 
 
| 479
 
| 479
| style="background:rgb(255,255,150)" | not investigated
+
| If set to 0, disables all random battles during area loading.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 480
 
| 480
| style="background:rgb(255,255,150)" | not investigated
+
| State of students in classroom (what they're doing).
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 481
 
| 481
| style="background:rgb(255,255,150)" | not investigated
+
| Controls a conversation in the cafeteria.
 
|-
 
|-
! align="left" | Signed Word
+
! Signed Word
 
| 482
 
| 482
| style="background:rgb(255,255,150)" | not investigated
+
| Error ratio of missiles
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 484
 
| 484
| style="background:rgb(255,255,150)" | not investigated
+
| Missile Base progression? (+12 after first fight, +128 bomb timer set, +1 error ratio, +2 data upload)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 485
 
| 485
| style="background:rgb(255,255,150)" | not investigated
+
| ToUK Progression (initially 0b111010101, +2 on finish quest. No other pops)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 486
 
| 486
| style="background:rgb(255,255,150)" | not investigated
+
| ToUK room? (used to control map jumps in the maze)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 487
 
| 487
| style="background:rgb(255,255,150)" | not investigated
+
| Missile base progression (also does something in BG2F classroom)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 488
 
| 488
 
| Alternate Party Flags. Irvine +1/+16, Quistis +2/+32, Rinoa +4/+64, Zell +8/+128.<sub>1</sub>
 
| Alternate Party Flags. Irvine +1/+16, Quistis +2/+32, Rinoa +4/+64, Zell +8/+128.<sub>1</sub>
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 489
 
| 489
| style="background:rgb(255,255,150)" | not investigated
+
| Random talk flags?
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 490
 
| 490
 
| Cafeteria cutscene
 
| Cafeteria cutscene
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 491
 
| 491
| style="background:rgb(255,255,150)" | not investigated
+
| ToUK stuff
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 492
 
| 492
| style="background:rgb(255,255,150)" | not investigated
+
| I think this is a door opener for the missile base if you choose a short time limit.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 493
 
| 493
| style="background:rgb(255,255,150)" | not investigated
+
| Missile base timer related?
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 494-527
+
| 494-527
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Signed Word
+
! Signed Word
 
| 528
 
| 528
 
| Sub-story progression (it's a progression variable for individual segments of the game)
 
| Sub-story progression (it's a progression variable for individual segments of the game)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 530
 
| 530
| style="background:rgb(255,255,150)" | not investigated
+
| Dollet state (+2 crossed bridge, +4 elvoret finished, +16 xatm first knock out, +32 selphie waiting near tower, +18 cliff jump, -18 Enter tower, +192 enter pub to dodge xatm)  
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 531
 
| 531
| style="background:rgb(255,255,150)" | not investigated
+
| Functionally unused. Read from at dollet, only manipulated in debug rooms.
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 532
 
| 532
| style="background:rgb(255,255,150)" | not investigated
+
| Controls footstep sounds at dollet (sand to concrete)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 533
 
| 533
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 534
 
| 534
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 535
 
| 535
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 536
 
| 536
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 537
 
| 537
| style="background:rgb(255,255,150)" | not investigated
+
| LD2 related flags
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 538
 
| 538
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 539
 
| 539
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 540-591
+
| 540-591
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 592-593
 
| 592-593
 
| Seems to control angles and character facing.
 
| Seems to control angles and character facing.
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 594
+
| 594
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 595
 
| 595
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 596
 
| 596
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 597
 
| 597
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 598
 
| 598
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 599
 
| 599
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 600
 
| 600
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 601
 
| 601
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 602
 
| 602
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 603
 
| 603
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 604
 
| 604
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 605
 
| 605
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 606
 
| 606
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 607
 
| 607
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 608
 
| 608
| style="background:rgb(255,255,150)" | not investigated
+
| Shumi village related
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 609
 
| 609
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 610
 
| 610
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 611
 
| 611
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 612
 
| 612
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 613
 
| 613
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 614
 
| 614
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 615
 
| 615
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 616
 
| 616
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 617
 
| 617
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 618
 
| 618
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 619
 
| 619
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 620
 
| 620
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 621
 
| 621
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 622
 
| 622
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 623
 
| 623
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 624
 
| 624
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 625
 
| 625
 
| Balamb visited flags (+8 Zell's room)
 
| Balamb visited flags (+8 Zell's room)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 626
 
| 626
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 627
 
| 627
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 628
+
| 628
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 629
 
| 629
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 630
 
| 630
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 631
 
| 631
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 632
 
| 632
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 633
 
| 633
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 634
 
| 634
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 636
 
| 636
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 637
+
| 637
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 638
 
| 638
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 639
+
| 639
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 640
 
| 640
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 641
 
| 641
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 642
 
| 642
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 643
 
| 643
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 644
 
| 644
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 645
 
| 645
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 646
 
| 646
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 647
 
| 647
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 648
 
| 648
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 649
 
| 649
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 650-655
+
| 650-655
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 656
 
| 656
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 658
 
| 658
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 659
 
| 659
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 660
 
| 660
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 661
 
| 661
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 662
 
| 662
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 663
 
| 663
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 664
 
| 664
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 665
 
| 665
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 666
 
| 666
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 668
 
| 668
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 669-671
+
| 669-671
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 672
 
| 672
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 674
+
| 674
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 675
 
| 675
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 676
+
| 676
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 677
 
| 677
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 678
 
| 678
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 679
+
| 679
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 680
 
| 680
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 681
 
| 681
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 682
 
| 682
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 683
 
| 683
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 684
 
| 684
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 685
 
| 685
| style="background:rgb(255,255,150)" | not investigated
+
| used in Esthar (progress tracking?)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 686
 
| 686
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 687
 
| 687
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 688
 
| 688
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 689
 
| 689
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 690
 
| 690
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 691
 
| 691
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 692-719
+
| 692-719
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 720
 
| 720
 
| Squall's costume (0=normal, 1=student, 2=SeeD, 3=Bandage on forehead)
 
| Squall's costume (0=normal, 1=student, 2=SeeD, 3=Bandage on forehead)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 721
 
| 721
 
| Zell's Costume (0=normal, 1=student, 2=SeeD)
 
| Zell's Costume (0=normal, 1=student, 2=SeeD)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 722
 
| 722
 
| Selphie's costume (0=normal, 1=student, 2=SeeD)
 
| Selphie's costume (0=normal, 1=student, 2=SeeD)
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 723
 
| 723
 
| Quistis' Costume (0=normal, 1=SeeD)
 
| Quistis' Costume (0=normal, 1=SeeD)
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 724
 
| 724
 
| Dollet mission time
 
| Dollet mission time
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 726
 
| 726
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 728
 
| 728
 
| Does lots of things.<sub>3</sub>
 
| Does lots of things.<sub>3</sub>
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 729
 
| 729
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 730
 
| 730
 
| Flags (+1 Joined Garden Festival Committee, +4 Gave Selphie tour of BG, +16 Kadowaki asks for Cid, +32 and +64 Tomb of Unknown Kind hints?, +128 Beat all card people?)
 
| Flags (+1 Joined Garden Festival Committee, +4 Gave Selphie tour of BG, +16 Kadowaki asks for Cid, +32 and +64 Tomb of Unknown Kind hints?, +128 Beat all card people?)
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 731
+
| 731
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Word
+
! Word
 
| 732
 
| 732
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 734
 
| 734
 
| Split Party Flags (+1 Zell, +2 Irvine, +4 Rinoa, +8 Quistis, +16 Selphie).<sub>2</sub>
 
| Split Party Flags (+1 Zell, +2 Irvine, +4 Rinoa, +8 Quistis, +16 Selphie).<sub>2</sub>
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 735
 
| 735
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 736-751
+
| 736-751
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| 752
 
| 752
| style="background:rgb(255,255,150)" | not investigated
+
| not investigated
 
|-
 
|-
! align="left" style="background:rgb(224,224,224)" | Byte
+
! Byte
| style="background:rgb(224,224,224)" | 753-1023
+
| 753-1023
| style="background:rgb(224,224,224)" | unused in fields
+
| unused in fields
 
|-
 
|-
! align="left" | Byte
+
! Byte
 
| Above 1023
 
| Above 1023
 
| Temporary variables used pretty much everywhere.
 
| Temporary variables used pretty much everywhere.
 
|}
 
|}
 
+
= Notes =
==Notes==
+
# When the party splits in disc 2, each party member in the inactive party except Selphie has one of the eight bits changed for this variable. One member has a flag in the 4 most significant bits, and the other has a flag in the 4 least significant bits. It's done this way so that when the characters appear, they animate towards different locations in the field, rather than stacking on top of each other.
:1. When the party splits in disc 2, each party member in the inactive party except Selphie has one of the eight bits changed for this variable. One member has a flag in the 4 most significant bits, and the other has a flag in the 4 least significant bits. It's done this way so that when the characters appear, they animate towards different locations in the field, rather than stacking on top of each other.
+
# This byte contains flags for which characters are in Squall's party when the party splits in disc 2.
:2. This byte contains flags for which characters are in Squall's party when the party splits in disc 2.
+
# List of everything that 728 holds throughout the game:
:3. List of everything that 728 holds throughout the game:
+
## SeeD field exam "Conduct" score (lose points when you do something wrong at Dollet).
:* SeeD field exam "Conduct" score (lose points when you do something wrong at Dollet).
+
## Train job attempts (Timber)
:* Train job attempts (Timber)
+
## Tomb of the Unknown King student ID.
:* Tomb of the Unknown King student ID.
+
## Who you took to space in disc 3.
:* Who you took to space in disc 3.
+
# The field controlling restriction unlocking in Ultimecia's Castle uses this to figure out where to jump the party after they've broken a seal. It's unknown how SETPLACE actually sets this, it's not always related to the field ID or the SETPLACE parameter. This variable is also set at Balamb Garden's front gate manually.:5. List of everything that 341 holds throughout the game:
:4. The field controlling restriction unlocking in Ultimecia's Castle uses this to figure out where to jump the party after they've broken a seal. It's unknown how SETPLACE actually sets this, it's not always related to the field ID or the SETPLACE parameter. This variable is also set at Balamb Garden's front gate manually.
+
## First flashback team
:5. List of everything that 341 holds throughout the game:
+
## Selphie's current action when escaping from Deling's mansion (changes the dialogue)
:* First flashback team
+
## FH Concert Crappiness
:* Selphie's current action when escaping from Deling's mansion (changes the dialogue)
+
## Something in B-Garden classroom during the paratrooper attack.
:* FH Concert Crappiness
 
:* Something in B-Garden classroom during the paratrooper attack.
 

Latest revision as of 05:18, 1 August 2022

By Shard.

Game variables can be accessed using the PSHM family of script functions, and can be written to by using the POPM family of functions. Which one you use depends on the size of the variable. The variables are all stored in save files, with the save block starting at address 0xD10 on uncompressed PC saves. The parameter to access a variable in the game scripts is basically the offset from this point in the variable block. For example, getting main story progress (word 256, which is word 0x100 in hex) just gets the two bytes starting at address 0xD10 + 0x100 = 0xE10. The varmap is continuous in memory while the game is running as well. In the en-US version of the original and SE releases (and likely most other versions), the varblock begins at 0x18fe9b8. You can use this Cheat Engine Table to track them as you play.

Items in grey are unused by field scripts (some of them may be used in battle scripts).

Var type Var Number Description
Byte 0-3 unused in fields (always "FF-8")
Long 4 Steps (used to generate random encounters)
Long 8 Payslip
Byte 12-15 unused in fields
Signed Word 16 SeeD rank points?
Byte 18-19 unused in fields
Long 20 Battles won. (Fun fact: this affects the basketball shot in Trabia.)
Byte 24-25 unused in fields
Word 26 Battles escaped.
Word 28 Enemies killed by Squall
Word 30 Enemies killed by Zell
Word 32 Enemies killed by Irvine
Word 34 Enemies killed by Quistis
Word 36 Enemies killed by Rinoa
Word 38 Enemies killed by Selphie
Word 40 Enemies killed by Seifer
Word 42 Enemies killed by Edea
Word 44 Squall death count
Word 46 Zell death count
Word 48 Irvine death count
Word 50 Quistis death count
Word 52 Rinoa death count
Word 54 Selphie death count
Word 56 Seifer death count
Word 58 Edea death count
Byte 60-67 unused in fields
Long 68 Enemies killed
Long 72 Amount of Gil the party currently has
Long 76 Amount of Gil Laguna's party has
Long 80 Counts the number of frames since the current movie started playing.
Word 84 Last area visited.
Signed Byte 86 Current car rent.
Signed Byte 87 Built-in engine variable. No idea what it does. Scripts always check if it's equal to 0 or 10. Related to music.
Signed Byte 88 Built-in engine variable. Used exclusively on save points. Never written to with field scripts. Related to Siren's Move-Find ability.
Byte 89-103 unused in fields
Long 104 Seems related to SARALYDISPON/SARALYON/MUSICLOAD/PHSPOWER opcodes
Long 108 Music related
Long 112 unused in fields
Byte 116-147 Draw points in field
Byte 148-179 Draw points in worldmap
Byte 180-255 unused in fields
Word 256 Main Story quest progress.
Byte 258 not investigated
Byte 259-260 unused in fields
Byte 261 not investigated
Byte 262-263 unused in fields
Byte 264 not investigated
Byte 265 not investigated
Byte 266 World map version? (3=Esthar locations unlocked)
Byte 267 unused in fields
Byte 268 not investigated
Byte 269 not investigated
Byte 270 not investigated
Byte 271 unused in fields
Byte 272-299 SO MANY F***ING CARD GAME VARIABLES
Byte 300 Card Queen re-cards.
Byte 301-303 unused in fields
Byte 304-305 Timber Maniacs issues found.
Byte 306-319 Reserved for Hacktuar / FF8Voice
Byte 320-332 Ultimecia Gallery related (pictures viewed?)
Byte 333 Ultimecia Armory chest flags
Byte 334 Ultimecia Castle seals. See SEALEDOFF for details.
Byte 335 Card related
Byte 336 Deling City bus related
Byte 338-340 Deling Sewer gates opened
Byte 341 Does lots of things.5
Byte 342 Deling City bus system
Byte 343 G-Garden door/event flags.
Byte 344 B-Garden / G-Garden event flags (during GvG)
Byte 345 G-Garden door/event flags.
Byte 346-349 FH Instrument (346 Zell, 347 Irvine, 348 Selphie, 349 Quistis)
Word 350-356 Health Bars (Garden mech fight)
Byte 358 Space station talk flags, Centra ruins related (beat odin?).
Byte 359 Centra ruins related (beat odin?).
Long 360 Choice of FH music.
Byte 364-368 Randomly generated code for Centra Ruins.
Byte 369-370 Ultimecia Castle flags
Byte 371 unused in fields
Byte 372-376 Ultimecia boss/timer/item flags
Byte 377 Ultimecia organ note controller
Byte 378 Centra Ruins timer (controls blackout messages from Odin)
Byte 379 unused in fields
Word 380 Squall health during mech fight.
Byte 382-383 unused in fields
Byte 384 Something about Laguna's time periods and GFs.
Byte 385 Laguna dialogue in pub. Only the +2 bit is ever set. Don't change the +1 bit.
Byte 387 Winhill progress?
Byte 388 Timber Maniacs HQ talk flags (main lobby)
Byte 389 Timber Maniacs HQ talk flags (office room)
Byte 390 Edea talk flags at her house
Byte 391 Laguna talk flags (in his office, disc 3)
Byte 392 unknown (used in Edea's house and in the Balamb Garden computer system)
Byte 393-399 unused in fields
Long 400 and 404 Related to monsters killed in Winhill, but I don't think it actually does anything. Will investigate.
Byte 408 unused in fields
Byte 409 Balamb Garden computer system
Byte 410-431 unused in fields
Byte 432 BG Main hall flags
Byte 433 Flags. Switches are assigned all over BG. No idea what any of them control.
Byte 434 Flags. Switches are assigned all over BG. No idea what any of them control.
Byte 435 Flags. Switches are assigned all over BG. No idea what any of them control.
Byte 436 Moomba friendship level in the prison? Some actions cause these flags to be set.
Byte 437 In BG on Disc 2, keeps track of who's in your party. In the prison, it's the current floor you're on.
Byte 438 Cid vs Norg event flags
Byte 439 Cid vs Norg event flags
Byte 440 Event flags. (+1 Quad ambush, +2 quad item giver, +4/+8 Infirmary helped, +16 Nida, +64 Kadowaki Elixir, +128 Training center)
Byte 441 Cid vs Norg event flags
Byte 442 Rinoa Garden tour flags
Word 443 Zell Health in Prison (Hacktuar)
Byte 445-447 Propagator defeated flags
Word 448 Unknown
Byte 450-451 Various magazine/talk flags
Byte 452 Lunatic Pandora areas visited?
Byte 453-455 Moomba teleport variables
Byte 456-457 unused in fields
Byte 458-459 Used with MUSICSKIP in some Balamb Garden areas
Byte 460 Random flags (some used for Card Club)
Byte 461-473 unused in fields
Byte 474 Random flags (some used for Card Club)
Byte 475-478 CC Group variables
Byte 479 If set to 0, disables all random battles during area loading.
Byte 480 State of students in classroom (what they're doing).
Byte 481 Controls a conversation in the cafeteria.
Signed Word 482 Error ratio of missiles
Byte 484 Missile Base progression? (+12 after first fight, +128 bomb timer set, +1 error ratio, +2 data upload)
Byte 485 ToUK Progression (initially 0b111010101, +2 on finish quest. No other pops)
Byte 486 ToUK room? (used to control map jumps in the maze)
Byte 487 Missile base progression (also does something in BG2F classroom)
Byte 488 Alternate Party Flags. Irvine +1/+16, Quistis +2/+32, Rinoa +4/+64, Zell +8/+128.1
Byte 489 Random talk flags?
Byte 490 Cafeteria cutscene
Byte 491 ToUK stuff
Byte 492 I think this is a door opener for the missile base if you choose a short time limit.
Byte 493 Missile base timer related?
Byte 494-527 unused in fields
Signed Word 528 Sub-story progression (it's a progression variable for individual segments of the game)
Byte 530 Dollet state (+2 crossed bridge, +4 elvoret finished, +16 xatm first knock out, +32 selphie waiting near tower, +18 cliff jump, -18 Enter tower, +192 enter pub to dodge xatm)
Byte 531 Functionally unused. Read from at dollet, only manipulated in debug rooms.
Byte 532 Controls footstep sounds at dollet (sand to concrete)
Byte 533 not investigated
Byte 534 not investigated
Byte 535 not investigated
Byte 536 not investigated
Byte 537 LD2 related flags
Byte 538 not investigated
Byte 539 not investigated
Byte 540-591 unused in fields
Byte 592-593 Seems to control angles and character facing.
Byte 594 unused in fields
Byte 595 not investigated
Byte 596 not investigated
Byte 597 not investigated
Byte 598 not investigated
Byte 599 not investigated
Byte 600 not investigated
Byte 601 not investigated
Byte 602 not investigated
Byte 603 not investigated
Byte 604 not investigated
Byte 605 not investigated
Byte 606 not investigated
Byte 607 not investigated
Byte 608 Shumi village related
Byte 609 not investigated
Byte 610 not investigated
Byte 611 not investigated
Byte 612 not investigated
Byte 613 not investigated
Byte 614 not investigated
Byte 615 not investigated
Byte 616 not investigated
Byte 617 not investigated
Byte 618 not investigated
Byte 619 not investigated
Byte 620 not investigated
Byte 621 not investigated
Byte 622 not investigated
Byte 623 not investigated
Byte 624 not investigated
Byte 625 Balamb visited flags (+8 Zell's room)
Byte 626 not investigated
Byte 627 not investigated
Byte 628 unused in fields
Byte 629 not investigated
Byte 630 not investigated
Byte 631 not investigated
Byte 632 not investigated
Byte 633 not investigated
Word 634 not investigated
Byte 636 not investigated
Byte 637 unused in fields
Byte 638 not investigated
Byte 639 unused in fields
Byte 640 not investigated
Byte 641 not investigated
Byte 642 not investigated
Byte 643 not investigated
Byte 644 not investigated
Byte 645 not investigated
Byte 646 not investigated
Byte 647 not investigated
Byte 648 not investigated
Byte 649 not investigated
Byte 650-655 unused in fields
Word 656 not investigated
Byte 658 not investigated
Byte 659 not investigated
Byte 660 not investigated
Byte 661 not investigated
Byte 662 not investigated
Byte 663 not investigated
Byte 664 not investigated
Byte 665 not investigated
Word 666 not investigated
Byte 668 not investigated
Byte 669-671 unused in fields
Word 672 not investigated
Byte 674 unused in fields
Byte 675 not investigated
Byte 676 unused in fields
Byte 677 not investigated
Byte 678 not investigated
Byte 679 unused in fields
Byte 680 not investigated
Byte 681 not investigated
Byte 682 not investigated
Byte 683 not investigated
Byte 684 not investigated
Byte 685 used in Esthar (progress tracking?)
Byte 686 not investigated
Byte 687 not investigated
Byte 688 not investigated
Byte 689 not investigated
Byte 690 not investigated
Byte 691 not investigated
Byte 692-719 unused in fields
Byte 720 Squall's costume (0=normal, 1=student, 2=SeeD, 3=Bandage on forehead)
Byte 721 Zell's Costume (0=normal, 1=student, 2=SeeD)
Byte 722 Selphie's costume (0=normal, 1=student, 2=SeeD)
Byte 723 Quistis' Costume (0=normal, 1=SeeD)
Word 724 Dollet mission time
Word 726 not investigated
Byte 728 Does lots of things.3
Byte 729 not investigated
Byte 730 Flags (+1 Joined Garden Festival Committee, +4 Gave Selphie tour of BG, +16 Kadowaki asks for Cid, +32 and +64 Tomb of Unknown Kind hints?, +128 Beat all card people?)
Byte 731 unused in fields
Word 732 not investigated
Byte 734 Split Party Flags (+1 Zell, +2 Irvine, +4 Rinoa, +8 Quistis, +16 Selphie).2
Byte 735 not investigated
Byte 736-751 unused in fields
Byte 752 not investigated
Byte 753-1023 unused in fields
Byte Above 1023 Temporary variables used pretty much everywhere.

Notes

  1. When the party splits in disc 2, each party member in the inactive party except Selphie has one of the eight bits changed for this variable. One member has a flag in the 4 most significant bits, and the other has a flag in the 4 least significant bits. It's done this way so that when the characters appear, they animate towards different locations in the field, rather than stacking on top of each other.
  2. This byte contains flags for which characters are in Squall's party when the party splits in disc 2.
  3. List of everything that 728 holds throughout the game:
    1. SeeD field exam "Conduct" score (lose points when you do something wrong at Dollet).
    2. Train job attempts (Timber)
    3. Tomb of the Unknown King student ID.
    4. Who you took to space in disc 3.
  4. The field controlling restriction unlocking in Ultimecia's Castle uses this to figure out where to jump the party after they've broken a seal. It's unknown how SETPLACE actually sets this, it's not always related to the field ID or the SETPLACE parameter. This variable is also set at Balamb Garden's front gate manually.:5. List of everything that 341 holds throughout the game:
    1. First flashback team
    2. Selphie's current action when escaping from Deling's mansion (changes the dialogue)
    3. FH Concert Crappiness
    4. Something in B-Garden classroom during the paratrooper attack.