Main Page | Namespace List | Class List | Directories | File List | Namespace Members | Class Members | File Members

SRAMFile.hh File Reference

#include <utility>
#include <wx/string.h>
#include "exceptions/FileIOException.hh"
#include "exceptions/InvalidButtonException.hh"
#include "exceptions/InvalidSRAMFileException.hh"

Go to the source code of this file.

Namespaces

namespace  smse

Defines

#define SRAM_SIZE   0x2000
 size of the SRAM file
#define GAMES   3
 The number of save games in the SRAM data.
#define GAME_SIZE   0x65C
 size of each individual save game
#define GAME_OFFSET   0x10
 offset to the beginning of the game data
#define CHECKSUM_OFFSET   0
 offset of the checksums
#define COMPLIMENT_OFFSET   0x8
 offset of the checksum compliments
#define CHECKSUM_OFFSET2   0x1FF0
 offset of the redundant checksums
#define COMPLIMENT_OFFSET2   0x1FF8
 offset of the redundant checksum compliments
#define C_SAVEPOINTS   2
 number of save points in Crateria
#define BS_SAVEPOINTS   5
 number of save points in Brinstar
#define NF_SAVEPOINTS   6
 number of save points in Norfair
#define WS_SAVEPOINTS   1
 number of save points in the Wrecked Ship
#define M_SAVEPOINTS   4
 number of save points in Maridia
#define T_SAVEPOINTS   2
 number of save points in Tourian

Enumerations

enum  {
  SO_CURRENTENERGY, SO_MAXENERGY, SO_CURRENTRESERVE, SO_MAXRESERVE,
  SO_CURRENTMISSILES, SO_MAXMISSILES, SO_CURRENTSMISSILES, SO_MAXSMISSILES,
  SO_CURRENTPBOMBS, SO_MAXPBOMBS, SO_MORPHINGBALL, SO_BOMBS = 13,
  SO_SPRINGBALL = 16, SO_HIGHJUMPBOOTS = 19, SO_VARIASUIT = 22, SO_GRAVITYSUIT = 25,
  SO_SPEEDBOOSTER = 28, SO_SPACEJUMP = 31, SO_SCREWATTACK = 34, SO_CHARGEBEAM = 37,
  SO_ICEBEAM = 40, SO_WAVEBEAM = 43, SO_SPAZER = 46, SO_PLASMABEAM = 49,
  SO_GRAPPLINGBEAM = 52, SO_XRAYSCOPE = 55, SO_SILVERTORIZO = 58, SO_SPORESPAWN,
  SO_KRAID, SO_PHANTOON = 62, SO_BOTWOON = 64, SO_DRAYGON,
  SO_CROCOMIRE = 67, SO_GOLDENTORIZO, SO_RIDLEY, SO_ZEBETITES = 71,
  SO_TOURIANELEVATOR, SO_MARIDIATUBEBROKEN, SO_RESCUEDANIMALS, SO_CMISSILEPACKS,
  SO_BSMISSILEPACKS = 83, SO_NFMISSILEPACKS = 95, SO_WSMISSILEPACKS = 110, SO_MMISSILEPACKS = 113,
  SO_CSMISSILEPACKS = 121, SO_BSSMISSILEPACKS, SO_NFSMISSILEPACKS = 125, SO_WSSMISSILEPACKS,
  SO_MSMISSILEPACKS = 128, SO_CPBOMBPACKS = 131, SO_BSPBOMBPACKS, SO_NFPBOMBPACKS = 137,
  SO_MPBOMBPACKS = 140, SO_CETANKS, SO_BSETANKS = 143, SO_NFETANKS = 148,
  SO_WSETANKS = 152, SO_METANKS, SO_BSRTANK = 155, SO_NFRTANK,
  SO_WSRTANK, SO_MRTANK, SO_CRDOORS, SO_BSRDOORS = 162,
  SO_NFRDOORS = 172, SO_WSRDOORS = 179, SO_MRDOORS, SO_TRDOORS = 187,
  SO_CGDOORS = 189, SO_BSGDOORS = 191, SO_NFGDOORS = 201, SO_WSGDOORS = 207,
  SO_MGDOORS, SO_CYDOORS = 212, SO_BSYDOORS = 218, SO_NFYDOORS = 222,
  SO_CMDOORS = 225, SO_BSMDOORS, SO_NFMDOORS = 242, SO_WSMDOORS = 248,
  SO_MMDOORS = 253, SO_TMDOORS = 260, SO_BSEDOOR = 264, SO_NFEDOOR,
  SO_WSEDOOR, SO_MEDOOR, SO_TEDOOR, SO_CMAP,
  SO_BSMAP, SO_NFMAP, SO_WSMAP, SO_MMAP,
  SO_TMAP, SO_SAVEAREA, SO_SAVEPOINT, SO_GAMEHOURS,
  SO_GAMEMINUTES, SO_SHOTBUTTON, SO_JUMPBUTTON, SO_DASHBUTTON,
  SO_ITEMCANCELBUTTON, SO_ITEMSELECTBUTTON, SO_ANGLEDOWNBUTTON, SO_ANGLEUPBUTTON,
  SO_LANGUAGE, SO_MOONWALK, SO_ICONCANCEL
}
 names for the SRAM offsets More...
enum  Action {
  ACTION_SHOT, ACTION_JUMP, ACTION_DASH, ACTION_ITEMCANCEL,
  ACTION_ITEMSELECT, ACTION_ANGLEDOWN, ACTION_ANGLEUP
}
 semi-typesafe names for Samus' actions More...
enum  Area {
  AREA_C, AREA_BS, AREA_NF, AREA_WS,
  AREA_M, AREA_T
}
 semi-typesafe names for the areas on Zebes More...
enum  Boss {
  BOSS_SILVERTORIZO = 58, BOSS_SPORESPAWN, BOSS_KRAID, BOSS_PHANTOON = 62,
  BOSS_BOTWOON = 64, BOSS_DRAYGON, BOSS_CROCOMIRE = 67, BOSS_GOLDENTORIZO,
  BOSS_RIDLEY
}
 semi-typesafe names for the bosses More...
enum  Button {
  BUTTON_A, BUTTON_B, BUTTON_X, BUTTON_Y,
  BUTTON_L, BUTTON_R, BUTTON_SELECT
}
 semi-typesafe names for the controller buttons More...
enum  Door {
  RD_C_MAP = 159, RD_C_BOMBS, RD_C_TELEVATOR, RD_BS1,
  RD_BS_MAP, RD_BS2, RD_BS3, RD_BS4,
  RD_BS_RTANK, RD_BS_SPORESPAWN, RD_BS5, RD_BS6,
  RD_BS_XRAYSCOPE, RD_NF1, RD_NF_HJBOOTS, RD_NF2,
  RD_NF3, RD_NF_SPEEDBOOSTER, RD_NF4, RD_NF_WAVEBEAM,
  RD_WS_RTANK, RD_M1, RD_M2, RD_M3,
  RD_M_MAP, RD_M4, RD_M5, RD_M6,
  RD_T1, RD_T_MB, GD_C1, GD_C_WS,
  GD_BS1, GD_BS_SPORESPAWNEXIT, GD_BS2, GD_BS3,
  GD_BS4, GD_BS5, GD_BS6, GD_BS7,
  GD_BS_SPAZER, GD_BS8, GD_NF1, GD_NF_ICEBEAM,
  GD_NF2, GD_NF3, GD_NF_SPEEDBOOSTER, GD_NF4,
  GD_WS, GD_M1, GD_M2, GD_M3,
  GD_M_DRAYGON, YD_C1, YD_C2, YD_C3,
  YD_C4, YD_C5, YD_C6, YD_BS1,
  YD_BS2, YD_BS_XRAYSCOPE, YD_BS3, YD_NF_MAP,
  YD_NF1, YD_NF2, MD_C_BOMBSEXIT, MD_BS_OLDTRIGHT,
  MD_BS_OLDTLEFT, MD_BS_MAPEXIT, MD_BS1, MD_BS2,
  MD_BS3, MD_BS4, MD_BS5, MD_BS6,
  MD_BS7, MD_BS8, MD_BS9, MD_BS_MINIKRAIDRIGHT,
  MD_BS_MINIKRAIDLEFT, MD_BS_VARIASUIT, MD_BS_KRAIDEXIT, MD_NF_CROCOMIREEXIT,
  MD_NF_HJBOOTSEXIT, MD_NF_SCREWATTACK, MD_NF_RIDLEYEXIT, MD_NF_RIDLEYLEFT,
  MD_NF_GOLDSPACEPIRATES, MD_WS1, MD_WS_PHANTOONEXIT, MD_WS2,
  MD_WS3, MD_WS4, MD_M_PLASMAEXIT, MD_M_PLASMA,
  MD_M1, MD_M2, MD_M_BOTWOONEXIT, MD_M_DRAYGONEXIT,
  MD_M_SPACEJUMP, MD_T1, MD_T2, MD_T3,
  MD_T4, ED_KRAID, ED_RIDLEY, ED_PHANTOON,
  ED_DRAYGON, ED_T
}
 names for the doors More...
enum  Item {
  ITEM_MORPHINGBALL = 10, ITEM_BOMBS = 13, ITEM_SPRINGBALL = 16, ITEM_HJBOOTS = 19,
  ITEM_VARIASUIT = 22, ITEM_GRAVITYSUIT = 25, ITEM_SPEEDBOOSTER = 28, ITEM_SPACEJUMP = 31,
  ITEM_SCREWATTACK = 34, ITEM_CHARGEBEAM = 37, ITEM_ICEBEAM = 40, ITEM_WAVEBEAM = 43,
  ITEM_SPAZER = 46, ITEM_PLASMA = 49, ITEM_GRAPPLINGBEAM = 52, ITEM_XRAYSCOPE = 55
}
 semi-typesafe names for Samus' equipment More...
enum  MiscBit {
  MB_TELEVATOR = 72, MB_MTUBEBROKEN, MB_RESCUEDANIMALS, MB_LANGUAGE = 286,
  MB_MOONWALK, MB_ICONCANCEL
}
 semi-typesafe names for the miscellaneous bits More...
enum  Statue { STATUE_KRAID = 61, STATUE_PHANTOON = 63, STATUE_DRAYGON = 66, STATUE_RIDLEY = 70 }
 semi-typesafe names for the boss statues More...


Define Documentation

#define BS_SAVEPOINTS   5
 

number of save points in Brinstar

Definition at line 64 of file SRAMFile.hh.

#define C_SAVEPOINTS   2
 

number of save points in Crateria

Definition at line 61 of file SRAMFile.hh.

#define CHECKSUM_OFFSET   0
 

offset of the checksums

Definition at line 49 of file SRAMFile.hh.

#define CHECKSUM_OFFSET2   0x1FF0
 

offset of the redundant checksums

Definition at line 55 of file SRAMFile.hh.

#define COMPLIMENT_OFFSET   0x8
 

offset of the checksum compliments

Definition at line 52 of file SRAMFile.hh.

#define COMPLIMENT_OFFSET2   0x1FF8
 

offset of the redundant checksum compliments

Definition at line 58 of file SRAMFile.hh.

#define GAME_OFFSET   0x10
 

offset to the beginning of the game data

Definition at line 46 of file SRAMFile.hh.

#define GAME_SIZE   0x65C
 

size of each individual save game

Definition at line 43 of file SRAMFile.hh.

#define GAMES   3
 

The number of save games in the SRAM data.

Definition at line 40 of file SRAMFile.hh.

#define M_SAVEPOINTS   4
 

number of save points in Maridia

Definition at line 73 of file SRAMFile.hh.

#define NF_SAVEPOINTS   6
 

number of save points in Norfair

Definition at line 67 of file SRAMFile.hh.

#define SRAM_SIZE   0x2000
 

size of the SRAM file

Definition at line 37 of file SRAMFile.hh.

#define T_SAVEPOINTS   2
 

number of save points in Tourian

Definition at line 76 of file SRAMFile.hh.

#define WS_SAVEPOINTS   1
 

number of save points in the Wrecked Ship

Definition at line 70 of file SRAMFile.hh.


Enumeration Type Documentation

anonymous enum
 

names for the SRAM offsets

Enumeration values:
SO_CURRENTENERGY 
SO_MAXENERGY 
SO_CURRENTRESERVE 
SO_MAXRESERVE 
SO_CURRENTMISSILES 
SO_MAXMISSILES 
SO_CURRENTSMISSILES 
SO_MAXSMISSILES 
SO_CURRENTPBOMBS 
SO_MAXPBOMBS 
SO_MORPHINGBALL 
SO_BOMBS 
SO_SPRINGBALL 
SO_HIGHJUMPBOOTS 
SO_VARIASUIT 
SO_GRAVITYSUIT 
SO_SPEEDBOOSTER 
SO_SPACEJUMP 
SO_SCREWATTACK 
SO_CHARGEBEAM 
SO_ICEBEAM 
SO_WAVEBEAM 
SO_SPAZER 
SO_PLASMABEAM 
SO_GRAPPLINGBEAM 
SO_XRAYSCOPE 
SO_SILVERTORIZO 
SO_SPORESPAWN 
SO_KRAID 
SO_PHANTOON 
SO_BOTWOON 
SO_DRAYGON 
SO_CROCOMIRE 
SO_GOLDENTORIZO 
SO_RIDLEY 
SO_ZEBETITES 
SO_TOURIANELEVATOR 
SO_MARIDIATUBEBROKEN 
SO_RESCUEDANIMALS 
SO_CMISSILEPACKS 
SO_BSMISSILEPACKS 
SO_NFMISSILEPACKS 
SO_WSMISSILEPACKS 
SO_MMISSILEPACKS 
SO_CSMISSILEPACKS 
SO_BSSMISSILEPACKS 
SO_NFSMISSILEPACKS 
SO_WSSMISSILEPACKS 
SO_MSMISSILEPACKS 
SO_CPBOMBPACKS 
SO_BSPBOMBPACKS 
SO_NFPBOMBPACKS 
SO_MPBOMBPACKS 
SO_CETANKS 
SO_BSETANKS 
SO_NFETANKS 
SO_WSETANKS 
SO_METANKS 
SO_BSRTANK 
SO_NFRTANK 
SO_WSRTANK 
SO_MRTANK 
SO_CRDOORS 
SO_BSRDOORS 
SO_NFRDOORS 
SO_WSRDOORS 
SO_MRDOORS 
SO_TRDOORS 
SO_CGDOORS 
SO_BSGDOORS 
SO_NFGDOORS 
SO_WSGDOORS 
SO_MGDOORS 
SO_CYDOORS 
SO_BSYDOORS 
SO_NFYDOORS 
SO_CMDOORS 
SO_BSMDOORS 
SO_NFMDOORS 
SO_WSMDOORS 
SO_MMDOORS 
SO_TMDOORS 
SO_BSEDOOR 
SO_NFEDOOR 
SO_WSEDOOR 
SO_MEDOOR 
SO_TEDOOR 
SO_CMAP 
SO_BSMAP 
SO_NFMAP 
SO_WSMAP 
SO_MMAP 
SO_TMAP 
SO_SAVEAREA 
SO_SAVEPOINT 
SO_GAMEHOURS 
SO_GAMEMINUTES 
SO_SHOTBUTTON 
SO_JUMPBUTTON 
SO_DASHBUTTON 
SO_ITEMCANCELBUTTON 
SO_ITEMSELECTBUTTON 
SO_ANGLEDOWNBUTTON 
SO_ANGLEUPBUTTON 
SO_LANGUAGE 
SO_MOONWALK 
SO_ICONCANCEL 

Definition at line 80 of file SRAMFile.hh.

enum smse::Action
 

semi-typesafe names for Samus' actions

Enumeration values:
ACTION_SHOT 
ACTION_JUMP 
ACTION_DASH 
ACTION_ITEMCANCEL 
ACTION_ITEMSELECT 
ACTION_ANGLEDOWN 
ACTION_ANGLEUP 

Definition at line 148 of file SRAMFile.hh.

enum smse::Area
 

semi-typesafe names for the areas on Zebes

Enumeration values:
AREA_C 
AREA_BS 
AREA_NF 
AREA_WS 
AREA_M 
AREA_T 

Definition at line 154 of file SRAMFile.hh.

enum smse::Boss
 

semi-typesafe names for the bosses

Enumeration values:
BOSS_SILVERTORIZO 
BOSS_SPORESPAWN 
BOSS_KRAID 
BOSS_PHANTOON 
BOSS_BOTWOON 
BOSS_DRAYGON 
BOSS_CROCOMIRE 
BOSS_GOLDENTORIZO 
BOSS_RIDLEY 

Definition at line 159 of file SRAMFile.hh.

enum smse::Button
 

semi-typesafe names for the controller buttons

Enumeration values:
BUTTON_A 
BUTTON_B 
BUTTON_X 
BUTTON_Y 
BUTTON_L 
BUTTON_R 
BUTTON_SELECT 

Definition at line 166 of file SRAMFile.hh.

enum smse::Door
 

names for the doors

Enumeration values:
RD_C_MAP 
RD_C_BOMBS 
RD_C_TELEVATOR 
RD_BS1 
RD_BS_MAP 
RD_BS2 
RD_BS3 
RD_BS4 
RD_BS_RTANK 
RD_BS_SPORESPAWN 
RD_BS5 
RD_BS6 
RD_BS_XRAYSCOPE 
RD_NF1 
RD_NF_HJBOOTS 
RD_NF2 
RD_NF3 
RD_NF_SPEEDBOOSTER 
RD_NF4 
RD_NF_WAVEBEAM 
RD_WS_RTANK 
RD_M1 
RD_M2 
RD_M3 
RD_M_MAP 
RD_M4 
RD_M5 
RD_M6 
RD_T1 
RD_T_MB 
GD_C1 
GD_C_WS 
GD_BS1 
GD_BS_SPORESPAWNEXIT 
GD_BS2 
GD_BS3 
GD_BS4 
GD_BS5 
GD_BS6 
GD_BS7 
GD_BS_SPAZER 
GD_BS8 
GD_NF1 
GD_NF_ICEBEAM 
GD_NF2 
GD_NF3 
GD_NF_SPEEDBOOSTER 
GD_NF4 
GD_WS 
GD_M1 
GD_M2 
GD_M3 
GD_M_DRAYGON 
YD_C1 
YD_C2 
YD_C3 
YD_C4 
YD_C5 
YD_C6 
YD_BS1 
YD_BS2 
YD_BS_XRAYSCOPE 
YD_BS3 
YD_NF_MAP 
YD_NF1 
YD_NF2 
MD_C_BOMBSEXIT 
MD_BS_OLDTRIGHT 
MD_BS_OLDTLEFT 
MD_BS_MAPEXIT 
MD_BS1 
MD_BS2 
MD_BS3 
MD_BS4 
MD_BS5 
MD_BS6 
MD_BS7 
MD_BS8 
MD_BS9 
MD_BS_MINIKRAIDRIGHT 
MD_BS_MINIKRAIDLEFT 
MD_BS_VARIASUIT 
MD_BS_KRAIDEXIT 
MD_NF_CROCOMIREEXIT 
MD_NF_HJBOOTSEXIT 
MD_NF_SCREWATTACK 
MD_NF_RIDLEYEXIT 
MD_NF_RIDLEYLEFT 
MD_NF_GOLDSPACEPIRATES 
MD_WS1 
MD_WS_PHANTOONEXIT 
MD_WS2 
MD_WS3 
MD_WS4 
MD_M_PLASMAEXIT 
MD_M_PLASMA 
MD_M1 
MD_M2 
MD_M_BOTWOONEXIT 
MD_M_DRAYGONEXIT 
MD_M_SPACEJUMP 
MD_T1 
MD_T2 
MD_T3 
MD_T4 
ED_KRAID 
ED_RIDLEY 
ED_PHANTOON 
ED_DRAYGON 
ED_T 

Definition at line 172 of file SRAMFile.hh.

enum smse::Item
 

semi-typesafe names for Samus' equipment

Enumeration values:
ITEM_MORPHINGBALL 
ITEM_BOMBS 
ITEM_SPRINGBALL 
ITEM_HJBOOTS 
ITEM_VARIASUIT 
ITEM_GRAVITYSUIT 
ITEM_SPEEDBOOSTER 
ITEM_SPACEJUMP 
ITEM_SCREWATTACK 
ITEM_CHARGEBEAM 
ITEM_ICEBEAM 
ITEM_WAVEBEAM 
ITEM_SPAZER 
ITEM_PLASMA 
ITEM_GRAPPLINGBEAM 
ITEM_XRAYSCOPE 

Definition at line 245 of file SRAMFile.hh.

enum smse::MiscBit
 

semi-typesafe names for the miscellaneous bits

Enumeration values:
MB_TELEVATOR 
MB_MTUBEBROKEN 
MB_RESCUEDANIMALS 
MB_LANGUAGE 
MB_MOONWALK 
MB_ICONCANCEL 

Definition at line 255 of file SRAMFile.hh.

enum smse::Statue
 

semi-typesafe names for the boss statues

Enumeration values:
STATUE_KRAID 
STATUE_PHANTOON 
STATUE_DRAYGON 
STATUE_RIDLEY 

Definition at line 261 of file SRAMFile.hh.


Generated on Thu Oct 13 02:25:02 2005 for Super Metroid SRAM Editor by  doxygen 1.4.2