#!/bin/bash
# coding: utf-8
#
# original filename: /usr/games/mame-language-select.sh
## ver 0.1, 2024-4-04, Careone <emacslocale@126.com>
#  tested pass for: mame 0.251 (Debian 12.5 amd64)

### defines ###
APPNAME="mame-zh"
APPVER="0.1"
APP_DESC="2024.4.04"

prefix="/usr/share/games/mame"	#for Debian
#prefix="/usr/local/share/games/mame"	#for FreeBSD 14

## ---- debug switches ----
DEBUG=0	#1: show debug output; 0: quiet

## ---- Debug switches End ----

##
	_tested_info () {
cat<<EOF
  --------- 
  已测试通过的 mame 版本和系统: 
  * mame 0.251 (Debian 12.5 amd64)
  --------- 
EOF
}

### ------------
## line 182 in ~/.mame/mame.ini
## optional:
#
#uifont                    default
#
#uifont                    WenQuanYi Zen Hei Sharp|Regular
#uifont                    文泉驿点阵正黑|Regular
#
#uifont                    WenQuanYi Zen Hei|Regular
#uifont                    文泉驿正黑|Regular
#
#uifont                    WenQuanYi Micro Hei|Regular
#uifont                    文泉驿微米黑|Regular
#
#uifont                    Noto Sans CJK SC|Regular
#
### ------------

## line 194 in ~/.mame/mame.ini
## optional:
#
#language                  English
#language                  "Chinese (Simplified)"
#language                  "Chinese (Traditional)"

### ------------
# user mame configure:
## ~/.mame/mame.ini

## example mame.ini, for English
#default_mame_ini=/usr/share/doc/mame/examples/default.mame.ini.gz

# 简体中文/繁体中文界面的 mame.ini
#zh_mame_ini=/usr/share/games/mame/language/Chinese_Simplified/mame.ini

# optional: English, "Chinese (Simplified)", "Chinese (Traditional)"
MAME_UI_LANG= 
ZHFONT=

mame_fontpath="/usr/share/games/mame/fonts"
#
declare -a ui_lang zhfont zh_postscript_fontname

##
ui_lang[0]="English"
ui_lang[1]="Chinese (Simplified)"
ui_lang[2]="Chinese (Traditional)"

## 2024.4.04 added
## 关于在命令行指定 mame “中文字体名”的重要技术要点：
# 1. 只能是 BDF/TTF 格式的字体文件，或者 TrueType 格式的 TTC 字体集文件；
# 2. 字体名中间不能带空格！否则 mame 的界面中文会乱码！必要时，可以使用
#    “ PS字体名”代替（即 PostScript 字体名）；
#    （提示：可以在 mame 中使用 小米黑体 MiSans，或者 Windows 下的
#	SimHei 黑体字体。）
# 3. “Noto Sans CJK SC”字体文件，实际上是 OpenType 格式的 TTC 字体集文件，
#    mame 目前仍无法 正常调用 （中文界面会乱码）。
# 4. 从 Debian 12 开始，Unifont 字体文件，由 TTF 格式改成了 OTF 格式，因此
#    也无法被 mame 调用（会乱码）。

zhfont[0]="WenQuanYi Micro Hei"
zhfont[1]="WenQuanYi Zen Hei"

zh_postscript_fontname[0]="WenQuanYiMicroHei"
zh_postscript_fontname[1]="WenQuanYiZenHei"

### head end ###

### body ###
echo "$APPNAME $APPVER ($APP_DESC)"
_tested_info
echo "   说明: mame 当前只支持 BDF 字体文件格式，以及 TrueType 格式的"
echo "        TTF/TTC 字体文件。(不支持 OpenType 格式的 OTF/TTC 字体文件！)"

## step 1:
echo

for a in `seq 0 1` ; do
  if fc-list | grep "${zhfont[a]}" &>/dev/null ; then
    ZHFONT="${zh_postscript_fontname[a]}" ; 
    echo "  [找到] 中文字体: ${zhfont[a]} (PS字体名: ${zh_postscript_fontname[a]})" | grep --color=auto "找到"
    #sleep 1
    break
  
  else ZHFONT=default

  fi
done

## step 2: check $LANG

case "$LANG" in
  zh_CN*) MAME_UI_LANG="Chinese (Simplified)"
   	;;

  zh_TW*) MAME_UI_LANG="Chinese (Traditional)"
   	;;

  *) MAME_UI_LANG="English"
	;;
esac

##
#        -language UI_LANG
#        -uifont fontname

## --- debug module --- ##
#DEBUG=1
if [ "$DEBUG" = 1 ]; then
  echo " --------- "
  echo "  -uifont $ZHFONT"
  echo "  -language '$MAME_UI_LANG'"
  echo " --------- "
  echo

  sleep 2
fi
## --- debug module END --- ##
#
echo "Cmd: mame -language '$MAME_UI_LANG' -uifont '$ZHFONT' $@"
sleep 1

#mame -uifont "$ZHFONT" -language "$MAME_UI_LANG" $@
mame -uifont "$ZHFONT" -lang "$MAME_UI_LANG" $@ &

