{"action":"created","issue":{"url":"https://api.github.com/repos/cebix/macemu/issues/171","repository_url":"https://api.github.com/repos/cebix/macemu","labels_url":"https://api.github.com/repos/cebix/macemu/issues/171/labels{/name}","comments_url":"https://api.github.com/repos/cebix/macemu/issues/171/comments","events_url":"https://api.github.com/repos/cebix/macemu/issues/171/events","html_url":"https://github.com/cebix/macemu/issues/171","id":324603612,"number":171,"title":"BasiliskII uses a dangerously fragile method to allocate the framebuffer","user":{"login":"beholdnec","id":9994394,"avatar_url":"https://avatars0.githubusercontent.com/u/9994394?v=4","gravatar_id":"","url":"https://api.github.com/users/beholdnec","html_url":"https://github.com/beholdnec","followers_url":"https://api.github.com/users/beholdnec/followers","following_url":"https://api.github.com/users/beholdnec/following{/other_user}","gists_url":"https://api.github.com/users/beholdnec/gists{/gist_id}","starred_url":"https://api.github.com/users/beholdnec/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/beholdnec/subscriptions","organizations_url":"https://api.github.com/users/beholdnec/orgs","repos_url":"https://api.github.com/users/beholdnec/repos","events_url":"https://api.github.com/users/beholdnec/events{/privacy}","received_events_url":"https://api.github.com/users/beholdnec/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-05-19T05:38:58Z","updated_at":"2018-05-20T23:41:52Z","closed_at":"2018-05-19T21:34:30Z","author_association":"NONE","body":"The method that BasiliskII uses to allocate the framebuffer in video_sdl.cpp is fragile, and easily leads to breakage on 64-bit builds.\r\n\r\nThe framebuffer is allocated in the function vm_allocate_framebuffer. This is fine. The problem arises when the framebuffer's address is passed to the emulated Macintosh. Basically, to tell the Mac the address of the framebuffer, it is given the 32-bit difference between the address of the framebuffer in host RAM and the address of the Mac's main memory in host RAM.\r\n\r\nThis only works correctly if the framebuffer is located within 4 gigs (32-bit max.) of main memory. This is always true on a 32-bit build. However, in a 64-bit build, it is entirely possible that the framebuffer will be allocated more than 4 gigs away from main memory and things will break. On Windows, there is no way to prevent this.\r\n\r\nA better method is to allocate main memory, ROM, the framebuffer, and any other Mac-accessible buffers all in one contiguous chunk."},"comment":{"url":"https://api.github.com/repos/cebix/macemu/issues/comments/390521792","html_url":"https://github.com/cebix/macemu/issues/171#issuecomment-390521792","issue_url":"https://api.github.com/repos/cebix/macemu/issues/171","id":390521792,"user":{"login":"beholdnec","id":9994394,"avatar_url":"https://avatars0.githubusercontent.com/u/9994394?v=4","gravatar_id":"","url":"https://api.github.com/users/beholdnec","html_url":"https://github.com/beholdnec","followers_url":"https://api.github.com/users/beholdnec/followers","following_url":"https://api.github.com/users/beholdnec/following{/other_user}","gists_url":"https://api.github.com/users/beholdnec/gists{/gist_id}","starred_url":"https://api.github.com/users/beholdnec/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/beholdnec/subscriptions","organizations_url":"https://api.github.com/users/beholdnec/orgs","repos_url":"https://api.github.com/users/beholdnec/repos","events_url":"https://api.github.com/users/beholdnec/events{/privacy}","received_events_url":"https://api.github.com/users/beholdnec/received_events","type":"User","site_admin":false},"created_at":"2018-05-20T23:41:52Z","updated_at":"2018-05-20T23:41:52Z","author_association":"NONE","body":"Building with virtual addressing enabled fails because the function get_virtual_address is not defined. A comment in uae_cpu/memory.h says:\r\n```\r\n/* gb-- deliberately not implemented since it shall not be used... */\r\nextern uae_u32 get_virtual_address(uae_u8 *addr);\r\n```\r\nHowever, get_virtual_address is still used. I'm not sure how to proceed."}}
{"actor":{"display_login":"beholdnec"}}