Skip to content

Commit d16a58b

Browse files
committed
first commit
1 parent 3f44938 commit d16a58b

24 files changed

+2125
-1
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
node_modules
2+
.vscode-test/
3+
*.vsix
4+
tools/gcc/
5+
tools/ps1sdk/
6+
tools/emulator/
7+
.DS_Store

.vscode/launch.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Extension",
6+
"type": "extensionHost",
7+
"request": "launch",
8+
"args": [
9+
"--extensionDevelopmentPath=${workspaceFolder}"
10+
]
11+
}
12+
]
13+
}

.vscodeignore

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.vscode/**
2+
.vscode-test/**
3+
tools/gcc/**
4+
tools/psn00b_sdk/**
5+
tools/emulator/**
6+
.gitignore
7+
.yarnrc
8+
vsc-extension-quickstart.md
9+
**/jsconfig.json
10+
**/*.map
11+
**/.eslintrc.json
12+
images/create_icon.py
13+
images/create_icon.js
14+
images/convert.html
15+
images/icon.svg
16+
check-size.sh
17+
package-extension.sh
18+
PUBLISHING.md

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Change Log
2+
3+
All notable changes to the "ps1-dev-extension" extension will be documented in this file.
4+
5+
## [0.1.0] - 2025-02-28
6+
7+
- Initial release
8+
- Setup environment command
9+
- Create Hello World project command
10+
- Build project command
11+
- Run emulator command

LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# MIT License
2+
3+
Copyright (c) 2025 PSDevTools
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

PUBLISHING.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Publicação da Extensão
2+
3+
Este documento contém instruções para empacotar e publicar a extensão PlayStation 1 Development.
4+
5+
## Pré-requisitos
6+
7+
- Node.js e npm instalados
8+
- Conta no Visual Studio Code Marketplace
9+
10+
## Empacotamento para Teste
11+
12+
Para criar um pacote VSIX para teste local:
13+
14+
1. Instale a ferramenta vsce:
15+
```
16+
npm install -g vsce
17+
```
18+
19+
2. Execute o script de empacotamento:
20+
```
21+
./package-extension.sh
22+
```
23+
24+
Ou manualmente:
25+
```
26+
vsce package
27+
```
28+
29+
3. Isso criará um arquivo `ps1-dev-extension-0.1.0.vsix` na pasta raiz do projeto.
30+
31+
## Instalação Local
32+
33+
Para instalar a extensão localmente para teste:
34+
35+
1. Abra o VS Code
36+
2. Vá para a aba de extensões (Ctrl+Shift+X)
37+
3. Clique no menu "..." (Mais ações) no topo do painel de extensões
38+
4. Selecione "Instalar a partir do VSIX..."
39+
5. Navegue até o arquivo `.vsix` gerado e selecione-o
40+
41+
Ou use o comando:
42+
```
43+
code --install-extension ps1-dev-extension-0.1.0.vsix
44+
```
45+
46+
## Publicação no Marketplace
47+
48+
Para publicar a extensão no VS Code Marketplace:
49+
50+
1. Crie uma conta no [Visual Studio Marketplace](https://marketplace.visualstudio.com/manage)
51+
2. Crie um Personal Access Token (PAT) no Azure DevOps:
52+
- Acesse [dev.azure.com](https://dev.azure.com/)
53+
- Clique no ícone do seu perfil no canto superior direito
54+
- Selecione "Personal access tokens"
55+
- Clique em "New Token"
56+
- Dê um nome ao token
57+
- Selecione "Full access" ou pelo menos "Marketplace (publish)"
58+
- Clique em "Create" e guarde o token gerado
59+
60+
3. Crie um publisher:
61+
```
62+
vsce create-publisher YourPublisherName
63+
```
64+
65+
4. Publique a extensão:
66+
```
67+
vsce publish
68+
```
69+
70+
## Atualização da Extensão
71+
72+
Para atualizar a extensão:
73+
74+
1. Atualize a versão no `package.json`
75+
2. Execute `vsce publish` novamente
76+
77+
## Notas
78+
79+
- O tamanho máximo de uma extensão no VS Code Marketplace é de 100MB. Se sua extensão exceder esse limite, considere hospedar as ferramentas em um servidor externo e fazer download durante a instalação.
80+
- Certifique-se de que tem permissão para distribuir todas as ferramentas incluídas na sua extensão.

README.md

Lines changed: 144 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,144 @@
1-
# psxdev-code-plugin
1+
# PlayStation 1 Development Extension for VSCode/Windsurf
2+
3+
Esta extensão fornece ferramentas para desenvolvimento de jogos e aplicativos para PlayStation 1, incluindo:
4+
5+
- GCC, SDK do PlayStation 1 e emulador incluídos
6+
- Criação de projetos Hello World
7+
- Compilação de projetos para PlayStation 1
8+
- Geração de ISO para projetos
9+
- Execução de projetos no emulador
10+
11+
## Instalação
12+
13+
Como esta é uma extensão local, você precisará:
14+
15+
1. Copiar esta pasta para o diretório de extensões do VSCode:
16+
- Windows: `%USERPROFILE%\.vscode\extensions`
17+
- macOS: `~/.vscode/extensions`
18+
- Linux: `~/.vscode/extensions`
19+
20+
2. Reiniciar o VSCode/Windsurf
21+
22+
## Ferramentas Incluídas
23+
24+
Esta extensão inclui as seguintes ferramentas para desenvolvimento PlayStation 1:
25+
26+
- **GCC para MIPS**: Compilador GCC configurado para o processador MIPS R3000A do PlayStation 1
27+
- **PSN00B SDK**: SDK para desenvolvimento de jogos PlayStation 1
28+
- **Emulador**: Um emulador de PlayStation 1 (opcional)
29+
30+
## Funcionalidades
31+
32+
- **Configuração Automática do Ambiente**: A extensão configura automaticamente o ambiente de desenvolvimento PlayStation 1 ao ser carregada.
33+
- **Download Automático de Ferramentas**: Se as ferramentas não estiverem incluídas, a extensão oferecerá a opção de baixá-las automaticamente.
34+
- **Criação de Projetos**: Crie facilmente projetos "Hello World" para PlayStation 1.
35+
- **Compilação de Projetos**: Compile seus projetos PlayStation 1 com um único comando.
36+
- **Geração de ISO**: Gere arquivos ISO para seus projetos, prontos para serem executados em emuladores ou hardware real.
37+
- **Execução no Emulator**: Execute seus projetos compilados diretamente no emulador.
38+
39+
## Requisitos
40+
41+
- Visual Studio Code ou Windsurf
42+
- Sistema operacional: Windows, macOS ou Linux
43+
44+
## Instalação
45+
46+
1. Instale a extensão através do Marketplace do VS Code ou Windsurf.
47+
2. A extensão verificará automaticamente se as ferramentas necessárias estão incluídas.
48+
3. Se alguma ferramenta estiver faltando, você será notificado para adicioná-la ao diretório `tools` da extensão.
49+
50+
## Uso
51+
52+
### Configuração do Ambiente
53+
54+
A extensão configura automaticamente o ambiente de desenvolvimento ao ser carregada. Se você precisar configurar manualmente, use o comando:
55+
56+
```
57+
PlayStation 1: Setup Development Environment
58+
```
59+
60+
### Criação de Projeto Hello World
61+
62+
Para criar um novo projeto "Hello World" para PlayStation 1:
63+
64+
1. Abra uma pasta no VS Code onde deseja criar o projeto.
65+
2. Execute o comando `PS1: Create Hello World Project`.
66+
3. Digite o nome do projeto quando solicitado.
67+
4. O projeto será criado com um arquivo `main.c`, `Makefile`, `setup.mk` e outros arquivos necessários.
68+
69+
### Compilação de Projeto
70+
71+
Para compilar seu projeto PlayStation 1:
72+
73+
1. Abra um arquivo do projeto (por exemplo, `main.c`).
74+
2. Execute o comando `PS1: Build Project`.
75+
3. O projeto será compilado usando o Makefile, gerando arquivos binários na pasta `bin`.
76+
77+
### Geração de ISO
78+
79+
Para gerar um arquivo ISO do seu projeto:
80+
81+
1. Compile o projeto primeiro.
82+
2. Execute o comando `PS1: Generate ISO`.
83+
3. O arquivo ISO e CUE serão gerados na pasta `iso` do seu projeto.
84+
85+
### Execução no Emulador
86+
87+
Para executar seu projeto no emulador:
88+
89+
1. Compile o projeto e gere o ISO primeiro.
90+
2. Execute o comando `PS1: Run in Emulator`.
91+
3. O emulador configurado no Makefile será iniciado com o arquivo ISO gerado.
92+
93+
## Estrutura do Projeto
94+
95+
Os projetos criados com esta extensão têm a seguinte estrutura:
96+
97+
```
98+
projeto/
99+
├── main.c - Código fonte principal
100+
├── Makefile - Makefile principal do projeto
101+
├── setup.mk - Configurações do ambiente de compilação
102+
├── system.cnf - Arquivo de configuração do PlayStation
103+
├── cd.xml - Configuração para geração de ISO
104+
├── bin/ - Arquivos binários compilados
105+
└── iso/ - Arquivos ISO gerados
106+
```
107+
108+
## Personalização do Makefile
109+
110+
O Makefile gerado inclui várias configurações que você pode personalizar:
111+
112+
- **Emulador**: Você pode configurar diferentes emuladores no Makefile.
113+
- **Organização de Código**: O Makefile suporta organização em diretórios como `engine/` e `ui/`.
114+
- **Flags de Compilação**: Diversas flags de otimização e configuração já estão incluídas.
115+
116+
## Estrutura de Diretórios
117+
118+
```
119+
ps1-dev-extension/
120+
├── tools/
121+
│ ├── gcc/ - Compilador GCC para MIPS
122+
│ ├── psn00b_sdk/ - SDK PlayStation 1
123+
│ └── emulator/ - Emulador PlayStation 1 (opcional)
124+
└── templates/
125+
└── hello-world/ - Template de projeto Hello World
126+
```
127+
128+
## Notas
129+
130+
- Se você encontrar problemas com a compilação, verifique se o compilador GCC e o SDK estão corretamente instalados no diretório `tools`.
131+
- Para adicionar um emulador, coloque o executável do emulador no diretório `tools/emulator/`.
132+
133+
## Notas de Lançamento
134+
135+
### 0.2.0
136+
137+
- Adicionado suporte para download automático de ferramentas
138+
- Novo formato de Makefile com suporte a geração de ISO e múltiplos emuladores
139+
- Adicionado comando para gerar ISO
140+
- Atualizado o comando de execução para usar o comando 'make run'
141+
142+
### 0.1.0
143+
144+
Lançamento inicial com funcionalidade básica.

check-size.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
3+
echo "Verificando tamanho dos diretórios..."
4+
5+
# Verificar tamanho do diretório tools
6+
TOOLS_SIZE=$(du -sh tools | cut -f1)
7+
echo "Tamanho do diretório tools: $TOOLS_SIZE"
8+
9+
# Verificar tamanho de cada subdiretório em tools
10+
echo "Detalhamento do diretório tools:"
11+
du -sh tools/* | sort -hr
12+
13+
# Verificar tamanho total do projeto
14+
TOTAL_SIZE=$(du -sh . | cut -f1)
15+
echo "Tamanho total do projeto: $TOTAL_SIZE"
16+
17+
# Aviso sobre o limite do marketplace
18+
echo ""
19+
echo "NOTA: O VS Code Marketplace tem um limite de 100MB para extensões."
20+
echo "Se o tamanho total estiver próximo ou acima desse limite, considere:"
21+
echo "1. Remover arquivos desnecessários"
22+
echo "2. Comprimir as ferramentas"
23+
echo "3. Hospedar as ferramentas em um servidor externo"

config.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"tools": {
3+
"gcc": {
4+
"url": "",
5+
"installed": false
6+
},
7+
"ps1sdk": {
8+
"url": "",
9+
"installed": false
10+
},
11+
"emulator": {
12+
"url": "",
13+
"installed": false
14+
}
15+
}
16+
}

example-urls.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# URLs de Exemplo para Ferramentas do PlayStation 1
2+
3+
Aqui estão algumas URLs de exemplo que você pode usar para configurar o ambiente de desenvolvimento do PlayStation 1.
4+
Note que estas URLs são apenas exemplos e podem não estar funcionando. Você deve procurar as versões mais recentes destas ferramentas.
5+
6+
## GCC para PlayStation 1
7+
8+
- https://github.com/psxdev/gcc/releases/download/v1.0.0/gcc-ps1-1.0.0.zip
9+
- http://psx.arthus.net/sdk/Psy-Q/PSYQ_SDK.zip (inclui GCC)
10+
11+
## SDK do PlayStation 1
12+
13+
- https://github.com/psxdev/psxsdk/releases/download/v1.0.0/psxsdk-1.0.0.zip
14+
- https://github.com/grumpycoders/pcsx-redux/releases/download/sdk-v3/psyq-sdk-v3.zip
15+
16+
## Emuladores do PlayStation 1
17+
18+
- https://github.com/stenzek/duckstation/releases/download/latest/duckstation-mac-release.zip (DuckStation para macOS)
19+
- https://github.com/grumpycoders/pcsx-redux/releases/download/latest/pcsx-redux-mac.zip (PCSX-Redux para macOS)
20+
21+
## Recursos Adicionais
22+
23+
- [PsyQ SDK Documentation](https://psx.arthus.net/sdk/Psy-Q/DOCS/)
24+
- [PlayStation 1 Development Wiki](https://psx-spx.consoledev.net/)
25+
- [PSX.Dev Community](https://psx.dev/)
26+
27+
## Como Obter URLs Atualizadas
28+
29+
1. Visite os repositórios GitHub dos projetos:
30+
- [PCSX-Redux](https://github.com/grumpycoders/pcsx-redux/releases)
31+
- [DuckStation](https://github.com/stenzek/duckstation/releases)
32+
- [PSX SDK](https://github.com/psxdev/psxsdk/releases)
33+
34+
2. Procure por sites de desenvolvimento de PlayStation 1:
35+
- [PSX.Dev](https://psx.dev/)
36+
- [PSX Scene](https://www.psx-scene.com/)
37+
38+
3. Fóruns de desenvolvimento de jogos retro:
39+
- [NeoDev](https://www.neodev.org/)
40+
- [GBADev](https://gbadev.org/) (também tem recursos para PlayStation)

0 commit comments

Comments
 (0)