mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Add most Japanese kanji, the brute force way.
Hope everything supports 2048x2048 textures.
This commit is contained in:
parent
32f344d6bd
commit
42e4dc897e
17 changed files with 43858 additions and 1039 deletions
22099
Core/Util/ppge_atlas.cpp
22099
Core/Util/ppge_atlas.cpp
File diff suppressed because it is too large
Load diff
|
@ -169,8 +169,8 @@ static void ReadClut32(u32 *clutBuf32) {
|
|||
}
|
||||
}
|
||||
|
||||
void *TextureCache::UnswizzleFromMem(u32 texaddr, u32 bytesPerPixel, u32 level) {
|
||||
const u32 rowWidth = (bytesPerPixel > 0) ? ((gstate.texbufwidth[level] & 0x3FF) * bytesPerPixel) : ((gstate.texbufwidth[level] & 0x3FF) / 2);
|
||||
void *TextureCache::UnswizzleFromMem(u32 texaddr, u32 bufw, u32 bytesPerPixel, u32 level) {
|
||||
const u32 rowWidth = (bytesPerPixel > 0) ? (bufw * bytesPerPixel) : ((bufw & 0x3FF) / 2);
|
||||
const u32 pitch = rowWidth / 4;
|
||||
const int bxc = rowWidth / 16;
|
||||
int byc = ((1 << ((gstate.texsize[level] >> 8) & 0xf)) + 7) / 8;
|
||||
|
@ -260,7 +260,12 @@ inline void DeIndexTextureNoSwizzle(ClutT *dest, const u32 texaddr, int length,
|
|||
}
|
||||
|
||||
void *TextureCache::readIndexedTex(int level, u32 texaddr, int bytesPerIndex) {
|
||||
int length = (gstate.texbufwidth[level] & 0x3FF) * (1 << ((gstate.texsize[level] >> 8) & 0xf));
|
||||
// Special rules for kernel textures (PPGe):
|
||||
int mask = 0x3FF;
|
||||
if (texaddr < 0x08800000)
|
||||
mask = 0x1FFF;
|
||||
int bufw = gstate.texbufwidth[level] & mask;
|
||||
int length = bufw * (1 << ((gstate.texsize[level] >> 8) & 0xf));
|
||||
void *buf = NULL;
|
||||
switch ((gstate.clutformat & 3)) {
|
||||
case GE_CMODE_16BIT_BGR5650:
|
||||
|
@ -286,7 +291,7 @@ void *TextureCache::readIndexedTex(int level, u32 texaddr, int bytesPerIndex) {
|
|||
}
|
||||
} else {
|
||||
const u16 *clut = clutBuf16;
|
||||
UnswizzleFromMem(texaddr, bytesPerIndex, level);
|
||||
UnswizzleFromMem(texaddr, bufw, bytesPerIndex, level);
|
||||
switch (bytesPerIndex) {
|
||||
case 1:
|
||||
DeIndexTexture(tmpTexBuf16.data(), (u8 *) tmpTexBuf32.data(), length, clut);
|
||||
|
@ -327,7 +332,7 @@ void *TextureCache::readIndexedTex(int level, u32 texaddr, int bytesPerIndex) {
|
|||
buf = tmpTexBuf32.data();
|
||||
} else {
|
||||
const u32 *clut = clutBuf32;
|
||||
UnswizzleFromMem(texaddr, bytesPerIndex, level);
|
||||
UnswizzleFromMem(texaddr, bufw, bytesPerIndex, level);
|
||||
// Since we had to unswizzle to tmpTexBuf32, let's output to tmpTexBuf16.
|
||||
tmpTexBuf16.resize(length * 2);
|
||||
u32 *dest32 = (u32 *) tmpTexBuf16.data();
|
||||
|
@ -902,8 +907,10 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, int level)
|
|||
|
||||
u32 texaddr = (gstate.texaddr[level] & 0xFFFFF0) | ((gstate.texbufwidth[level] << 8) & 0x0F000000);
|
||||
|
||||
int bufw = gstate.texbufwidth[level] & 0x3ff;
|
||||
|
||||
int mask = 0x3ff;
|
||||
if (texaddr < 0x08800000)
|
||||
mask = 0x1FFF;
|
||||
int bufw = gstate.texbufwidth[level] & mask;
|
||||
|
||||
int w = 1 << (gstate.texsize[level] & 0xf);
|
||||
int h = 1 << ((gstate.texsize[level] >> 8) & 0xf);
|
||||
|
@ -934,7 +941,7 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, int level)
|
|||
tmpTexBuf16[i + 1] = clut[GetClutIndex((index >> 4) & 0xf) + clutSharingOffset];
|
||||
}
|
||||
} else {
|
||||
UnswizzleFromMem(texaddr, 0, level);
|
||||
UnswizzleFromMem(texaddr, bufw, 0, level);
|
||||
for (int i = 0, j = 0; i < bufw * h; i += 8, j++)
|
||||
{
|
||||
u32 n = tmpTexBuf32[j];
|
||||
|
@ -951,6 +958,7 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, int level)
|
|||
|
||||
case GE_CMODE_32BIT_ABGR8888:
|
||||
{
|
||||
tmpTexBuf32.resize(bufw * h);
|
||||
ReadClut32(clutBuf32);
|
||||
const u32 *clut = clutBuf32;
|
||||
u32 clutSharingOff = 0;//gstate.mipmapShareClut ? 0 : level * 16;
|
||||
|
@ -964,7 +972,7 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, int level)
|
|||
}
|
||||
} else {
|
||||
u32 pixels = bufw * h;
|
||||
UnswizzleFromMem(texaddr, 0, level);
|
||||
UnswizzleFromMem(texaddr, bufw, 0, level);
|
||||
for (int i = pixels - 8, j = (pixels / 8) - 1; i >= 0; i -= 8, j--) {
|
||||
u32 n = tmpTexBuf32[j];
|
||||
for (int k = 0; k < 8; k++) {
|
||||
|
@ -1021,7 +1029,7 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, int level)
|
|||
finalBuf = tmpTexBuf16.data();
|
||||
}
|
||||
else
|
||||
finalBuf = UnswizzleFromMem(texaddr, 2, level);
|
||||
finalBuf = UnswizzleFromMem(texaddr, bufw, 2, level);
|
||||
break;
|
||||
|
||||
case GE_TFMT_8888:
|
||||
|
@ -1033,7 +1041,7 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, int level)
|
|||
finalBuf = tmpTexBuf32.data();
|
||||
}
|
||||
else
|
||||
finalBuf = UnswizzleFromMem(texaddr, 4, level);
|
||||
finalBuf = UnswizzleFromMem(texaddr, bufw, 4, level);
|
||||
break;
|
||||
|
||||
case GE_TFMT_DXT1:
|
||||
|
@ -1168,7 +1176,8 @@ bool TextureCache::DecodeTexture(u8* output, GPUgstate state)
|
|||
|
||||
const u8 *texptr = Memory::GetPointer(texaddr);
|
||||
|
||||
int bufw = gstate.texbufwidth[0] & 0x3ff;
|
||||
int mask = texaddr < 0x08800000 ? 0x1FFF : 0x3ff;
|
||||
int bufw = gstate.texbufwidth[0] & mask;
|
||||
|
||||
int w = 1 << (gstate.texsize[0] & 0xf);
|
||||
int h = 1 << ((gstate.texsize[0]>>8) & 0xf);
|
||||
|
@ -1206,7 +1215,7 @@ bool TextureCache::DecodeTexture(u8* output, GPUgstate state)
|
|||
tmpTexBuf16[i + 1] = clut[GetClutIndex((index >> 4) & 0xf) + clutSharingOff];
|
||||
}
|
||||
} else {
|
||||
UnswizzleFromMem(texaddr, 0, level);
|
||||
UnswizzleFromMem(texaddr, bufw, 0, level);
|
||||
for (int i = 0, j = 0; i < bufw * h; i += 8, j++)
|
||||
{
|
||||
u32 n = tmpTexBuf32[j];
|
||||
|
@ -1236,7 +1245,7 @@ bool TextureCache::DecodeTexture(u8* output, GPUgstate state)
|
|||
}
|
||||
} else {
|
||||
u32 pixels = bufw * h;
|
||||
UnswizzleFromMem(texaddr, 0, level);
|
||||
UnswizzleFromMem(texaddr, bufw, 0, level);
|
||||
for (int i = pixels - 8, j = (pixels / 8) - 1; i >= 0; i -= 8, j--) {
|
||||
u32 n = tmpTexBuf32[j];
|
||||
for (int k = 0; k < 8; k++) {
|
||||
|
@ -1293,7 +1302,7 @@ bool TextureCache::DecodeTexture(u8* output, GPUgstate state)
|
|||
finalBuf = tmpTexBuf16.data();
|
||||
}
|
||||
else
|
||||
finalBuf = UnswizzleFromMem(texaddr, 2, level);
|
||||
finalBuf = UnswizzleFromMem(texaddr, bufw, 2, level);
|
||||
break;
|
||||
|
||||
case GE_TFMT_8888:
|
||||
|
@ -1305,7 +1314,7 @@ bool TextureCache::DecodeTexture(u8* output, GPUgstate state)
|
|||
finalBuf = tmpTexBuf32.data();
|
||||
}
|
||||
else
|
||||
finalBuf = UnswizzleFromMem(texaddr, 4, level);
|
||||
finalBuf = UnswizzleFromMem(texaddr, bufw, 4, level);
|
||||
break;
|
||||
|
||||
case GE_TFMT_DXT1:
|
||||
|
|
|
@ -87,7 +87,7 @@ private:
|
|||
};
|
||||
|
||||
void Decimate(); // Run this once per frame to get rid of old textures.
|
||||
void *UnswizzleFromMem(u32 texaddr, u32 bytesPerPixel, u32 level);
|
||||
void *UnswizzleFromMem(u32 texaddr, u32 bufw, u32 bytesPerPixel, u32 level);
|
||||
void *readIndexedTex(int level, u32 texaddr, int bytesPerIndex);
|
||||
void UpdateSamplingParams(TexCacheEntry &entry, bool force);
|
||||
void LoadTextureLevel(TexCacheEntry &entry, int level);
|
||||
|
|
|
@ -665,27 +665,21 @@ void SystemScreen::render() {
|
|||
UICheckBox(GEN_ID, x, y += stride, s->T("Show Debug Statistics"), ALIGN_TOPLEFT, &g_Config.bShowDebugStats);
|
||||
UICheckBox(GEN_ID, x, y += stride, s->T("Show FPS"), ALIGN_TOPLEFT, &g_Config.bShowFPSCounter);
|
||||
|
||||
// TODO: Make a dynamic language selector that looks for INI files.
|
||||
VLinear vlang(600, 70, 10);
|
||||
|
||||
VLinear vlang(500, 70, 10);
|
||||
if (UIButton(GEN_ID, vlang, LARGE_BUTTON_WIDTH, 0, "English", ALIGN_TOPLEFT)) {
|
||||
g_Config.languageIni = "en_US";
|
||||
i18nrepo.LoadIni(g_Config.languageIni);
|
||||
// After this, g and s are no longer valid. Let's return, some flicker is okay.
|
||||
g = GetI18NCategory("General");
|
||||
s = GetI18NCategory("System");
|
||||
}
|
||||
if (UIButton(GEN_ID, vlang, LARGE_BUTTON_WIDTH, 0, "Swedish", ALIGN_TOPLEFT)) {
|
||||
g_Config.languageIni = "sv_SE";
|
||||
i18nrepo.LoadIni(g_Config.languageIni);
|
||||
g = GetI18NCategory("General");
|
||||
s = GetI18NCategory("System");
|
||||
}
|
||||
if (UIButton(GEN_ID, vlang, LARGE_BUTTON_WIDTH, 0, "German", ALIGN_TOPLEFT)) {
|
||||
g_Config.languageIni = "de_DE";
|
||||
i18nrepo.LoadIni(g_Config.languageIni);
|
||||
g = GetI18NCategory("General");
|
||||
s = GetI18NCategory("System");
|
||||
// TODO: Make a dynamic language selector that looks for INI files.
|
||||
#define NUMLANGS 6
|
||||
static const char *langs[NUMLANGS] = {"English", "Swedish", "German", "Chinese", "Japanese", "Russian"};
|
||||
static const char *langCodes[NUMLANGS] = {"en_US", "sv_SE", "de_DE", "zh_CN", "ja_JA", "ru_RU"};
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
if (UIButton(GEN_ID_LOOP(i), vlang, LARGE_BUTTON_WIDTH, 0, langs[i], ALIGN_TOPLEFT)) {
|
||||
g_Config.languageIni = langCodes[i];
|
||||
i18nrepo.LoadIni(g_Config.languageIni);
|
||||
// After this, g and s are no longer valid. Let's return, some flicker is okay.
|
||||
g = GetI18NCategory("General");
|
||||
s = GetI18NCategory("System");
|
||||
}
|
||||
}
|
||||
UIEnd();
|
||||
}
|
||||
|
|
22541
UI/ui_atlas.cpp
22541
UI/ui_atlas.cpp
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
1024
|
||||
font UBUNTU24 C:/Windows/Fonts/KozGoPro-Medium.otf UWhk 30
|
||||
2048
|
||||
font UBUNTU24 C:/Windows/Fonts/KozGoPro-Medium.otf UWhkcRG 30
|
||||
font UBUNTU48 source_assets/font/zrnic.ttf UW 55
|
||||
image SOLIDWHITE white.png copy
|
||||
image I_CROSS source_assets/image/cross.png copy
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
[MainMenu]
|
||||
Credits = Credits
|
||||
Exit = Quit
|
||||
Exit = Exit
|
||||
Load = Load...
|
||||
Settings = Settings
|
||||
Recent = Recent
|
||||
[Developer]
|
||||
Dump frame to log = Dump frame to log
|
||||
Load language ini = Load language ini
|
||||
|
@ -28,3 +29,21 @@ Fast Memory = Fast Memory (unstable)
|
|||
Show Debug Statistics = Show Debug Statistics
|
||||
Show FPS = Show FPS
|
||||
System Settings = System Settings
|
||||
[Audio]
|
||||
Audio Settings = Audio Settings
|
||||
Enable Sound = Enable Sound
|
||||
[Controls]
|
||||
Controls Settings = Controls Settings
|
||||
OnScreen = On-Screen Touch Controls
|
||||
Tilt = Tilt to Analog (horizontal)
|
||||
[Graphics]
|
||||
2X = 2x Render Resolution
|
||||
Buffered Rendering = Buffered Rendering
|
||||
Frame Skipping = Frame Skipping
|
||||
Graphics Settings = Graphics Settings
|
||||
Hardware Transform = Hardware Transform
|
||||
Linear Filtering = Linear Filtering
|
||||
Media Engine = Media Engine
|
||||
Mipmapping = Mipmapping
|
||||
Stream VBO = Stream VBO
|
||||
Vertex Cache = Vertex Cache
|
||||
|
|
49
lang/ja_JA.ini
Normal file
49
lang/ja_JA.ini
Normal file
|
@ -0,0 +1,49 @@
|
|||
[MainMenu]
|
||||
Credits = Credits
|
||||
Exit = 終了する
|
||||
Load = Load...
|
||||
Settings = 設定
|
||||
Recent = Recent
|
||||
[Developer]
|
||||
Dump frame to log = Dump frame to log
|
||||
Load language ini = Load language ini
|
||||
Run CPU tests = Run CPU tests
|
||||
Save language ini = Save language ini
|
||||
[General]
|
||||
Back = Back
|
||||
[MainSettings]
|
||||
Audio = Audio
|
||||
AudioDesc = Adjust Audio Settings
|
||||
Controls = Controls
|
||||
ControlsDesc = On Screen Controls, Large Buttons
|
||||
Developer = Developer
|
||||
DeveloperDesc = Run CPU test, Dump Next Frame Log
|
||||
Graphics = Graphics
|
||||
GraphicsDesc = Change graphics options
|
||||
Settings = Settings
|
||||
System = System
|
||||
SystemDesc = Turn on Dynarec (JIT), Fast Memory
|
||||
[System]
|
||||
Dynarec = Dynarec (JIT)
|
||||
Fast Memory = Fast Memory (unstable)
|
||||
Show Debug Statistics = Show Debug Statistics
|
||||
Show FPS = Show FPS
|
||||
System Settings = System Settings
|
||||
[Audio]
|
||||
Audio Settings = Audio Settings
|
||||
Enable Sound = Enable Sound
|
||||
[Controls]
|
||||
Controls Settings = Controls Settings
|
||||
OnScreen = On-Screen Touch Controls
|
||||
Tilt = Tilt to Analog (horizontal)
|
||||
[Graphics]
|
||||
2X = 2x Render Resolution
|
||||
Buffered Rendering = Buffered Rendering
|
||||
Frame Skipping = Frame Skipping
|
||||
Graphics Settings = Graphics Settings
|
||||
Hardware Transform = Hardware Transform
|
||||
Linear Filtering = Linear Filtering
|
||||
Media Engine = Media Engine
|
||||
Mipmapping = Mipmapping
|
||||
Stream VBO = Stream VBO
|
||||
Vertex Cache = Vertex Cache
|
49
lang/ru_RU.ini
Normal file
49
lang/ru_RU.ini
Normal file
|
@ -0,0 +1,49 @@
|
|||
[MainMenu]
|
||||
Credits = Credits
|
||||
Exit = Выход
|
||||
Load = Load...
|
||||
Settings = настройки
|
||||
Recent = Recent
|
||||
[Developer]
|
||||
Dump frame to log = Dump frame to log
|
||||
Load language ini = Load language ini
|
||||
Run CPU tests = Run CPU tests
|
||||
Save language ini = Save language ini
|
||||
[General]
|
||||
Back = Back
|
||||
[MainSettings]
|
||||
Audio = Audio
|
||||
AudioDesc = Adjust Audio Settings
|
||||
Controls = Controls
|
||||
ControlsDesc = On Screen Controls, Large Buttons
|
||||
Developer = Developer
|
||||
DeveloperDesc = Run CPU test, Dump Next Frame Log
|
||||
Graphics = Graphics
|
||||
GraphicsDesc = Change graphics options
|
||||
Settings = Settings
|
||||
System = System
|
||||
SystemDesc = Turn on Dynarec (JIT), Fast Memory
|
||||
[System]
|
||||
Dynarec = Dynarec (JIT)
|
||||
Fast Memory = Fast Memory (unstable)
|
||||
Show Debug Statistics = Show Debug Statistics
|
||||
Show FPS = Show FPS
|
||||
System Settings = System Settings
|
||||
[Audio]
|
||||
Audio Settings = Audio Settings
|
||||
Enable Sound = Enable Sound
|
||||
[Controls]
|
||||
Controls Settings = Controls Settings
|
||||
OnScreen = On-Screen Touch Controls
|
||||
Tilt = Tilt to Analog (horizontal)
|
||||
[Graphics]
|
||||
2X = 2x Render Resolution
|
||||
Buffered Rendering = Buffered Rendering
|
||||
Frame Skipping = Frame Skipping
|
||||
Graphics Settings = Graphics Settings
|
||||
Hardware Transform = Hardware Transform
|
||||
Linear Filtering = Linear Filtering
|
||||
Media Engine = Media Engine
|
||||
Mipmapping = Mipmapping
|
||||
Stream VBO = Stream VBO
|
||||
Vertex Cache = Vertex Cache
|
|
@ -5,7 +5,7 @@ Credits = Om
|
|||
Exit = Avsluta
|
||||
Load = Ladda...
|
||||
Settings = Inställningar
|
||||
Recent = Recent
|
||||
Recent = Senaste
|
||||
[Developer]
|
||||
Dump frame to log = Dumpa frame till logg
|
||||
Load language ini = Ladda språk-ini
|
||||
|
|
49
lang/zh_CN.ini
Normal file
49
lang/zh_CN.ini
Normal file
|
@ -0,0 +1,49 @@
|
|||
[MainMenu]
|
||||
Credits = Credits
|
||||
Exit = Exit
|
||||
Load = Load...
|
||||
Settings = Settings
|
||||
Recent = Recent
|
||||
[Developer]
|
||||
Dump frame to log = Dump frame to log
|
||||
Load language ini = Load language ini
|
||||
Run CPU tests = Run CPU tests
|
||||
Save language ini = Save language ini
|
||||
[General]
|
||||
Back = Back
|
||||
[MainSettings]
|
||||
Audio = Audio
|
||||
AudioDesc = Adjust Audio Settings
|
||||
Controls = Controls
|
||||
ControlsDesc = On Screen Controls, Large Buttons
|
||||
Developer = Developer
|
||||
DeveloperDesc = Run CPU test, Dump Next Frame Log
|
||||
Graphics = Graphics
|
||||
GraphicsDesc = Change graphics options
|
||||
Settings = Settings
|
||||
System = System
|
||||
SystemDesc = Turn on Dynarec (JIT), Fast Memory
|
||||
[System]
|
||||
Dynarec = Dynarec (JIT)
|
||||
Fast Memory = Fast Memory (unstable)
|
||||
Show Debug Statistics = Show Debug Statistics
|
||||
Show FPS = Show FPS
|
||||
System Settings = System Settings
|
||||
[Audio]
|
||||
Audio Settings = Audio Settings
|
||||
Enable Sound = Enable Sound
|
||||
[Controls]
|
||||
Controls Settings = Controls Settings
|
||||
OnScreen = On-Screen Touch Controls
|
||||
Tilt = Tilt to Analog (horizontal)
|
||||
[Graphics]
|
||||
2X = 2x Render Resolution
|
||||
Buffered Rendering = Buffered Rendering
|
||||
Frame Skipping = Frame Skipping
|
||||
Graphics Settings = Graphics Settings
|
||||
Hardware Transform = Hardware Transform
|
||||
Linear Filtering = Linear Filtering
|
||||
Media Engine = Media Engine
|
||||
Mipmapping = Mipmapping
|
||||
Stream VBO = Stream VBO
|
||||
Vertex Cache = Vertex Cache
|
2
native
2
native
|
@ -1 +1 @@
|
|||
Subproject commit 43b78be9dd5d343a2133e42501ba9b56552c9d4e
|
||||
Subproject commit 3494d9282d1319c7ea982f7d6e4fb7687a151046
|
|
@ -1,5 +1,5 @@
|
|||
512
|
||||
font UBUNTU24 C:/Windows/Fonts/KozGoPro-Medium.otf UWkh 24
|
||||
2048
|
||||
font UBUNTU24 C:/Windows/Fonts/KozGoPro-Medium.otf UWkhcGR 24
|
||||
image I_CROSS source_assets/image/cross.png copy
|
||||
image I_CIRCLE source_assets/image/circle.png copy
|
||||
image I_SQUARE source_assets/image/square.png copy
|
||||
|
|
Loading…
Add table
Reference in a new issue