{"id":19511675,"url":"https://github.com/thecodetherapy/mednafen","last_synced_at":"2026-05-16T10:31:06.591Z","repository":{"id":149947284,"uuid":"323577225","full_name":"TheCodeTherapy/mednafen","owner":"TheCodeTherapy","description":"An OpenGL and SDL multi-system free software wrapper that bundles various original and third-party emulation cores into a single package, and is driven by command-line input.","archived":false,"fork":false,"pushed_at":"2020-12-22T09:23:28.000Z","size":5642,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T23:15:14.270Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheCodeTherapy.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-22T09:17:30.000Z","updated_at":"2020-12-22T09:23:37.000Z","dependencies_parsed_at":"2023-08-21T19:00:27.117Z","dependency_job_id":null,"html_url":"https://github.com/TheCodeTherapy/mednafen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TheCodeTherapy/mednafen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTherapy%2Fmednafen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTherapy%2Fmednafen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTherapy%2Fmednafen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTherapy%2Fmednafen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheCodeTherapy","download_url":"https://codeload.github.com/TheCodeTherapy/mednafen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodeTherapy%2Fmednafen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33098779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T23:22:13.779Z","updated_at":"2026-05-16T10:31:06.539Z","avatar_url":"https://github.com/TheCodeTherapy.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"------------------\nCompilation Notes:\n------------------\n\tgcc or LLVM clang is required for compiling Mednafen.  Intel's C compiler may work, but is untested.\n\tProbably doesn't need to be said, but the compilers optionally specified via CC and CXX *must* be the same version.\n\n\tclang: 3.5.0 or newer is required, though gcc 4.9.x is preferable for performance reasons.\n\n\tgcc: 4.8(4.8.4+), or 4.9(4.9.2+) or newer is required.  gcc 4.9 is recommended; gcc 5.x and gcc 6.x tend to produce\n\tslower executables, at least with Mednafen on x86_64.\n\n\tReportedly, passing:\t--build=x86_64-apple-darwin`uname -r`\n\tto the configure script is necessary for building on Mac OS X to work properly.\n\n\tCompiling at -O3 or higher, or with other custom optimization flags, is discouraged.\n\n\n---------------------------------------------\nSome notes(and reminders) on the source code:\n---------------------------------------------\n\tCheck \"mednafen/src/types.h\" for standard C and C++ library header includes, and avoid #include'ing the same files redundantly elsewhere.\n\n\tAvoid %= in save state load variable sanitizing code unless the variable is unsigned.\n\n\tmalloc(), realloc(), calloc()'ing 0 bytes of memory may return a NULL pointer.\n\n\tmemcpy()/memmove()/etc. with NULL pointers is undefined and bad even when length is 0.\n\n\tCareful to not do something like: void somefunc(int something[16]); [...] sizeof(something)\n\n\tTry to avoid writing new code that violates strict overflow(even though we compile with -fwrapv), especially be mindful\n\tof stuff like what's described at http://kqueue.org/blog/2013/09/17/cltq/\n\n\tOrder of operations != Operator precedence.  Remember sequence point rules, and don't do stuff like:\n\t\tvalue = FuncWithSideEffects() | (FuncWithSideEffects() \u003c\u003c 8);\t// BAD BAD\n\tSee: http://en.cppreference.com/w/cpp/language/eval_order\n\n\tAvoid writing new code that shifts left signed integers or negative values to avoid technically undefined behavior; use\n\tugly typecasting, or multiply by powers of 2 instead(remotely modern compilers can optimize it to a shift internally).\n\n\tVanishing temporaries: https://gcc.gnu.org/onlinedocs/gcc/Temporaries.html#Temporaries\n\n\tDo not place a period before the field width for \"s\" and \"[\" conversion specifiers in *scanf() format strings; perhaps a bad\n\thabit picked up long ago from working with a buggy libc or trio?\n\n\tAvoid compiling different C++ files with different compiler flags in regards to instruction set used(like -mmmx, -msse, -mfpmath, -march),\n\tor else there may be (template-)function ODR violations that could cause compatibility problems.\n\n\tGPLv3-incompatible code:\n\t\tWonderSwan emulation code from Cygne.\n\t\tQuickLZ(old version used)\n\n\tDon't do greater-than and less-than comparisons between pointers unless they're pointers to members of the same array/struct/etc.\n\n\tAvoid using a pointer into a nested array of a multidimensional array to access elements of the multidimensional array that lie outside of that specific\n\tnested array, as such behavior is probably undefined.\n\n\tPointer provenance, DR260.\n\n\tDon't create temporarily-invalid pointers via careless pointer arithmetic; restructure the expressions if possible, or utilize uintptr_t instead.\n\n\tx86_64 inline assembly, stack red zone.\n\n\thttps://gcc.gnu.org/onlinedocs/gccint/Memory-model.html#Memory-model\n\n\tDon't use memcmp() on class/struct objects unless they're initialized with memset() and copied around with only memcpy()(or equivalent).\n\n\tDon't rely on malloc(), realloc(), and calloc() setting errno to ENOMEM on a memory allocation error.\n\n\n---------------------------------------------\nCode contributions:\n---------------------------------------------\n\tTo keep things simpler for commercial licensing, any patches or new code offered for emulation modules \"apple2\", \"psx\", \"snes_faust\", and \"ss\",\n\talong with contributions to core Mednafen functionality with code that is not self-contained(e.g. support for a new CD image format), will be ignored.\n\tDistributing a separate patch set or an outright fork(with branding that clearly conveys the forkiness) is recommended.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodetherapy%2Fmednafen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodetherapy%2Fmednafen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodetherapy%2Fmednafen/lists"}