Пример #1
0
static void compare_core_sync_data(int length, void *value)
{
    if (l_CoreCompareMode == CORE_COMPARE_RECV)
    {
        if (fread(value, 1, length, fPipe) != length)
            stop_it();
    }
    else if (l_CoreCompareMode == CORE_COMPARE_SEND)
    {
        if (fwrite(value, 1, length, fPipe) != length)
            stop_it();
    }
}
Пример #2
0
void destroy_it(MODULUS	*j)	{

    if (song->Music	== j)
        stop_it();

    //remove patterns:
    for	(int i=0; i<j->NumPatterns;	i++) {
        free(j->Pattern[i].Note);
    }
    if (j->Pattern)
        free(j->Pattern);
    //remove instruments;
    if (j->Instrument)
        free(j->Instrument);
    //remove samples;
    for	(int i=0; i<j->NumSamples; i++)	{
        destroy_sample(j->Sample[i].Sample);
    }
    if (j->Sample)
        free(j->Sample);
    //remove orders:
    if (j->Order)
        free(j->Order);
    //remove channels:
    for	(int i=0; i<64;	i++) {
        if (j->Channel[i].VChannel)	{
            MODULUS_VCHANNEL *vchn = song->Music->Channel[i].VChannel;
            MODULUS_VCHANNEL *prev = NULL;

            if (!vchn)
                continue;

            for	(;;) {
                deallocate_voice(vchn->voice);

                prev = vchn;
                vchn = vchn->next;
                free(prev);

                if (!vchn)
                    break;
            }
        }
    }
    free(j);
}
Пример #3
0
static void display_error(char *txt)
{
    int i;

    printf("err: %6s  addr:%x\t ", txt, *ptr_PC);

    if (!strcmp(txt, "PC"))
    {
        printf("My PC: %x  Ref PC: %x\t ", *ptr_PC, *comp_reg_32);
    }
    else if (!strcmp(txt, "gpr"))
    {
        for (i=0; i<32; i++)
        {
            if (ptr_reg[i] != comp_reg_64[i])
                printf("My: reg[%d]=%llx\t Ref: reg[%d]=%llx\t ", i, ptr_reg[i], i, comp_reg_64[i]);
        }
    }
    else if (!strcmp(txt, "cop0"))
    {
        for (i=0; i<32; i++)
        {
            if (ptr_cop0[i] != comp_reg_32[i])
                printf("My: reg_cop0[%d]=%x\t Ref: reg_cop0[%d]=%x\t ", i, (unsigned int)ptr_cop0[i], i, (unsigned int)comp_reg_32[i]);
        }
    }
    else if (!strcmp(txt, "cop1"))
    {
        for (i=0; i<32; i++)
        {
            if (ptr_fgr[i] != comp_reg_64[i])
                printf("My: reg[%d]=%llx\t Ref: reg[%d]=%llx\t ", i, ptr_fgr[i], i, comp_reg_64[i]);
        }
    }
    printf("\n");
    /*for (i=0; i<32; i++)
      {
     if (reg_cop0[i] != comp_reg[i])
       printf("reg_cop0[%d]=%llx != reg[%d]=%llx\n",
          i, reg_cop0[i], i, comp_reg[i]);
      }*/

    stop_it();
}
Пример #4
0
static int filter(const SDL_Event *event)
{
   switch (event->type)
     {
      case SDL_KEYDOWN:
	switch (event->key.keysym.sym)
	  {
	   case SDLK_F5:
	     savestates_job |= SAVESTATE;
	     break;
	   case SDLK_F7:
	     savestates_job |= LOADSTATE;
	     break;
	   case SDLK_ESCAPE:
	     stop_it();
	     break;
	   case SDLK_F1:
	     changeWindow();
	     break;
	   default:
	     keyDown(0, event->key.keysym.sym);
	  }
	return 0;
	break;
      case SDL_KEYUP:
	switch (event->key.keysym.sym)
	  {
	   case SDLK_ESCAPE:
	     break;
	   case SDLK_F1:
	     break;
	   default:
	     keyUp(0, event->key.keysym.sym);
	  }
	return 0;
	break;
      default:
	return 1;
     }
}
Пример #5
0
static void sigterm_handler()
{
   stop_it();
}
Пример #6
0
static int filter(const SDL_Event *event)
{
   switch (event->type)
     {
      case SDL_KEYDOWN:
	switch (event->key.keysym.sym)
	  {
	   case SDLK_F5:
	     savestates_job |= SAVESTATE;
	     break;
	   case SDLK_F7:
	     savestates_job |= LOADSTATE;
	     break;
	   case SDLK_ESCAPE:
	     stop_it();
	     break;
	   case SDLK_F1:
	     changeWindow();
	     break;
	   default:
	     switch (event->key.keysym.unicode)
	       {
		case '0':
		  savestates_select_slot(0);
		  break;
		case '1':
		  savestates_select_slot(1);
		  break;
		case '2':
		  savestates_select_slot(2);
		  break;
		case '3':
		  savestates_select_slot(3);
		  break;
		case '4':
		  savestates_select_slot(4);
		  break;
		case '5':
		  savestates_select_slot(5);
		  break;
		case '6':
		  savestates_select_slot(6);
		  break;
		case '7':
		  savestates_select_slot(7);
		  break;
		case '8':
		  savestates_select_slot(8);
		  break;
		case '9':
		  savestates_select_slot(9);
		  break;
		default:
		  keyDown(0, event->key.keysym.sym);
	       }
	  }
	return 0;
	break;
      case SDL_KEYUP:
	switch (event->key.keysym.sym)
	  {
	   case SDLK_ESCAPE:
	     break;
	   case SDLK_F1:
	     break;
	   default:
	     keyUp(0, event->key.keysym.sym);
	  }
	return 0;
	break;
      default:
	return 1;
     }
}