void main() { int N = toDec(101101001, 2); int M = toDec(10101, 2); printf("\n after setting bits = %d\n", fromDec(setbitsitoj(N, M, 2, 6), 2)); }
int main(int argc, char *argv[]) { /*Check if argc < 5*/ if (argc < 5) { fprintf(stderr, "Not enough arguments passed.\n"); exit(EXIT_FAILURE); } if (argc > 6) { fprintf(stderr, "Too many arguments passed.\n"); exit(EXIT_FAILURE); } char *op = (char *)malloc(strlen(argv[1])); strcpy(op, argv[1]); char *setFirst = (char *)malloc(strlen(argv[2])); strcpy(setFirst, argv[2]); char *setTwo = (char *)malloc(strlen(argv[3])); strcpy(setTwo, argv[3]); char *outForm = (char *)malloc(strlen(argv[4])); strcpy(outForm, argv[4]); char *ans = (char*)malloc(sizeof(char)); int numO, numT, res; numO = 0; numT = 0; res = 0; int negO, negT; negO = 1; negT = 1; /*if (strcmp(op, "+") != 0 || strcmp(op, "-") != 0) { fprintf(stderr, "Invalid operation!\n"); exit(EXIT_FAILURE); }*/ if (setFirst[0] == '-') { negO = -1; char base = setFirst[1]; int val = getBase(base); char *numOne = (char *)malloc(strlen(setFirst)-2); numOne = strncpy(numOne, setFirst+2, strlen(setFirst)); numO = toDec(numOne, val); numO *= negO; } else { char base = setFirst[0]; int val = getBase(base); char *numOne = (char *)malloc(strlen(setFirst)-1); numOne = strncpy(numOne, setFirst+1, strlen(setFirst)); numO = toDec(numOne, val); } if (setTwo[0] == '-') { negT = -1; char base = setTwo[1]; int val = getBase(base); char *numTwo = (char *)malloc(strlen(setTwo)-2); numTwo = strncpy(numTwo, setTwo+2, strlen(setTwo)); numT = toDec(numTwo, val); numT *= negT; } else { char base = setTwo[0]; int val = getBase(base); char *numTwo = (char *)malloc(strlen(setTwo)-1); numTwo = strncpy(numTwo, setTwo+1, strlen(setTwo)); numT = toDec(numTwo, val); } if (strcmp(op,"+") == 0) { res = add(numO,numT); } else if (strcmp(op,"-") == 0) { res = sub(numO,numT); } ans = fromDec(res, (*outForm)); printf("%s\n", ans); return 0; }
int ReadOpts(int argc, char ** argv) { int op = -1; while ((op = getopt_long(argc, argv, "FNO:T:Y:G:I:D:b:c:df:hi:p::s:t:v:", argOptions, NULL)) != -1) { switch (op) { case 0: // long option already processed by getopt_long break; case OPT_CHEAT: // --cheat if (preparedCheats >= MAX_CHEATS) { log("Warning: cannot add more than %d cheats.\n", MAX_CHEATS); break; } { //char* cpy; //cpy = (char *)malloc(1 + strlen(optarg)); //strcpy(cpy, optarg); //preparedCheatCodes[preparedCheats++] = cpy; std::string cpy = optarg; preparedCheatCodes[preparedCheats++] = cpy.c_str(); } break; case OPT_AUTOFIRE: // --autofire autoFireMaxCount = fromDec(optarg); if (autoFireMaxCount < 1) autoFireMaxCount = 1; break; case 'b': useBios = true; if (optarg == NULL) { log("Missing BIOS file name\n"); break; } biosFileNameGBA = strdup(optarg); break; case 'c': { if (optarg == NULL) { log("Missing config file name\n"); break; } FILE *f = fopen(optarg, "r"); if (f == NULL) { log("File not found %s\n", optarg); break; } preferences = NULL; OpenPreferences(optarg); fclose(f); } break; case 'd': debugger = true; break; case 'h': optPrintUsage = 1; break; case 'i': if (optarg == NULL) { log("Missing patch name\n"); break; } if (patchNum >= PATCH_MAX_NUM) { log("Too many patches given at %s (max is %d). Ignoring.\n", optarg, PATCH_MAX_NUM); } else { patchNames[patchNum] = (char *)malloc(1 + strlen(optarg)); strcpy(patchNames[patchNum], optarg); patchNum++; } break; case 'G': dbgMain = remoteStubMain; dbgSignal = remoteStubSignal; dbgOutput = remoteOutput; debugger = true; if (optarg) { char *s = optarg; if (strncmp(s, "tcp:", 4) == 0) { s += 4; int port = atoi(s); remoteSetProtocol(0); remoteSetPort(port); } else if (strcmp(s, "tcp") == 0) { remoteSetProtocol(0); } else if (strcmp(s, "pipe") == 0) { remoteSetProtocol(1); } else { log("Unknown protocol %s\n", s); break; } } else { remoteSetProtocol(0); } break; case 'N': parseDebug = false; break; case 'F': fullScreen = 1; mouseCounter = 120; break; case 'f': if (optarg) { filter = (Filter)atoi(optarg); } else { filter = kStretch2x; } break; case 'I': if (optarg) { ifbType = (IFBFilter)atoi(optarg); } else { ifbType = kIFBNone; } break; case 'p': #ifdef PROFILING if (optarg) { cpuEnableProfiling(atoi(optarg)); } else cpuEnableProfiling(100); #endif break; case 'S': optFlashSize = atoi(optarg); if (optFlashSize < 0 || optFlashSize > 1) optFlashSize = 0; break; case 's': if (optarg) { int a = atoi(optarg); if (a >= 0 && a <= 9) { gbFrameSkip = a; frameSkip = a; } } else { frameSkip = 2; gbFrameSkip = 0; } break; case 't': if (optarg) { int a = atoi(optarg); if (a < 0 || a > 5) a = 0; cpuSaveType = a; } break; case 'v': if (optarg) { systemVerbose = atoi(optarg); } else systemVerbose = 0; break; case '?': optPrintUsage = 1; break; case 'O': if (optarg) { openGL = atoi(optarg); if (openGL < 0 || openGL > 2) openGL = 1; } else openGL = 0; break; case OPT_CAPTURE_FORMAT: // --capture-format if (optarg) { captureFormat = atoi(optarg); } break; case OPT_SHOW_SPEED_TRANSPARENT: // --show-speed-transparent if (optarg) { showSpeedTransparent = atoi(optarg); } break; case OPT_AUTO_FRAME_SKIP: // --auto-frame-skip if (optarg) { autoFrameSkip = atoi(optarg); } break; case OPT_AGB_PRINT: // --agb-print if (optarg) { agbPrint = atoi(optarg); } break; case OPT_RTC_ENABLED: // --rtc-enabled if (optarg) { rtcEnabled = atoi(optarg); } break; case OPT_VIDEO_OPTION: // --video-option if (optarg) { videoOption = atoi(optarg); } break; case OPT_LANGUAGE_OPTION: // --language-option if (optarg) { languageOption = atoi(optarg); } break; case OPT_GB_FRAME_SKIP: // --gb-frame-skip if (optarg) { gbFrameSkip = atoi(optarg); } break; case OPT_FS_ADAPTER: // --fs-adapter if (optarg) { fsAdapter = atoi(optarg); } break; case OPT_FS_WIDTH: // --fs-width if (optarg) { fsWidth = atoi(optarg); } break; case OPT_FS_HEIGHT: // --fs-height if (optarg) { fsHeight = atoi(optarg); } break; case OPT_FS_COLOR_DEPTH: // --fs-color-depth if (optarg) { fsColorDepth = atoi(optarg); } break; case OPT_FS_FREQUENCY: // --fs-frequency if (optarg) { fsFrequency = atoi(optarg); } break; case OPT_WINDOW_POSITION_X: // --window-position-x if (optarg) { windowPositionX = atoi(optarg); } break; case OPT_WINDOW_POSITION_Y: // --window-position-y if (optarg) { windowPositionY = atoi(optarg); } break; case OPT_SOUND_FILTERING: // --sound-filtering if (optarg) { soundFiltering = atoi(optarg); } break; case OPT_GL_FILTER: // --gl-filter if (optarg) { glFilter = atoi(optarg); } break; case OPT_SHOW_SPEED: // --show-speed if (optarg) { showSpeed = atoi(optarg); } break; case OPT_IFB_TYPE: // --ifb-type if (optarg) { ifbType = atoi(optarg); } break; case OPT_GB_EMULATOR_TYPE: // --gb-emulator-type if (optarg) { gbEmulatorType = atoi(optarg); } break; case OPT_THREAD_PRIORITY: // --thread-priority if (optarg) { threadPriority = atoi(optarg); } break; case OPT_GB_PALETTE_OPTION: // --gb-palette-option if (optarg) { gbPaletteOption = atoi(optarg); } break; case OPT_REWIND_TIMER: // --rewind-timer if (optarg) { rewindTimer = atoi(optarg); } break; case OPT_JOYPAD_DEFAULT: // --joypad-default if (optarg) { joypadDefault = atoi(optarg); } break; case OPT_MAX_SCALE: // --max-scale if (optarg) { maxScale = atoi(optarg); } break; case OPT_LINK_TIMEOUT: // --link-timeout if (optarg) { linkTimeout = atoi(optarg); } break; case OPT_LINK_MODE: // --link-mode if (optarg) { linkMode = atoi(optarg); } break; case OPT_LINK_AUTO: // --link-auto if (optarg) { linkAuto = atoi(optarg); } break; case OPT_LINK_HACKS: // --link-hacks if (optarg) { linkHacks = atoi(optarg); } break; case OPT_LINK_NUM_PLAYERS: // --link-num-players if (optarg) { linkNumPlayers = atoi(optarg); } break; case OPT_GDB_PORT: // --gdb-port if (optarg) { gdbPort = atoi(optarg); } break; case OPT_BIOS_FILE_NAME_GB: // --bios-file-name-gb biosFileNameGB = optarg; break; case OPT_BIOS_FILE_NAME_GBA: // --bios-file-name-gba biosFileNameGBA = optarg; break; case OPT_BIOS_FILE_NAME_GBC: // --bios-file-name-gbc biosFileNameGBC = optarg; break; case OPT_AVI_RECORD_DIR: // --avi-record-dir aviRecordDir = optarg; break; case OPT_MOVIE_RECORD_DIR: // --movie-record-dir movieRecordDir = optarg; break; case OPT_SOUND_RECORD_DIR: // --sound-record-dir soundRecordDir = optarg; break; case OPT_SCREEN_SHOT_DIR: // --screen-shot-dir screenShotDir = optarg; break; case OPT_SAVE_DIR: // --save-dir saveDir = optarg; break; case OPT_BATTERY_DIR: // --battery-dir batteryDir = optarg; break; case OPT_ROM_DIR_GBC: // --rom-dir-gbc romDirGBC = optarg; break; case OPT_ROM_DIR_GB: // --rom-dir-gb romDirGB = optarg; break; case OPT_ROM_DIR_GBA: // --rom-dir-gba romDirGBA = optarg; break; case OPT_LINK_HOST_ADDR: // --link-host-addr linkHostAddr = optarg; break; case OPT_CPU_SAVE_TYPE: // --cpu-save-type if (optarg) { cpuSaveType = atoi(optarg); } break; case OPT_OPT_FLASH_SIZE: // --opt-flash-size if (optarg) { optFlashSize = atoi(optarg); } break; case OPT_DOTCODE_FILE_NAME_LOAD: // --dotcode-file-name-load loadDotCodeFile = optarg; break; case OPT_DOTCODE_FILE_NAME_SAVE: // --dotcode-file-name-save saveDotCodeFile = optarg; break; } } return op; }
void LoadConfig() { agbPrint = ReadPrefHex("agbPrint"); autoFireMaxCount = fromDec(ReadPrefString("autoFireMaxCount")); autoFrameSkip = ReadPref("autoFrameSkip", 0); autoLoadMostRecent = ReadPref("autoLoadMostRecent", 0); autoPatch = ReadPref("autoPatch", 1); autoSaveLoadCheatList = ReadPref("autoSaveCheatList", 1); aviRecordDir = ReadPrefString("aviRecordDir"); batteryDir = ReadPrefString("batteryDir"); biosFileNameGB = ReadPrefString("biosFileGB"); biosFileNameGBA = ReadPrefString("biosFileGBA"); biosFileNameGBC = ReadPrefString("biosFileGBC"); captureFormat = ReadPref("captureFormat", 0); cheatsEnabled = ReadPref("cheatsEnabled", 0); cpuDisableSfx = ReadPref("disableSfx", 0); cpuSaveType = ReadPrefHex("saveType"); disableMMX = ReadPref("disableMMX", 0); disableStatusMessages = ReadPrefHex("disableStatus"); filterMT = ReadPref("filterEnableMultiThreading", 0); filter = ReadPref("filter", 0); frameSkip = ReadPref("frameSkip", 0); fsAdapter = ReadPref("fsAdapter", 0); fsColorDepth = ReadPref("fsColorDepth", 32); fsFrequency = ReadPref("fsFrequency", 60); fsHeight = ReadPref("fsHeight", 600); fsWidth = ReadPref("fsWidth", 800); fullScreen = ReadPrefHex("fullScreen"); fullScreenStretch = ReadPref("stretch", 0); gbBorderAutomatic = ReadPref("borderAutomatic", 0); gbBorderOn = ReadPrefHex("borderOn"); gbColorOption = ReadPref("colorOption", 0); gbEmulatorType = ReadPref("emulatorType", 1); gbFrameSkip = ReadPref("gbFrameSkip", 0); gbPaletteOption = ReadPref("gbPaletteOption", 0); gbSoundSetDeclicking(ReadPref("gbSoundDeclicking", 1)); gb_effects_config.echo = (float)ReadPref("gbSoundEffectsEcho", 20) / 100.0f; gb_effects_config.enabled = ReadPref("gbSoundEffectsEnabled", 0); gb_effects_config.stereo = (float)ReadPref("gbSoundEffectsStereo", 15) / 100.0f; gb_effects_config.surround = ReadPref("gbSoundEffectsSurround", 0); gdbBreakOnLoad = ReadPref("gdbBreakOnLoad", 0); gdbPort = ReadPref("gdbPort", 55555); glFilter = ReadPref("glFilter", 1); ifbType = ReadPref("ifbType", 0); joypadDefault = ReadPref("joypadDefault", 0); languageOption = ReadPref("language", 1); linkAuto = ReadPref("LinkAuto", 1); linkHacks = ReadPref("LinkHacks", 0); linkHostAddr = ReadPrefString("LinkHostAddr", "localhost"); linkMode = ReadPref("LinkMode", 0); // LINK_DISCONNECTED = 0 linkNumPlayers = ReadPref("LinkNumPlayers", 2); linkTimeout = ReadPref("LinkTimeout", 1); loadDotCodeFile = ReadPrefString("loadDotCodeFile"); maxScale = ReadPref("maxScale", 0); movieRecordDir = ReadPrefString("movieRecordDir"); openGL = ReadPrefHex("openGL"); optFlashSize = ReadPrefHex("flashSize"); pauseWhenInactive = ReadPref("pauseWhenInactive", 1); recentFreeze = ReadPref("recentFreeze", 0); rewindTimer = ReadPref("rewindTimer", 0); romDirGB = ReadPrefString("romDirGB"); romDirGBA = ReadPrefString("romDirGBA"); romDirGBC = ReadPrefString("romDirGBC"); rtcEnabled = ReadPref("rtcEnabled", 0); saveDir = ReadPrefString("saveDir"); saveDotCodeFile = ReadPrefString("saveDotCodeFile"); screenShotDir = ReadPrefString("screenShotDir"); showSpeed = ReadPref("showSpeed", 0); showSpeedTransparent = ReadPref("showSpeedTransparent", 1); skipBios = ReadPref("skipBios", 0); skipSaveGameBattery = ReadPref("skipSaveGameBattery", 0); skipSaveGameCheats = ReadPref("skipSaveGameCheats", 0); soundFiltering = (float)ReadPref("gbaSoundFiltering", 50) / 100.0f; soundInterpolation = ReadPref("gbaSoundInterpolation", 1); soundRecordDir = ReadPrefString("soundRecordDir"); threadPriority = ReadPref("priority", 2); throttle = ReadPref("throttle", 100); tripleBuffering = ReadPref("tripleBuffering", 0); useBios = ReadPrefHex("useBiosGBA"); useBiosFileGB = ReadPref("useBiosGB", 0); useBiosFileGBA = ReadPref("useBiosGBA", 0); useBiosFileGBC = ReadPref("useBiosGBC", 0); videoOption = ReadPref("video", 2); // VIDEO_3X = 2 vsync = ReadPref("vsync", false); windowPositionX = ReadPref("windowX", 0); windowPositionY = ReadPref("windowY", 0); winFlashSize = ReadPref("flashSize", 0x10000); winGbBorderOn = ReadPref("borderOn", 0); winGbPrinterEnabled = ReadPref("gbPrinter", 0); int soundQuality = (ReadPrefHex("soundQuality")); switch (soundQuality) { case 1: case 2: case 4: break; default: log("Unknown sound quality %d. Defaulting to 22Khz\n", soundQuality); soundQuality = 2; break; } soundSetSampleRate(44100 / soundQuality); int volume = ReadPref("soundVolume", 100); float volume_percent = volume / 100.0f; if (volume_percent < 0.0 || volume_percent > SOUND_MAX_VOLUME) volume_percent = 1.0; soundSetVolume(volume_percent); soundSetEnable((ReadPrefHex("soundEnable", 0x30f)) & 0x30f); if ((ReadPrefHex("soundStereo"))) { gb_effects_config.enabled = true; } if ((ReadPrefHex("soundEcho"))) { gb_effects_config.enabled = true; } if ((ReadPrefHex("soundSurround"))) { gb_effects_config.surround = true; gb_effects_config.enabled = true; } if (optFlashSize == 0) flashSetSize(0x10000); else flashSetSize(0x20000); rtcEnable(rtcEnabled ? true : false); agbPrintEnable(agbPrint ? true : false); for (int i = 0; i < 24;) { systemGbPalette[i++] = (0x1f) | (0x1f << 5) | (0x1f << 10); systemGbPalette[i++] = (0x15) | (0x15 << 5) | (0x15 << 10); systemGbPalette[i++] = (0x0c) | (0x0c << 5) | (0x0c << 10); systemGbPalette[i++] = 0; } systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; optPrintUsage = 0; // TODO //int s = ReadPref("mapViewStretch", 0); //m_size = ReadPref("memViewerDataSize", 0); //m_stretch = ReadPref("GBOamViewStretch", 0); //m_stretch = ReadPref("tileViewStretch", 0); //numberType = ReadPref("cheatsNumberType", 2); //numberType = ReadPref("gbCheatsNumberType", 2); //restoreValues = ReadPref("cheatsRestore", 0) ? //scale = ReadPref("printerScale", 0); //searchType = ReadPref("cheatsSearchType", SEARCH_EQ); //searchType = ReadPref("gbCheatsSearchType", //selectedFilter = ReadPref(("selectedFilter"), 0); //sizeType = ReadPref("cheatsSizeType", 0); //sizeType = ReadPref("gbCheatsSizeType", 0); //updateValues = ReadPref("cheatsUpdate", 0); //updateValues = ReadPref("gbCheatsUpdate", 0); //valueType = ReadPref("cheatsValueType", 0); //valueType = ReadPref("gbCheatsValueType", 0); ValidateConfig(); }