Arquivo da categoria: Programação

Brincando com programação SNES em C

O intuito disso aqui não é servir como um tutorial, mas podemos considerar como sendo um conjunto de anotações de experiências recentes minhas com a PVSNESLIB no MacOS...

Para montar o ambiente, comecei baixando a lib, direto no github deles, em https://github.com/alekmaul/pvsneslib/releases

No momento, baixei a versão 4.4.0, a que ta como "Darwin" mesmo, essa que é pro Mac. O zip é pequeno, 6Mb.. baixar e descompactar em algum lugar. Eu coloquei o conteúdo dele no meu /User/<user>/pvsneslib mesmo que depois dentro dele tem outro pvsneslib.. mas tb tem o devkitsnes e o snes-examples, que são muito importantes.

Eu uso o VSCodium no Mac só pra editar os programas, mas nao o utilizo para compilar, etc. Vou pelo Terminal mesmo, até porque a lib vem com esquema de compilar pelo "make" que é mais ou menos fácil. Mas tem macetes: para a compilação funcionar direito no Mac, você PRECISA instalar o gnu-sed.. dá pra fazer pelo comando "brew install gnu-sed" terminal (ver https://github.com/alekmaul/pvsneslib/wiki/Installation). Após a instalação, é necessário alterar o "path" no seu MacOS de modo que o 'sed' do gnu-sed seja encontrado antes do 'sed' que você já tem no sistema, ou não vai adiantar nada. O macete listado no link anterior é editar o ".zshrc" do seu diretório pessoal, alterando a variável PATH. O exemplo que ele informa é esse aqui:

PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
export PATH

No entanto, no meu caso, deu-se exatamente o que ele coloca no "comentário" do script dele, em que é mencionado que versões atuais têm usado o caminho /opt/homebrew/opt/gnu-sed/libexec/gnubin.

Para facilitar, dá pra "recarregar" as configurações logo depois de salvar o arquivo com o comando "source ~/.zshrc".

Além disso, a variável PVSNESLIB_HOME precisa estar setada. Basicamente, se você entrar no diretório onde vc descompactou aquele zip e rodar o comando "export PVSNESLIB_HOME=$(pwd)", vai funcionar. Sem isso, ele não vai achar a lib na hora de compilar. Talvez valha a pena colocar a criação dessa variável de ambiente em algum script de inicialização do sistema, sei la. Não parei pra pensar... mas da pra criar um arquivinho de script muito simples com o comando...

Pensando bem, ja que eu uso o terminal, pode ser que eu brinque com o ".zshrc" também.

E, basicamente, a montagem do ambiente é esse, mas para rodar os programinhas compilados você tem que ter um emulador de SNES. Testei vários, mas só com o BSNES+ eu consegui fazer funcionar, e no caso, teve que ser também uma versão diferente (v04) que eu achei na rede, peguei nesse drive aqui: https://drive.google.com/file/d/1VMY9am6BJ9yoIRJ_KpYy-6rndADKlCo5/view. Se você conseguir que outra versão funcione, beleza. O link para baixar essa versão esta nesse outro github (veja um link que diz que tem binarios para Mac) https://github.com/Optiroc/bsnes-plus

Daí pra frente, agora é instalar o emulador e começar a programar.

No próximo post desse assunto eu começo a destrinchar um pouco o que aprendi com o Hello World, o Makefile e outros arquivos usados no ambiente...

Codeforces

Andei meio sumido, mas tentando voltar... e hoje descobri algo muito maneiro que nunca tinha visto. Eu já conhecia o "Advent of Code", que o pessoal monta sempre em dezembro e as vezes até me divirto (raramente faço mais que uns 2 níveis), mas hoje achei algo que vai além... o pessoal cria competição de programação com boa periodicidade no Codeforces. É uma plataforma de competições de programação que atrai programadores do mundo todo, pelo que vi...

O Codeforces organiza competições semanais onde você pode testar suas habilidades e aprender novas técnicas. Além das competições regulares, há rodadas educacionais e especiais. Uma coisa que notei é que algumas das competições são bem puxadas para matemática e/ou no básico e que muitos programadores têm preguiça: tem que ler, pensar, entender bem o problema para entender que solução você pode dar...

Algo que gostei é que ele deixa programar em várias linguagens diferentes - incluindo pascal... 🙂

Então, se você estiver com vontade de exercitar suas habilidades de programação e de resolução de problemas, parece ser uma boa. Eu mesmo ainda não me inscrevi e não tentei participar de nada lá, mas o que li, parece muito bom!

Por que aprender programação?

Hoje, dando uma olhada nos posts do Mastodon, recebi uma indicação de um artigo de 2017 (na verdade, com texto de 2006), muito interessante. Vou deixar aqui o link para quem se interessar. Para dar uma palhinha, basicamente o autor discorre sobre o fato que, hoje, você consegue facilmente fazer inúmeras funções em um computador, mas eles não vêm mais com nenhum simples compilador BASIC. OK, você vai questionar "caraca, Basic?". Concordo, pode ser qualquer outra coisa, poderia ser Pascal... mas basicamente o que se está discutindo é: não tem, pode padrão, nada ali que instigue a curiosidade dos novos usuários (ou seja, as crianças) para criar programinhas simples...

Bom, para se aprofundar, recomendo a leitura, o texto é enorme, mas vale a pena: Why learn computer programming

Tutoriais de VGA

Depois de muito tempo, volto à ativa com os tutoriais aqui da página. Estou (finalmente), começando hoje a disponibilizar a versão online dos Tutoriais de VGA. Já saiu a Parte 1. Se você se interessa pelo assunto, fique ligado. Em breve o resto vai chegar aqui! 🙂

E depois que terminar de disponibilizar os tutoriais antigos aqui, teremos mais surpresas. Em paralelo, já estou traduzindo mais coisas interessantes. O principal deles nem vai ser postado aqui nesse site, vai ficar lá no site principal deles. Em breve, informo aqui... a galera da Demoscene com certeza vai gostar... 🙂