gameblabla/mednafen-gcw
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
------------------ Compilation Notes: ------------------ gcc or LLVM clang is required for compiling Mednafen. Intel's C compiler may work, but is untested. Probably doesn't need to be said, but the compilers optionally specified via CC and CXX *must* be the same version. clang: 3.5.0 or newer is required, though gcc 4.9.x is preferable for performance reasons. gcc: 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 slower executables, at least with Mednafen on x86_64. Reportedly, passing: --build=x86_64-apple-darwin`uname -r` to the configure script is necessary for building on Mac OS X to work properly. --------------------------------------------- Some notes(and reminders) on the source code: --------------------------------------------- The following system headers are included by including "mednafen.h", and always will be, so don't include them manually. assert.h (included in "types.h") inttypes.h (included in "types.h") stdlib.h stdio.h string.h Avoid %= in save state load variable sanitizing code unless the variable is unsigned. malloc(), realloc(), calloc()'ing 0 bytes of memory may return a NULL pointer. memcpy()/memmove()/etc. with NULL pointers is undefined and bad even when length is 0. Careful to not do something like: void somefunc(int something[16]); [...] sizeof(something) Try to avoid writing new code that violates strict overflow(even though we compile with -fwrapv), especially be mindful of stuff like what's described at http://kqueue.org/blog/2013/09/17/cltq/ Order of operations != Operator precedence. Remember sequence point rules, and don't do stuff like: value = FuncWithSideEffects() | (FuncWithSideEffects() << 8); // BAD BAD See: http://en.cppreference.com/w/cpp/language/eval_order Avoid writing new code that shifts left signed integers or negative values to avoid technically undefined behavior; use ugly typecasting, or multiply by powers of 2 instead(remotely modern compilers can optimize it to a shift internally). Vanishing temporaries: https://gcc.gnu.org/onlinedocs/gcc/Temporaries.html#Temporaries Do not place a period before the field width for "s" and "[" conversion specifiers in *scanf() format strings; perhaps a bad habit picked up long ago from working with a buggy libc or trio? Avoid compiling different C++ files with different compiler flags in regards to instruction set used(like -mmmx, -msse, -mfpmath, -march), or else there may be (template-)function ODR violations that could cause compatibility problems.
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published