{"action":"created","issue":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2480","labels_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2480/labels{/name}","comments_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2480/comments","events_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2480/events","html_url":"https://github.com/dolphin-emu/dolphin/pull/2480","id":82292021,"number":2480,"title":"Fix invalid pointer errors in Burnout 2.","user":{"login":"phire","id":138484,"avatar_url":"https://avatars.githubusercontent.com/u/138484?v=3","gravatar_id":"","url":"https://api.github.com/users/phire","html_url":"https://github.com/phire","followers_url":"https://api.github.com/users/phire/followers","following_url":"https://api.github.com/users/phire/following{/other_user}","gists_url":"https://api.github.com/users/phire/gists{/gist_id}","starred_url":"https://api.github.com/users/phire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phire/subscriptions","organizations_url":"https://api.github.com/users/phire/orgs","repos_url":"https://api.github.com/users/phire/repos","events_url":"https://api.github.com/users/phire/events{/privacy}","received_events_url":"https://api.github.com/users/phire/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-05-29T06:38:38Z","updated_at":"2015-05-29T16:07:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/pulls/2480","html_url":"https://github.com/dolphin-emu/dolphin/pull/2480","diff_url":"https://github.com/dolphin-emu/dolphin/pull/2480.diff","patch_url":"https://github.com/dolphin-emu/dolphin/pull/2480.patch"},"body":"Yet another story of games loading weird shit into registers.\r\n\r\nFor some reason, Burnout 2 would (in rare situations) load invalid addresses into cp_state.array_bases. What would the real hardware do in this situation? Who knows, Burnout 2 doesn't actually enable the vertex array with the invalid address so nothing kinky happens.\r\n\r\nBut dolphin tries to optimise things and starts using the address as soon as it is loaded into memory. This causes GetPointer (which is now much more vocal) to throw an error.\r\n\r\nThe Fix:  We don't call GetPointer until we are sure the vertex array has been enabled."},"comment":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/106858857","html_url":"https://github.com/dolphin-emu/dolphin/pull/2480#issuecomment-106858857","issue_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/2480","id":106858857,"user":{"login":"phire","id":138484,"avatar_url":"https://avatars.githubusercontent.com/u/138484?v=3","gravatar_id":"","url":"https://api.github.com/users/phire","html_url":"https://github.com/phire","followers_url":"https://api.github.com/users/phire/followers","following_url":"https://api.github.com/users/phire/following{/other_user}","gists_url":"https://api.github.com/users/phire/gists{/gist_id}","starred_url":"https://api.github.com/users/phire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phire/subscriptions","organizations_url":"https://api.github.com/users/phire/orgs","repos_url":"https://api.github.com/users/phire/repos","events_url":"https://api.github.com/users/phire/events{/privacy}","received_events_url":"https://api.github.com/users/phire/received_events","type":"User","site_admin":false},"created_at":"2015-05-29T16:07:00Z","updated_at":"2015-05-29T16:07:00Z","body":"Adding a small dirty flag optimisation brings the performance of vertex loader heavy games up to about the same as master."}}