Monday, December 16, 2024

BELAJAR MEMBUAT SHADERS UNTUK PPSSP BAGIAN 3


Setelah sebelumnya kita belajar tipe data Sekarang kita belajar Mix

Mixing Efek dalam Shader: Memahami Proses Penggabungan dengan Analoginya


Bayangkan Anda sedang memasak. Anda punya bahan dasar seperti nasi, dan ingin menambah rasa dengan sedikit bumbu. Sama seperti itu, dalam shader, kita bisa "mencampur" efek dengan menggunakan fungsi mix. Fungsi ini bekerja untuk menggabungkan dua nilai atau efek yang berbeda berdasarkan proporsi tertentu, mirip seperti menambahkan bumbu ke dalam masakan agar lebih enak!


Mari kita lihat contoh sederhana tentang bagaimana shader bisa menggunakan efek mixing ini.


Contoh Shader Post-Processing


#ifdef GL_ES

precision mediump float;

precision highp int;

#endif


varying vec2 v_texcoord0;

uniform sampler2D sampler0;


void main(){

   vec4 base = texture2D(sampler0, v_texcoord0);

   vec3 ambienColor = vec3(0.2, 0.3, 0.5);

   vec3 color = base.rgb;

   vec3 final = mix(ambienColor, color, 0.8);

   gl_FragColor = vec4(final, 1.0);

}


Penjelasan Komponen Shader


1. Apa itu ambienColor? ambienColor adalah warna tambahan yang ditambahkan ke objek. Dalam hal ini, objek tersebut adalah tekstur yang diambil dari sampler0, yaitu layar atau gambar saat ini. Warna ini tidak langsung mengubah warna dasar, tapi memberikan tambahan pencahayaan atau nuansa tertentu.


Misalnya, jika objek tampak gelap, Anda bisa menambahkan sedikit "cahaya" atau warna dengan ambienColor agar tampak lebih terang. Ini memberikan kesan bahwa objek terkena cahaya ambient (cahaya yang menyebar merata di seluruh ruang).



2. Apa itu color? color mengakses saluran warna RGB dari gambar dasar yang diambil dari sampler0. Anda bisa mengatur setiap saluran warna (merah, hijau, biru) sesuai keinginan.


Misalnya, jika Anda ingin objek menjadi lebih "pucat" atau lebih "gelap", Anda bisa menyesuaikan nilai-nilai dalam color seperti ini:


color.r = 0.5; // Mengatur nilai merah

color.g = 0.5; // Mengatur nilai hijau

color.b = 0.5; // Mengatur nilai biru


Setiap saluran ini mewakili warna dasar dalam objek. Jika color.r = 0.5, artinya Anda mengatur warna merah objek menjadi setengah dari nilai penuh.



3. Apa itu final? final adalah hasil penggabungan antara ambienColor dan color. Di sini kita menggunakan fungsi mix untuk mencampur kedua warna tersebut. Dengan intensitas 0.8, kita memberi lebih banyak bobot pada warna asli (color), tapi tetap menambahkan sedikit sentuhan dari ambienColor. Anda bisa mengatur nilai 0.8 ini agar campuran warna lebih banyak dari color atau lebih banyak dari ambienColor sesuai kebutuhan.



4. Apa itu gl_FragColor? gl_FragColor adalah cara untuk menampilkan warna yang sudah dihitung ke layar. Di GLSL, nilai yang dikirimkan ke gl_FragColor harus berformat vec4, yaitu sebuah nilai yang memiliki empat komponen: Red, Green, Blue, dan Alpha (transparansi).


Karena final adalah vec3 (hanya tiga nilai), kita perlu menambahkan satu nilai lagi untuk membuatnya menjadi vec4. Nilai terakhir ini adalah 1.0, yang berarti opasitas penuh atau tidak transparan.


Jadi, penulisan ini:


gl_FragColor = vec4(final, 1.0);


Akan menggabungkan tiga komponen warna (final) dengan nilai alpha 1.0 agar tampil di layar.


Jika langsung menggunakan:


gl_FragColor = final;


Ini akan menghasilkan error karena gl_FragColor membutuhkan 4 nilai, sementara final hanya memberikan 3.




Kesimpulan


Shader ini adalah cara sederhana untuk memanipulasi warna dan efek di dalam grafis komputer. Dengan menggunakan fungsi mix, Anda bisa mencampurkan warna dasar dengan efek lain, seperti warna ambient atau pencahayaan, dan mengontrol intensitas campuran tersebut.


Sekarang, Anda sudah memiliki dasar yang kuat untuk menciptakan shader yang lebih kompleks, dengan memanfaatkan penggabungan berbagai efek untuk menciptakan tampilan yang lebih menarik! Semoga penjelasan ini membantu Anda memahami cara kerja mixing efek dalam shader dan memberi inspirasi untuk eksplorasi lebih lanjut dalam pembuatan shader yang unik!



Sunday, December 15, 2024

MEMBUAT SHADERS UNTUK PPSSPP BAGIAN 2

Membuat Shaders Lebih Fleksibel di PPSSPP


Setelah kita mempelajari dasar-dasar Vertex dan Fragment Shaders, sekarang kita akan belajar cara membuat shader lebih fleksibel dengan pengaturan parameter yang dapat diubah langsung melalui aplikasi PPSSPP. Dengan cara ini, kamu bisa lebih mudah menyesuaikan efek visual tanpa perlu mengedit kode shader secara manual.

Shader yang Lebih Fleksibel

Untuk membuat shader lebih fleksibel, kita akan menggunakan uniform variables dan parameter yang dapat diatur dari file .ini di PPSSPP. Mari kita lihat contoh kode shader yang sudah dimodifikasi agar lebih fleksibel:

#ifdef GL_ES
precision lowp float;
precision mediump int;
#endif

varying vec2 v_texcoord0;
uniform sampler2D sampler0;
uniform vec4 u_setting; // tambahan uniform baru

#define KECERAHAN u_setting.x

void main(){
  vec4 base = texture2D(sampler0, v_texcoord0);
  vec3 color = base.rgb;
  color *= KECERAHAN; // Mengatur kecerahan berdasarkan nilai u_setting.x
  gl_FragColor = vec4(color, 1.0);
}

Penjelasan Kode

Pada contoh kode shader di atas, ada beberapa perubahan yang membuat shader ini lebih fleksibel:

uniform vec4 u_setting;

Ini adalah uniform variable yang memungkinkan kita untuk mengirim data dari aplikasi utama (seperti PPSSPP) ke shader. Dalam contoh ini, u_setting berfungsi untuk mengatur kecerahan layar.


#define KECERAHAN u_setting.x

#define berfungsi seperti kabel yang menghubungkan variabel u_setting.x ke bagian lain dari shader. Kita menghubungkan nilai pertama dari u_setting (yaitu u_setting.x) dengan variabel KECERAHAN di shader. Jadi, perubahan nilai u_setting.x akan langsung mempengaruhi kecerahan.



Tipe Data dalam Shader

Di dalam shader, kita sering menggunakan beberapa tipe data untuk menangani informasi yang berbeda. Berikut adalah tipe data yang sering digunakan:

vec2: Memiliki dua nilai (x, y). Biasanya digunakan untuk koordinat tekstur.

vec3: Memiliki tiga nilai (x, y, z). Digunakan untuk perhitungan warna atau efek pencahayaan.

vec4: Memiliki empat nilai (x, y, z, w). Biasanya digunakan untuk warna akhir (output dari fragment shader).


Apa Itu uniform?

uniform adalah cara untuk memberi tahu shader agar bisa mengakses data dari program utama (seperti aplikasi PPSSPP). Data ini dikirim dari program utama ke shader.

Contoh:

uniform sampler2D sampler0;

Ini berarti shader dapat mengakses sampler2D yang disebut sampler0, yang merupakan layar saat ini di PPSSPP.


Apa Itu varying?

varying adalah cara untuk mengirimkan data dari vertex shader ke fragment shader. Ini seperti sebuah transmisi yang menghubungkan dua bagian shader.

Misalnya, kita bisa mengatur varying vec2 v_texcoord0 di vertex shader, kemudian mengirimnya ke fragment shader untuk digunakan dalam proses pewarnaan.

Mengatur Parameter Shaders di PPSSPP

Agar lebih fleksibel, kita bisa mengatur nilai parameter shader langsung dari aplikasi PPSSPP. Caranya adalah dengan menggunakan file .ini. Berikut adalah contoh bagaimana cara mengonfigurasi parameter kecerahan menggunakan file .ini:

Contoh File .ini

[KECERAHAN]
Name = Kecerahan
Author = Nama Saya
Fragment = Kecerahan.fsh
Vertex = Kecerahan.vsh
SettingName1 = KECERAHAN
SettingDefaultValue1 = 1.0 // Nilai default kecerahan
SettingMaxValue1 = 10.0 // Nilai maksimum kecerahan
SettingMinValue1 = 1.0 // Nilai minimum kecerahan
SettingStep1 = 0.5 // Langkah perubahan nilai kecerahan

Penjelasan File .ini

SettingName1 = Kecerahan: Nama parameter yang akan digunakan di shader.

SettingDefaultValue1 = 1.0: Nilai awal kecerahan (nilai default).

SettingMaxValue1 = 10.0: Nilai maksimum kecerahan.

SettingMinValue1 = 1.0: Nilai minimum kecerahan.

SettingStep1 = 0.5: Langkah perubahan nilai kecerahan (misalnya, setiap perubahan nilai kecerahan akan bertambah 0.5).


Dengan file .ini ini, kalian bisa mengubah kecerahan layar langsung dari aplikasi PPSSPP tanpa perlu mengedit kode shader secara manual.

Keuntungan Membuat Shader yang Fleksibel

Pengaturan Lebih Mudah: Dengan menggunakan file .ini, kalian bisa mengubah berbagai parameter shader langsung dari aplikasi PPSSPP.

Kontrol Lebih Tinggi: Kalian bisa mengubah efek grafis seperti kecerahan, kontras, atau saturasi dengan lebih mudah.

Eksperimen Lebih Cepat: Mengubah parameter seperti nilai kecerahan atau warna langsung dari aplikasi membuat proses eksperimen menjadi lebih cepat dan praktis.


Kesimpulan

Dengan memahami konsep uniform dan varying serta cara mengonfigurasi shader di PPSSPP menggunakan file .ini, kalian dapat membuat shader yang lebih fleksibel dan mudah disesuaikan. Ini memberi kalian kendali penuh atas efek grafis yang diterapkan di game yang dijalankan di PPSSPP.

Pada tutorial berikutnya, kita akan membahas lebih dalam tentang bagaimana membuat shader yang lebih kompleks dengan menambahkan efek pencahayaan dan transparansi. Terus bereksperimen dan jangan ragu untuk mencoba berbagai efek yang kalian inginkan!

Saturday, December 14, 2024

MEMBUAT SHADERS UNTUK PPSSPP

Tutorial Membuat Custom Shaders untuk PPSSPP


PPSSPP, emulator PlayStation Portable untuk perangkat mobile, memungkinkan kalian untuk menggunakan custom shaders untuk mempercantik tampilan grafis game. Dalam tutorial ini, kita akan memandu kalian langkah demi langkah untuk membuat dan mengatur custom shaders yang dapat diterapkan ke layar emulator.


Pendahuluan


PPSSPP mendukung penggunaan custom shaders, yang memungkinkan kalian menambahkan efek grafis sendiri, seperti kecerahan, warna, atau bahkan efek visual yang lebih kompleks. Agar shaders dapat bekerja di PPSSPP, kalian perlu menyiapkan tiga file dan mengikuti beberapa langkah mudah.


Langkah-langkah Menyiapkan Shaders


1. Membuat Folder untuk Shaders


Langkah pertama adalah membuat folder untuk menyimpan shaders di perangkat kalian. Ikuti langkah berikut:


1. Buat folder bernama Shaders di dalam direktori PSP yang ada di memori SDCard atau memori internal perangkat kalian.




2. Menyiapkan Tiga File


PPSSPP membutuhkan tiga file untuk menjalankan shaders:


File konfigurasi (.ini)


Vertex shader (.vsh)


Fragment shader (.fsh)



File 1: Konfigurasi (File .ini)


File konfigurasi ini memberitahu PPSSPP tentang nama shader, pembuatnya, serta lokasi file vertex dan fragment shader. Berikut adalah contoh format file .ini:


[CustomShader]

Name = Shader Kecerahan

Author = Nama Pembuat

Fragmen = shaderKecerahan.fsh

Vertex = shaderVertex.vsh


Gantilah CustomShader, Shader Kecerahan, dan Nama Pembuat sesuai kebutuhan.


File 2: Vertex Shader (.vsh)


Vertex shader adalah tempat kita mengatur area yang akan digambar pada layar. Berikut adalah contoh vertex shader yang sangat sederhana:


#ifdef GL_ES

precision lowp float;

precision highp int;

#endif


attribute vec4 a_position;

attribute vec2 a_texcoord0;

varying vec2 v_texcoord0;


void main() {

  v_texcoord0 = a_texcoord0;

  gl_Position = a_position;

}


Shader ini akan mengatur agar gambar ditampilkan pada seluruh layar emulator.


File 3: Fragment Shader (.fsh)


Fragment shader bertanggung jawab untuk memberikan warna pada setiap pixel yang akan ditampilkan di layar. Berikut adalah contoh fragment shader yang mengubah kecerahan layar:


#ifdef GL_ES

precision lowp float;

precision highp int;

#endif


varying vec2 v_texcoord0;

uniform sampler2D sampler0;


void main() {

   vec4 A = texture2D(sampler0, v_texcoord0);

   vec3 color = A.rgb;

   color *= 1.5; // Atur kecerahan layar

   gl_FragColor = vec4(color, 1.0);

}


Di sini, angka 1.5 dapat diubah untuk meningkatkan atau menurunkan kecerahan layar. Misalnya, jika kalian ingin layar menjadi lebih terang, gunakan nilai lebih tinggi, atau nilai lebih rendah untuk efek lebih gelap.


Contoh Modifikasi Warna


Jika kalian ingin menambahkan efek warna tertentu, misalnya membuat layar menjadi merah, cukup ubah kode pada fragment shader:


color += vec3(1.0, 0.0, 0.0); // Menambah warna merah


Atau, jika ingin menambah intensitas warna merah:


color += vec3(1.0, 0.0, 0.0) * 1.5; // Intensitas merah lebih tinggi


Kesimpulan


Dengan mengikuti langkah-langkah di atas, kalian bisa mulai membuat shader sendiri di PPSSPP. Shader ini dapat digunakan untuk menambahkan berbagai efek visual, seperti kecerahan, saturasi warna, atau bahkan efek-efek grafis lainnya yang kalian inginkan.

ppsspp post processing shaders (DETAIL SHADERS)




cara pasang pindahkan ke folder PSP/Shaders


Monday, December 2, 2024

PPSSPP GLSL SHADERS GENERATOR (SSAO, FRESNEL)

Shader Code Generator

Shader Code Input





Friday, November 29, 2024

PPSSPP GLSL VERTEX SHADERS GENERATOR

Vertex Shader Input & Injection

Vertex Shader Input




PPSSPP GLSL SHADERS FRAGMENT GENERATOR

Shader Code Generator

Shader Code Input





Friday, November 22, 2024

GUNDAM MEMORIES GLSL TEXTURE CREATOR

GUNDAM MEMORIES GLSL TEXTURE

GLSL TEXTURE CREATOR SUPPORT RECTANGLE (512x256 to 2048x1024)

Tuesday, August 20, 2024

NORMAL MAP CREATOR

Normal Map Generator

Normal Map Generator

GLS TEXTURE CREATOR

Image Montage with RGBA Transparency

GLSL TEXTURE CREATOR SUPORT 256px 512px 1024px

Friday, July 5, 2024

OFFSET ADDRESS FOR MHP3RD AUDIO MODS



Music Offsets for Monster Hunter Portable 3rd

You Can Use These Offsets to Change Music in Monster Hunter Portable 3rd

Offset Music Description
3cdaf000 Village Theme
3d300800 Character Selection Theme
453bb000 Sandy Plain Battle Theme
45ca1000 Misty Peak Battle Theme
45e27800 Pelagus Battle Theme
3cd0a000 Well Done Steak Voice
45592800 Flooded Forest Battle Theme
How to create a patch file
Create data_install.txt with contents, examples

5721,NONE, XXXFFF "replaced by offset address" then save in txt extension

Make sure data_install.txt is in the same directory as the file you want to make a patch

Then run the command

Java -jar mhtools.jar --create-patch Thefile.bin.enc mhp3rd_data.bin

It will create a patch file that can be applied to mhp3rd games 

HEXADECIMAL TOOLS

Hex Editor

Hex Editor

Little Endian & Big Endian Converter

Converted Value:

Decimal to Hexadecimal Converter

Hexadecimal Value:

Text to Hexadecimal Converter

Hexadecimal Value:

Hexadecimal to Text Converter

Text Value:

Hexadecimal Offset Subtraction

Result:

Tuesday, July 2, 2024

Ace combat x2 joins ASSAULT GLSL



 This is ace combat x 2 joins ASSAULT by modifying the GLSL shaders code,,

So it is possible to apply reflection effects to textures by changing a little code in the GLSL shaders, 

If you want to use this effect on textures, you have to use ppsspp build glsl, to make it possible to edit the glsl shaders code...

The process is the same as using texture replacement

The difference is that the code location is in Android/data/org.ppsspp.ppsspp/files/glsl

Ppsspp glsl apk

GLSL shaders

move the shaders code to android/data/org.ppsspp.ppsspp/files/glsl/

Currently it can only run on devices with PowerVr GPU GE820

For PPSSPP you must activate it using hardware transform and software skining transform and software skining must be active

This only works for Android

To make GLSL TEXTURE, YOU CAN MAKE IT HERE

Sunday, June 30, 2024

MHP3 PATCH UPDATE !!!!!

 


            ------------MHP3RD----PATCH-----UPDATE------------

--patch information

---Quests Randomizer=mix all GH Quests --- VILLAGE

----Music update = added 10 new music from mhrise

--English translation base from Team HGG and Athena

--for the ULJM-05800 game version non-hd

--how to install 

Download uni patcher on playstore, select the game roms and select the patch file then press patch

--Link -- Quests Randomizer patch version-+GDRIVE

--Link---Music patch and Normal Quests --+GDRIVE


Thursday, June 27, 2024

Monster Hunter portable 3 modding tutorial

 In this post I will provide a tutorial for making mods for the Monster Hunter portable 3 game

There are a number of modifications that can be made

Starting from translation, changing audio, changing textures, etc

Basic tutorial

Installing mods/patches can only be done on games that are still original or have never been patched or modified

Steps

First stage is Unpack

To create a patch file, you must have the original file to modify or you can also unpack it from the original game

To unpack you can use mhtools or mhtrans from codestation, you can download it and search on github

For commands 

"Java -jar mhtools.jar --dec-all path your data.bin 1

this will extract all files from data.bin

Stage two

After all the data has been extracted, you can search if you want to modify the BGM, you can search for the wav extension because that is the BGM asset in this game

third phase

Making a patch, to make a patch you have to look at the specifications of the file, especially for game audio the patch file must be smaller than the original file, and must be identical to the original file

Original audio in the MHP3RD game uses atract3 for audio, so if you want to modify the sound, make sure the audio file you create is the same as the original file specifications.

Stage 4

Rebuild The file that you have created for the patch, if you want to make a texture patch you have to return it to the .pak extension, if you want to patch translate you have to return it to the .bin extension

Step 5

The process of creating a patch, for an audio example, at the end of the article I will provide a collection of patch tools for this game,

To modify the audio you must have a .wav pcm 16bit mono file as a replacement file, because that is the specification for creating attract3

Create atract3 , use at3tool to create atract3,,

after that use fill to equalize the size between the mod file and the original file...

Continue the encryption process so that the mod can be applied to the game. The file must be encrypted first.

After that you have to look for the Offset address where the mod file must be placed.

Use hex edit or ida pro etc, utilities that can view binary files,


for example, this is the BGM offset of Yukumo village

The offset 3cdaf000

Now it's time to create the patch file

Use mod-builder to create mod files

Run mod-builder with the command

Mod-builder.exe your file mod example 5950.bin.enc name of mod example viilage.mod and the ofsset 3cdaf000

Mod-builder.exe 5950.bin.enc village.mod 3cdaf000 and press enter

It will create a file that can be applied to the game with the mhp patch tool

Now move the results of the mod file that has been created to the mhp patch tool directory, depending on whether you installed it on C or D

To apply to the game, install m-h-p patch tools, open the mod file, select the game ISO and select patch

For the link = GDRIVE

Tuesday, June 25, 2024

Create a GLSL texture

 To make a GLSL texture, you need 4 textures

First texture

Is the original texture 

Second texture



It should be a normal map to provide details, you can make it using Gimp or Photoshop

Texture number three,command area or also fill it with black texture



Texture number four ,sphere map for pbr efect based on sphere map


The final texture must have an Alpha value as transparent, if there is no transparent value the texture cannot be loaded into the game

Or you can also make it here Create GLSL TEXTURE




Ppsspp build GLSL

 This post specifically discusses the PPSSPP build GLSL version

Ppsspp buildl glsl is a non-official build from ppsspp directly

Ppsspp build GLSL supports code injection to give more effects to special textures

By editing the GLSL shaders stored in Android/data/org.ppsspp.ppsspp/files/glsl

You can apply PBR (PHYSICALLY BASED RENDERING) effects in the game

Like this


For games that support it for now

Monster Hunter freedom

Monster Hunter freedom unite

Monster Hunter freedom 2

Monster Hunter portable 3

Ace combat join assault

Ace combat ace of deception

Dynasty warrior vol.2

Samurai warrior

Gundam vs gundam next plus

Gundam rengou vs zhaft

You can get the application here

Link = Gdrive

BELAJAR MEMBUAT SHADERS UNTUK PPSSP BAGIAN 3

Setelah sebelumnya kita belajar tipe data Sekarang kita belajar Mix Mixing Efek dalam Shader: Memahami Proses Penggabungan dengan Analoginya...