| 140 | HWND hHeadEditor = NULL; |
| 141 | |
| 142 | bool LoadHeader(HWND parent, iNES_HEADER* header) |
| 143 | { |
| 144 | int error = 0; |
| 145 | enum errors { |
| 146 | OK, |
| 147 | OPEN_FAILED, |
| 148 | INVALID_HEADER, |
| 149 | FDS_HEADER, |
| 150 | UNIF_HEADER, |
| 151 | NSF_HEADER//, |
| 152 | // NSFE_HEADER, |
| 153 | // NSF2_HEADER |
| 154 | }; |
| 155 | |
| 156 | FCEUFILE* fp = FCEU_fopen(LoadedRomFName, NULL, "rb", NULL); |
| 157 | if (!GameInfo) |
| 158 | strcpy(LoadedRomFName, fp->fullFilename.c_str()); |
| 159 | |
| 160 | if (fp) |
| 161 | { |
| 162 | if (FCEU_fread(header, 1, sizeof(iNES_HEADER), fp) == sizeof(iNES_HEADER) && !memcmp(header, "NES\x1A", 4)) |
| 163 | header->cleanup(); |
| 164 | else if (!memcmp(header, "FDS\x1A", 4)) |
| 165 | error = errors::FDS_HEADER; |
| 166 | else if (!memcmp(header, "UNIF", 4)) |
| 167 | error = errors::UNIF_HEADER; |
| 168 | else if (!memcmp(header, "NESM", 4)) |
| 169 | error = errors::NSF_HEADER; |
| 170 | /* else if (!memcmp(header, "NSFE", 4)) |
| 171 | error = errors::NSFE_HEADER; |
| 172 | else if (!memcmp(header, "NESM\2", 4)) |
| 173 | error = errors::NSF2_HEADER; |
| 174 | */ else |
| 175 | error = errors::INVALID_HEADER; |
| 176 | FCEU_fclose(fp); |
| 177 | } |
| 178 | else |
| 179 | error = errors::OPEN_FAILED; |
| 180 | |
| 181 | if (error) |
| 182 | { |
| 183 | switch (error) |
| 184 | { |
| 185 | case errors::OPEN_FAILED: |
| 186 | { |
| 187 | char buf[1024]; |
| 188 | sprintf(buf, "Error opening %s!", LoadedRomFName); |
| 189 | MessageBox(parent, buf, "NES Header Editor", MB_OK | MB_ICONERROR); |
| 190 | break; |
| 191 | } |
| 192 | case errors::INVALID_HEADER: |
| 193 | MessageBox(parent, "Invalid NES header.", "NES Header Editor", MB_OK | MB_ICONERROR); |
| 194 | break; |
| 195 | case errors::FDS_HEADER: |
| 196 | MessageBox(parent, "Editing header of an FDS file is not supported.", "NES Header Editor", MB_OK | MB_ICONERROR); |
| 197 | break; |
| 198 | case errors::UNIF_HEADER: |
| 199 | MessageBox(parent, "Editing header of a UNIF file is not supported.", "NES Header Editor", MB_OK | MB_ICONERROR); |
no test coverage detected