ROM Hack My English Coach For Arabic Speakers

EbraamMorcos

Well-Known Member
OP
Member
Joined
Jul 1, 2012
Messages
102
Trophies
0
XP
125
Country
United States
Hey guys, I am trying to make a hack for My English Coach for Spanish speakers i am changing it for Arabic speakers.
I have Spanish experience And Know the whole Arabic language.
If you have experience with Spanish or Arabic or even both contact me.
hey guys someone helped me extract the files if you want to translate the Spanish to Arabic, or to English contact me.

CREDITS
Omarrio: made the extraction tool.

Hey guys we are going to use the Arabic-English (If you have any questions about that contact me)

I need translators who at least know Spanish or Arabic (other than English of course ) .
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Translating Converting a language tutor to Arabic huh. I honestly can not recall such a project in the past (a few pondered converting some for Japanese tutors when there was a dearth of English language ones) but I have to wonder if it is not better to program something from scratch.

As mentioned a RTL hack will probably have to happen and in some ways I imagine it would be easier than the average variable width font hack (you set the initial position of the BG or OAM to the right side of the screen, subtract rather than add and on the end of line detection, if any exists, you probably tweak the check if the rest of it has not already done it for you.

On top of this is in most versions of the Arabic abjad I have seen size becomes an issue in both width of character and general sizes not to mention issues with diacritics and such. This is before we even get to joining letters which would be a nightmare hack to add in; handwritten English is joined and there is the likes of æ and œ but the former can be ignored for computing and the latter are not really in English as well as there being few enough of them that can be treated as extra characters.

Questions you will probably want to be able to answer
Modern or classical Arabic? Given the desire to learn classical Arabic to read the Quar'an I would not dismiss it lightly. This also brings in some of the Quar'an/derived characters and such but this places us in Traditional Chinese and Japanese territory which is a fairly well trodden path.
Modern is fine as well but what area are you focusing on? It varies a bit as you go further east after all and in my experience not everybody wants to learn Egyptian Arabic. Granted I am not that familiar with the state of Arabic in Spain and in light of Spanish history I am not inclined to guess either so you might have something in mind.
As far as hacking goes the focus on grammar will have influenced the underlying coding method in some way and probably any game/activity type things- if asked to justify how this might work this could you do so? Further to that English is a weird language with much of the perceived difficulty coming from it and it being reflected in every language tutorial I have ever seen even if it boils down to rote memorisation.

Coming back to the first point there are many occasions where I would consider a hack in lieu of coding something but this seems a somewhat backwards way of going about it and as such is not one of them. This only increases as I sit down to ponder the requirements of an Arabic tutor so I will ask if it is worth hacking something or instead making a homebrew program? It is certainly a worthwhile project but this seems a odd way of going about making it happen.
 
  • Like
Reactions: 1 person

GHANMI

Well-Known Member
Member
Joined
Jun 10, 2012
Messages
969
Trophies
0
XP
914
Country
I'm a native Arabic language speaker so I might answer some of your questions.

* The didactical symbols are not needed. They are very optional, like the furigana over the kanji in Japanese (and actually are written over letters, with a single exception). The vowels in Arabic are either short (didactical symbol only) or long (didactical symbol + letter "a","o","i") so they are omitted for practical reasons (they are used for little kids learning Arabic, or for some rare ambiguous obscure words): No need for them for 100%-pure Arabic words, and we just use long vowels for foreign words.

* The written Arabic is unified in all regions, period. The differences arise for each region when using informal spoken language, but spoken formal Arabic (written Arabic) is the same. Writing informal Arabic (Egyptian, Libanese, Algerian..) is just a silly idea. The Koran and the early literature works use the equivalent of Shakespearian English: obscure words but the general meaning can still be understood today. You just need a different dictionary (like Lisan Al Arab i.e.“Arabic Tongue”) to look them up, as there are many abridged versions for students on the market. It's the same language! When they call it "Modern" or "Traditional" it just means whether they are teaching Arabic for communication purposes, or for cultural/historical/religious research purposes.

*Koran specific- didactical symbols are not used outside Koran, not even when quoting it. They work pretty much like punctuation (to preserve its meaning), as it wasn’t used until 1720 or so when printing machines were first converted to Arabic in Liban. Instead, Arabic used interrogation/exclamation articles, like the Japanese end-sentence interrogative “ka”.

*
I’m getting carried away here. So, about technical issues on the hacking side: None of the officially released console games account for Arabic language script/font/linked letter/orientation. So we need to fix some problems:
=
1 - The Arabic is written from right to left, horizontally, unlike in all known videogames (barring Akira Tago DS, Goemon DS, Sigma Harmonics, and a few other Japan-only games which DO write from right to left, but VERTICALLY, which just opens a whole array for even more problems). The numbers however, are written in the occidental orientation (left-to right).

Two solutions:
a- Make it so that the letters start appearing from right to left. The ideal solution, yet it requires ASM hacking.
Such a method would be essential in games like RPG, or anything where text appearance on-screen timing is essential (Voiced dialogue, Mother 3 where timing was emotionally important).

I am currently at loss what to do to translate a certain JP-only Level-5 late DS RPG since i lack the know-how to do such a thing, and to my knowledge, the few Arabic fan-translations that happened did not use this method either for the same reasons. If you can help this tormented soul of yours faithfully, please don’t refrain from doing so.

The general idea is to hack arm7 or arm9 (dear god) to make the starting point at the right edge. The increments must be substracting inside of adding, like you said. The numbers however are from left-to-right (they are variables), and so are some words (item names, etc) so we must implement a control code to render specific portions in that orientation, and add a routine to convert everything unter theses control codes in the right-to left orientation (i.e. reverse everything between them) then output everything from right-to-left. My god, how do I implement ASM routines?

b- Leave it as it is, from left to right. Do not require ASM hacking.
The letter order in the Arabic script is reversed before being inserted in the rom. It shows up as if you selected it and Ctrl+L it. Unfortunately, so far all the fan-translated to Arabic games use this method: Link Awakening, Minish Cap Partial Patch, Pokemon Ruby Partial Patch, Yoshi Island, and the Captain Tsubasa Famicom game, and a handful other games I can't remember right now.

While by far the worst method, it can be useful if you can set the text speed so that it shows up immediately (like in Tales Of games), alleviating it a bit. But in most of the cases, it only makes most games borderline unplayable: try to imagine the last word being shown first.
=

2 - Didactical symbols: unneeded.
If it is a Japanese game with furigana showing on top of characters (for example Phantom Hourglass, all Layton games, Ninokuni...) it's possible to implement them: one can simply edit the furigana font to show all diactrics (except the "i" diactric, as it shows under the letter, so it's better to just omit it).

An alternate solution working for all games would be to copy the whole font six times with each copy having a different diactrical symbol (short “a”, short ”o” , short ”u” , stress (like the small “tsu” in Japanese), and nothing), if you enjoy doing so, and have a Japanese font: you can edit the kanji to insert your duplicate font sets.

Personally, I would just give up on the didactical symbols crap, but it’s up to you.
=

3 - Naming Screens
Naming/Password screens must be tweaked so that: (ASM hacking required, unfortunately)
a- align the letters showing up from right (first letter) to left.
b- the first inputted letter is actually stored as the last one in the password/name data, and so on..
Again, I don't know how to do it. Anyone willing to help with ASM know-how, please contribute.

Alternatively, we can just add all states as the letters on the digital.keyboard. problem: the naming screen hasn't enough space to use all "states" of letters. See below for a solution.
=

4 - Arabic uses attached letters.
An Arabic letter has four different states: linked with next char, linked with previous char, between two chars, and isolated. Some letters even have variations that are considered in typography separate letters, like "a", and "soft t", and there are 28 letters to start with.

It is just better to use an English font (ideally including European chars, or better, a Japanese font) and replace each character from it with an Arabic "state" for all letters. About the characters appearing linked part: AFAIK, for DS games using NTFR font, you can just use Tinke, and set the Width and Length for a character at the same value (but sometimes even this is not enough without ASM hacking), and modify the font from the English/Jap letter to an Arabic letter "state". Tahoma 12 would be the ideal font to use as a basis for Arabic characters.

Then program a custom text convertor, to convert your translated normal linked Arabic script written in Microsoft Word, to garbled English/Japanese text to insert in the game, so that it will show as intended in-game as normal Arabic text. You know about the crappy Wall-E game that was released officially in Arabic? It just uses that method!

Drawbacks: Naming screens would be a huge mess. Unavoidable without implementing complicated routines to actually choose the correct “state” for Arabic letters automatically depending on their position in the word.

My solution:
Basic Arabic alphabet has 28 letters + 5 letter worth of variations = 33 * 4 states = 132 characters (more or less, as there are letters with only two “states”). We should modify the font, but the games depending on the developer (western or Japanese) uses different fonts and need different strategies.

a- European Latin Font available: Most western developed games unfortunately have this, probably this one too (but not My Japanese Coach, from the same series).
The font set has 26*2 letters + 56 symbols = 108 characters. If there is no other choice, you'll have to throw away some letter "states", but the text will look ugly. Do this with rarely used letters, or ones with similar "initial" and "intermediate" states. The article "THE" ("al")however, MUST be included as a character, to save space.

b - Japanese Font Set (best thing you can hope for): the font set has: ( 23*2 letters with 1 alternate form + 5*3 letters with TWO alternate forms + 19 letters = 80 ) * 2 (katakana/hiragana) = 160 (+4) characters , and this is the bare minimum found in every game made in Japan. That's not even accounting for the 52 letters of the alternate English set, or the kanji set (2500~7500, depending on the game).

So that all characters fit on naming screens, I suggest this: http://hpics.li/eefb5ba

Question for ASM experts: Can you just stick a JP font to a western game using ascii, or does it require more (gasp) ASM hacking?

You can add special letters for “P” and “G” (they were added to Arabic, much like Latin accentuated letters) , add as many two-letter combinations as you like, including "THE", all possible consonant + vowel pairs, and all grammatical suffixes/prefixes. This saves you enormous amounts of space. I showed an example of this in the included image with minimal number of letters used, but you can do better.

Of course, you can with this include English letters within Arabic script, which can get extremely useful sometimes.
==
Hope that answered your question. Sorry for the typo fest, everyone. It is actually spelled didactical symbols, but I’m in a hurry right now.

So..

Okay EbraamMorcos, I can't really help since I am myself ignorant in ASM hacking, and I have forgotten my Spanish lessons ':D, but once I find a Japanese-to-Arabic/English/French translator (can anyone help?) to actually start tackling Ninokuni DS, I can at least provide you with the font once I work on it.

For now maybe should you actually contribute to your own project and rip the Spanish Text and start translating it to normal Arabic on Microsoft Word as a start, and trust me, that’s a lot of work. Get someone to help you on this tremendous task. Converting the Arabic script will wait.
You'll have to find out if your game supports Japanese text if you replace the font and replace English/Spanish text with Japanese as a start. If it is (hopefully, as you can’t just replace English letters, since you need both English and Arabic letters), you won't need further ASM hacks except for screens that require typing words, and text orientation (second biggest concern). Anyway, best of luck in your project!

So, anyone else can help with some tips on how to tweak the text orientation ASM part? Can't figure it out with Crystaltile : how should I do? Also, as a side note, I want to know how to edit textures stored in BMD0 3D-models, as my efforts with MarioKart Editor have proven unsuccessful. That would be very nice.
 
  • Like
Reactions: Gamer90Kirby

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Text appearing RTL in English is not uncommon for intro sequences (usually on fire (think your average fantasy film) or as a translation happening in real time) but I would agree for a teaching tool it is far from ideal.

So there are fewer combinations than I feared*.... in that case I would hate to do the input of the text for the game (although I figure you could retool a DTE/MTE text scanner for it as it is a similar problem) and getting the game to manually convert is not a path I would head down. I would not get hung up on there being more characters overall as the bigger thing is that it is an 8 bit character set (256 combinations); the 8 and 16 bit encoding differences are what governs most of text hacking on any console with NFTR very much being the exception. I should note that ASCII is technically a 7 bit encoding which some games do actually use and that means 128 characters. It sounds like you might get something out of reading http://transcorp.romhacking.net/scratchpad/Table%20File%20Format.txt as well.
Although it is annoying (I covered basic adding to an NFTR font in http://filetrip.net/nds-downloads/utilities/download-gba-and-ds-rom-hacking-guide-2012-preview-2-f30026.html although I did not go into much depth on the different types of CMAP which governs the resulting encoding) it is quite possible to add working characters to NFTR. Subbing in a new font- if the libraries work the same way SDAT ones do then it should be quite possible but as most seek to remain close to the original as far as text goes (and dealing with fixed text menus and similar things it can force your hand). The bigger problem with just reversing before injection is usually alignment and the only school IT even manages to install was http://xkcd.com/292/ but using spaces/tabs in lieu of proper alignment is what sits in my head.

*part of that was probably due to the few times I had to deal with various encodings that missed parts out.

No need for diacritics- fantastic.

Regional differences- my bad- I dealt with some people setting up an Arabic teachers business who were quite keen to stress backgrounds of the tutors available and quite often have to deal with those using Persian script and Arabic. This said if the game does do speech training (and several of these trainers do something here) I will put it back on the table.

Naming Screens- these are quite often a unique case in any game by way of a fixed length of memory being assigned and in the case of the DS they often feed from the firmware itself. Back in the hacking docs I demonstrated using a name entry screen as a method of table construction if you want a look at something and that was not even a weird one (I did not change anything but it shows some oddities). The DS has a reasonable selection of shifts and rotations you might be able to abuse for this though.

On ASM in general- I know ASM ability is built up as the mark of the true hacker but you are running the risk of scaring yourself off it. Have a read of http://www.coranac.com/tonc/text/asm.htm and some of the documentation on http://crackerscrap.com/ and by all means make a few threads to try and get more information on a subject. Despite being so seldom done thinking about some of the font handling I have seen it would probably be an easier hack than even a basic variable width font hack (assuming you are not luck enough to encounter something like http://gbatemp.net/topic/330888-edit-dat-fonts/ ) or the 16 bit to 8 bit conversion hack.

I will have to check out http://gbatemp.net/topic/125544-dementium-the-ward-arabic-translation-project/ though as it might have some ideas (also it was not on your list). As for vertical text (Tategaki in Japanese) it is weird even on Japanese games although not that hard to handle.

3d textures- I have done some work in tools like http://gbatemp.net/topic/319635-extracting-textures-from-an-nsbmd-file/ but some of the more common texture formats are not supported by the likes of CT2 and tileGGD so simple editing with existing tools might not be all that easy depending upon the type of texture used (of which there are a few http://nocash.emubase.de/gbatek.htm#ds3dtextureformats and http://www.daftcode.net/gbatek/ds#ds3dtextureformats ).
 

EbraamMorcos

Well-Known Member
OP
Member
Joined
Jul 1, 2012
Messages
102
Trophies
0
XP
125
Country
United States
hey guys since ommario made the extraction tool now i need translators who at least know (other than English) Spanish or Arabic.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: This movie rip so werid has 10180p quality but the audios ripped with movie theater audio quality