コード例 #1
0
ファイル: savedata.c プロジェクト: cyrusmaintea/N64HDD
int get_save_type() {
	//check for presence of EEPROM
	unsigned char in[3];
	execute_raw_command(4,0,0,3,NULL,in);
	if(in[2]==0) { //if not 0, no eeprom present
		if((in[1]&0xc0)==0xc0)
			return SAVE_TYPE_EEPROM_16;
		if((in[1]&0xc0)==0x80)
			return SAVE_TYPE_EEPROM_4;
	}
	return 0;
}
コード例 #2
0
ファイル: tux_cmd_parser.c プロジェクト: cm-t/tuxdriver
/**
 * \brief Execute a command.
 * \param cmd Command to execute.
 */
static void
execute_command (delay_cmd_t *cmd)
{
    if(cmd->command_group == TUX_CMD)
    {
        switch(cmd->command) {
            case AUDIO:
                execute_audio_command(cmd);
                break;
            case EYES:
                execute_eyes_command(cmd);
                break;
            case IR:
                execute_ir_command(cmd);
                break;
            case LED:
                execute_led_command(cmd);
                break;
            case MOUTH:
                execute_mouth_command(cmd);
                break;
            case SOUND_FLASH:
                execute_sound_flash_command(cmd);
                break;
            case SPINNING:
                execute_spinning_command(cmd);
                break;
            case FLIPPERS:
                execute_flippers_command(cmd);
                break;
        }
    }
    else
    {
        if(cmd->command_group == RAW_CMD)
        {
            execute_raw_command(cmd);
        }
    }
    cmd->command_group = NO_CMD;
}
コード例 #3
0
ファイル: vrutest.c プロジェクト: OpenSorcery/libdragon
int main(void)
{
    /* enable interrupts (on the CPU) */
    init_interrupts();

    /* Initialize peripherals */
    display_init( res, bit, 2, GAMMA_NONE, ANTIALIAS_RESAMPLE );
    console_init();
    controller_init();

    console_set_render_mode(RENDER_MANUAL);

    /* Main loop test */
    while(1) 
    {
        console_clear();

        /* To do initialize routines */
        controller_scan();

        int controllers = get_controllers_present();

        if( controllers & CONTROLLER_1_INSERTED )
        {
            int accessories = get_accessories_present();

            if( (accessories & CONTROLLER_4_INSERTED) && identify_accessory( 3 ) == ACCESSORY_VRU )
            {
                uint8_t out[64];
                uint8_t in[64];

                // Initial sequence
                out[0] = 0x00;
                out[1] = 0x00;
                print_request( 2, out );
                execute_raw_command( 3, 0xB, 2, 3, out, in );
                print_result( 3, in );

                // LODS OF 0x0B
                out[0] = 0x1E;
                out[1] = 0x0C;
                print_request( 2, out );
                execute_raw_command( 3, 0xD, 2, 1, out, in );
                print_result( 1, in );

                out[0] = 0x6E;
                out[1] = 0x07;
                print_request( 2, out );
                execute_raw_command( 3, 0xD, 2, 1, out, in );
                print_result( 1, in );

                out[0] = 0x08;
                out[1] = 0x0E;
                print_request( 2, out );
                execute_raw_command( 3, 0xD, 2, 1, out, in );
                print_result( 1, in );

                out[0] = 0x56;
                out[1] = 0x18;
                print_request( 2, out );
                execute_raw_command( 3, 0xD, 2, 1, out, in );
                print_result( 1, in );

                out[0] = 0x03;
                out[1] = 0x0F;
                print_request( 2, out );
                execute_raw_command( 3, 0xD, 2, 1, out, in );
                print_result( 1, in );

                // Some C's and B's
                out[0] = 0x00;
                out[1] = 0x00;
                out[2] = 0x00;
                out[3] = 0x00;
                out[4] = 0x01;
                out[5] = 0x00;
                print_request( 6, out );
                execute_raw_command( 3, 0xC, 6, 1, out, in );
                print_result( 1, in );

                out[0] = 0x00;
                out[1] = 0x00;
                print_request( 2, out );
                execute_raw_command( 3, 0xB, 2, 3, out, in );
                print_result( 3, in );
                
                out[0] = 0x00;
                out[1] = 0x00;
                out[2] = 0x02;
                out[3] = 0x00;
                out[4] = 0x3B;
                out[5] = 0x00;
                print_request( 6, out );
                execute_raw_command( 3, 0xC, 6, 1, out, in );
                print_result( 1, in );

                out[0] = 0x00;
                out[1] = 0x00;
                print_request( 2, out );
                execute_raw_command( 3, 0xB, 2, 3, out, in );
                print_result( 3, in );

                // Give that A a try
                memset( out, 0, sizeof( out ) );
                print_request( 22, out );
                execute_raw_command( 3, 0xA, 22, 1, out, in );
                print_result( 1, in );

                memset( out, 0, sizeof( out ) );
                print_request( 22, out );
                execute_raw_command( 3, 0xA, 22, 1, out, in );
                print_result( 1, in );

                memset( out, 0, sizeof( out ) );
                out[14] = 0x03;
                out[18] = 0x12;
                out[20] = 0x08;
                print_request( 22, out );
                execute_raw_command( 3, 0xA, 22, 1, out, in );
                print_result( 1, in );

                // Render it!
                console_render();
                while(1){;}
            }
            else
            {
                printf( "Please insert a VRU into slot 4.\n" );
            }
        }
        else
        {
            printf( "Please insert a standard\ncontroller into slot 1.\n" );
        }

        console_render();
    }
}