Hardcoded ASCII strings
These strings are rendered with the glyphs in ascii.anm, and are thus limited to the English alphabet (A-Z), 0-9 and a number of special characters. Please don't use anything else. While it would be possible to upload a custom ascii.png for your language that replaces unneeded glyphs with custom letters, this is not recommended - it would also affect player names in score and replay lists. Also, you need to use non-breaking spaces ( ) to pad any of these strings with spaces at the beginning or the end. Additionally, keep in mind that certain strings apply to multiple games but are listed only once in the following list. |
Special font
ID | Text |
---|---|
th13_ascii_spell_score |
SCORE %8d0 %4d/%4d |
th13_ascii_spell_unknown |
SCORE 00 ----/---- |
th13_ascii_spell_game |
GAME MODE %4d/%4d |
th14_ascii_bonus |
BONUS %.1f |
th14_ascii_no_bonus |
NO BONUS |
Default font
Embodiment of Scarlet Devil
In-game
ID | Text |
---|---|
th06_ascii_centered_stage |
STAGE %d |
th06_ascii_centered_stage_final |
FINAL STAGE |
th06_ascii_centered_stage_extra |
EXTRA STAGE |
th06_ascii_centered_stage_demo |
DEMO PLAY |
th06_ascii_centered_spell_bonus |
Spell Card Bonus! |
th06_ascii_fullpower |
Full Power Mode!! |
th06_ascii_bonus_format |
BONUS %8d |
th06_ascii_clear_header |
Stage Clear |
th06_ascii_clear_header_all |
All Clear! |
th06_ascii_clear_bonus_stage |
Stage * 1000 = %5d |
th06_ascii_clear_bonus_power |
Power * 100 = %5d |
th06_ascii_clear_bonus_graze |
Graze * 10 = %5d |
th06_ascii_clear_bonus_point |
* Point Item %3d |
th06_ascii_clear_bonus_player |
Player = %8d |
th06_ascii_clear_bonus_bomb |
Bomb = %8d |
th06_ascii_clear_bonus_easy |
Easy Rank * 0.5 |
th06_ascii_clear_bonus_normal |
Normal Rank * 1.0 |
th06_ascii_clear_bonus_hard |
Hard Rank * 1.2 |
th06_ascii_clear_bonus_lunatic |
Lunatic Rank * 1.5 |
th06_ascii_clear_bonus_extra |
Extra Rank * 2.0 |
th06_ascii_clear_bonus_penalty_0.5 |
Player Penalty * 0.5 |
th06_ascii_clear_bonus_penalty_0.2 |
Player Penalty * 0.2 |
th06_ascii_clear_bonus_total |
Total = %8d |
th06_practice_format |
STAGE %d %.10d (Like replays, in the unpatched game this is 9 digits.) |
Compared to the unpatched game, these have already been shifted to accommodate 10 digits rather than the original 9, as base_tsa concluded that removing the game's original 9-digit cap for everyone by default only has positive effects.
ID | Text |
---|---|
th06_ascii_replay_header |
No. Name Date Player Rank |
th06_ascii_replay |
%s %8s %8s %-7s %-7s |
th06_ascii_replay_save_header |
No. Name Date Player Score |
th06_ascii_replay_save_empty |
No.%.2d -------- --/--/-- ------- 0 |
th06_ascii_replay_save |
No.%.2d %8s %8s %7s %10d |
th06_ascii_2_digit_number_format |
No.%2d |
th06_ascii_replay_user |
User |
th06_ascii_reimu_a |
ReimuA |
th06_ascii_reimu_b |
ReimuB |
th06_ascii_marisa_a |
MarisaA |
th06_ascii_marisa_b |
MarisaB |
th06_ascii_easy |
Easy |
th06_ascii_normal |
Normal |
th06_ascii_hard |
Hard |
th06_ascii_lunatic |
Lunatic |
th06_ascii_extra |
Extra |
th06_ascii_replay_stage_header |
Stage LastScore |
th06_ascii_replay_stage_empty |
%-6s --------- |
th06_ascii_replay_stage |
%-6s %10d |
th06_ascii_replay_stage_1 |
Stage1 |
th06_ascii_replay_stage_2 |
Stage2 |
th06_ascii_replay_stage_3 |
Stage3 |
th06_ascii_replay_stage_4 |
Stage4 |
th06_ascii_replay_stage_5 |
Stage5 |
th06_ascii_replay_stage_6 |
Stage6 |
th06_ascii_replay_stage_extra |
Extra |
ID | Text |
---|---|
th06_ascii_result_clear |
(C) |
Perfect Cherry Blossom
In-game
ID | Text |
---|---|
th07 MAX |
MAX (Displayed on the power gauge at maximum power.) |
th07 Full Power |
Full Power Mode! |
th07 Supernatural Border |
Supernatural Border!! |
th07 CherryPoint Max |
CherryPoint Max! |
th07 Border Bonus Format |
Border Bonus %7d |
th07 Stage Clear |
Stage Clear |
th07 All Clear |
All Clear |
th07 Clear Bonus Format |
Clear = %8d |
th07 Clear Point Items Format |
Point = %8d |
th07 Clear Graze Format |
Graze = %8d |
th07 Clear Cherry Format |
Cherry = %8d0 |
th07 Clear Bonus Life Format |
Player =%9d |
th07 Clear Bonus Bomb Format |
Bomb = %8d |
th07 Clear Easy Multiplier |
Easy Rank *0.5 |
th07 Clear Normal Multiplier |
Normal Rank *1.0 |
th07 Clear Hard Multiplier |
Hard Rank *1.2 |
th07 Clear Lunatic Multiplier |
Lunatic Rank *1.5 |
th07 Clear Extra Multiplier |
Extra Rank *2.0 |
th07 Clear Phantasm Multiplier |
Phantasm Rank*2.0 |
th07 Clear Player Penalty*0.5 |
Player Penalty*0.5 |
th07 Clear Player Penalty*0.2 |
Player Penalty*0.2 |
th07 Clear Player Penalty*0.1 |
Player Penalty*0.1 |
th07 Clear Player Penalty*0.05 |
Player Penalty*0.05 |
th07 Clear Total Score Format |
Total = %8d0 |
Menus
ID | Text |
---|---|
th07 Ascii Phantasm |
Phantasm |
th07 Practice Stage Header |
Stage HI-Score |
th07 Replay Stage Header |
Stage LastScore |
th07 Replay |
%s %8s %6s %7s %8s |
th07 Replay Header |
No. Name Date Player Rank |
th07 Replay Save Empty |
No.%.2d -------- --/-- ------- 0 |
th07 Replay Save |
No.%.2d %8s %5s %7s %9d0 |
th07 Replay Save Header |
No. Name Date Player Score |
th07 Max Bonus |
MaxBonus %8d |
th07 Results Header |
No Name Score(Stage) Date Slow |
th07 Date Format |
%m/%d |
Imperishable Night
In-game
ID | Text |
---|---|
th08 Spell Bonus Failed |
Spell Bonus Failed |
th08 Last Spell Failed |
Last Spell Failed |
th08 Clear Time Orbs Format |
Time = %8d0 |
th08 Clear Human Format |
over-80%% = %3d.%.2d%% |
th08 Clear Youkai Format |
over 80%% = %3d.%.2d%% |
th08 Clear Last Time Format |
Last Time = %2d:%.2d |
th08 Clear Night Bonus |
Night Bonus |
Menus
ID | Text |
---|---|
th08 Results Header |
No Name Score(Stage) Date Slow (IN's string has extra padding spaces compared to PCB's.) |
th08 Now Playing |
Now Playing |
th08 Spell Practice Total |
%sTotal |
th08 Spell Practice Card No |
%sNo.%.3d |
th08 Spell Replay |
%s %8s %6s %7s Spell No.%3d |
th08 Replay Spell Number |
No.%.3d %9d0 |
Phantasmagoria of Flower View
ID | Text |
---|---|
th09 Stage Format |
STAGE %d %.2d:%.2d |
th09 No Name |
No Name |
th09 Com vs Com |
Com vs Com |
th09 Com vs Human |
Com vs Human |
th09 Human vs Com |
Human vs Com |
th09 Human vs Human |
Human vs Human |
th09 Extra Mode |
Extra Mode |
th09 Story Mode |
Story Mode |
th09 Extra |
Extra |
th09 Lunatic |
Lunatic |
th09 Hard |
Hard |
th09 Normal |
Normal |
th09 Easy |
Easy |
th09 Vs Format |
%.8s vs %.8s |
th09 Replay |
No.%.2d %.8s %8s |
th09 5th |
5th |
th09 4th |
4th |
th09 3rd |
3rd |
th09 2nd |
2nd |
th09 1st |
1st |
th09 Extra Ranking |
Extra Ranking |
th09 Lunatic Ranking |
Lunatic Ranking |
th09 Hard Ranking |
Hard Ranking |
th09 Normal Ranking |
Normal Ranking |
th09 Easy Ranking |
Easy Ranking |
Shoot the Bullet
In-game
ID | Text |
---|---|
th095_scene_photo_count |
Photo %.2d/%.2d |
th095_scene_score |
Score %.7d |
th095_scene_hiscore |
HiScore %.7d |
th095_bestshot_overwrite |
BestShot was overwrited! |
th095_results_slow_rate |
Slow Rate %2.0f%% |
th095_results_total_score |
Total Score %.8d |
th095_results_high_score |
High Score %.7d |
th095_results_score |
Score %.7d |
th095_results_shot |
Shot %.6d |
th095_results_best_shot |
Best Shot %.6d |
th095_menu_slow_rate |
Slow Rate %2.0f%% |
th095_menu_high score |
High Score %.6d |
th095_menu_scene_success_amount |
%2d Scene Success (For unknown reason, this string ends with a newline.) |
For unknown reasons, ZUN decided to format the replay data slightly differently between the saving and viewing screens.
ID | Text |
---|---|
th095_replay_name_regist |
Replay Name Regist |
th095_ascii_replay_save |
No.%.2d %s %s-%s %.2d/%.2d %.2d:%.2d %6d |
th095_ascii_replay_save_empty |
No.%.2d %s %s-%s %s ------ |
th095_select_replay_number |
Select Replay Number |
th095_ascii_user_replay |
User%.4s %s %s-%s %.2d/%.2d/%.2d %.2d:%.2d %6d %2.0f%% |
th095_ascii_user_replay_empty |
User---- -------- *-* --/--/-- --:-- ------ --.-%% |
th095_ascii_replay |
No.%.2d %s %s-%s %.2d/%.2d/%.2d %.2d:%.2d %6d %2.0f%% |
th095_ascii_replay_empty |
No.%.2d -------- *-* --/--/-- --:-- ------ --%% |
Mountain of Faith
Stages
ID | Text |
---|---|
th10_ascii_stage_1 |
Stage 1 |
th10_ascii_stage_2 |
Stage 2 |
th10_ascii_stage_3 |
Stage 3 |
th10_ascii_stage_4 |
Stage 4 |
th10_ascii_stage_5 |
Stage 5 |
th10_ascii_stage_6 |
Stage 6 |
th10_ascii_stage_clear |
Clear |
High scores
ID | Text |
---|---|
th10_ascii_score_empty |
%2d %s %9ld%d ----/--/-- --:-- Stage - ---% |
th10_ascii_ranking |
Score Ranking!! |
th13_ascii_credit |
Credit %d |
Hidden Star in Four Seasons
ID | Text |
---|---|
th16_ascii_score_empty |
%2d %s %9ld%d ----/--/-- --:-- Season Stage - ---%% |
th16_ascii_score_spring |
Spring |
th16_ascii_score_summer |
Summer |
th16_ascii_score_autumn |
Autumn |
th16_ascii_score_winter |
Winter |
th16_ascii_score_full |
Full |
th16_ascii_score_sp |
Sp |
th16_ascii_score_sm |
Sm |
th16_ascii_score_at |
At |
th16_ascii_score_wt |
Wt |
th16_ascii_score_fu |
Fl |
Violet Detector
thcrap automatically right-aligns these correctly, so you don't have to pad them with spaces.
ID | Text |
---|---|
th165_ascii_replay_sun |
Sun |
th165_ascii_replay_mon |
Mon |
th165_ascii_replay_tue |
Tue |
th165_ascii_replay_wed |
Wed |
th165_ascii_replay_thu |
Thu |
th165_ascii_replay_fri |
Fri |
th165_ascii_replay_sat |
Sat |
th165_ascii_replay_sun2 |
2nd Sun |
th165_ascii_replay_mon2 |
2nd Mon |
th165_ascii_replay_tue2 |
2nd Tue |
th165_ascii_replay_wed2 |
2nd Wed |
th165_ascii_replay_thu2 |
2nd Thu |
th165_ascii_replay_fri2 |
2nd Fri |
th165_ascii_replay_sat2 |
2nd Sat |
th165_ascii_replay_sun3 |
3rd Sun |
th165_ascii_replay_mon3 |
3rd Mon |
th165_ascii_replay_tue3 |
3rd Tue |
th165_ascii_replay_wed3 |
3rd Wed |
th165_ascii_replay_thu3 |
3rd Thu |
th165_ascii_replay_fri3 |
3rd Fri |
th165_ascii_replay_sat3 |
3rd Sat |
th165_ascii_replay_diary |
Diary |
Unconnected Marketeers
ID | Text |
---|---|
th18_ascii_shop_money |
Money %d (+%d) |
th18_ascii_shop_cost |
Cost %d |
th18_ascii_ability_slot |
Slot %d |
th18_ascii_menu_quit |
Quit |
th18_ascii_menu_default |
Default |
th18_ascii_menu_game_start |
Game Start |
th18_ascii_menu_extra_start |
Extra Start |
th18_ascii_menu_practice |
Practice |
th18_ascii_menu_spell_practice |
Spell Practice |
th18_ascii_menu_replay |
Replay |
th18_ascii_menu_player_data |
Player Data |
th18_ascii_menu_music_room |
Music Room |
th18_ascii_menu_option |
Option |
th18_ascii_menu_manual |
Manual |
th18_ascii_menu_screen |
Screen |
th18_ascii_menu_window |
Window |
th18_ascii_menu_fullscreen |
FullScreen |
th18_ascii_menu_borderlessdbd |
BorderlessDBD |
th18_ascii_menu_borderless |
Borderless |
th18_ascii_menu_bgm_vol |
BGM Vol |
th18_ascii_menu_se_vol |
SE Vol |
th18_ascii_menu_keyconfig |
Key Config |
th18_ascii_menu_directinput |
DirectInput |
th18_ascii_menu_xinput |
XInput |
th18_ascii_menu_keyboard |
KeyBoard |
th18_ascii_menu_shot |
Short |
th18_ascii_menu_bomb |
Bomb |
th18_ascii_menu_slow |
Slow |
th18_ascii_menu_item |
Item |
th18_ascii_menu_change |
Change |
th18_ascii_menu_pause |
Pause |
100th Black Market
ID | Text |
---|---|
th185_ascii_menu_achievment |
Achievment |
th185_ascii_menu_magic |
Magic |
th185_ascii_wave |
Wave %d |
th185_ascii_final_wave |
Final Wave |
th185_ascii_power |
Power |
th185_ascii_s_atk |
S.Atk *%d%% |
th185_ascii_m_atk |
M.Atk *%d%% |
th185_ascii_m_size |
M.Size *%d%% |
th185_ascii_m_time |
M.Time *%d%% |
th185_ascii_m_reload |
M.Reload *%d%% |
th185_ascii_m_break |
M.Break *%d%% |
th185_ascii_m_graze |
M.Graze *%d%% |
th185_ascii_money |
Money %d%% |
th185_ascii_speed |
Speed %d%% |
th185_ascii_cooltime |
Cooltime -%d%% |
th185_ascii_equip_cost |
Equip Cost %d%% |
th185_ascii_equip_cost_empty |
Equip Cost ---%% |
th185_ascii_shop_cost |
Shop Cost %d(%d) |
th185_ascii_slot |
Slot %d |
th185_ascii_total_cost |
Total Cost %d%%/%d%% |
Unfinished Dream of All Living Ghost
ID | Text |
---|---|
th19 VS Mode |
VS Mode |
th19 Online VS Mode |
Online VS Mode |
th19_network_status_init |
Init |
th19_network_status_connecting |
Connecting... |
th19_network_status_joiningroom |
JoiningRoom... |
th19_network_status_leavingroom |
LeavingRoom... |
th19_network_status_disconnecting |
Disconnecting... |
th19_network_status_exitleavingroom |
ExitLeavingRoom... |
th19_network_status_exitdisconnecting |
ExitDisconnecting... |
th19_network_status_exit |
Exit |
th19_network_status_connecterror |
ConnectError |
th19_network_status |
Network Status : %s\n |
th19_network_room_name |
Room Name : |
th19_network_player_name |
Player Name: |
th19_network_joining |
Joining... |
th19_network_joined |
Joined : %s |
th19_network_wait_for_rival |
Waiting for rival player |
th19_network_latency_no_delay |
(no delay) |
th19_network_latency_low |
(low latency) |
th19_network_latency_mid |
(middle latency) |
th19_network_latency_high |
(high latency) |
th19_network_matching_complete |
Matching complete! |
th19_network_rival_player |
Rival Player is "%s". |
th19_network_error_connect |
Connect Error |
th19_network_error_doesnt_exist |
"%s" doesn't Exist. |
th19_network_error_create_is_first |
Create is first. |
th19_network_error_already_exist |
"%s" already Exist. |
th19_network_error_failed |
Failed. |
th19_warning |
Warning !! |
th19_extra_attack_level |
Extra Attack Level %d |
th19_boss_attack_level |
Boss Attack Level %d |
th19_extra_attack |
Extra Attack !! |
th19_boss_attack |
Boss Attack !! |
th19_menu_keyboard_full |
Keyboard Full |
th19_menu_keyboard_left |
Keyboard Left |
th19_menu_keyboard_right |
Keyboard Right |
th19_menu_gamepad |
GamePad |
th19_menu_controller_select |
Controller Select |
th19_menu_1player_1 |
1Player <%s> |
th19_menu_1player_2 |
1Player <%s%d> |
th19_menu_2player_1 |
2Player <%s> |
th19_menu_2player_2 |
2Player <%s%d> |
th19_menu_keyconfig_reset |
KeyConfig ALL Reset |
th19_menu_button_puhs_keyconfig |
Button Push : KeyConfig |
th19_menu_charge |
Charge |
th19_menu_up |
Up |
th19_menu_down |
Down |
th19_menu_left |
Left |
th19_menu_right |
Right |