![]() In other news, I kind of realized that the new methods I was working on were sort of drifting away from my goal of an accurate DMG shader and more towards an idealized Gameboy shader. I noticed the issue while working on the shader file here (it’s just outputting debug stuff so the image isn’t going to make a lot of sense anyways): Both seem to report the correct numbers with integer scaling disabled (1200, 1080). IN.output_size reports this value as (1920, 1080) under the conditions listed above, whereas under D3D it reports it as (1120, 1008). ![]() For example, with integer scaling enabled, a Gameboy game running fullscreen on a 1920x1080 monitor outputs an 1120x1008 image (7 times the size of the video input). It’s incorrectly reporting the size of the entire display window rather than just the output size when running in OpenGL with integer scaling enabled and scale_type set to viewport at 1x scale (haven’t really tested other scale_types and scales). I think I found an issue with with uniform IN.output_size while playing around with borders. Credit goes to the guys on emulation general who tested my changes out line by line (and variable by variable in some cases) to track down the issues. It’s more of a really shoddy patch job than a fix, but it should behave identically to the one linked in the OP (hopefully). Make sure you download the version linked in this post if you’re using a Radeon. –edit4- Shader should be working with AMD cards now. ![]() The shader will actually run on Radeon cards now, but the dot matrix overlay will not be properly applied. Working on a fix but it’s going to take a little time. –edit2- Yeah, it definitely won’t work with Radeon cards currently because the arbfp1 profile doesn’t support some of the Cg standard library functions I used. –edit- Still getting reports of errors with Radeon cards not supporting Cg’s partial derivative functions. I don’t have any alternate rigs to test this on, so I still can’t guarantee it’ll work with all GPUs. but it will look awful so I would recommend sticking with OpenGL for now. Going to work on a more elegant solution that still retains the backwards compatibility. Try this if the first version still doesn’t work for you after following the directions. –edit3- Updated with an image of the most recent version at default settingsĭid a quick hack job to fix the compatibility issue for now ( ). Here’s a shot showing off some of the shader’s features: I’m currently working on a more portable solution. If you’re following the instructions and it’s not working this is most likely the cause. They seem to be the same features preventing the shader from running in D3D. –edit- From some of the feedback I’ve received it seems that the shader is using a couple features not supported by some GPUs. If anyone has any suggestions for features or improvements, I’m always open to ideas. This is my first Cg project and essentially my first non-trivial shader project, so if anything in the source looks weird, well, it probably is. The image quality is still a long ways off from my goal - the grid effect especially still needs a lot of work. The intent is that eventually all these features will be used to generate an “authentic” looking simulation of the classic Gameboy, but they can also be defined by the user to allow whatever color palette, background, and other settings they prefer. It currently includes functionality for a user defined color palette, motion blur, textured backgrounds, drop shadows, and a matrix effect overlay softened by color and alpha blending with neighboring pixels. Basically, I’m working on a shader that will hopefully simulate an actual classic dot matrix Gameboy screen to whatever extent it’s possible on a LCD monitor (eventually). Ha, didn’t expect anyone to post this here since I’ve only discussed the project on /vg/. Oh, and the included backgrounds are pretty lame, but I haven’t been able to find a decent image yet. cg shader files found in the /shader_files/ directory in notepad and play around with the variables for those if you want. I’ve also toned down a few of the effects like motion blur and shadows for this release, but you can open up the. I’m currently working on a couple new gimmicky solutions that might do the trick. If you need one, you can get an older version of Gambatte here: ![]() Additionally, you’ll need a Gameboy emulation core for RetroArch which outputs grayscale video (ie it doesn’t emulate GBC’s automatic colorization of classic Gameboy games). Make sure you run it in OpenGL mode with integer scaling enabled and auto aspect ratio. Alright, I got the Gameboy shader into decent enough shape that people should be able to use it without too many problems. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |