Dr. Mario 64 Password Tool Version 1.1
A command-line tool written in C++ that allows to generate and decode the passwords of Dr. Mario 64.
Loading...
Searching...
No Matches
Constants.h
Go to the documentation of this file.
1// Dr. Mario 64 Password Tool
2// Copyright (C) 2020-present WaluigiBSOD (waluigibsod.github.io)
3//
4// This file is part of Dr. Mario 64 Password Tool.
5//
6// Dr. Mario 64 Password Tool is free software: you can redistribute it and/or modify
7// it under the terms of the GNU General Public License as published by
8// the Free Software Foundation, either version 3 of the License, or
9// (at your option) any later version.
10//
11// Dr. Mario 64 Password Tool is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15//
16// You should have received a copy of the GNU General Public License
17// along with this program. If not, see <https://www.gnu.org/licenses/>.
18
25
26#pragma once
27
28#include <string>
29
30using namespace std;
31
32#define ARRAY_SIZE(Source) (sizeof(Source) > 0 ? sizeof(Source) / sizeof(Source[0]) : 0)
33
34extern const string ProgramVersion;
35
36extern const unsigned char StringCenterLeftSpacing;
37extern const unsigned char StringCenterWidth;
38
39// Game Mode
40
41extern const unsigned char GameModeClassic;
42extern const unsigned char GameModeScoreAttack;
43extern const unsigned char GameModeMarathon;
44
45extern const unsigned char GameModes[3];
46
47// Game Level
48
49extern const unsigned char GameLevelEasy;
50extern const unsigned char GameLevelNormal;
51extern const unsigned char GameLevelHard;
52
53extern const unsigned char GameLevel[3];
54
55// Virus Level
56
57extern const unsigned char VirusLevelMaximum;
58
59// Speed
60
61extern const unsigned char SpeedLow;
62extern const unsigned char SpeedMedium;
63extern const unsigned char SpeedHigh;
64
65extern const unsigned char GameSpeed[3];
66
67// Score
68
69extern const unsigned int ScoreMaximum;
70
71// Time
72
73extern const unsigned short TimeMaximum;
74
75// Frame Count (modulo 1024)
76
77extern const unsigned int FrameCountMaximum;
78
79// Password
80
81extern const string PasswordCharacters;
82
83extern const unsigned char PasswordLength;
84
85// Password (error codes)
86
87extern const unsigned char PasswordOK;
88extern const unsigned char PasswordInvalidLength;
89extern const unsigned char PasswordInvalidCharacters;
90extern const unsigned char PasswordInvalidChecksum;
91extern const unsigned char PasswordInvalidClassicLevel;
92extern const unsigned char PasswordInvalidNonClassicLevel;
93extern const unsigned char PasswordInvalidScore;
94extern const unsigned char PasswordInvalidTime;
95extern const unsigned char PasswordInvalidPlayerName;
96
97// Arguments (error codes)
98
99extern const unsigned char ArgumentInvalidGameMode;
100extern const unsigned char ArgumentInvalidLevel;
101extern const unsigned char ArgumentInvalidSpeed;
102extern const unsigned char ArgumentInvalidScore;
103extern const unsigned char ArgumentInvalidTime;
104extern const unsigned char ArgumentInvalidPlayerName;
105extern const unsigned char ArgumentInvalidFrameCount;
106
107// Player Name
108
109extern const string AlphabeticNumericASCII;
110
111extern const unsigned char SpecialCharacterSpace;
112extern const unsigned char SpecialCharacterTilde;
113extern const unsigned char SpecialCharacterSlashSmall;
114extern const unsigned char SpecialCharacterCenteredDot;
115extern const unsigned char SpecialCharacterDot;
116extern const unsigned char SpecialCharacterQuestionMark;
117extern const unsigned char SpecialCharacterHeart;
118extern const unsigned char SpecialCharacterStar;
119extern const unsigned char SpecialCharacterCircle;
120extern const unsigned char SpecialCharacterMarkX;
121extern const unsigned char SpecialCharacterSlashBig;
122extern const unsigned char SpecialCharacterColon;
123extern const unsigned char SpecialCharacterPercentual;
124extern const unsigned char SpecialCharacterAccent;
125extern const unsigned char SpecialCharacterAmpersand;
126extern const unsigned char SpecialCharacterDotAlternate;
127
128extern const char SpecialToASCIICharactersTable[16];
129
130extern const unsigned char InternalToASCIICharactersTable[78];
131
132extern const unsigned char ConversionInternalToAsciiError;
133extern const unsigned char ConversionAsciiToInternalError;
134extern const string ConversionInternalToConversationalError;
135
136// XOR masks
137
138extern const unsigned int TableMaskPasswordChunkX[4];
139extern const unsigned int TableMaskPasswordChunkY[4];
140extern const unsigned int TableMaskPasswordChunkZ[4];
141
142// XOR masks for additional entropy of the password
143
144extern const unsigned int TableMaskFrameCountX[32];
145extern const unsigned int TableMaskFrameCountY[32];