Правила форума

Правила, действующие в этом форуме и всех его подфорумах:

1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)!
2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)!
3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить!
4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума!
5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен!
6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение.
7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме!
8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения.
9) Использование смайликов разрешается не более 3-х подряд!

Добро пожаловать на наш форум!



Ответить на тему  [ Сообщений: 427 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 15  След.
ZStreamChunksReader: выдёргивание и конвертирование 3DO ресурсов 
Автор Сообщение
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Вложение
ZStreamChunksReader 0.83.png
ZStreamChunksReader 0.83.png (63.01 КиБ) Просмотров: 8914

Данная программа предназначена для проигрывания/просмотра/извлечения/замены ресурсов в играх для приставки 3DO Interactive Multiplayer (R.E.A.L).
Музыку можно извлечь из потоковых файлов STREAM, ZStream, видеофайлов, BIN-файлов (бинарные файлы) путём конвертирования сжатых AIFC файлов и извлеченной музыки в формат WAV или AIFF, а так же обратное сжатие WAV/AIFF в AIFC (формат SDX2 моно/стерео) и замена звука в играх. Аудио данные также извлекаются из видеофайлов. Расширения аудио файлов могут быть отличными от Stream, ZStream, weave, AIFC, поэтому экспериментируйте. Поддерживается конвертирование видео из 3DO формата Stream в AVI файлы. Так же возможен просмотр IMAG файлов, извлечение файлов CEL и ANIM из архивных файлов.



ZStream Chunks Reader 0.9.1 - конвертирует 3DO видео в AVI.
Вложение

ZStreamChunksReader 0.80
ZStreamReader082
ZStreamReader084
ZStreamReader085
ZStreamReader096 (Stream to AVI/AVI to 3DO Stream, QuickTime MOV to 3DO Stream)


Распаковка игры Casper

Последний раз редактировалось Author 18 июл 2016, 13:46, всего редактировалось 21 раз(а).



05 июн 2013, 14:07
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой
Сообщение 

ПАУК писал(а):
И чего ему не хватало качества или частоты?


Предполагаю, что дело в параметре качество звука (у тебя приведены два случая с разным битрейтом). Хотя я считал, что битрейт высчитывается плеерами самостоятельно исходя из размера сэмпла и частоты.

ПАУК писал(а):
Заметил, что настройка частоты в ZStreamChunksReaderе ничего не меняет в aifc файле кроме двух байтов в заголовке


Так и было задумано. На данные звука этот параметр не должен влиять. Может я ошибаюсь?

ПАУК писал(а):
Попробовал первую мелодию с качеством звука 1536 кбит/сек и частотой дискретизации 48 кГц, мелодия в игре стала немного медленнее оригинала.

Получается, что частота дискретизации должна равняться 44 кГц в wav файле... Исправить это можно? А какая программа меняет частоту в wav файле?


Этот абзац меня окончательно озадачил. Как увеличение частоты могло замедлить звук? SoundForge самый навороченный редактор из всех мне известных. Там можно частоту задавать.


20 ноя 2013, 12:12
Профиль
Аватара пользователя
Ужас, летящий на крыльях ночи!
Ужас, летящий на крыльях ночи!

Группа: Разработчики
Сообщения: 8285
Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой
Сообщение 

Author писал(а):
Так и было задумано. На данные звука этот параметр не должен влиять. Может я ошибаюсь?

Не знаю, но качество конвертируемого файла влияет на размер aifc.
Та первая мелодия 1024 кбит/сек, 32 кГц в WAV весит 7,77 Мб, в Aifc 3,88 Мб.
Эта же мелодия, но 1536 кбит/сек, 48 кГц в WAV весит 11,6 Мб, в Aifc 5,82 Мб.

_______________________________________
Изображение
MUTHAFUCKASSSSCAN'TSTOPPPMEEEEEEEEEEE!!!!!!!!!!! Изображение Изображение
Все мы живём в Царствии Небесном, просто слепы и не видим этого.



20 ноя 2013, 15:14
Профиль WWW
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Новая версия позволяющая выдернуть ресурсы из Road Rash (правда не совсем полностью) и из Doom (тянутся файлы, но без правильных заголовков, т.к. всё запутано).
По Road Rash'у...из файлов RSRC данные берутся как есть, без изменений, поэтому CEL файлы к примеру содержат блок OFST, который можно удалить самостоятельно до CEL чанка, либо ещё раз применить Extract BIN, выбрать любой тип файлов и указать на извлечённый CEL с лишним куском, тогда программа вытянет только CEL.Это можно было автоматизировать, но неизвестно, что хранится в OFST (там данные бывают большие).

Versus, пожалуйста!

Я перезалил чуть изменённый билд. Теперь можно вытянуть больше и проще чем вручную ковырять.

1) Для примера возьмём файл 'Families.RSRC_170.FAM', его мы получим разобрав файл ресурсов "Families.RSRC".
2) Откройте ZStreamReader и введите в поле "Star Address in Dec" число 200. Это смещение по которому начинается файл анимации и там чанк ANIM.
3) Установите флажок Split ANIM to CEL's
4) Нажмите Extract BIN и выберите "Families.RSRC_170.FAM'

Вуаля, вы получили 90 Cel картинок!
Разработчкам скажу, что чанк RPDT в файлах RSRC это тоже самое, что PDAT.
Интересно, а полем "Star Address in Dec", кто-нибудь пользовался? Эта опция даёт возможность дёргать то, что сама программа найти не смогла бы, т.е. не дошла бы до указанного адреса читая файл.


Вложения

Последний раз редактировалось Author 08 авг 2014, 12:21, всего редактировалось 4 раз(а).

08 авг 2014, 11:51
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author
Благодарю! Как всегда, радуешь! :co_ol:

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


08 авг 2014, 11:53
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Удалось сконвертировать в Delphi код из CelViewer'a для открытия CEL изображений. Хочется чтобы файлы ANIM как GIF смотреть можно было. Времени мало и где-то знаний :) Версию не выкладываю, т.к. cel'ы есть чем открывать и без неё.


03 окт 2014, 12:02
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author
Да, ANIM->Gif не помешало бы. :a_g_a:

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


03 окт 2014, 12:33
Профиль
Аватара пользователя
Ужас, летящий на крыльях ночи!
Ужас, летящий на крыльях ночи!

Группа: Разработчики
Сообщения: 8285
Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Versus писал(а):
ANIM->Gif не помешало бы
И наоборот тоже :a_g_a:

_______________________________________
Изображение
MUTHAFUCKASSSSCAN'TSTOPPPMEEEEEEEEEEE!!!!!!!!!!! Изображение Изображение
Все мы живём в Царствии Небесном, просто слепы и не видим этого.



03 окт 2014, 12:35
Профиль WWW
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author писал(а):
код из CelViewer'a для открытия CEL изображений

А откуда код?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


03 окт 2014, 14:36
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Author писал(а):
код из CelViewer'a для открытия CEL изображений

А откуда код?


Исходники лежали на сайте Альтмера, раньше. Тогда я их докручивал, чтобы CelViewer больше видяшек из игр открывал.


03 окт 2014, 15:09
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Опен сорс? Сейчас их уже там нет?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


03 окт 2014, 17:30
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, да, исходники открыты. Он писал,что ему некогда заниматься доделкой программы и выложил как есть. Там же много утилит было представлено, исходники по конвертированию aif2raw были. Сейчас этой странички нет на сайте, но возможно, что они всё ещё лежат на сервере.


04 окт 2014, 13:04
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

А можешь выложить исходники этого CelViewera, раз они фри?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


04 окт 2014, 15:24
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

CelViewer (исходники)


Вложения
04 окт 2014, 16:42
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Благодарю! :-):

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


04 окт 2014, 16:59
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, нашёл старую страничку на сайте Альтмера (Максима)

http://altmer.arts-union.ru/3DO/3do_utils.htm - тут утилиты и исходники. Забирайте кому ещё нужно.


08 окт 2014, 11:28
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Обновление

- Добавлена распаковка ресурсов игры для ПК – ГЭГ:Отвязное приключение.
- Добавлена поддержка просмотра CEL файлов (не все типы CEL работают)
- Добавлена возможность замены аудио данных в файлах 3DO игр

Подробности замены в руководстве, в архиве.


Вложения
Комментарий к файлу: Новая версия ZStream Chunks Reader 0.8.2
ZStreamReader082.rar [627.48 КиБ]
Скачиваний: 41

Последний раз редактировалось Author 12 ноя 2014, 16:35, всего редактировалось 1 раз.

12 ноя 2014, 16:33
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author
Спасибо! Сразу вопрос: можно будет как-нибудь просмотреть текстуры в Gex?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


12 ноя 2014, 16:35
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, GEX'ом не занимался, а теоретически конечно это возможно. Только я формат данных не знаю там.


12 ноя 2014, 16:37
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Да просто я вернулся к отрисовке нашей ракеты, а выдергивать нужное из эмулятора не есть гуд...
Добавить кнопку "Вверх"

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


12 ноя 2014, 16:39
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, ракета клёвая :) согласен, что неудобно дёргать через эмулятор. Времени бы и знаний побольше, тогда бы всё быстрее получалось.


12 ноя 2014, 16:43
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
Сразу вопрос: можно будет как-нибудь просмотреть текстуры в Gex?


Есть некоторая информация. После распаковки BIG архива GEX'a полученные файлы не имеют точных названий и расширений. Но!

1) Файл 'bigfile_big_6.DATA' содержит перечень всех файлов BIG архива с их настоящими именами и расширениями,а так же положением (или размером, пока не знаю точно) в big файле!
2) Оказывается внутри BIG архива есть другие BIG файлы :) Архивы в архиве. И их можно распаковать (по сути просто отделить друг от друга) так же как основной big файл с помощью ZStream Reader'a.

Содержимое основного BIG архива игры GEX
grave1.big.
grave2.big.
grave3.big.
gravlev1.sng.
gravlev2.sng.
grave.tlk.
gravebos.sng.
grave4.big.
grave5.big.
grave6.big.
grave7.big.
cartoon1.big.
cartoon2.big.
cartoon3.big.
cartlev1.sng.
cartlev2.sng.
cartoon.tlk.
cartbos1.sng.
cartbos2.sng.
cartoon4.big.
cartoon5.big.
cartoon6.big.
cartoon7.big.
jungle1.big.
jungle2.big.
jungle3.big.
junglev.sng.
jungle.tlk.
jungbos1.sng.
jungbos2.sng.
jungle4.big.
jungle5.big.
jungle6.big.
jungle7.big.
rez1.big.
rez2.big.
rez3.big.
rezlev1.sng.
rezlev2.sng.
rez.tlk.
rezbos.sng.
rez4.big.
rez5.big.
rez6.big.
rez7.big.
scifi1.big.
scifi2.big.
scifi3.big.
sciflev.sng.
scifi.tlk.
scifbos1.sng.
scifbos2.sng.
scifi4.big.
scifi5.big.
scifi6.big.
scifi7.big.
kungfu1.big.
kungfu2.big.
kungfu3.big.
kunglev1.sng.
kunglev2.sng.
kungfu.tlk.
kunfubos.sng.
kungfu4.big.
kungfu5.big.
kungfu6.big.
kungfu7.big.
secret1.big.
secret2.big.
secret3.big.
secret4.big.
secret5.big.
secret6.big.
secret7.big.
mainmap1.big.
gravemap.sng.
mainmap2.big.
cartmap.sng.
mainmap3.big.
jungmap1.sng.
jungmap2.sng.
mainmap4.big.
rezmap1.sng.
rezmap2.sng.
mainmap5.big.
scifmap.sng.
mainmap6.big.
kungmap.sng.
mainmap7.big.
domemap.sng.
bonus1.big.
bonus2.big.
bonus3.big.
bonus4.big.
bonus5.big.
bonus6.big.
bonus7.big.
glue1.big.
title.sng.
glue2.big.
win.sng.
glue3.big.
glue4.big.
lose.sng.
glue5.big.
glue6.big.
glue7.big.
credits.sng.
sysfont.bin.
GXOB.ob.
Pics.big


18 ноя 2014, 13:38
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author
Здорово! Молодчина!
Author писал(а):
И их можно отделить друг от друга так же как основной big файл с помощью ZStream Reader'a.

У меня что-то не получилось... :-( Как это сделать?

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


18 ноя 2014, 13:45
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, спасибо :)

Разбираются только big'и. Ты уверен, что именно такой файл пытался открыть?Я пробовал файлы под номерами 27 и 28, после чего получил ещё по 3 файла с каждого(общим объёмом дающие исходный размер big'ов за исключением служебной инфы). Для этого после распаковки big-файла, нужно ещё раз в ZStream Reader'e нажать на кнопку Extract BIN -> GEX binary file (BIG) и выбрать файл.

Пока не сопоставил их со своими названиями, но это может попытаться сделать и любой желающий.


18 ноя 2014, 13:51
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Я открывал investigator-ом файл bigfile. Проценты проползли, а толку 0...

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


18 ноя 2014, 13:58
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, нет, не то. Investigator сейчас абсолютно недоделан, я его даже не стал упоминать. И ищет он пока только заголовки BMP файлов.
Операцию нужно делать со вкладки Audio Data Ripper (надо наверно сделать отдельную вкладку), там кнопка Extract BIN.


18 ноя 2014, 14:02
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Author писал(а):
там кнопка Extract BIN.

Тоже что-то не прет. Создает файл *.sound с нулевым размером и на этом все. :du_ma_et:

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


18 ноя 2014, 15:17
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus, на каком файле проверял?


19 ноя 2014, 10:24
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

GXdata\bigfile. (316 Mb)

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


19 ноя 2014, 10:30
Профиль
Аватара пользователя
Приставочник
Приставочник

Группа: Разработчики
Сообщения: 1211
Регистрация: 08 фев 2012, 13:12
Модель 3DO: Panasonic FZ-10 NTSC-J
Ответить с цитатой

Versus писал(а):
GXdata\bigfile.


После разбора у тебя появилось дофига файлов *.DATA? Вот среди них и надо копать. Например я проверял выдёргивание на 'bigfile_big_27.DATA'.


19 ноя 2014, 10:33
Профиль
Аватара пользователя
Я консольный бог
Я консольный бог

Группа: Разработчики
Сообщения: 9846
Регистрация: 04 дек 2009, 11:59
Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
Ответить с цитатой

Все получилось, туплю... Нужно было выбрать тип файла Gex. Сорри... :smu:sche_nie:

_______________________________________
There are 10 types of people in the world: those who understand binary, and those who don't.


19 ноя 2014, 10:35
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ Сообщений: 427 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 15  След.
Похожие темы
   Темы   Автор   Ответы   Просмотры   Последнее сообщение 
В этой теме нет новых непрочитанных сообщений. Manual Dumper - ручное выдёргивание ресурсов из файла

Author

5

808

Author Перейти к последнему сообщению

19 сен 2014, 18:18



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
© 2008-2017 «3DOPLANET.ru». Создано на основе phpBB® Forum Software © phpBB Group
Designed by ST Software || Русская поддержка phpBB || Time : 0.044s | 22 Queries | GZIP : On
Valid XHTML 1.0!