static void GBInit(void* cpu, struct mCPUComponent* component) { struct GB* gb = (struct GB*) component; gb->cpu = cpu; gb->sync = NULL; GBInterruptHandlerInit(&gb->cpu->irqh); GBMemoryInit(gb); gb->video.p = gb; GBVideoInit(&gb->video); gb->audio.p = gb; GBAudioInit(&gb->audio, 2048, &gb->memory.io[REG_NR52], GB_AUDIO_DMG); // TODO: Remove magic constant gb->timer.p = gb; gb->romVf = 0; gb->sramVf = 0; gb->pristineRom = 0; gb->pristineRomSize = 0; gb->yankedRomSize = 0; gb->stream = NULL; gb->eiPending = false; gb->doubleSpeed = 0; }
static void GBInit(void* cpu, struct mCPUComponent* component) { struct GB* gb = (struct GB*) component; gb->cpu = cpu; gb->sync = NULL; GBInterruptHandlerInit(&gb->cpu->irqh); GBMemoryInit(gb); gb->video.p = gb; GBVideoInit(&gb->video); gb->audio.p = gb; GBAudioInit(&gb->audio, 2048, &gb->memory.io[REG_NR52], GB_AUDIO_DMG); // TODO: Remove magic constant gb->sio.p = gb; GBSIOInit(&gb->sio); gb->timer.p = gb; gb->model = GB_MODEL_AUTODETECT; gb->biosVf = 0; gb->romVf = 0; gb->sramVf = 0; gb->pristineRom = 0; gb->pristineRomSize = 0; gb->yankedRomSize = 0; gb->stream = NULL; }