forked from 0xDC00/scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPC_Steam_MAGES_Robotics;Notes-Elite.js
More file actions
121 lines (108 loc) · 12.6 KB
/
Copy pathPC_Steam_MAGES_Robotics;Notes-Elite.js
File metadata and controls
121 lines (108 loc) · 12.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// ==UserScript==
// @name ROBOTICS;NOTES ELITE
// @version 0.1
// @author [DC]
// @description [PC] https://store.steampowered.com/app/1111380/ROBOTICSNOTES_ELITE/
// * MAGES Engine
// ==/UserScript==
const engine = require('./libPCMAGES.js');
const table = createTable();
const mainHandler = trans.send(handler, '250+');
engine.setHookDialog(mainHandler);
function handler(regs, index) {
const address = regs[index];
console.log('onEnter');
//console.log(hexdump(address, { header: false, ansi: false, length: 0x50 }));
let s = engine.readString(address, table);
return s;
}
//-------------------------------------------------
function createTable() {
const table = [];
// PrivateUseCharacters
// https://github.com/CommitteeOfZero/sc3tools/blob/main/resources/rn/compound_chars.map
const compound_chars = `
[E000-E01E]=
[E01F]=ガ
[E020]=タツ
[E021-E1B7]=
`.split(/\r?\n/).filter(i => i);
for (const c of compound_chars) {
const pair = c.split('=');
if (pair.length != 2) continue;
const key = pair[0].replace(/^\s*\[|\]$/g, '').split('-');
const val = pair[1];
if (key.length === 1) key.push(key[0]);
const start = parseInt(key[0], 16);
const end = parseInt(key[1], 16);
for (let i = start; i <= end; i++) {
const charCode = ((i & 0xFF) << 8) | i >> 8; // swap endian
table[charCode] = val;
}
}
// based on: https://github.com/CommitteeOfZero/sc3tools/tree/main/resources/rn
// row : 59
// column: 64 (1row = 64chars) ′
const charset = (
' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ' + // 0 8000-803F
'/:-;!?′.@#%~*_`()゚^>+<ノキリッ$&",[]=' + // 1 8040-807F (' = ′)
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz、。' + // 2 8080-80BF
',.:;?!゛゜‘’“”()〔〕[]{}〈〉《》“”‘’【】<>【】・…~ー♪―ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ①②' + // 3 80C0-80FF (⋯ -> …)
'③④⑤⑥⑦⑧⑨⑩⑪ïâàé²♥©⑲⑳%–—_/•①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①' + // 4 8100-813F
'①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①あいうえおかがきぎくぐけげこごさざしじすずせぜそぞただちぢつづてで' + // 5 8140-817F
'とどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもやゆよらりるれろわゐゑをんアイウエオカガキギクグケゲコゴサザシジスズセゼソ' + // 6 8180-81BF
'ゾタダチヂツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモヤユヨラリルレロワヰヱヲンヴ☆★◎○●△▲□■▽▼◇◆※' + // 7 81C0-81FF
'→←+-×÷=≧≦\〓&〆追加新項目敗北勝利入力失成功分岐先指定海翔世界救戦誰言前全人類希望俺興味穂所詮自中衝動満最強丁寧不謹慎' + // 8 8200-823F
'構事国位倒頂点一昴立完了求淳和電源積込英雄軍主公供給開始喋感度良好員押忍体風吹確実続誤差以下正常起済安充率連稼働限時間忘各種異有' + // 9 8240-827F
'夫僕思悪後輩対応座標固待調整変葉遣減断解除回認居左右周辺範囲地形判用問題締上愛理本日年月天予報伝鹿児島県子屋久方東南晴波高温低降' + // 10 8280-82BF
'水貴重情部集合暇行初今終必戻格闘発進名八汐央校普科組出席号績活研究属詳得意野隠示画面内消小息薄暗室外夏爽駆抜狭熱違汗引心身浴景色' + // 11 82C0-82FF
'期台多柄空碧隈半遺産横住火縄銃射場白真昔学舞話慢試遠呼声聞我長帰還娘現瀬乃宮捉同幼頃腐縁程仲遊付呑持口頑張状況隣具倉庫察来使想二' + // 12 8300-833F
'物置端灯個当然春秋暑冬寒環境芝生雨答額滲的迎考恐教頭会議忙相手側費止粘交渉取原因去無茶要悲壮笑浮焦偉少覚称歴史遡女徒姉設果昇足盛' + // 13 8340-837F
'近京優経験証拠数知洗脳作効古西矢逆派結何花落評舎技術準備陽陰十伊達金字塔登在駄向習怒削命令飽料特未練木腰放課決流万牙城崩悔材昨神' + // 14 8380-83BF
'品崇説奥深々素奇跡噛怪由切者様謎包才噂光栄揚並拝式基操撃繋簡単読潰裏仕掛局選択他機性能極到注退離油禁徴早精視反平均可処絞値導訳魅' + // 15 83C0-83FF
'激狙皆絡論柔攻書法弊害礼苦労癖送疑傷返信嘘痕触別愚痴伸眺揺覆庭姿運歩距総園鳥鳴渡草静残寄独浸哲尊敬眼突途宣表聴衆造卒業絶僻存就職' + // 16 8400-843F
'肢旅暮願漠夢浪萎観測走夕根唱諦叶将路錯馳態停投専保管緒従負舌打念着含腕適弱髪両容赦関義肩犬勇旧港閉鎖廃墟訪割雑広遮裾死駐滑幅道比' + // 17 8440-847F
'車寝掲堂直鍵元防燃補踏埃窓涙晶鎮巨略超際乗縦算誇創計図描許町工譲提企段代受継社務妹巡凡胸吐首振頬叩弾幕拳隅棚缶携帯移替欠過例幽霊' + // 18 8480-84BF
'刻嫌這警告抵抗殺百虚#難若憧黄昏識微妙擬似量背痛配膝隙潜勢奪制服汚短更衣皮肉勲章疲質虐輝握男士友納協街夜黒改装家唯営忌明週照臭腹' + // 19 84C0-84FF
'遅呆盗買食晩儀休憩転故幸軽羽織宅軒脱挨拶影響角染血美緯太山勘慣慨繰像澄青越迫匂緑丸毎堅禮商店瑞榎怠醸級化粧飾随械助支障売介護厳密' + // 20 8500-853F
'田辞践鼻蓄飲次蒸器冗談文袋土船便届育師顧彦扱豪語頼条件怖殊急門輪殿慌骨折損欄販破紹円速秒垂跳緊約承兼演躍訴騙猫泣震珍映宿嬉担三賛' + // 21 8540-857F
'殴菓勉困泥川掃捨橋句箱煙詰敵勧誘辛辣淡履靴団彼価参壊修即噴醜肝健懲印象烈嘲永遇既権益努官僚縮疾涛復暴叫案奮収懸机絵枚巻宝紀及記録' + // 22 8580-85BF
'媒黙昭鉄型狂寸騒係溢析挑幻王邪楽鑑賞唇尖曲宇宙音吸換虫耳径泉冥沈漏暦片溶細朝鈴傘館扉童雰非徳凛漂捌蹴鋭遂拭濡恥弟尽快袖冷昼弁板委' + // 23 85C0-85FF
'臼井至戸惑浜峰喜飯批撤咎省留顛末赴任壇善欲請余裕瞬筋博展秀般抱援剰再曜催競獲検討咳払姑束守伐厄晦甘廊蛙延午授罠粒砂仁嘆仰母玉借資' + // 24 8600-863F
'貯毛誉焼董劇梅干酸荷探屈散豆把彰写溜募荒模索申逃貫孤役班貶胃増遭避憶抹君臓針刺涼第瞳炎尚稚系互坊魂魔推芙歳父農畑挟階玄尻舐釈七壁' + // 25 8640-867F
'貼与吟斎親寂悟惚綿掴剥歪酷膚拗湿冊危純池床混懇私卓窺伏採迷己毒看圧建舗塞洋客藤治偏添沙汰促劣製賢貧乏香軸紙裂財貿易畳凶獄窒液嚥喉' + // 26 8680-86BF
'潤契愉脅傑肌層粉謝律翌孫族祖甲斐諸刃剣茨都妄蓋覗規驚招姓戚典乱怯罪拒否布札税漱石千侮辱盤鉢責掘四股擦渋節施概芻棒餅閃棄纏漁御順序' + // 27 86C0-86FF
'紛老婆忠歯闇没懐則崖凍蒼据披露湯徹底揉熟編颯撼複璧摘威兆候脂徐藍稀弄症群医病療耗策傾貸預丘錆敷郷埋聖滅融踊芸馬星紅侵儚厚綴築溝訝' + // 28 8700-873F
'揃尾仮潮誓膳贈籠眠票鬼湧昂泊憑清硬之市煌茫奢詞爆祈苛漬鬱陶恨架湾岸惜区駅朽森歌虎克耐睡抑雲剤寡列帳躊躇覧襲争志津也搭載繊歓匠酔餌' + // 29 8740-877F
'煽氏挙嬢吠審胆俯瞰軌鍛旋鈍浅逸胴祭猛翼矯俄覇辿該凝褒革晒凄魚控彗祝福臨陣尋牽穴穏植捕険球杭遥如武氷五拡沸騰診肺緩洪唐炸讃澤斬囚撫' + // 30 8780-87BF
'透爪陸垢茂励偽賄賂罵往妥粗泳憎免詭等戒拘統陥呪愁筆犯共哀飼為Ⅱ暖閑恒拍塊詩杯頻郎淫靡筑粋浦齢伺罰屁贄棺桶穫宏柱醤呂沖韓鼓渇渦拾襖' + // 31 87C0-87FF
'堵腋燥箸郡儲縛乙萌裸鏡慮訊桁億排蔵隔訂洞鎧却瞥嵐叔襟依刑箒斉査岩季窟亡骸政匹惨奄湖蛍秘謀雪汲嬌貢献婚松葬兄甥戯顎扇嗅蔑祥符仇羨航' + // 32 8800-883F
'監狩撲悶峙双磁須曰寿仏偶林枝網錠執華詐欺被勃述累曖昧民閣府藪蛇括株享奴巧兵蔽圏域胡瓶房江頓羅牛些彩撮版倫莉栖院竹崎司棟龍雌汎敏薫' + // 33 8840-887F
'寺綯睨糸雀衛舶´ゝ`厨恋滴塵喧α屑哭劫黎曙封楼螺焉阿剛浩吉麻俊償榊@β繁殖濃牧併ΜⅤ俗祉維九州桜薩摩浄暁伴癒娯亀玩燦枕銅康隷籍綻' + // 34 8880-88BF
'喩顕著遍誌亜℃蝕熊漫阪致災乾釣鐘薬砲銀誕岳肘隊雇奈箇衰村匿米稽稿賑迅雷鳳凰栗痩線赤接趣通倍気顔見番飛大丈占芳捗橙征羊捧盾卑麦滞謡' + // 35 88C0-88FF
'六媚洩迂闊轄簿汁煮挫恰詛倣盟拷邁繕誠馴嫉妬怨潔陵鋼梳傍唾督捜睦庁粛措訟呈轟遙朗賭眩喝噤憫膨乳塗拉舟炭酪菌刊坂淵Ⅰ副脛曇腫漢旬穿釘' + // 36 8900-893F
'寮孝慧芽幌梨富岡狼悠竦柵較擁芯奏悸恩署冒那垣拮刀縫裁芒谷鎌喫刷麗葛銭宛里漕沿串阻酒咲領嫁禿踪猿脆弛薦悩筒雫$*佐揮宴恵紺拙嗤隕吊' + // 37 8940-897F
'枠皺核妨扁鉱枯盆宗莫樹竿淀乞茜託杞憂湊蚊岬貞惹豊妻尺叉瞑瓜墓逡憲糖皿軟喘鷹党彷彿吻膜弓奨沼賽河恍狗醒脚泡逢幹閲峯杖貨餓炉僅掌諜畜' + // 38 8980-89BF
'奉搾秩煎峡鮮堪飢泌裔脇塩翻遽紐朴欧殻冑錬丹患濁磨疎摯邂逅勤蛾冴朔某凹愕碑眈孕氾濫雅隆碗驕婿養爺噌鶏酢慶棘巾椅紋凸逞套誹謗嘔啖呵椀' + // 39 89C0-89FF
'紫脊髄沢諭挿斜痺綜糾躁蹂躙砕饐瀉蝋槽甚慰蛮綺霞犠牲悦痙攣痍憤詫播婦訓揶揄贅虹溺旗菜仙又鵜凌墜憔悴煩駕旺爛蔦獣楚憐姫胞蘇羞偵搬擢填' + // 40 8A00-8A3F
'軋謙刹需窮叱抽秤抉俵腱鷲慟澹升弔栓棲慈卵賠召滝冠蜘蛛脈柳涯郭霧洲囁弧挺噪嚇蠢棋朱戮猶瓦礫胎ω|憾狐乖蜃Ⅳ肯培炙臣忽駒荘闖肥咆哮鶴' + // 41 8A40-8A7F
'轢敢堕絆喰嗚咽騎毅炊撒喪埒蜂巣幾槍豚囮嚢餐坦膠凪渾煤榴臆輸拓榜皇邸郊箔厭邦租帝杉蜜肖鉛稲賀惰^丼賃兎炒艦鍾ΣД濯緖錦桐祐彙沌' + // 42 8A80-8ABF
'鍋墨撰焚芋酎糞褐鱗砦ヽ゜刮肪徘徊暫逝弩涜條禄零券彫埼笛撥殲竜毀逮讐槌妊傭伎僧綱矛' + // 43 8AC0-8AFF
'' + // 44 8B00-8B3F
'' + // 45 8B40-8B7F
'' + // 46 8B80-8BBF
'' + // 47 8BC0-8BFF
'' + // 48 8C00-8C3F
'' + // 49 8C40-8C7F
'').replace(/\r|\n/g, '');
let charCode;
for (let i = 0; i < charset.length; i++) {
// by index
//table.push(charset[i]);
// by code
charCode = 0x8000 + i;
charCode = ((charCode & 0xFF) << 8) | charCode >> 8; // swap endian (0x8001 -> 0x0180)
table[charCode] = charset[i];
}
return table;
}