mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-07 03:04:19 -05:00
Merge branch 'master' into unk_02009EAC
This commit is contained in:
commit
99b7ee252d
|
|
@ -49,7 +49,7 @@ Static arm9
|
|||
Object unk_02014590.o
|
||||
Object unk_02014BF4.o
|
||||
Object unk_02015CC0.o
|
||||
Object unk_02015D14.o
|
||||
Object rs_migrate_string.o
|
||||
Object unk_02015E30.o
|
||||
Object game_init.o
|
||||
Object heap.o
|
||||
|
|
|
|||
|
|
@ -1,238 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.global UNK_020ED734
|
||||
UNK_020ED734: ; 0x020ED734
|
||||
.short 0x0001, 0x01DE, 0x0003, 0x0003, 0x0005, 0x0005, 0x0007, 0x0007
|
||||
.short 0x0009, 0x0009, 0x000B, 0x000B, 0x000C, 0x000C, 0x000E, 0x000E
|
||||
.short 0x0010, 0x0010, 0x0012, 0x0012, 0x0014, 0x0014, 0x0016, 0x0016
|
||||
.short 0x0018, 0x0018, 0x001A, 0x001A, 0x001C, 0x001C, 0x001E, 0x001E
|
||||
.short 0x0020, 0x0020, 0x0022, 0x0022, 0x0025, 0x0025, 0x0027, 0x0027
|
||||
.short 0x0029, 0x0029, 0x002B, 0x002B, 0x002C, 0x002C, 0x002D, 0x002D
|
||||
.short 0x002E, 0x002E, 0x002F, 0x002F, 0x0030, 0x0030, 0x0033, 0x0033
|
||||
.short 0x0036, 0x0036, 0x0039, 0x0039, 0x003C, 0x003C, 0x003F, 0x003F
|
||||
.short 0x0040, 0x0040, 0x0041, 0x0041, 0x0042, 0x0042, 0x0043, 0x0043
|
||||
.short 0x0045, 0x0045, 0x0047, 0x0047, 0x0049, 0x0049, 0x004A, 0x004A
|
||||
.short 0x004B, 0x004B, 0x004C, 0x004C, 0x004D, 0x004D, 0x004E, 0x004E
|
||||
.short 0x004F, 0x004F, 0x0050, 0x0050, 0x0051, 0x0051, 0x0002, 0x0002
|
||||
.short 0x0004, 0x0004, 0x0006, 0x0006, 0x0008, 0x0008, 0x000A, 0x000A
|
||||
.short 0x0044, 0x0044, 0x0046, 0x0046, 0x0048, 0x0048, 0x000D, 0x000D
|
||||
.short 0x000F, 0x000F, 0x0011, 0x0011, 0x0013, 0x0013, 0x0015, 0x0015
|
||||
.short 0x0017, 0x0017, 0x0019, 0x0019, 0x001B, 0x001B, 0x001D, 0x001D
|
||||
.short 0x001F, 0x001F, 0x0021, 0x0021, 0x0023, 0x0023, 0x0026, 0x0026
|
||||
.short 0x0028, 0x0028, 0x002A, 0x002A, 0x0031, 0x0031, 0x0034, 0x0034
|
||||
.short 0x0037, 0x0037, 0x003A, 0x003A, 0x003D, 0x003D, 0x0032, 0x0032
|
||||
.short 0x0035, 0x0035, 0x0038, 0x0038, 0x003B, 0x003B, 0x003E, 0x003E
|
||||
.short 0x0024, 0x0024, 0x0053, 0x0053, 0x0055, 0x0055, 0x0057, 0x0057
|
||||
.short 0x0059, 0x0059, 0x005B, 0x005B, 0x005C, 0x005C, 0x005E, 0x005E
|
||||
.short 0x0060, 0x0060, 0x0062, 0x0062, 0x0064, 0x0064, 0x0066, 0x0066
|
||||
.short 0x0068, 0x0068, 0x006A, 0x006A, 0x006C, 0x006C, 0x006E, 0x006E
|
||||
.short 0x0070, 0x0070, 0x0072, 0x0072, 0x0075, 0x0075, 0x0077, 0x0077
|
||||
.short 0x0079, 0x0079, 0x007B, 0x007B, 0x007C, 0x007C, 0x007D, 0x007D
|
||||
.short 0x007E, 0x007E, 0x007F, 0x007F, 0x0080, 0x0080, 0x0083, 0x0083
|
||||
.short 0x0086, 0x0086, 0x0089, 0x0089, 0x008C, 0x008C, 0x008F, 0x008F
|
||||
.short 0x0090, 0x0090, 0x0091, 0x0091, 0x0092, 0x0092, 0x0093, 0x0093
|
||||
.short 0x0095, 0x0095, 0x0097, 0x0097, 0x0099, 0x0099, 0x009A, 0x009A
|
||||
.short 0x009B, 0x009B, 0x009C, 0x009C, 0x009D, 0x009D, 0x009E, 0x009E
|
||||
.short 0x009F, 0x009F, 0x00A0, 0x00A0, 0x00A1, 0x00A1, 0x0052, 0x0052
|
||||
.short 0x0054, 0x0054, 0x0056, 0x0056, 0x0058, 0x0058, 0x005A, 0x005A
|
||||
.short 0x0094, 0x0094, 0x0096, 0x0096, 0x0098, 0x0098, 0x005D, 0x005D
|
||||
.short 0x005F, 0x005F, 0x0061, 0x0061, 0x0063, 0x0063, 0x0065, 0x0065
|
||||
.short 0x0067, 0x0067, 0x0069, 0x0069, 0x006B, 0x006B, 0x006D, 0x006D
|
||||
.short 0x006F, 0x006F, 0x0071, 0x0071, 0x0073, 0x0073, 0x0076, 0x0076
|
||||
.short 0x0078, 0x0078, 0x007A, 0x007A, 0x0081, 0x0081, 0x0084, 0x0084
|
||||
.short 0x0087, 0x0087, 0x008A, 0x008A, 0x008D, 0x008D, 0x0082, 0x0082
|
||||
.short 0x0085, 0x0085, 0x0088, 0x0088, 0x008B, 0x008B, 0x008E, 0x008E
|
||||
.short 0x0074, 0x0074, 0x00A2, 0x0121, 0x00A3, 0x0122, 0x00A4, 0x0123
|
||||
.short 0x00A5, 0x0124, 0x00A6, 0x0125, 0x00A7, 0x0126, 0x00A8, 0x0127
|
||||
.short 0x00A9, 0x0128, 0x00AA, 0x0129, 0x00AB, 0x012A, 0x00E1, 0x01AB
|
||||
.short 0x00E2, 0x01AC, 0x00E4, 0x01AE, 0x00F1, 0x01BE, 0x00E6, 0x01B0
|
||||
.short 0x00E5, 0x01AF, 0x00EA, 0x00EA, 0x00EB, 0x00EB, 0x00E8, 0x01B2
|
||||
.short 0x00E9, 0x01B3, 0x00EE, 0x01BB, 0x00EF, 0x01BC, 0x0112, 0x0112
|
||||
.short 0x00E3, 0x01AD, 0x00F2, 0x0176, 0x00E7, 0x01B1, 0x00AC, 0x012B
|
||||
.short 0x00AD, 0x012C, 0x00AE, 0x012D, 0x00AF, 0x012E, 0x00B0, 0x012F
|
||||
.short 0x00B1, 0x0130, 0x00B2, 0x0131, 0x00B3, 0x0132, 0x00B4, 0x0133
|
||||
.short 0x00B5, 0x0134, 0x00B6, 0x0135, 0x00B7, 0x0136, 0x00B8, 0x0137
|
||||
.short 0x00B9, 0x0138, 0x00BA, 0x0139, 0x00BB, 0x013A, 0x00BC, 0x013B
|
||||
.short 0x00BD, 0x013C, 0x00BE, 0x013D, 0x00BF, 0x013E, 0x00C0, 0x013F
|
||||
.short 0x00C1, 0x0140, 0x00C2, 0x0141, 0x00C3, 0x0142, 0x00C4, 0x0143
|
||||
.short 0x00C5, 0x0144, 0x00C6, 0x0145, 0x00C7, 0x0146, 0x00C8, 0x0147
|
||||
.short 0x00C9, 0x0148, 0x00CA, 0x0149, 0x00CB, 0x014A, 0x00CC, 0x014B
|
||||
.short 0x00CD, 0x014C, 0x00CE, 0x014D, 0x00CF, 0x014E, 0x00D0, 0x014F
|
||||
.short 0x00D1, 0x0150, 0x00D2, 0x0151, 0x00D3, 0x0152, 0x00D4, 0x0153
|
||||
.short 0x00D5, 0x0154, 0x00D6, 0x0155, 0x00D7, 0x0156, 0x00D8, 0x0157
|
||||
.short 0x00D9, 0x0158, 0x00DA, 0x0159, 0x00DB, 0x015A, 0x00DC, 0x015B
|
||||
.short 0x00DD, 0x015C, 0x00DE, 0x015D, 0x00DF, 0x015E, 0x011F, 0x011F
|
||||
.short 0x00F6, 0x01C4, 0x0163, 0x0163, 0x0175, 0x0175, 0x017B, 0x017B
|
||||
.short 0x0183, 0x0183, 0x0195, 0x0195, 0x019B, 0x019B
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FUN_02015D14
|
||||
FUN_02015D14: ; 0x02015D14
|
||||
cmp r0, #0x7
|
||||
bhi _02015D34
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #0x6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_02015D24: ; jump table (using 16-bit offset)
|
||||
.short _02015D34 - _02015D24 - 2; case 0
|
||||
.short _02015D34 - _02015D24 - 2; case 1
|
||||
.short _02015D38 - _02015D24 - 2; case 2
|
||||
.short _02015D3E - _02015D24 - 2; case 3
|
||||
.short _02015D38 - _02015D24 - 2; case 4
|
||||
.short _02015D42 - _02015D24 - 2; case 5
|
||||
.short _02015D34 - _02015D24 - 2; case 6
|
||||
.short _02015D38 - _02015D24 - 2; case 7
|
||||
_02015D34:
|
||||
mov r0, #0xea
|
||||
bx lr
|
||||
_02015D38:
|
||||
mov r0, #0x6d
|
||||
lsl r0, r0, #0x2
|
||||
bx lr
|
||||
_02015D3E:
|
||||
ldr r0, _02015D48 ; =0x000001B7
|
||||
bx lr
|
||||
_02015D42:
|
||||
ldr r0, _02015D4C ; =0x000001B6
|
||||
bx lr
|
||||
nop
|
||||
_02015D48: .word 0x000001B7
|
||||
_02015D4C: .word 0x000001B6
|
||||
|
||||
thumb_func_start FUN_02015D50
|
||||
FUN_02015D50: ; 0x02015D50
|
||||
cmp r0, #0x7
|
||||
bhi _02015D70
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #0x6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_02015D60: ; jump table (using 16-bit offset)
|
||||
.short _02015D70 - _02015D60 - 2; case 0
|
||||
.short _02015D70 - _02015D60 - 2; case 1
|
||||
.short _02015D74 - _02015D60 - 2; case 2
|
||||
.short _02015D78 - _02015D60 - 2; case 3
|
||||
.short _02015D74 - _02015D60 - 2; case 4
|
||||
.short _02015D7E - _02015D60 - 2; case 5
|
||||
.short _02015D70 - _02015D60 - 2; case 6
|
||||
.short _02015D74 - _02015D60 - 2; case 7
|
||||
_02015D70:
|
||||
mov r0, #0xeb
|
||||
bx lr
|
||||
_02015D74:
|
||||
ldr r0, _02015D84 ; =0x000001B5
|
||||
bx lr
|
||||
_02015D78:
|
||||
mov r0, #0x6e
|
||||
lsl r0, r0, #0x2
|
||||
bx lr
|
||||
_02015D7E:
|
||||
mov r0, #0x6d
|
||||
lsl r0, r0, #0x2
|
||||
bx lr
|
||||
.balign 4
|
||||
_02015D84: .word 0x000001B5
|
||||
|
||||
thumb_func_start FUN_02015D88
|
||||
FUN_02015D88: ; 0x02015D88
|
||||
push {r3-r7, lr}
|
||||
sub sp, #0x10
|
||||
add r6, r3, #0x0
|
||||
str r0, [sp, #0x0]
|
||||
str r1, [sp, #0x4]
|
||||
str r2, [sp, #0x8]
|
||||
cmp r6, #0x1
|
||||
beq _02015D9C
|
||||
mov r2, #0x1
|
||||
b _02015D9E
|
||||
_02015D9C:
|
||||
mov r2, #0x0
|
||||
_02015D9E:
|
||||
ldr r0, [sp, #0x8]
|
||||
mov r4, #0x0
|
||||
sub r0, r0, #0x1
|
||||
str r0, [sp, #0xc]
|
||||
beq _02015E18
|
||||
ldr r1, _02015E28 ; =UNK_020ED734
|
||||
lsl r0, r2, #0x1
|
||||
ldr r5, [sp, #0x4]
|
||||
add r7, r1, r0
|
||||
_02015DB0:
|
||||
ldr r0, [sp, #0x0]
|
||||
ldrb r0, [r0, r4]
|
||||
cmp r0, #0xff
|
||||
beq _02015E18
|
||||
cmp r0, #0xf7
|
||||
blo _02015DEA
|
||||
ldr r0, [sp, #0x8]
|
||||
sub r3, r0, #0x1
|
||||
cmp r3, #0xa
|
||||
blo _02015DC6
|
||||
mov r3, #0xa
|
||||
_02015DC6:
|
||||
mov r1, #0x0
|
||||
cmp r3, #0x0
|
||||
ble _02015DDC
|
||||
mov r0, #0x6b
|
||||
ldr r2, [sp, #0x4]
|
||||
lsl r0, r0, #0x2
|
||||
_02015DD2:
|
||||
add r1, r1, #0x1
|
||||
strh r0, [r2, #0x0]
|
||||
add r2, r2, #0x2
|
||||
cmp r1, r3
|
||||
blt _02015DD2
|
||||
_02015DDC:
|
||||
ldr r0, [sp, #0x4]
|
||||
ldr r2, _02015E2C ; =0x0000FFFF
|
||||
lsl r1, r1, #0x1
|
||||
strh r2, [r0, r1]
|
||||
add sp, #0x10
|
||||
mov r0, #0x0
|
||||
pop {r3-r7, pc}
|
||||
_02015DEA:
|
||||
lsl r0, r0, #0x2
|
||||
ldrh r0, [r7, r0]
|
||||
cmp r0, #0xea
|
||||
beq _02015DF8
|
||||
cmp r0, #0xeb
|
||||
beq _02015E02
|
||||
b _02015E0C
|
||||
_02015DF8:
|
||||
add r0, r6, #0x0
|
||||
bl FUN_02015D14
|
||||
strh r0, [r5, #0x0]
|
||||
b _02015E0E
|
||||
_02015E02:
|
||||
add r0, r6, #0x0
|
||||
bl FUN_02015D50
|
||||
strh r0, [r5, #0x0]
|
||||
b _02015E0E
|
||||
_02015E0C:
|
||||
strh r0, [r5, #0x0]
|
||||
_02015E0E:
|
||||
ldr r0, [sp, #0xc]
|
||||
add r4, r4, #0x1
|
||||
add r5, r5, #0x2
|
||||
cmp r4, r0
|
||||
blo _02015DB0
|
||||
_02015E18:
|
||||
ldr r2, _02015E2C ; =0x0000FFFF
|
||||
ldr r0, [sp, #0x4]
|
||||
lsl r1, r4, #0x1
|
||||
strh r2, [r0, r1]
|
||||
mov r0, #0x1
|
||||
add sp, #0x10
|
||||
pop {r3-r7, pc}
|
||||
nop
|
||||
_02015E28: .word UNK_020ED734
|
||||
_02015E2C: .word 0x0000FFFF
|
||||
|
|
@ -1002,7 +1002,7 @@
|
|||
.extern FUN_02015CC0
|
||||
.extern FUN_02015CE0
|
||||
.extern FUN_02015CF8
|
||||
.extern FUN_02015D88
|
||||
.extern ConvertRSStringToDPStringInternational
|
||||
.extern FUN_02015E30
|
||||
.extern FUN_02015E3C
|
||||
.extern FUN_02015E60
|
||||
|
|
|
|||
|
|
@ -17094,7 +17094,7 @@ _02235B7C:
|
|||
add r0, r4, r0
|
||||
add r0, r1, r0
|
||||
add r1, sp, #0
|
||||
bl FUN_02015D88
|
||||
bl ConvertRSStringToDPStringInternational
|
||||
add r0, sp, #0
|
||||
str r0, [sp, #0x4c]
|
||||
add r0, r5, #0
|
||||
|
|
@ -17237,7 +17237,7 @@ _02235CCA:
|
|||
add r0, #2
|
||||
add r1, sp, #8
|
||||
mov r2, #0xb
|
||||
bl FUN_02015D88
|
||||
bl ConvertRSStringToDPStringInternational
|
||||
add r0, sp, #8
|
||||
str r0, [sp, #0x64]
|
||||
mov r0, #0
|
||||
|
|
@ -18156,7 +18156,7 @@ MOD83_02236484: ; 0x02236484
|
|||
add r0, r4, #0
|
||||
add r1, sp, #8
|
||||
mov r2, #8
|
||||
bl FUN_02015D88
|
||||
bl ConvertRSStringToDPStringInternational
|
||||
mov r0, #0x4e
|
||||
bl ScrStrBufs_new
|
||||
add r4, r0, #0
|
||||
|
|
@ -22504,7 +22504,7 @@ _022384FE:
|
|||
add r0, sp, #0x24
|
||||
add r1, sp, #0xc
|
||||
mov r2, #0xc
|
||||
bl FUN_02015D88
|
||||
bl ConvertRSStringToDPStringInternational
|
||||
add r0, r4, #0
|
||||
mov r1, #0x75
|
||||
add r2, sp, #0xc
|
||||
|
|
@ -22541,7 +22541,7 @@ _0223853E:
|
|||
add r0, sp, #0x24
|
||||
add r1, sp, #0xc
|
||||
mov r2, #8
|
||||
bl FUN_02015D88
|
||||
bl ConvertRSStringToDPStringInternational
|
||||
add r0, r4, #0
|
||||
mov r1, #0x8f
|
||||
add r2, sp, #0xc
|
||||
|
|
|
|||
327
arm9/src/rs_migrate_string.c
Normal file
327
arm9/src/rs_migrate_string.c
Normal file
|
|
@ -0,0 +1,327 @@
|
|||
#include "global.h"
|
||||
#include "string_util.h"
|
||||
#include "rs_migrate_string.h"
|
||||
|
||||
static const u16 conversion_table[][2] = {
|
||||
{0x0001, 0x01DE}, // <space>
|
||||
{0x0003, 0x0003}, // あ
|
||||
{0x0005, 0x0005}, // い
|
||||
{0x0007, 0x0007}, // う
|
||||
{0x0009, 0x0009}, // え
|
||||
{0x000B, 0x000B}, // お
|
||||
{0x000C, 0x000C}, // か
|
||||
{0x000E, 0x000E}, // き
|
||||
{0x0010, 0x0010}, // く
|
||||
{0x0012, 0x0012}, // け
|
||||
{0x0014, 0x0014}, // こ
|
||||
{0x0016, 0x0016}, // さ
|
||||
{0x0018, 0x0018}, // し
|
||||
{0x001A, 0x001A}, // す
|
||||
{0x001C, 0x001C}, // せ
|
||||
{0x001E, 0x001E}, // そ
|
||||
{0x0020, 0x0020}, // た
|
||||
{0x0022, 0x0022}, // ち
|
||||
{0x0025, 0x0025}, // つ
|
||||
{0x0027, 0x0027}, // て
|
||||
{0x0029, 0x0029}, // と
|
||||
{0x002B, 0x002B}, // な
|
||||
{0x002C, 0x002C}, // に
|
||||
{0x002D, 0x002D}, // ぬ
|
||||
{0x002E, 0x002E}, // ね
|
||||
{0x002F, 0x002F}, // の
|
||||
{0x0030, 0x0030}, // は
|
||||
{0x0033, 0x0033}, // ひ
|
||||
{0x0036, 0x0036}, // ふ
|
||||
{0x0039, 0x0039}, // へ
|
||||
{0x003C, 0x003C}, // ほ
|
||||
{0x003F, 0x003F}, // ま
|
||||
{0x0040, 0x0040}, // み
|
||||
{0x0041, 0x0041}, // む
|
||||
{0x0042, 0x0042}, // め
|
||||
{0x0043, 0x0043}, // も
|
||||
{0x0045, 0x0045}, // や
|
||||
{0x0047, 0x0047}, // ゆ
|
||||
{0x0049, 0x0049}, // よ
|
||||
{0x004A, 0x004A}, // ら
|
||||
{0x004B, 0x004B}, // り
|
||||
{0x004C, 0x004C}, // る
|
||||
{0x004D, 0x004D}, // れ
|
||||
{0x004E, 0x004E}, // ろ
|
||||
{0x004F, 0x004F}, // わ
|
||||
{0x0050, 0x0050}, // を
|
||||
{0x0051, 0x0051}, // ん
|
||||
{0x0002, 0x0002}, // ぁ
|
||||
{0x0004, 0x0004}, // ぃ
|
||||
{0x0006, 0x0006}, // ぅ
|
||||
{0x0008, 0x0008}, // ぇ
|
||||
{0x000A, 0x000A}, // ぉ
|
||||
{0x0044, 0x0044}, // ゃ
|
||||
{0x0046, 0x0046}, // ゅ
|
||||
{0x0048, 0x0048}, // ょ
|
||||
{0x000D, 0x000D}, // が
|
||||
{0x000F, 0x000F}, // ぎ
|
||||
{0x0011, 0x0011}, // ぐ
|
||||
{0x0013, 0x0013}, // げ
|
||||
{0x0015, 0x0015}, // ご
|
||||
{0x0017, 0x0017}, // ざ
|
||||
{0x0019, 0x0019}, // じ
|
||||
{0x001B, 0x001B}, // ず
|
||||
{0x001D, 0x001D}, // ぜ
|
||||
{0x001F, 0x001F}, // ぞ
|
||||
{0x0021, 0x0021}, // だ
|
||||
{0x0023, 0x0023}, // ぢ
|
||||
{0x0026, 0x0026}, // づ
|
||||
{0x0028, 0x0028}, // で
|
||||
{0x002A, 0x002A}, // ど
|
||||
{0x0031, 0x0031}, // ば
|
||||
{0x0034, 0x0034}, // び
|
||||
{0x0037, 0x0037}, // ぶ
|
||||
{0x003A, 0x003A}, // べ
|
||||
{0x003D, 0x003D}, // ぼ
|
||||
{0x0032, 0x0032}, // ぱ
|
||||
{0x0035, 0x0035}, // ぴ
|
||||
{0x0038, 0x0038}, // ぷ
|
||||
{0x003B, 0x003B}, // ぺ
|
||||
{0x003E, 0x003E}, // ぽ
|
||||
{0x0024, 0x0024}, // っ
|
||||
{0x0053, 0x0053}, // ア
|
||||
{0x0055, 0x0055}, // イ
|
||||
{0x0057, 0x0057}, // ウ
|
||||
{0x0059, 0x0059}, // エ
|
||||
{0x005B, 0x005B}, // オ
|
||||
{0x005C, 0x005C}, // カ
|
||||
{0x005E, 0x005E}, // キ
|
||||
{0x0060, 0x0060}, // ク
|
||||
{0x0062, 0x0062}, // ケ
|
||||
{0x0064, 0x0064}, // コ
|
||||
{0x0066, 0x0066}, // サ
|
||||
{0x0068, 0x0068}, // シ
|
||||
{0x006A, 0x006A}, // ス
|
||||
{0x006C, 0x006C}, // セ
|
||||
{0x006E, 0x006E}, // ソ
|
||||
{0x0070, 0x0070}, // タ
|
||||
{0x0072, 0x0072}, // チ
|
||||
{0x0075, 0x0075}, // ツ
|
||||
{0x0077, 0x0077}, // テ
|
||||
{0x0079, 0x0079}, // ト
|
||||
{0x007B, 0x007B}, // ナ
|
||||
{0x007C, 0x007C}, // ニ
|
||||
{0x007D, 0x007D}, // ヌ
|
||||
{0x007E, 0x007E}, // ネ
|
||||
{0x007F, 0x007F}, // ノ
|
||||
{0x0080, 0x0080}, // ハ
|
||||
{0x0083, 0x0083}, // ヒ
|
||||
{0x0086, 0x0086}, // フ
|
||||
{0x0089, 0x0089}, // ヘ
|
||||
{0x008C, 0x008C}, // ホ
|
||||
{0x008F, 0x008F}, // マ
|
||||
{0x0090, 0x0090}, // ミ
|
||||
{0x0091, 0x0091}, // ム
|
||||
{0x0092, 0x0092}, // メ
|
||||
{0x0093, 0x0093}, // モ
|
||||
{0x0095, 0x0095}, // ヤ
|
||||
{0x0097, 0x0097}, // ユ
|
||||
{0x0099, 0x0099}, // ヨ
|
||||
{0x009A, 0x009A}, // ラ
|
||||
{0x009B, 0x009B}, // リ
|
||||
{0x009C, 0x009C}, // ル
|
||||
{0x009D, 0x009D}, // レ
|
||||
{0x009E, 0x009E}, // ロ
|
||||
{0x009F, 0x009F}, // ワ
|
||||
{0x00A0, 0x00A0}, // ヲ
|
||||
{0x00A1, 0x00A1}, // ン
|
||||
{0x0052, 0x0052}, // ァ
|
||||
{0x0054, 0x0054}, // ィ
|
||||
{0x0056, 0x0056}, // ゥ
|
||||
{0x0058, 0x0058}, // ェ
|
||||
{0x005A, 0x005A}, // ォ
|
||||
{0x0094, 0x0094}, // ャ
|
||||
{0x0096, 0x0096}, // ュ
|
||||
{0x0098, 0x0098}, // ョ
|
||||
{0x005D, 0x005D}, // ガ
|
||||
{0x005F, 0x005F}, // ギ
|
||||
{0x0061, 0x0061}, // グ
|
||||
{0x0063, 0x0063}, // ゲ
|
||||
{0x0065, 0x0065}, // ゴ
|
||||
{0x0067, 0x0067}, // ザ
|
||||
{0x0069, 0x0069}, // ジ
|
||||
{0x006B, 0x006B}, // ズ
|
||||
{0x006D, 0x006D}, // ゼ
|
||||
{0x006F, 0x006F}, // ゾ
|
||||
{0x0071, 0x0071}, // ダ
|
||||
{0x0073, 0x0073}, // ヂ
|
||||
{0x0076, 0x0076}, // ヅ
|
||||
{0x0078, 0x0078}, // デ
|
||||
{0x007A, 0x007A}, // ド
|
||||
{0x0081, 0x0081}, // バ
|
||||
{0x0084, 0x0084}, // ビ
|
||||
{0x0087, 0x0087}, // ブ
|
||||
{0x008A, 0x008A}, // ベ
|
||||
{0x008D, 0x008D}, // ボ
|
||||
{0x0082, 0x0082}, // パ
|
||||
{0x0085, 0x0085}, // ピ
|
||||
{0x0088, 0x0088}, // プ
|
||||
{0x008B, 0x008B}, // ペ
|
||||
{0x008E, 0x008E}, // ポ
|
||||
{0x0074, 0x0074}, // ッ
|
||||
{0x00A2, 0x0121}, // 0
|
||||
{0x00A3, 0x0122}, // 1
|
||||
{0x00A4, 0x0123}, // 2
|
||||
{0x00A5, 0x0124}, // 3
|
||||
{0x00A6, 0x0125}, // 4
|
||||
{0x00A7, 0x0126}, // 5
|
||||
{0x00A8, 0x0127}, // 6
|
||||
{0x00A9, 0x0128}, // 7
|
||||
{0x00AA, 0x0129}, // 8
|
||||
{0x00AB, 0x012A}, // 9
|
||||
{0x00E1, 0x01AB}, // !
|
||||
{0x00E2, 0x01AC}, // ?
|
||||
{0x00E4, 0x01AE}, // .
|
||||
{0x00F1, 0x01BE}, // -
|
||||
{0x00E6, 0x01B0}, // ·
|
||||
{0x00E5, 0x01AF}, // …
|
||||
{0x00EA, 0x00EA}, // “
|
||||
{0x00EB, 0x00EB}, // ”
|
||||
{0x00E8, 0x01B2}, // ‘
|
||||
{0x00E9, 0x01B3}, // '
|
||||
{0x00EE, 0x01BB}, // ♂
|
||||
{0x00EF, 0x01BC}, // ♀
|
||||
{0x0112, 0x0112}, // ¥
|
||||
{0x00E3, 0x01AD}, // ,
|
||||
{0x00F2, 0x0176}, // ×
|
||||
{0x00E7, 0x01B1}, // /
|
||||
{0x00AC, 0x012B}, // A
|
||||
{0x00AD, 0x012C}, // B
|
||||
{0x00AE, 0x012D}, // C
|
||||
{0x00AF, 0x012E}, // D
|
||||
{0x00B0, 0x012F}, // E
|
||||
{0x00B1, 0x0130}, // F
|
||||
{0x00B2, 0x0131}, // G
|
||||
{0x00B3, 0x0132}, // H
|
||||
{0x00B4, 0x0133}, // I
|
||||
{0x00B5, 0x0134}, // J
|
||||
{0x00B6, 0x0135}, // K
|
||||
{0x00B7, 0x0136}, // L
|
||||
{0x00B8, 0x0137}, // M
|
||||
{0x00B9, 0x0138}, // N
|
||||
{0x00BA, 0x0139}, // O
|
||||
{0x00BB, 0x013A}, // P
|
||||
{0x00BC, 0x013B}, // Q
|
||||
{0x00BD, 0x013C}, // R
|
||||
{0x00BE, 0x013D}, // S
|
||||
{0x00BF, 0x013E}, // T
|
||||
{0x00C0, 0x013F}, // U
|
||||
{0x00C1, 0x0140}, // V
|
||||
{0x00C2, 0x0141}, // W
|
||||
{0x00C3, 0x0142}, // X
|
||||
{0x00C4, 0x0143}, // Y
|
||||
{0x00C5, 0x0144}, // Z
|
||||
{0x00C6, 0x0145}, // a
|
||||
{0x00C7, 0x0146}, // b
|
||||
{0x00C8, 0x0147}, // c
|
||||
{0x00C9, 0x0148}, // d
|
||||
{0x00CA, 0x0149}, // e
|
||||
{0x00CB, 0x014A}, // f
|
||||
{0x00CC, 0x014B}, // g
|
||||
{0x00CD, 0x014C}, // h
|
||||
{0x00CE, 0x014D}, // i
|
||||
{0x00CF, 0x014E}, // j
|
||||
{0x00D0, 0x014F}, // k
|
||||
{0x00D1, 0x0150}, // l
|
||||
{0x00D2, 0x0151}, // m
|
||||
{0x00D3, 0x0152}, // n
|
||||
{0x00D4, 0x0153}, // o
|
||||
{0x00D5, 0x0154}, // p
|
||||
{0x00D6, 0x0155}, // q
|
||||
{0x00D7, 0x0156}, // r
|
||||
{0x00D8, 0x0157}, // s
|
||||
{0x00D9, 0x0158}, // t
|
||||
{0x00DA, 0x0159}, // u
|
||||
{0x00DB, 0x015A}, // v
|
||||
{0x00DC, 0x015B}, // w
|
||||
{0x00DD, 0x015C}, // x
|
||||
{0x00DE, 0x015D}, // y
|
||||
{0x00DF, 0x015E}, // z
|
||||
{0x011F, 0x011F}, // ▶
|
||||
{0x00F6, 0x01C4}, // :
|
||||
{0x0163, 0x0163}, // Ä
|
||||
{0x0175, 0x0175}, // Ö
|
||||
{0x017B, 0x017B}, // Ü
|
||||
{0x0183, 0x0183}, // ä
|
||||
{0x0195, 0x0195}, // ö
|
||||
{0x019B, 0x019B}, // ü
|
||||
};
|
||||
|
||||
static THUMB_FUNC u16 GetOpeningQuote(u32 language)
|
||||
{
|
||||
switch (language)
|
||||
{
|
||||
default:
|
||||
return 0xEA;
|
||||
case LANGUAGE_ENGLISH:
|
||||
case LANGUAGE_ITALIAN:
|
||||
case LANGUAGE_SPANISH:
|
||||
return 0x1B4;
|
||||
case LANGUAGE_FRENCH:
|
||||
return 0x1B7;
|
||||
case LANGUAGE_GERMAN:
|
||||
return 0x1B6;
|
||||
}
|
||||
}
|
||||
|
||||
static THUMB_FUNC u16 GetClosingQuote(u32 language)
|
||||
{
|
||||
switch (language)
|
||||
{
|
||||
default:
|
||||
return 0xEB;
|
||||
case LANGUAGE_ENGLISH:
|
||||
case LANGUAGE_ITALIAN:
|
||||
case LANGUAGE_SPANISH:
|
||||
return 0x1B5;
|
||||
case LANGUAGE_FRENCH:
|
||||
return 0x1B8;
|
||||
case LANGUAGE_GERMAN:
|
||||
return 0x1B4;
|
||||
}
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ConvertRSStringToDPStringInternational(const u8 * rs_str, u16 * dp_str, u32 length, u32 language)
|
||||
{
|
||||
BOOL notFullWidth;
|
||||
u32 i;
|
||||
|
||||
notFullWidth = (language != LANGUAGE_JAPANESE);
|
||||
for (i = 0; i < length - 1; i++)
|
||||
{
|
||||
if (rs_str[i] == 0xFF) // RS: EOS
|
||||
break;
|
||||
if (rs_str[i] >= 0xF7) // RS: DYNAMIC
|
||||
{
|
||||
// If we're here, the provided name is corrupt.
|
||||
// Fill it with question marks.
|
||||
s32 r3 = (s32)((length - 1) < 10 ? (length - 1) : 10);
|
||||
s32 r1;
|
||||
for (r1 = 0; r1 < r3; r1++)
|
||||
{
|
||||
dp_str[r1] = 0x1AC; // DP: ?
|
||||
}
|
||||
dp_str[r1] = EOS;
|
||||
return FALSE;
|
||||
}
|
||||
switch (conversion_table[rs_str[i]][notFullWidth])
|
||||
{
|
||||
case 0xEA: // RS: Opening double quote
|
||||
dp_str[i] = GetOpeningQuote(language);
|
||||
break;
|
||||
case 0xEB: // RS: Closing double quote
|
||||
dp_str[i] = GetClosingQuote(language);
|
||||
break;
|
||||
default:
|
||||
dp_str[i] = conversion_table[rs_str[i]][notFullWidth];
|
||||
break;
|
||||
}
|
||||
}
|
||||
dp_str[i] = EOS;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -282,7 +282,7 @@ THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadow
|
|||
sp20[2] = shadowColor;
|
||||
sp20[3] = bgColor;
|
||||
|
||||
// FIXME: Need these to be accessed by a pointer to UNK_021C570C
|
||||
// These are accessed by a pointer to UNK_021C570C due to -ipa file
|
||||
UNK_021C5712 = bgColor;
|
||||
UNK_021C570E = fgColor;
|
||||
UNK_021C5710 = shadowColor;
|
||||
|
|
|
|||
26
include/rs_migrate_string.h
Normal file
26
include/rs_migrate_string.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef POKEDIAMOND_UNK_02015D14_H
|
||||
#define POKEDIAMOND_UNK_02015D14_H
|
||||
|
||||
// --------------------------------------------
|
||||
// ConvertRSStringToDPStringInternational
|
||||
// ============================================
|
||||
// Param rs_str: Pointer to u8 representing
|
||||
// the name of a Pokemon or
|
||||
// its OT when migrating from
|
||||
// Advanced Gameboy.
|
||||
// Param dp_str: Pointer to u16 representing
|
||||
// the destination string buffer
|
||||
// for migration to Diamond
|
||||
// or Pearl.
|
||||
// Param length: The length of the string
|
||||
// to convert, including the
|
||||
// terminator byte.
|
||||
// Param language: Game language of origin.
|
||||
// See include/config.h.
|
||||
// Return: TRUE if the conversion was completed
|
||||
// successfully. Otherwise, dp_str will
|
||||
// be filled with up to 10 question mark
|
||||
// characters.
|
||||
BOOL ConvertRSStringToDPStringInternational(const u8 * rs_str, u16 * dp_str, u32 length, u32 language);
|
||||
|
||||
#endif //POKEDIAMOND_UNK_02015D14_H
|
||||
Loading…
Reference in New Issue
Block a user