Ver um Único Post
  #34  
Antigo 09-09-2011, 09:56 PM
Avatar de JeanCFF
JeanCFF JeanCFF está offline
Membro Participativo
 
Registrado em: May 2010
Posts: 84
MUITO OBRIGADO: 41
Agradecido 164 Vezes em 39 Posts
Reputação: 18
JeanCFF é uma jóia brutaJeanCFF é uma jóia brutaJeanCFF é uma jóia bruta
Padrão Re: Controles do gPsP

Olá galera... Desculpa a super demora na resposta aí... dei uma olhada na primeira pergunta e vou ver se posso ajudar...

Então... mudar os controles desse gpsp, só portando novamente..

Assim dá pra alterar tudo, controle, cores do menu, idioma, tals e tals...
Eu posso até portar novamente pra vc.... me deixa os controles que vc deseja que farei isso logo que tiver um tempo (não prometo nada pra já, pois requer que eu instale novamente os SDK's, andlinux, OTLinux.. pra poder portar, e isso dá uma preguiça...)


Existe uma maneira de mudar os controles utilizando as libs SDL HW (RC3).
(NOTA: É o que diz o Ant-ON, criador das libs, vou ensinar os passos demonstrado pelo mesmo, nunca testei, pois ainda mesmo prefiro fazer o velho e bom port para alterar os controles que desejo).

Vamos ao tutorial:

- Para que vc possa fazer as modificações no seu arquivo que está sendo executado com as novas libs vc precisa ter um arquivo chamado (nome-do-executável)_SDL.cfg.

- Por exemplo: se dentro da sua pasta do gpsp o seu executável chamar gpsp.sh vc deverá colocar como nome do arquivo de configuração como "gpsp_SDL.cfg".

Feito isso, coloque o arquivo na mesma pasta do executável.

Abra o arquivo e digite o seguinte:

[SYSTEM]
Rotation = 1
ShowLogo = 1
ScreenBPP = 0
ScreenWidth = 320
ScreenHeight = 240

[AUDIO]
AutoCloseAudio = 1
Volume = 4
Synchronization = 1

[MOUSE]
UseCursor = 1
ControlCursor = 1
CursorStep = 20

[SDL]
C=EXTRA
Camera=F2
Numeral=F4
Asterisk=F5
VolumeUp=PAGEUP
VolumeDown=PAGEDOWN

[SDLextra]
Camera=F3
Numeral=F6
Asterisk=F7


Bom, e apartir daí vc vai editando tudo o que achar necessário...
Ao meu compreender, os significados são os seguintes:

Rotation - modifica o sentido de rotação da tela, se necessário.

ShowLogo - exibe aquele logotipo SDL durante inicialização do aplicativo que está utilizando as libs.

AutoCloseAudio - Para o programa quando minimiza o aplicativo.

Volume - volume na aplicação SDL

UseCursor - Os controles passam a ser utilizados por uma setinha vermelha que aparecerá na tela.

ControlCursor - controle do cursor (caso contrário, o próprio aplicativo deve controlar o cursor)

CursorStep - sensibilidade cursor

Na seção SDL pode modificar os botões que desejar, lembre que a SDLextra será ativada somente quando for apertado o botão EXTRA dos botões da aba SDL, como no exemplo acima, só seria ativada quando fosse clicada no C, ou o botão que volta no Z6.


Bom cara, agora se vc estiver utilizando o mesmo gpspV2 que eu portei, os controles pra vc fazer essas modificações serão o seguinte:


Aqui deixo um pedaço do open source do gpspV2 na parte dos controles.


#if defined(UPDATE_Z6_JEANCFF)
case SDLK_F9:
return BUTTON_L;

case SDLK_F11:
return BUTTON_R;

case SDLK_DOWN:
return BUTTON_DOWN;

case SDLK_UP:
return BUTTON_UP;

case SDLK_LEFT:
return BUTTON_LEFT;

case SDLK_RIGHT:
return BUTTON_RIGHT;

case SDLK_RETURN:
return BUTTON_START;

case SDLK_0:
return BUTTON_SELECT;

case SDLK_MINUS:
return BUTTON_B;

case SDLK_PLUS:
return BUTTON_A;
#endif
default:
return BUTTON_NONE;
}
}

int star_pressed=0,null_pressed=0,hash_pressed=0;

// MODIFICAÇÕES ADICIONADAS POR JEANCFF
// SALVAR/CARREGAR EM DIFERENTES SLOTES
// ADICIONADO STABBLE-CLOCK

u32 update_input()
{
SDL_Event event;
int result = 0;
int skey=0;
while(SDL_PollEvent(&event)){

switch(event.type){
#if defined(
UPDATE_Z6_JEANCFF)
case SDL_KEYDOWN:
skey = event.key.keysym.sym;

if (skey == SDLK_ESCAPE) exit(-1);
// VER OS FPS
if (skey == SDLK_5) result = 3;
// FRAMESKIP +/-
if (skey == SDLK_4) result = 1;
if (skey == SDLK_7) result = 2;
// SALVAR / CARREGAR
if (skey == SDLK_TAB) result = 4;
if (skey == SDLK_SPACE) result = 5;
// SELECIONAR SLOT DE SALVAMENTO
if (skey == SDLK_6) result = 6;
if (skey == SDLK_9) result = 7;
// TELA CHEIA
if (skey == SDLK_8) result = 8;
// SOM ON/OFF
if (skey == SDLK_ASTERISK) result = 9;

key |= key_map(event.key.keysym.sym);
trigger_key(key);
break;

case SDL_KEYUP:
skey = event.key.keysym.sym;

key &= ~(key_map(event.key.keysym.sym));
break;

#endif


então, por exemplo... se vc quiser alterar o botão A do gpsp, e quiser que ele seje o botão 5 do telefone... vc teria de deixar o código na seguinte forma:

Primeiro eu observo no meu código roxo aonde que eu defini o botão A

case SDLK_PLUS:
return BUTTON_A;

Aí logo eu vejo que eu defini como SDKL_PLUS (que é volume + do celular)
A partir daí, eu vejo o botão que eu defini como o 5

if (skey == SDLK_5) result = 3; que é pra ver o frameskip.

Assim eu altero eu troco os dois de lugar.

Se fosse modifica-lo deixaria:

case SDLK_5:
return BUTTON_A;

E

if (skey == SDLK_PLUS) result = 3;

Assim os controles estariam trocados e prontos para ser portado novamente.

Mas pelo código da lib, ficaria da seguinte forma:

[SYSTEM]
Rotation = 1
ShowLogo = 1
ScreenBPP = 0
ScreenWidth = 320
ScreenHeight = 240

[AUDIO]
AutoCloseAudio = 1
Volume = 4
Synchronization = 1

[MOUSE]
UseCursor = 1
ControlCursor = 1
CursorStep = 20

[SDL]
C=EXTRA
Camera=F2
Numeral=F4
Asterisk=F5
VolumeUp=5
VolumeDown=PAGEDOWN
5=PLUS

[SDLextra]
Camera=F3
Numeral=F6
Asterisk=F7


Pra vc não se confundir... abra o seu mySDL.cfg e veja os arquivos originais e tals...

Bom, a partir daí.... vc monta o seu config do jeito que vc desejar...

Conforme as dúvidas forem surgindo, vc manda aqui no fórum que eu irei respondendo na medida do possível...


Sei que o tutorial é cansativo.... mas cansativo foi fazer eu fazer ele....

De toda forma, espero que tenha ajudado na sua dúvida...

Desculpem pelo post monstruoso.
Abraço.

Última edição por JeanCFF; 09-09-2011 às 09:58 PM.
Responder com Citação
O Seguinte 3 Usuário(s) disseram "MUITO OBRIGADO" para JeanCFF Por terem gostado deste post :
Arthur_rokr (10-09-2011), Franklin7 (09-09-2011), jr.hard (12-09-2011)