{"action":"closed","issue":{"url":"https://api.github.com/repos/mgba-emu/mgba/issues/167","labels_url":"https://api.github.com/repos/mgba-emu/mgba/issues/167/labels{/name}","comments_url":"https://api.github.com/repos/mgba-emu/mgba/issues/167/comments","events_url":"https://api.github.com/repos/mgba-emu/mgba/issues/167/events","html_url":"https://github.com/mgba-emu/mgba/issues/167","id":116975904,"number":167,"title":"New BIOS Segfault Issue","user":{"login":"CanadianJeff","id":1225247,"avatar_url":"https://avatars.githubusercontent.com/u/1225247?v=3","gravatar_id":"","url":"https://api.github.com/users/CanadianJeff","html_url":"https://github.com/CanadianJeff","followers_url":"https://api.github.com/users/CanadianJeff/followers","following_url":"https://api.github.com/users/CanadianJeff/following{/other_user}","gists_url":"https://api.github.com/users/CanadianJeff/gists{/gist_id}","starred_url":"https://api.github.com/users/CanadianJeff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanadianJeff/subscriptions","organizations_url":"https://api.github.com/users/CanadianJeff/orgs","repos_url":"https://api.github.com/users/CanadianJeff/repos","events_url":"https://api.github.com/users/CanadianJeff/events{/privacy}","received_events_url":"https://api.github.com/users/CanadianJeff/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-11-15T06:10:48Z","updated_at":"2015-11-15T10:24:41Z","closed_at":"2015-11-15T10:24:41Z","body":"```\r\nProgram received signal SIGSEGV, Segmentation fault.\r\n[Switching to Thread 0x7fffb5abe700 (LWP 12804)]\r\n0x00007ffff7865c62 in GBALoad8 (cpu=0x7fffb5abc640, address=134217731, cycleCounter=0x7fffb5abc4ec)\r\n    at /build/mgba-qXDYgT/mgba-0.4~WIP/src/gba/memory.c:588\r\n588\t/build/mgba-qXDYgT/mgba-0.4~WIP/src/gba/memory.c: No such file or directory.\r\n(gdb) bt full\r\n#0  0x00007ffff7865c62 in GBALoad8 (cpu=0x7fffb5abc640, address=134217731, cycleCounter=0x7fffb5abc4ec)\r\n    at /build/mgba-qXDYgT/mgba-0.4~WIP/src/gba/memory.c:588\r\n        gba = 0x7fffb5abc850\r\n        memory = 0x7fffb5abc870\r\n        value = 0\r\n        wait = 4\r\n#1  0x00007ffff78322ca in _ARMInstructionLDRBIPU (cpu=0x7fffb5abc640, opcode=<optimized out>)\r\n    at /build/mgba-qXDYgT/mgba-0.4~WIP/src/arm/isa-arm.c:516\r\n        currentCycles = 1\r\n        address = <optimized out>\r\n        rn = <optimized out>\r\n        rd = 1\r\n        rm = <optimized out>\r\n#2  0x00007ffff782f216 in ARMStep (cpu=0x7fffb5abc640) at /build/mgba-qXDYgT/mgba-0.4~WIP/src/arm/arm.c:273\r\n        opcode = <optimized out>\r\n        condition = <optimized out>\r\n        instruction = <optimized out>\r\n#3  ARMRunLoop (cpu=0x7fffb5abc640) at /build/mgba-qXDYgT/mgba-0.4~WIP/src/arm/arm.c:303\r\nNo locals.\r\n#4  0x00007ffff788bec8 in _GBAThreadRun (context=0xb1b1a0) at /build/mgba-qXDYgT/mgba-0.4~WIP/src/gba/supervisor/thread.c:281\r\n        resetScheduled = <optimized out>\r\n        gba = {d = {id = 16777216, init = 0x7ffff785c710 <GBAInit>, deinit = 0x0}, cpu = 0x7fffb5abc640, memory = {\r\n            bios = 0x7ffff789a640 <hleBios>, wram = 0x7fffd2536000, iwram = 0x7fffd4c67000, rom = 0x0, io = {128, 0, 0, 126, \r\n              0 <repeats 12 times>, 256, 0, 0, 256, 0, 0, 0, 0, 256, 0, 0, 256, 0 <repeats 40 times>, 512, \r\n              0 <repeats 83 times>, 1023, 0, 32768, 0 <repeats 357 times>}, hw = {p = 0x7fffb5abc850, devices = 0, \r\n              readWrite = GPIO_WRITE_ONLY, gpioBase = 0x0, pinState = 0, direction = 0, rtc = {bytesRemaining = 0, \r\n                transferStep = 0, bitsRead = 0, bits = 0, commandActive = 0, command = 0, control = 0, \r\n                time = \"\\000\\000\\000\\000\\000\\000\"}, gyroSample = 0, gyroEdge = false, lightCounter = 0, lightSample = 0 '\\000', \r\n              lightEdge = false, tiltX = 0, tiltY = 0, tiltState = 0, gbpInputsPosted = 0, gbpTxPosition = 0, gbpNextEvent = 0, \r\n              gbpCallback = {d = {readKeys = 0x0}, p = 0x0}, gbpDriver = {d = {p = 0x0, init = 0x0, deinit = 0x0, load = 0x0, \r\n                  unload = 0x0, writeRegister = 0x0, processEvents = 0x0}, p = 0x0}}, savedata = {type = SAVEDATA_AUTODETECT, \r\n              data = 0x0, command = EEPROM_COMMAND_NULL, vf = 0x0, mapMode = 2, realVf = 0x0, readBitsRemaining = 0, \r\n              readAddress = 0, writeAddress = 0, currentBank = 0x0, realisticTiming = false, settling = 0, dust = 0, \r\n              dirty = (unknown: 0), dirtAge = 0, flashState = FLASH_STATE_RAW}, romSize = 140735877748688, romMask = 0, \r\n            romID = 0, fullBios = 0, \r\n            waitstatesSeq32 = \"\\000\\000\\005\\000\\000\\001\\001\\000\\005\\005\\t\\t\\021\\021\\t\", '\\000' <repeats 240 times>, \r\n            waitstatesSeq16 = \"\\000\\000\\002\\000\\000\\000\\000\\000\\002\\002\\004\\004\\b\\b\\004\", '\\000' <repeats 240 times>, \r\n            waitstatesNonseq32 = \"\\000\\000\\005\\000\\000\\001\\001\\000\\a\\a\\t\\t\\r\\r\\t\", '\\000' <repeats 240 times>, \r\n            waitstatesNonseq16 = \"\\000\\000\\002\\000\\000\\000\\000\\000\\004\\004\\004\\004\\004\\004\\004\", '\\000' <repeats 240 times>, \r\n---Type <return> to continue, or q <return> to quit---\r\n            waitstatesPrefetchSeq32 = \"\\000\\000\\005\\000\\000\\001\\001\\000\\005\\005\\t\\t\\021\\021\\t\", \r\n            waitstatesPrefetchSeq16 = \"\\000\\000\\002\\000\\000\\000\\000\\000\\002\\002\\004\\004\\b\\b\\004\", \r\n            waitstatesPrefetchNonseq32 = \"\\000\\000\\005\\000\\000\\001\\001\\000\\a\\a\\t\\t\\r\\r\\t\", \r\n            waitstatesPrefetchNonseq16 = \"\\000\\000\\002\\000\\000\\000\\000\\000\\004\\004\\004\\004\\004\\004\\004\", activeRegion = 0, \r\n            prefetch = false, lastPrefetchedPc = 0, lastPrefetchedLoads = 0, biosPrefetch = 0, dma = {{reg = 0, source = 0, \r\n                dest = 0, count = 16384, nextSource = 0, nextDest = 0, nextCount = 0, nextEvent = 2147483647}, {reg = 0, \r\n                source = 0, dest = 0, count = 16384, nextSource = 0, nextDest = 0, nextCount = 0, nextEvent = 2147483647}, {\r\n                reg = 0, source = 0, dest = 0, count = 16384, nextSource = 0, nextDest = 0, nextCount = 0, \r\n                nextEvent = 2147483647}, {reg = 0, source = 0, dest = 0, count = 65536, nextSource = 0, nextDest = 0, \r\n                nextCount = 0, nextEvent = 2147483647}}, activeDMA = -1, nextDMA = 2147483647, eventDiff = 0}, video = {\r\n            p = 0x7fffb5abc850, renderer = 0xbd2be0, vcount = 126, nextHblank = 1006, nextEvent = 1006, eventDiff = 0, \r\n            nextHblankIRQ = 0, nextVblankIRQ = 0, nextVcounterIRQ = 0, palette = {0, 0, 0, 0, 0, 0, 25, 0 <repeats 23 times>, \r\n              65535, 65535, 65535, 65535, 25, 0, 0, 0, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 16530, 61383, 32767, 0, 2, 0, 0, 0, \r\n              62, 0, 0, 0, 16537, 61383, 32767, 0 <repeats 53 times>, 8, 0, 48, 0, 55920, 46507, 32767, 0, 55728, 46507, 32767, \r\n              0, 11, 0, 0, 0, 3712, 120, 0, 0, 42345, 61377, 32767, 0, 6308, 62098, 32767, 0, 31984, 50184, 32767, 0, 0, 0, 0, \r\n              0, 1, 0, 0, 0, 0, 0, 0, 0, 54640, 46507, 32767, 0, 0, 0, 0, 0, 51633, 61382, 32767, 0, 55520, 46507, 32767, 0, \r\n              14366, 61425, 32767, 0, 0, 0, 0, 0, 13936, 50185, 32767, 0, 0, 0, 0, 0, 1, 0, 0, 0, 54664, 46507, 32767, 0, \r\n              42345, 61377, 1599, 0, 31984, 50184, 32767, 0, 14336, 50185, 32767, 0, 1, 0, 32767, 0, 1, 0, 0, 0, 0, 0, 0, 0, \r\n              54768, 46507, 32767, 0, 0, 0, 0, 0, 51633, 61382, 32767, 0, 55648, 46507, 32767, 0, 14366, 61425, 32767, 0, \r\n              13936, 50185, 32767, 0, 0, 0, 0, 0, 1, 0...}, vram = 0x7fffd42bc000, oam = {obj = {{a = 512, b = 0, c = 0, \r\n                  d = 0} <repeats 128 times>}, mat = {{padding0 = {512, 0, 0}, a = 0, padding1 = {512, 0, 0}, b = 0, \r\n                  padding2 = {512, 0, 0}, c = 0, padding3 = {512, 0, 0}, d = 0} <repeats 32 times>}, raw = {512, 0, 0, 0, 512, \r\n                0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, \r\n                0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, \r\n                0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, \r\n                0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, \r\n                0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, \r\n                0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, 0, 0, 0, 512, \r\n                0, 0, 0...}}, frameCounter = 0, frameskip = 0, frameskipCounter = 0}, audio = {p = 0x7fffb5abc850, ch1 = {\r\n              sweep = {shift = 0 '\\000', time = 0 '\\000', direction = false}, nextSweep = 2147483647, envelope = {\r\n                length = 0 '\\000', duty = 0 '\\000', stepTime = 0 '\\000', initialVolume = 0 '\\000', direction = false, \r\n                currentVolume = 0, dead = 0, nextStep = 2147483647}, control = {frequency = 0, stop = false, hi = 0, \r\n                nextStep = 0, endTime = 0}, sample = 0 '\\000'}, ch2 = {envelope = {length = 0 '\\000', duty = 0 '\\000', \r\n                stepTime = 0 '\\000', initialVolume = 0 '\\000', direction = false, currentVolume = 0, dead = 0, \r\n                nextStep = 2147483647}, control = {frequency = 0, stop = false, hi = 0, nextStep = 0, endTime = 0}, \r\n              sample = 0 '\\000'}, ch3 = {bank = {size = false, bank = false, enable = false}, wave = {length = 0 '\\000', \r\n                volume = 0 '\\000'}, control = {rate = 0, stop = false, endTime = 0}, wavedata = {0, 0, 0, 0, 0, 0, 0, 0}, \r\n              sample = 0 '\\000'}, ch4 = {envelope = {length = 0 '\\000', duty = 0 '\\000', stepTime = 0 '\\000', \r\n                initialVolume = 0 '\\000', direction = false, currentVolume = 0, dead = 0, nextStep = 2147483647}, control = {\r\n---Type <return> to continue, or q <return> to quit---\r\n                ratio = 0 '\\000', frequency = 0 '\\000', power = false, stop = false, endTime = 0}, lfsr = 0, \r\n              sample = 0 '\\000'}, chA = {fifo = {data = 0x7fffa0001b40, capacity = 32, size = 0, readPtr = 0x7fffa0001b40, \r\n                writePtr = 0x7fffa0001b40}, dmaSource = 1, sample = 0 '\\000'}, chB = {fifo = {data = 0x7fffa00019f0, \r\n                capacity = 32, size = 0, readPtr = 0x7fffa00019f0, writePtr = 0x7fffa00019f0}, dmaSource = 2, \r\n              sample = 0 '\\000'}, left = 0x7fffa0001ce0, right = 0x7fffa0011d50, lastLeft = 0, lastRight = 0, clock = 512, \r\n            volumeRight = 0 '\\000', volumeLeft = 0 '\\000', ch1Right = false, ch2Right = false, ch3Right = false, \r\n            ch4Right = false, ch1Left = false, ch2Left = false, ch3Left = false, ch4Left = false, volume = 0 '\\000', \r\n            volumeChA = false, volumeChB = false, chARight = false, chALeft = false, chATimer = false, chBRight = false, \r\n            chBLeft = false, chBTimer = false, playingCh1 = false, playingCh2 = false, playingCh3 = false, playingCh4 = false, \r\n            enable = false, samples = 1536, sampleRate = 32768, soundbias = 512, nextEvent = 512, eventDiff = 0, nextCh1 = 0, \r\n            nextCh2 = 0, nextCh3 = 0, nextCh4 = 0, nextSample = 512, sampleInterval = 512, forceDisableCh = {false, false, \r\n              false, false}, forceDisableChA = false, forceDisableChB = false, masterVolume = 256}, sio = {p = 0x7fffb5abc850, \r\n            mode = SIO_GPIO, drivers = {normal = 0x0, multiplayer = 0xa11d10, joybus = 0x0}, activeDriver = 0x0, rcnt = 32768, {\r\n              normalControl = {sc = 0, internalSc = 0, si = 0, idleSo = 0, start = 0, length = 0, irq = 0}, \r\n              multiplayerControl = {baud = 0, slave = 0, ready = 0, id = 0, error = 0, busy = 0, irq = 0}, siocnt = 0}}, \r\n          sync = 0xb1b328, debugger = 0x0, bus = 3942645758, performingDMA = 0, timersEnabled = 0, timers = {{reload = 0, \r\n              oldReload = 0, lastEvent = 0, nextEvent = 0, overflowInterval = 0, flags = 0}, {reload = 0, oldReload = 0, \r\n              lastEvent = 0, nextEvent = 0, overflowInterval = 0, flags = 0}, {reload = 0, oldReload = 0, lastEvent = 0, \r\n              nextEvent = 0, overflowInterval = 0, flags = 0}, {reload = 0, oldReload = 0, lastEvent = 0, nextEvent = 0, \r\n              overflowInterval = 0, flags = 0}}, springIRQ = 0, biosChecksum = 1494114645, keySource = 0xb1b228, \r\n          rotationSource = 0x9e59e8, luminanceSource = 0xb1b538, rtcSource = 0xb1b560, rumble = 0x9e59a8, rr = 0x0, \r\n          pristineRom = 0x0, pristineRomSize = 0, yankedRomSize = 0, romCrc32 = 0, romVf = 0x0, biosVf = 0x0, \r\n          activeFile = 0x7ffff5ab15cf <QThread::~QThread()+127> \"H\\203\\304 []A\\\\A]A^\\303\\017\\037@\", logHandler = 0x4538d0\r\n     <QGBA::GameController::GameController(QObject*)::{lambda(GBAThread*, GBALogLevel, char const*, __va_list_tag*)#7}::_FUN(GBAThread*, GBALogLevel, char const*, __va_list_tag*)>, logLevel = GBA_LOG_ALL, stream = 0x0, keyCallback = 0x0, \r\n          stopCallback = 0x7fffb5abc550, idleOptimization = IDLE_LOOP_REMOVE, idleLoop = 4294967295, lastJump = 32, \r\n          haltPending = false, idleDetectionStep = 0, idleDetectionFailures = 0, cachedRegisters = {-223153368, 32767, \r\n            -1638954638, 937262582, 128, 0, -225316080, 32767, -223153272, 32767, 0, 0, -223153368, 32767, -1247024520, 32767}, \r\n          taintedRegisters = {136, 243, 178, 242, 255, 127, false, false, false, false, false, false, false, false, false, \r\n            false}, realisticTiming = true, hardCrash = true}\r\n        cpu = {gprs = {134217728, 0 <repeats 12 times>, 50364160, 0, 44}, cpsr = {{priv = MODE_SYSTEM, t = MODE_ARM, f = 0, \r\n              i = 0, v = 0, c = 0, z = 0, n = 0}, packed = 31}, spsr = {{priv = 0, t = MODE_ARM, f = 0, i = 0, v = 0, c = 0, \r\n              z = 0, n = 0}, packed = 0}, cycles = 4, nextEvent = 0, halted = 0, bankedRegisters = {{0, 0, 0, 0, 0, 0, 0}, {0, \r\n              0, 0, 0, 0, 0, 0}, {50364320, 0, 0, 0, 0, 0, 0}, {50364384, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, \r\n              0, 0, 0, 0}}, bankedSPSRs = {0, 0, 0, 0, 0, 0}, shifterOperand = 134217728, shifterCarryOut = 0, prefetch = {\r\n            3813736682, 329253890}, executionMode = MODE_ARM, privilegeMode = MODE_SYSTEM, memory = {\r\n            load32 = 0x7ffff7865f40 <GBALoad32>, load16 = 0x7ffff78662e0 <GBALoad16>, load8 = 0x7ffff7865a60 <GBALoad8>, \r\n            store32 = 0x7ffff7866f10 <GBAStore32>, store16 = 0x7ffff78671e0 <GBAStore16>, store8 = 0x7ffff7866c30 <GBAStore8>, \r\n            loadMultiple = 0x7ffff7867460 <GBALoadMultiple>, storeMultiple = 0x7ffff7868c30 <GBAStoreMultiple>, \r\n---Type <return> to continue, or q <return> to quit---\r\n            activeRegion = 0x7ffff789a640 <hleBios>, activeMask = 16383, activeSeqCycles32 = 0, activeSeqCycles16 = 0, \r\n            activeNonseqCycles32 = 0, activeNonseqCycles16 = 0, stall = 0x7ffff7865980 <GBAMemoryStall>, \r\n            setActiveRegion = 0x7ffff7866690 <GBASetActiveRegion>}, irqh = {reset = 0x7ffff785cb20 <GBAReset>, \r\n            processEvents = 0x7ffff785d500 <GBAProcessEvents>, swi16 = 0x7ffff78642b0 <GBASwi16>, \r\n            swi32 = 0x7ffff7865940 <GBASwi32>, hitIllegal = 0x7ffff785d460 <GBAIllegal>, \r\n            bkpt16 = 0x7ffff785c5d0 <GBABreakpoint>, bkpt32 = 0x7ffff785c5d0 <GBABreakpoint>, \r\n            readCPSR = 0x7ffff785c590 <GBATestIRQ>, hitStub = 0x7ffff785d3e0 <GBAHitStub>}, master = 0x7fffb5abc850, \r\n          numComponents = 2, components = 0x7fffb5abc540}\r\n        patch = {vf = 0x0, outputSize = 0x0, applyPatch = 0x0}\r\n        cheatDevice = {d = {id = 0, init = 0x0, deinit = 0x0}, p = 0x0, cheats = {vector = 0x0, size = 0, capacity = 0}}\r\n        threadContext = 0xb1b1a0\r\n        components = {0x0, 0xb1b450}\r\n        movie = <optimized out>\r\n        signals = {__val = {0 <repeats 16 times>}}\r\n        stop = {d = {stop = 0x7ffff788b8b0 <_stopCallback>}, p = 0xb1b1a0}\r\n#5  0x00007ffff291e182 in start_thread (arg=0x7fffb5abe700) at pthread_create.c:312\r\n        __res = <optimized out>\r\n        pd = 0x7fffb5abe700\r\n        now = <optimized out>\r\n        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736241329920, -4025630235590424206, 1, 17860304, 140736241330624, \r\n                140736241329920, 4025512140110530930, 4025641385369897330}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, \r\n              0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}\r\n        not_first_call = <optimized out>\r\n        pagesize_m1 = <optimized out>\r\n        sp = <optimized out>\r\n        freesize = <optimized out>\r\n        __PRETTY_FUNCTION__ = \"start_thread\"\r\n#6  0x00007ffff4f3847d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111\r\nNo locals.\r\n```"}}