| 686 | } |
| 687 | |
| 688 | void SetHeaderData(HWND hwnd, iNES_HEADER* header) { |
| 689 | |
| 690 | // Temporary buffers |
| 691 | char buf[256]; |
| 692 | |
| 693 | bool ines20 = (header->ROM_type2 & 0xC) == 8; |
| 694 | bool unofficial = false; |
| 695 | |
| 696 | // Check iNES 2.0 |
| 697 | CheckRadioButton(hwnd, IDC_RADIO_VERSION_STANDARD, IDC_RADIO_VERSION_INES20, ines20 ? IDC_RADIO_VERSION_INES20 : IDC_RADIO_VERSION_STANDARD); |
| 698 | |
| 699 | // Mapper# |
| 700 | int mapper = header->ROM_type >> 4 | header->ROM_type2 & 0xF0; |
| 701 | if (ines20) |
| 702 | mapper |= (header->ROM_type3 & 0x0F) << 8; |
| 703 | sprintf(buf, "%d ", mapper); |
| 704 | if (SendDlgItemMessage(hwnd, IDC_MAPPER_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) |
| 705 | SetDlgItemText(hwnd, IDC_MAPPER_COMBO, buf); |
| 706 | |
| 707 | // Sub Mapper |
| 708 | sprintf(buf, "%d", ines20 ? header->ROM_type3 >> 4 : 0); |
| 709 | SetDlgItemText(hwnd, IDC_SUBMAPPER_EDIT, buf); |
| 710 | |
| 711 | // PRG ROM |
| 712 | strcpy(buf, "0B"); |
| 713 | int prg_rom = header->ROM_size; |
| 714 | if (ines20) { |
| 715 | if ((header->Upper_ROM_VROM_size & 0xF) == 0xF) |
| 716 | prg_rom = pow(2, header->ROM_size >> 2) * ((header->ROM_size & 3) * 2 + 1); |
| 717 | else { |
| 718 | prg_rom |= (header->Upper_ROM_VROM_size & 0xF) << 8; |
| 719 | prg_rom *= 1024 * 16; |
| 720 | } |
| 721 | } |
| 722 | else |
| 723 | prg_rom *= 1024 * 16; |
| 724 | |
| 725 | if (prg_rom < 1024 || prg_rom % 1024 != 0) |
| 726 | sprintf(buf, "%dB", prg_rom); |
| 727 | else |
| 728 | sprintf(buf, "%dKB", prg_rom / 1024); |
| 729 | |
| 730 | if (SendDlgItemMessage(hwnd, IDC_PRGROM_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) |
| 731 | SetDlgItemText(hwnd, IDC_PRGROM_COMBO, buf); |
| 732 | |
| 733 | // PRG RAM |
| 734 | strcpy(buf, "0B"); |
| 735 | if (ines20) |
| 736 | { |
| 737 | int shift = header->RAM_size & 0xF; |
| 738 | if (shift) |
| 739 | { |
| 740 | int prg_ram = 64 << shift; |
| 741 | if (prg_ram >= 1024) |
| 742 | sprintf(buf, "%dKB", prg_ram / 1024); |
| 743 | else sprintf(buf, "%dB", prg_ram); |
| 744 | } |
| 745 |
no test coverage detected