On the upside, this design means Mesen can run HDNes' HD packs with very little FPS drop on a quad core machine (e.g Super Mario Bros goes from ~250fps to maybe ~190fps on my machine)Īlso, a lot of features result in small performance losses - e.g: debugger, cheats, unlimited sprites, support for HDNes' HD pack format, etc. Mesen is more or less optimized to run on at least 3 different threads (emulation, frame decoding/filtering, rendering), so running it on any dual-core will result in sub-par performance, especially since I abuse spin-locks due to their low latency - but spin locks only work well so long as you actually have free cores to run them on without slowing down the other thread you are waiting on. Just to give my 2 cents on the Mesen part of things: That was surely a branch-condition killer, but by allowing the CPU to not stall and do other work in parallell made it almost free. That one I remember optimizing to be ~20FPS faster just by re-arranging Language such as Java, C#, Python, I believe you can still influence performance a great deal in the wayįor reference and maybe not surprisingly, the most critical method for performance in the whole Nestopia codeīase I remember was Ppu::renderPixel(). Even if you're developing something in a high-level Hints to the compiler on what to optimize for speed and what to optimize forĪs a programmer, having a knowledge of low level stuff such as branch-prediction, cache-linesĪnd other things helped a lot during development. Using the Intel C++ Compiler and Microsoft Visual Studio at the time, IĪlso fine-tuned many parts of the code through compiler directives to give Me to not needing to repeat myself in code. To let the compiler do as much work for me as possible and allowing Programming, or concept-oriented programming as I'd like to call it, I also made heavy use of (or abused if you will) C++ template style I heavily used Intel Vtune and AMD CodeAnalyst profiler toįind hotspots in the code and also let the compiled IA-32 assembly Real fun and I'm happy to see it payed off.Īs for the various optimizations I did to Nestopia at the time, Nice to hear from you again, hope you are well.ĭoing code optimizations without sacrifizing accuracy can be But MAME 2003 ~ MAME 2010 are not.Thanks Eugene. Users can play original OutRun through MAME core. cannonball core is a non-free OutRun remake.For example, Mesa-devel is required for emulator cores that support 3D graphics.Įach core is compiled to a single *_libretro.so file, which should be installed at /usr/lib64/libretro/ directory ( /usr/lib/libretro/ on 32 bit system). You may need to add some extra build dependencies. Here is a script and generated spec files: ARGS: - (if any, put it in your make command)., we need to cd to this directory before build) MAKEFILE: Makefile (if it is Makefile.libretro, we need to run make -f Makefile.libretro).COMMAND: GENERIC (GENERIC means make, CMAKE means cmake & make). ENABLED: YES (if it is NO, we don't need to package it).BRANCH: master (URL and BRANCH is used in _service file, only git version, no release tags).COREDIR: libretro-nestopia (use it as package name).CORENAME: nestopia (generated binary is nestopia_libretro.so).Nestopia libretro-nestopia master YES GENERIC Makefile libretro Nestopia uses Makefile without much options (explain how the recipe is structured)Įach line of the build recipes is configuration of a core.arm7neonhf (optional, for arm specific compiler options).x86 (optional, for 32bit specific compiler options).The official build script is the best information for packaging cores. So the package name has libretro- prefix. libretro-core-info and libretro-database are related to emulation cores. Retroarch-assets and retroarch-joypad-autoconfig are required even without any cores. Core info: /usr/share/libretro/coreinfoĮvery time you update retroarch package, make sure to update the following packages at the same time:.Joystick auto config: /usr/share/libretro/autoconfig.The patch will change these directories to: This means users have to manually download many things to make it work. The default configuration looks for cores, assets and database in users' home directory. Please check this file for all available parameters and their default values. Many useful features are disabled by default.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |