{"action":"created","issue":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2003","labels_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2003/labels{/name}","comments_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2003/comments","events_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2003/events","html_url":"https://github.com/dolphin-emu/dolphin/pull/2003","id":56181508,"number":2003,"title":"Add Object Removal Code GUI","user":{"login":"cegli2","id":10801344,"avatar_url":"https://avatars.githubusercontent.com/u/10801344?v=3","gravatar_id":"","url":"https://api.github.com/users/cegli2","html_url":"https://github.com/cegli2","followers_url":"https://api.github.com/users/cegli2/followers","following_url":"https://api.github.com/users/cegli2/following{/other_user}","gists_url":"https://api.github.com/users/cegli2/gists{/gist_id}","starred_url":"https://api.github.com/users/cegli2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cegli2/subscriptions","organizations_url":"https://api.github.com/users/cegli2/orgs","repos_url":"https://api.github.com/users/cegli2/repos","events_url":"https://api.github.com/users/cegli2/events{/privacy}","received_events_url":"https://api.github.com/users/cegli2/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":19,"created_at":"2015-02-01T22:36:42Z","updated_at":"2015-02-02T07:25:40Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/pulls/2003","html_url":"https://github.com/dolphin-emu/dolphin/pull/2003","diff_url":"https://github.com/dolphin-emu/dolphin/pull/2003.diff","patch_url":"https://github.com/dolphin-emu/dolphin/pull/2003.patch"},"body":"This is a feature that has been added to Dolphin VR for a while now, that I thought may be useful in the main branch, (especially now that SBS 3D has been added).  It lets users remove any object from being rendered.  It's useful for removing unwanted effects (e.g. \"heat wave\" effect in SMS), or removing objects that don't render in VR/Stereo correctly.  Fake 16:9 bars are a good example of this.\r\n\r\nObject removal codes can be found by using the fifoplayer, or by brute forcing during gameplay.  To brute force a code, start with an 8-bit code and keep clicking up until the object/effect disappears.  Then click 16-bit code, add two zeros to the right side of the code and click up again until the object disappears again.  Keep doing this until the code is long enough to be unique.\r\n\r\nCodes can be disabled or enabled, and included with releases, just like AR codes.  I'm new to C++, dolphin, open source projects, and git/github, so let me know if anything doesn't follow proper procedures or needs changing."},"comment":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/72415659","html_url":"https://github.com/dolphin-emu/dolphin/pull/2003#issuecomment-72415659","issue_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2003","id":72415659,"user":{"login":"cegli2","id":10801344,"avatar_url":"https://avatars.githubusercontent.com/u/10801344?v=3","gravatar_id":"","url":"https://api.github.com/users/cegli2","html_url":"https://github.com/cegli2","followers_url":"https://api.github.com/users/cegli2/followers","following_url":"https://api.github.com/users/cegli2/following{/other_user}","gists_url":"https://api.github.com/users/cegli2/gists{/gist_id}","starred_url":"https://api.github.com/users/cegli2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cegli2/subscriptions","organizations_url":"https://api.github.com/users/cegli2/orgs","repos_url":"https://api.github.com/users/cegli2/repos","events_url":"https://api.github.com/users/cegli2/events{/privacy}","received_events_url":"https://api.github.com/users/cegli2/received_events","type":"User","site_admin":false},"created_at":"2015-02-02T07:25:40Z","updated_at":"2015-02-02T07:25:40Z","body":"@mimimi085181 That's a pretty cool idea.  The code would have to be smarter than it is right now, because right now it has no concept of where it is in a frame or how many objects total are being rendered.  It'd have to know when a frame started and ended so it would know when all the possible objects had been tried with no matches.  It'd add a small speed penalty when you had the codes enabled, but it would definitely speed up the brute-forcing process.  Might be an interesting future enhancement to try!\r\n\r\nOne of things I really tried to work on in the vertexmanager code was to get it as fast as possible, since it is called so often.  I tried to make it as fast as possible (programmed it a couple different ways and checked out the assembly to judge the speed), because every instruction saved really counts when it's called so many times per frame."}}