Форум Magic Team


 

Новости:

01.01.2017: Релиз испанской версии Naruto - Ninja Council (GBA)
02.12.2016: Добавлена документация по Kruptar 7
09.10.2015: Обновление перевода игры Battletoads (NES) [версия 1.3]
22.01.2015: Kruptar Open Source
18.10.2014: Релиз обновлённой русской версии Castlevania - Dawn of Sorrow (GBA) от Owls Group
01.05.2014: Релиз русской версии Taiyou no Yuusha Firebird (NES)
24.06.2012: Добавлена доработанная документация и инструкция
26.05.2012: Обновление ORITON [версия 2.050]
11.05.2012: Обновление ORITON [версия 2.048]
11.03.2012: Обновление Kruptar 7 [версия 7.1.1.17]
29.01.2012: Обновление LZ77Restructor 2 [версия 1.02]
01.01.2012: Релиз русской версии Drill Dozer (GBA)

Подробнее на страничке новостей.
Ознакомьтесь с правилами нашего форума.


  • Форум
  • Поиск
  • Вход
  • Регистрация

  • Форум Magic Team »
  • Переводы, переводы, переводы... »
  • Ромхакинг и перевод »
  • Shining Force: RoDD
« предыдущая тема следующая тема »
  • Печать
Страницы: 1 ... 3 4 [5] 6 7 ... 9   Вниз

Автор Тема: Shining Force: RoDD  (Прочитано 124787 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #100 : 02 Ноябрь 2011, 20:48:07 »
Цитата: Джинни от 02 Ноябрь 2011, 05:24:29
Шрифт в Shining Force на gba можно увидеть только специальными редакторами типа Tile Molester, Crystal Tyle.
Спасибо! А можно уточнить с какими настройками... Вот обычный шрифт опять же нашёлся легко. А второго не вижу :(


В Crystal Tyle 2 тоже самое, хотя заметно что программа более навороченная. Может там какую волшебную опцию надо поставить и я прозрею?... :)

Добавлено позже после небольших раздумий:
Наверное трудность в том что шрифт немоноширинный. Где-то прочитал что для таких шрифтов часто используется 2bpp, прочесал его по всем программам - ноль результата. Даже корруптером (Поганка) ничего не нашёл, хотя пристально не искал (ну всего то пару часов)

Сжальтесь опытные ромхакеры! Ткните скриншотом в шрифт :) Любые советы помогут...
I wanna be the romhacker

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force: RoDD
« Ответ #101 : 03 Ноябрь 2011, 07:12:04 »
В Tile Molester есть режим 2-dimensional. Его надо поставить и покрутить.

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #102 : 03 Ноябрь 2011, 11:51:35 »
Прокрутил все режимы (до 16bpp) с установленным 2-dimensional... Наверное остается корруптить внимательнее  :-|
I wanna be the romhacker

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force: RoDD
« Ответ #103 : 03 Ноябрь 2011, 12:09:38 »
Там 2 или 4 бит, точно не помню.
Где именно находится не могу точно сказать, но у меня в пометках есть какие-то адреса:
h57782C
h57bd7b
Во вложении уже извлечённый шрифт.

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #104 : 03 Ноябрь 2011, 22:12:46 »
Увы, 0x57782C-0x57bd7b визуально ничего нет. Смотрел и в европейской и в американской. После этого прокорруптил данные адреса - европейка виснет, а в американской шрифт не изменяется. Значит все таки он не там  :-|

Может пожато? Буду копаться дальше...
I wanna be the romhacker

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Shining Force: RoDD
« Ответ #105 : 03 Ноябрь 2011, 23:53:03 »
Этот шрифт что-ли так долго ищется? )
Если внимательно почитать:
Цитата: inside от 02 Ноябрь 2011, 20:48:07
Где-то прочитал что для таких шрифтов часто используется 2bpp
и посмотреть выложенный выше Джином шрифт (где можно увидеть, что ширина тайла там 12х12), то видим, что режим: 2Bpp (возможно) и тайл: 12х12. Выставляем эти параметры и ищем:



Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #106 : 04 Ноябрь 2011, 00:15:28 »
Урррра! :) Ох и ступил же я, и впрямь все логично оказалось. А этот коварный шрифт при другом размере тайла как мусор смотрится, я 12х12 не догадался проставить. Пойду перерисовывать :D

Anton, Джинни, большое спасибо за помощь!

ps. Надеюсь скоро вернусь с переводом первой главы
I wanna be the romhacker

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Shining Force: RoDD
« Ответ #107 : 04 Ноябрь 2011, 23:43:05 »
Не терпится взглянуть :)
Otium sine litteris mors est et hominis vivi sepultura.

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #108 : 05 Ноябрь 2011, 05:33:40 »
Почти все подготовил к переводу (с сохранением EN версии). Однако ром не хочет сдаваться без боя :)
Т.к. шрифт немоноширинный, оказалось что где-то задана ширина для каждой буквы. А т.к. я перерисовывал - куча букв не той ширины которой должна бы быть и буквы на друг друга наползают. Пока ищу где это в роме задается. Вроде было бы логично задать где-то рядом и по сути должен быть ряд малых чисел типа: 08 06 08 08 09 08 08 08 08 08 02 08 08 08 04 (по ширине букв в пикселях). Но такого нет :( Может у кого есть опыт в поиске таких мест (или конкретно для этой игры)?
I wanna be the romhacker

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force: RoDD
« Ответ #109 : 05 Ноябрь 2011, 07:35:38 »
Там есть такая таблица. Адрес 7BE40 и до 7BEE8.

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #110 : 05 Ноябрь 2011, 17:35:36 »
Цитата: Джинни от 05 Ноябрь 2011, 07:35:38
Там есть такая таблица. Адрес 7BE40 и до 7BEE8.
Спасибо! Моя ошибка была в том что я "померил" восклицательный знак в 2 пикселя, а у них он за 4 идет. В 6 часов ночи и не такое намеришь...

Джинни, как я понимаю Kruptar7 вполне должен справиться с переводом игры, с учетом того что таблица одна? Больно много настроек, пока во все въедешь...  :-[

И ещё я решил выкладывать наработки периодически
Спойлер для  Shining Force - Resurrection of the Dark Dragon (E) (M5):
Заметки:
Цитировать (выделенное)
Моноширинный шрифт: 0x77632C (GBA 4bpp 8x8)
Немоноширинный шрифт: 0x1765E0 (4 color 2bpp 12x12)

Символы на клавиатуре ввода имени: 0x1E206D / 0x1E20FD

Таблица ширины букв (начиная с пробела): 0x07BE3D

Языки:
0x178248 Английский
0x1E2284 Итальянский
0x250798 Французский
0x2B89E4 Немецкий
0x3277A8 Испанский

Спец-символы:
0x00 Конец строки
0x01 ?
0x02 ?
0x03 Конец монолога
0x04 ?
0x05 ?
0x06 ?
0x07 Числовой макрос
0x08 Именной макрос
0x09 Имя персонажа
0x0A ?
0x0B ?
0x0C ?
0x0D ?
0x0E Конец фразы (то из чего состоит монолог)
0x0F ?

Оригинальная таблица (~ - спецсимволы)
Цитировать (выделенное)
00=~
02=~
03=~
04=~
05=~
06=~
07=~
08=~
09=^
0A=\n
0B=~
0C=~
0D=~
0E=~
0F=~
10=
11=0
12=1
13=2
14=3
15=4
16=5
17=6
18=7
19=8
1A=9
1B=!
1C=#
1D=%
1E=&
1F=(
20=)
21=+
22=-
23=.
24=/
25=:
26=<
27==
28=>
29=?
2A=@
2B=A
2C=B
2D=C
2E=D
2F=E
30=F
31=G
32=H
33=I
34=J
35=K
36=L
37=M
38=N
39=O
3A=P
3B=Q
3C=R
3D=S
3E=T
3F=U
40=V
41=W
42=X
43=Y
44=Z
45=[
46=]
47=_
48=a
49=b
4A=c
4B=d
4C=e
4D=f
4E=g
4F=h
50=i
51=j
52=k
53=l
54=m
55=n
56=o
57=p
58=q
59=r
5A=s
5B=t
5C=u
5D=v
5E=w
5F=x
60=y
61=z
62=~
63=…
64=~
65=~
66=~
67=,
68=~
69='
6A=~
6B=~
6C=~
6D=~
6E=~
6F=~
70=~
71=~
72=~
73=~
74=~
75=~
76=~
77=~
78=~
79=~
7A=~
7B=~
7C=~
7D=~
7E=~
7F=~
80=~
81=~
82=~
83=~
84=~
85=~
86=~
87=~
88=~
89=~
8A=~
8B=~
8C=~
8D=~
8E=~
8F=~
90=~
91=~
92=~
93=~
94=~
95=~
96=~
97=~
98=~
99=~
9A=~
9B=~
9C=~
9D=~
9E=~
9F=~
A0=~
A1=~
A2=~
A3=~
A4=~
A5=~
A6=~
A7=~
A8=~
A9=~
AA=;
AB=~
AC=~
AD=*
AE=«
AF=»
B0=~
B1=~
B2=$
B3=~
B4=~
B5=~
B6=~
B7=~
B8=~
B9=~
BA=~
BB=~
BC=~
BD=~
BE=~
BF=~

Новая таблица:
Цитировать (выделенное)
00=~
02=~
03=~
04=~
05=~
06=~
07=~
08=~
09=^
0A=\n
0B=~
0C=~
0D=~
0E=~
0F=~
10=
11=0
12=1
13=2
14=3
15=4
16=5
17=6
18=7
19=8
1A=9
1B=!
1C=#
1D=%
1E=&
1F=(
20=)
21=+
22=-
23=.
24=/
25=:
26=<
27==
28=>
29=?
2A=@
2B=A
2C=B
2D=C
2E=D
2F=E
30=F
31=G
32=H
33=I
34=J
35=K
36=L
37=M
38=N
39=O
3A=P
3B=Q
3C=R
3D=S
3E=T
3F=U
40=V
41=W
42=X
43=Y
44=Z
45=[
46=]
47=_
48=a
49=b
4A=c
4B=d
4C=e
4D=f
4E=g
4F=h
50=i
51=j
52=k
53=l
54=m
55=n
56=o
57=p
58=q
59=r
5A=s
5B=t
5C=u
5D=v
5E=w
5F=x
60=y
61=z
62=~
63=…
64=~
65=~
66=~
67=,
68=~
69='
6A=~
6B=~
6C=А
6D=Б
6E=В
6F=Г
70=Д
71=Е
72=Ж
73=З
74=И
75=Й
76=К
77=Л
78=М
79=Н
7A=О
7B=П
7C=Р
7D=С
7E=Т
7F=У
80=Ф
81=Х
82=Ц
83=Ч
84=Ш
85=Щ
86=Э
87=Ю
88=Я
89=а
8A=б
8B=в
8C=г
8D=д
8E=е
8F=ё
90=ж
91=з
92=и
93=й
94=к
95=л
96=м
97=н
98=о
99=п
9A=р
9B=с
9C=т
9D=у
9E=ф
9F=х
A0=ц
A1=ч
A2=ш
A3=щ
A4=ъ
A5=ы
A6=ь
A7=э
A8=ю
A9=я
AA=;
AB=~
AC=~
AD=*
AE=«
AF=»
B0=~
B1=~
B2=$
B3=~
B4=№
B5=~
B6=~
B7=~
B8=~
B9=~
BA=~
BB=~
BC=~
BD=~
BE=~
BF=~

Таблица ширины букв (перерисованное)
Код: [Выделить]
          00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0x07BE90: -- -- -- -- -- -- -- -- -- 0A 08 08 07 0A 08 0C
                                      A  Б  В  Г  Д  Е  Ж
0x07BEA0: 07 08 08 08 09 0A 08 09 08 08 08 08 08 0A 08 0A
           З  И  Й  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц
0x07BEB0: 08 0A 0B 08 0C 08 06 06 06 05 08 06 06 0A 06 06
           Ч  Ш  Щ  Э  Ю  Я  а  б  в  г  д  е  ё  ж  з  и
0x07BEC0: 06 06 07 08 06 06 06 06 06 06 06 08 06 07 06 0A
           й  к  л  м  н  о  п  р  с  т  у  ф  х  ц  ч  ш
0x07BED0: 0B 07 08 06 06 09 06 -- -- -- -- -- -- -- -- --
           щ  ъ  ы  ь  э  ю  я

Перерисованные шрифты во вложении
I wanna be the romhacker

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Shining Force: RoDD
« Ответ #111 : 05 Ноябрь 2011, 19:35:43 »
Цитата: inside от 05 Ноябрь 2011, 17:35:36
с учетом того что таблица одна?

У тебя же их две.
Одна английская (оригинальная), вторая русская (новая).

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1304
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Shining Force: RoDD
« Ответ #112 : 05 Ноябрь 2011, 19:41:44 »
Гм... А зачем шрифт диалогов было делать шириной больше оригинала?  *thinking*

Оффлайн GD

  • Пользователь
  • Сообщений: 54
  • Репутация: +3/-1
    • Просмотр профиля
Shining Force: RoDD
« Ответ #113 : 05 Ноябрь 2011, 19:51:10 »
А разве нельзя взять наработки (шрифт) из зачахшего прожекта?

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Shining Force: RoDD
« Ответ #114 : 05 Ноябрь 2011, 20:01:19 »
Цитата: JurasskPark от 05 Ноябрь 2011, 19:41:44
А зачем шрифт диалогов было делать шириной больше оригинала?

чтобы потом делать лишнюю работу и править ширины :)
(все... молчу, молчу...)

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #115 : 05 Ноябрь 2011, 20:17:18 »
Цитата: Anton
У тебя же их две.
Одна английская (оригинальная), вторая русская (новая).
Ну, не совсем так. Как я понимаю обычно приходится перерисовывать оригинальный шрифт (английский например). И тогда будут две таблицы - в них символы будут пересекаться. Например 1E в одном будет "r" а в другой "ш". У меня же таблицы не пересекаются, т.к. английский шрифт был не тронут. Другими словами я могу писать и на английском и на русском (к примеру: "Макс нашёл Chaos Breaker"). И для перевода мне как бы не нужно иметь два рома на руках, ведь 1 таблица символов позволяет мне видеть оригинальный английский и русский который в процессе

Цитата: JurasskPark от 05 Ноябрь 2011, 19:41:44
Гм... А зачем шрифт диалогов было делать шириной больше оригинала?
Хм? Как было 12x12 так и осталось. Или как? :) Кстати шрифт - унылый Arial, но другой не придумался :) Если с переводом закончим потом шрифт перерисовать не так уж и сложно



 :-[ поинтеры не ищутся. На тему начитался, и вроде все очевидно. Накидал прожку:
Код: [Выделить]
#include "stdafx.h"
#include <iostream>

#define FILE_LEN 4194304
#define TABL_LEN 5

int _tmain(int argc, _TCHAR* argv[])
{
// Таблица смещения адреса для каждого последующего сообщения
unsigned int arCheck[TABL_LEN] = {
121, 28, 61, 14, 73
};

// Считываем файл
FILE* file = fopen("F15.gba", "r");
unsigned int* arFile = new unsigned int[FILE_LEN];
while(fread(arFile, sizeof(unsigned int), 64, file));

unsigned int curFilePosValue = 0;
unsigned int curBatchPosValue = 0;
unsigned int pointerAddress = 0;
bool finded = true;

// Адрес предполагаемого поинтера
for(int curFilePos = 0; curFilePos < FILE_LEN; curFilePos++)
{
finded = true;

// Куда указывает предполагаемый поинтер (А)
curFilePosValue = arFile[curFilePos];
for (int curBatchPos = 0; curBatchPos < TABL_LEN; curBatchPos++)
{
// Следующее значение куда указывает поинтер (Б) который идет после предполагаемого (А) на X+curBatchPos позиций
curBatchPosValue = arFile[curFilePos+curBatchPos+1];

// Разница между следующей позицией и текущей должна соответствовать заданной
if ( (curBatchPosValue - curFilePosValue) != arCheck[curBatchPos] )
{
// Если не соответствует - помечаем что ничего не нашли и выходим
finded = false;
break;
}

// А = Б и ищем дальше
curFilePosValue = curBatchPosValue;
}

// Все тесты пройдены?
if ( finded )
{
// Запоминаем адрес поинтера и выходим
pointerAddress = curFilePos;
break;
}
}

std::cout << pointerAddress;
return 0;
}
Логика: берем предпологаемый 4 байтный поинтер. Берем следующий после него, проверяем разницу значений между ними. Если она arCheck[0] - значит идем дальше, и т.п. пока всю таблицу не просмотрим. arCheck задает разницу между сообщениями А, Б, В, Г, Д. Т.е. сообщение А = 0, а Б = A + 121, В = Б + 28 и т.п.

Или надо по другой логике искать?

Только не говорите где они лежат сразу, хочу разобраться  ;) А вот если логику поиска подскажите - буду рад :)

Цитата: GD
А разве нельзя взять наработки (шрифт) из зачахшего прожекта?
Ну, во-первых у меня его нет. Во-вторых автор думаю проект не забросил, просто пока отложил, поэтому отбирать его работу я не собираюсь :) А вообще просто хотелось самому разобраться с самых азов. Но туго как то идет, сложное это дело  :-|

Цитата: Anton
чтобы потом делать лишнюю работу и править ширины
(все... молчу, молчу...)
Поздно, уже поправил :) Да в общем-то ширину пофиксить не долго, а вот найти где оно лежало конечно не так просто. Спасибо Джинни за нахождение :) Впрочем я бы все равно нашёл бы рано или поздно с помощью корруптера и понял где тупанул (на ширине знака "!")... Ну а может бы и не нашёл... :))
И... ширину EN-алфавита я вообще не трогал. Переправил только ширину спец-языковых символов (всякие А с точками наверху и т.п.)
I wanna be the romhacker

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force: RoDD
« Ответ #116 : 05 Ноябрь 2011, 20:29:47 »
Цитата: inside от 05 Ноябрь 2011, 20:17:18
Во-вторых автор думаю проект не забросил, просто пока отложил
По-моему он его очень сильно "отложил"  ;D

Цитата: inside от 05 Ноябрь 2011, 20:17:18
А вообще просто хотелось самому разобраться с самых азов. Но туго как то идет, сложное это дело  :-|
Похвальное стремление. GBA - отличная платформа для учёбы, для неё написана куча утилит. Например, пожатую графику можно найти при помощи моего второго LZ77Restructor'а :) В большинстве случаев должно быть достаточно только его, реже графику сжимают Хаффманом, но при желании её можно тоже довольно легко найти. Кстати, у меня есть в планах научить Реструктора работать с Хаффманом, но пока что лень  ;D

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Shining Force: RoDD
« Ответ #117 : 05 Ноябрь 2011, 20:35:49 »
Цитата: inside от 05 Ноябрь 2011, 20:17:18
Хм? Как было 12x12 так и осталось. Или как?

Не ширина тайла имелась в виду, а ширина символа.

Цитата: inside от 05 Ноябрь 2011, 20:17:18
И для перевода мне как бы не нужно иметь два рома на руках

Для круптара зато тебе понадобится два рома (оригинальный и изменяемый) и две таблицы соотв. )

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #118 : 06 Ноябрь 2011, 00:10:02 »
Подтолкните на мысль...

В игре размер текстового блока - около 0x217569. Соответственно размер поинтера - 3 байта.
Есть 2 сообщения по адресам
А: 0x178248
Б: 0x1782C1
Между ними 121 байт
Соотстветственно я предполагаю, что где-то в игре есть 2 поинтера, один из которых равен X а другой X+121. Вот исходя из этого я написал программу. Однако такого места в роме вообще нет. Чтобы это могло значить?

Может поинтеры этих двух фраз (которые идут друг за другом) находятся не подряд? Было бы странно. Или я где ошибся в рассуждениях?

Пока по этой технологии проверил 3х и 4х байтные поинтеры

Добавлено позже после небольших раздумий:
Нашлись поинтеры :) Причем самым банальным способом, поинтеры абсолютные, без всяких там смещений.
Например первая фраза игры (ENG) находится по адресу 0x178248
Если поискать 48 82 17 найдется 1 совпадение - вот и наш первый поинтер

Что интересно поинтеры 4-байтные, к каждому добавляется 08 (прим 48 82 17 08). Интересно зачем оно нужно? :) Ведь 08 явно лишняя. Это они что так одну операцию процессора сэкономили?

Впрочем не важно. Осталось разобраться с Kruptar7. Есть ли для него хелп по параметрам? Всякие ptReference, ptAlign...
I wanna be the romhacker

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force: RoDD
« Ответ #119 : 06 Ноябрь 2011, 05:58:14 »
Цитата: inside от 06 Ноябрь 2011, 00:10:02
Что интересно поинтеры 4-байтные, к каждому добавляется 08 (прим 48 82 17 08). Интересно зачем оно нужно? :) Ведь 08 явно лишняя. Это они что так одну операцию процессора сэкономили?
В 99.9% GBAшных игр поинтеры именно такие. Других поинтеров практически никогда не бывает. Поинтеры в GBA абсолютные
0x08000000 - это самый первый байт рома
То есть, например, если адрес в роме у тебя 0x01234567, то поинтер на него будет такой: 0x09234567, в роме он будет записан так: 67 45 23 09

По адресам до 0x08000000 идут адреса биоса, оперативки, видеопамяти и прочее. Вот полный список:

Цитировать (выделенное)
General Internal Memory

  00000000-00003FFF   BIOS - System ROM         (16 KBytes)
  00004000-01FFFFFF   Not used
  02000000-0203FFFF   WRAM - On-board Work RAM  (256 KBytes) 2 Wait
  02040000-02FFFFFF   Not used
  03000000-03007FFF   WRAM - In-chip Work RAM   (32 KBytes)
  03008000-03FFFFFF   Not used
  04000000-040003FE   I/O Registers
  04000400-04FFFFFF   Not used

Internal Display Memory

  05000000-050003FF   BG/OBJ Palette RAM        (1 Kbyte)
  05000400-05FFFFFF   Not used
  06000000-06017FFF   VRAM - Video RAM          (96 KBytes)
  06018000-06FFFFFF   Not used
  07000000-070003FF   OAM - OBJ Attributes      (1 Kbyte)
  07000400-07FFFFFF   Not used

External Memory (Game Pak)

  08000000-09FFFFFF   Game Pak ROM/FlashROM (max 32MB) - Wait State 0
  0A000000-0BFFFFFF   Game Pak ROM/FlashROM (max 32MB) - Wait State 1
  0C000000-0DFFFFFF   Game Pak ROM/FlashROM (max 32MB) - Wait State 2
  0E000000-0E00FFFF   Game Pak SRAM    (max 64 KBytes) - 8bit Bus width
  0E010000-0FFFFFFF   Not used

Больше инфы по GBA можно найти там:
http://www.romhacking.net/documents/217/

Цитата: inside от 06 Ноябрь 2011, 00:10:02
Впрочем не важно. Осталось разобраться с Kruptar7. Есть ли для него хелп по параметрам? Всякие ptReference, ptAlign...
В ptReference нужно вбивать разницу смещений (<фактический адрес> минус <значение поинтера>), для GBA это F8000000

ptAlign - фиг знает, у Джина спроси  :D

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force: RoDD
« Ответ #120 : 06 Ноябрь 2011, 07:11:36 »
Цитата: inside от 06 Ноябрь 2011, 01:35:36
Языки:
0x178248 Английский
0x1E2284 Итальянский
0x250798 Французский
0x2B89E4 Немецкий
0x3277A8 Испанский
Возьми лучше U версию. Зачем тебе столько языков?

Добавлено позже после небольших раздумий:
Цитата: inside от 06 Ноябрь 2011, 08:10:02
Соответственно размер поинтера - 3 байта.
Пойнтеры там 4-х байтные. Little endian. Значения от 0x08000000 с начала рома. В байтах выглядит так: 00 00 00 08.
И это во всех играх на GBA. Бывают относительные пойнтеры, но всегда или 2 или 4 байта. 3 байта никогда не бывает.

Добавлено позже после небольших раздумий:
Цитата: inside от 06 Ноябрь 2011, 08:10:02
Впрочем не важно. Осталось разобраться с Kruptar7. Есть ли для него хелп по параметрам? Всякие ptReference, ptAlign...
http://magicteam.net/index.php?page=documents&show=Написание плагинов для Kruptar7
Но в новых версиях названия некоторых параметров изменились. Об этом читать в readme.

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #121 : 06 Ноябрь 2011, 14:49:18 »
Цитировать (выделенное)
В 99.9% GBAшных игр поинтеры именно такие. Других поинтеров практически никогда не бывает. Поинтеры в GBA абсолютные
Спасибо, в общем-то так и понял. Только я подумал что это не очень то рационально :)

Цитировать (выделенное)
В 99.9% GBAшных игр поинтеры именно такие. Других поинтеров практически никогда не бывает. Поинтеры в GBA абсолютные
Упорно хочу оставить английский :)

Цитировать (выделенное)
Но в новых версиях названия некоторых параметров изменились. Об этом читать в readme.
Спасибо! Уже создал почти готовый к переводу. Только с таблицой непонятки есть, а почитать о них вроде негде.

1. Спец-символы (звездочки, стрелочки) которые не будут использоваться для перевода - не нужно оставлять в таблице вообще?
2. Когда я делаю перевод строки в просмотрщике строк видны два квадратика на том месте где есть перенос - это нормально или я что-то не так сделал. Странно как-то :)
3. Можно ли в таблице символов задавать правосторонние значения в виде нескольких символов - вроде
09=#HERO#
Типа макросов для замены. Будет ли это корректно обработано? Или если в переводе написать #HERO# то каждый из этих символов заменится соответсвенно и в игре вместо соответствующего байта будет прям так и написано "#HERO#"?
4. В игре каждый монолог заканчивается на код 03 (а после него сразу идет 00). Как мне его при переводе отображать? Или убрать его из таблицы чтобы он был /03 ?
5. Для чего нужны "Диапазоны адресов" при создании группы. Как я догадываюсь - там задаются адреса тех мест на которые Kruptar'у разрешается записывать; вне этого диапазона он ничего не подпортит. (Кстати как он поступит если результирующий текст по размеру больше чем оригинальный и не влезает в условленные рамки?
I wanna be the romhacker

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force: RoDD
« Ответ #122 : 06 Ноябрь 2011, 15:18:27 »
Цитата: inside от 06 Ноябрь 2011, 14:49:18
1. Спец-символы (звездочки, стрелочки) которые не будут использоваться для перевода - не нужно оставлять в таблице вообще?
Спецсимволы надо либо по-разному обозначать, либо вообще убрать из таблицы.
Такого
00=~
02=~
03=~
04=~
быть не должно.
Если так оставить, то Круптар сначала выдерет все такие символы в виде ~, а потом при вставке заменит их на первый подходящий код, то есть на 00. В итоге игра не будет работать корректно.

Кстати, если, например, у тебя нет места под все буквы русского алфавита, но ты боишься случайно напечатать букву Ё, для которой не хватило места, то можно внести в таблицу нечно подобное:
61=Ё
61=ё
61=Е
61=е
Если так сделать, то любую из букв Ё, ё, Е или е круптар будет заменять на код 61.
Цитата: inside от 06 Ноябрь 2011, 14:49:18
2. Когда я делаю перевод строки в просмотрщике строк видны два квадратика на том месте где есть перенос - это нормально или я что-то не так сделал. Странно как-то :)
А как ты этот перенос в таблице обозначил?

Должно быть что-то вроде такого:
41=А
42=Б
43=стопицот
02
03
ends
00
01

02 и 03 будут восприниматься круптаром как переносы строк
00 и 01 будут восприниматься круптаром как концы строк
Перед концами строк обязательно должна стоять строка ends

Цитата: inside от 06 Ноябрь 2011, 14:49:18
3. Можно ли в таблице символов задавать правосторонние значения в виде нескольких символов - вроде
09=#HERO#
Типа макросов для замены. Будет ли это корректно обработано? Или если в переводе написать #HERO# то каждый из этих символов заменится соответсвенно и в игре вместо соответствующего байта будет прям так и написано "#HERO#"?
Да, в таблице символов можно писать слова. Круптар их будет корректно кодировать.
Например, если у тебя в таблице есть такая запись:
60=слово
То там, где будет встречаться кусок "слово" (без кавычек), Круптар автоматом подставит байт 60.
Цитата: inside от 06 Ноябрь 2011, 14:49:18
4. В игре каждый монолог заканчивается на код 03 (а после него сразу идет 00). Как мне его при переводе отображать? Или убрать его из таблицы чтобы он был /03 ?
Выясни что делает 03 и что делает 00. Вероятнее всего, что 00 - это конец строки, а 03 - какой-нибудь спецсимвол, например, это может быть символом, который выводит на экран мигающий курсор.
Чтобы точно узнать что делает тот или иной код, просто попробуй воткнуть его посреди предложения и посмотри что произойдёт в игре.
Цитата: inside от 06 Ноябрь 2011, 14:49:18
5. Для чего нужны "Диапазоны адресов" при создании группы. Как я догадываюсь - там задаются адреса тех мест на которые Kruptar'у разрешается записывать; вне этого диапазона он ничего не подпортит. (Кстати как он поступит если результирующий текст по размеру больше чем оригинальный и не влезает в условленные рамки?
Верно. Если мне не изменяет склероз, Круптар пожалуется на нехватку текста и ничео не вставит.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force: RoDD
« Ответ #123 : 06 Ноябрь 2011, 16:26:23 »
Цитата: TriсkZter от 06 Ноябрь 2011, 23:18:27
3. Можно ли в таблице символов задавать правосторонние значения в виде нескольких символов - вроде
09=#HERO#
Можно.

Цитата: inside от 06 Ноябрь 2011, 22:49:18
2. Когда я делаю перевод строки в просмотрщике строк видны два квадратика на том месте где есть перенос - это нормально или я что-то не так сделал.
Так и должно быть.

Оффлайн inside

  • Пользователь
  • Сообщений: 80
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Shining Force: RoDD
« Ответ #124 : 06 Ноябрь 2011, 17:12:42 »
Цитата: TriсkZter от 06 Ноябрь 2011, 15:18:27
Если так оставить, то Круптар сначала выдерет все такие символы в виде ~, а потом при вставке заменит их на первый подходящий код, то есть на 00. В итоге игра не будет работать корректно.
Да, понял. Это кажется называется необратимой таблицей.

Цитировать (выделенное)
А как ты этот перенос в таблице обозначил?
В самом файле таблицы из которого я подгружал в Kruptar данные - никак. Но в самом Kruptar'е я в секцию "Коды окончания строк" добавил 00. А в коды разрыва строк добавил 0A.

Цитировать (выделенное)
Выясни что делает 03 и что делает 00. Вероятнее всего, что 00 - это конец строки, а 03 - какой-нибудь спецсимвол, например, это может быть символом, который выводит на экран мигающий курсор.
Чтобы точно узнать что делает тот или иной код, просто попробуй воткнуть его посреди предложения и посмотри что произойдёт в игре.
Понял! Это знак игре "жди нажатия чтобы показать пользователю текст дальше". Без него диалог не дожидаясь игрока закончится сам

Цитировать (выделенное)
Верно. Если мне не изменяет склероз, Круптар пожалуется на нехватку текста и ничео не вставит.
Уже заметил! Однако что-то вставил как ни странно. Может не вставил то что не влезает

Цитировать (выделенное)
Да, в таблице символов можно писать слова. Круптар их будет корректно кодировать.
Уфф... это отлично!


--
update спец-символов:
03 - ждать нажатия
05 - пауза



ps. Перевод начат  (:
I wanna be the romhacker

  • Печать
Страницы: 1 ... 3 4 [5] 6 7 ... 9   Вверх
« предыдущая тема следующая тема »
  • Форум Magic Team »
  • Переводы, переводы, переводы... »
  • Ромхакинг и перевод »
  • Shining Force: RoDD
 

  • SMF 2.0.12 | SMF © 2011, Simple Machines
  • XHTML
  • RSS
  • Мобильная версия

  • GreenUP by Neekiinh0.

Размер занимаемой памяти: 2 мегабайта.
Страница сгенерирована за 0.276 секунд. Запросов: 73.