GLideN64 graphics plugin
Hey, everyone, I am Sergey Lipskiy. Fans of game console emulation know me as “Gonetz”, the main developer of “Glide64”, an open-source graphics plugin for N64 emulators. The Glide64 project was created in 2001 and was initially designed for exclusive use on 3dfx graphics hardware through its proprietary graphics API “Glide3X”, thus the plugin’s name. It was not until later when it got OpenGL support and became available to all PC users. I worked on that project for 10 years. The plugin became very popular thanks to its high compatibility and good support of high-resolution textures. I released the final official version in 2012, but thanks to its open-source nature the project is still not dead. It is included as main or secondary graphics plugin in distributions of many N64 emulators. Thus, if you are familiar with N64 emulation, you should know about Glide64’s capabilities.
The emulation level achieved by Glide64 is very high, but still far from complete. I could not push it forward due to primordial limitations of its architecture. In 2013 I started a new graphics plugin project. The goal of that experimental project is to convert Glide64 features using the power of modern OpenGL and to support features which were impossible to emulate before. The project has no intersection with Glide64 by source code, but it is not made from scratch either. Old open source OpenGL graphics plugin named “glN64” designed by developer with the nickname of “Orkin” was chosen as the basis for my new project. I named the project “GLideN64” to underline its origin and to emphasize the spiritual link with my previous project. Please visit my blog http://gliden64.blogspot.ru/
dedicated to the project. Here you will find technical details as well as screenshots and videos made with this new plugin.
The GLideN64 project started as a hobby. I spent my free time on it and achieved results unreachable with other similar plugins. However, the project remains in alpha stage, unusable for end users. To bring it to the new level I need to spend much more time on it. I call you to support me and fund several months of full-time work on this project. The project aims to provide to the public free of charge the most advanced N64 graphics plugin, with the full source code available under GPL. This is purely a non-commercial, non-profit project. This crowdfunding will just allow me to spend the time to finish it.
GLideN64 is currently compatible with all emulators which support Zilmar’s plugins specification, that is present in all top N64 emulators. GLideN64 is also compatible with Mupen64Plus 2.0, which has its own plugin specification. Supported OSes are: MS Windows 7-8, Linux 32 and 64 bit. System requirements are: graphics card with support of OpenGL 4.2 or better. GLideN64 is also being ported to the Android OS, however the Android version is less functional. System requirements for Android: OS version 4.0 or above, OpenGL ES 2.0 support, fast CPU. The demo video shows desktop version of the plugin in action.
As I said, the plugin is in alpha stage and is inappropriate for public release. In this section I will show you some high-res screenshots, so you will be able to estimate its potential.
“Mario Tennis”. A lot of frame buffer effects are used here, e.g. dynamic shadows for all characters, score board, ball’s trace etc.
“Mario Tennis”. Beautiful replay with motion blur effect.
“Beetle Adventure Racing!” Slide film effect.
“Beetle Adventure Racing!”. Depth buffer based fog implemented using capabilities of modern hardware. Environmental reflection on the car: frame buffer effect.
“The Legend of Zelda, Majora's Mask” Correct emulation of Lens Of Truth, with snowflakes not cut outside the lens. Frame buffer and depth buffer emulation.
“Perfect Dark”. Frame buffer effect: CamSpy.
“Extreme-G”. Complex depth compare mode emulated.
“Banjo-Tooie” Frame buffer effects: dynamic shadow, reflection in the bubble.
Plan for Project Completion
If you love emulation you know how that an ideal graphics plugin must be:
- Support all games
- Provide perfect picture
- Have little-to-none settings
- Free to use
The goal is to bring GLideN64 as close to ideal as possible. I see the project ready for public release if the following conditions are met:
- It works as stable as the emulators which use it
- It has no performance problems
- It has a functional and easy-to-use user interface
- It has a compatibility level similar to the top N64 Graphics plugins
- It supports texture enhancement mechanisms, like SAE
- It supports load of high-resolution textures
- It supports Windows and Linux
- Plugin’s unique features are well polished
- Source code is clean, free and open-source, licensed under the GPL
All of this needs to be implemented. Due to my experience in graphics plugins development I can quite precisely estimate the amount of time necessary to fulfill the requirements listed above. Three months of full-time (8-10 hours/day) work is the bare minimum. Also, I will not work alone. Another member of the project is Olivier Thacker
. You may remember him as the main beta tester in Glide64 project. Olivier will play a role of beta test coordinator on a voluntary basis.
The basic time-line for this process:
- Fix stability issues
- Implement missing functionality to achieve compatibility equivalent to Glide64. glN64 was released 10 years ago and even then it was not the most compatible plugin. Lots of work here.
- Add texture enhancement and hi-res texture load.
- I plan to rewrite the GlideHQ submodule from the Glide64 project to add OpenGL texture formats.
- Lots of work need to be done in the plugin to support all the features of GlideHQ.
- Portable user interface
- Support for game specific profiles
- Establish a bug-list
- Rearrange support forum
- Bug fixes
- Writing docs
- Establish a GitHub repository for the source code.
- Go live!
Everything mentioned above can be accomplished if necessary fund is collected. What if more is collected? In this case I will be able to continue the project with full efforts:
Risks & Challenges
- If 8,000 USD are collected I will be able to complete the Android port. The current Android build works quite slow and has many glitches which desktop builds have not. Android debugging is a tedious process, plus some investment in Android devices with different graphics chips may be necessary.
- 10,000+ USD will allow me to spend time on experimental and user-demanded features like port to Apple Mac OS X, advanced Anti-aliasing, widescreen hack, rendering in native resolution and other nice features which I never had enough time to implement.
Of course, there is always the possibility for snags with any creative project. Things can go wrong, take longer to complete than expected, etc. But I promise that even if I get out of schedule and funds run out before I complete everything I planned the plugin will be released in functional state, because I will focus on the critical for release features first. The project will be released with sources and I will continue to work on it as on my favorite hobby.