DC-SWAT Forum
G1-ATA Devices - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Hardware (/forum-9.html)
+--- Тема: G1-ATA Devices (/thread-2111.html)

Страниц: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23


RE: G1-ATA Devices - cybdyn - 11.06.2014 14:53

Hi, Ozone, i'm working on CDDA support, can you chk email, i have question for You? )))

actually , there was/is a lot of ideas how to make hw/sw to find a way to crack this security summ/code

first we need figure out how it locks - what are signs of it.
next - make hw/sw.
then make many tries in loop)) .
of course if we can change only little chunk of fixed size every time, it'll make things faster.


RE: G1-ATA Devices - OzOnE - 11.06.2014 18:07

Hi,

I have quite a good test app for the G1 port lock now. Wink

It just checks some known data on the HDD attached to the DC.

I can do the "gdrom_activate" test, and it lets me read the data back fine with the stock BIOS or SWAT's "sd_loader_with.bios".

If I flick the Flash BIOS switch during the test (only takes about 500ms), it corrupts the BIOS and the test fails.

I can do the test again without changing the switch and the test passes fine.

If I try a PIO transfer with G1 locked out, it only returns floating data, or 0x7F7F.

If I try a DMA transfer with G1 locked out, the transfer freezes the DC.

But, I now have a way to test it, so just need to send it data instead of the BIOS. Wink

I will have to hook up the rest of the G1 address signals (about 11 lines) to the FPGA soon.
Of course, most of the signals are already on the G1 port, but it needs the extra ones for direct access to the full BIOS.

That will work in a similar way to what I did on the NAOMI - I can program the Flash on the FPGA board with the stock DC BIOS, then modify say one Word of data at a time.

I should be able to increment to the next value when the DC tries to read a specific location in the "fake" BIOS until it passes the checksum.
(try in a loop, like you say. Wink )

I don't think it locks out access to the BIOS, only to the ATA / ATAPI devices.
It probably just inhibits the /CS1 and /CS0 signals on the G1 port, and blocks the data?

EDIT: Actually, it can't be locking access to the BIOS, otherwise it wouldn't be possible to retry the test and unlock the G1 port.

It will be a bit of a brute-force hack, but at least we'd have a way of "signing" the custom BIOS images.

I even tried testing many different parts of the BIOS files earlier to see if there was a standard checksum algo it uses.
I'm not a cryptographer though, so that didn't go too well. lol

I tried reading only half of the BIOS through the magic 0xa05f74e4 register, but that failed the check too?

I have a hunch that it does the checksum on "blocks" of the BIOS at a time.
That way, they can still allow for different BIOS images, but just add some padding bytes to make the checksum pass?

OzOnE


RE: G1-ATA Devices - OzOnE - 11.06.2014 19:13

OK, a bit more info...

I've just checked the G1 / IDE signals with the o'scope, and...

The HOLLY chip inhibits the /CS0 signal on the G1 port when locked out. Wink

It's hard for me to tell atm if the /Read and /Write signals are disabled too, as my app is reading all the time from the BIOS fonts.
(kind of pointless anyway without the /Chip Select signals).

It probably does just disable the /RD /WR signals whenever something tries to access a G1 port device (BIOS /ROMCS is left enabled though).

My app also doesn't access the upper IDE registers, so I never see the /CS1 signal change (always High).

Hmm, I wonder if we can just use the /ROMCS signals that go to the switch so that it outputs a fixed value onto the G1 bus during the checksum test?
SWAT mentioned this before, and it would be great if all it needed was a fixed byte value.

One small problem might be if it needs to see a Word or Double value, 'cos the BIOS is accessed in BYTE mode.
That would need a CPLD or MCU to output the correct value when needed.

OzOnE.


RE: G1-ATA Devices - SWAT - 11.06.2014 20:54

Good job OzOnE!
For start, I think you should try to change 1 byte in the loop (in any unused space), if it does not have success, then try the word. If and second test does not have success, then probably we have to think about hardware hack (switching BIOS or something else). Otherwise we will have to understand the algorithm, but it is not easy.
I think that is algorithm is converging with algorithms of scramble and flashrom chechsum checking, in both cases used some magic number.


RE: G1-ATA Devices - aldair - 17.06.2014 01:12

(09.06.2014 10:28)wallace писал(а):  g1ata v2


докучи, залепил sd поближе к serial
[Изображение: F8uzswms.jpg]

https://i.imgur.com/F8uzswm.jpg

[Изображение: 8IX2CUIs.jpg]

https://i.imgur.com/8IX2CUI.jpg


RE: G1-ATA Devices - OzOnE - 17.06.2014 19:28

Nice mod, aldair. Wink

Good use of Kynar wire too - I've just received about 100 Metres of it today.

The transfer rate is fairly slow on the G1 / IDE port (~8MHz), so should be OK.
If you do get problems though, just add a bit of shielding around the bunch of wires.

Does your SATA adapter work OK in Slave mode btw?

I have a few of the same adapter, and I don't think mine works on the DC / DS?

OzOnE.


RE: G1-ATA Devices - aldair - 17.06.2014 23:43

(17.06.2014 19:28)OzOnE писал(а):  Nice mod, aldair. Wink

Good use of Kynar wire too - I've just received about 100 Metres of it today.

The transfer rate is fairly slow on the G1 / IDE port (~8MHz), so should be OK.
If you do get problems though, just add a bit of shielding around the bunch of wires.

Does your SATA adapter work OK in Slave mode btw?

I have a few of the same adapter, and I don't think mine works on the DC / DS?

OzOnE.





RE: G1-ATA Devices - SWAT - 18.06.2014 09:36

You doesn't need to use Boot loader if you use another loader... Just boot DS_CORE.BIN directly.


RE: G1-ATA Devices - SWAT - 18.06.2014 16:28

|darc|, show us your eSATA realization inside the box please Smile
It's good idea, I saw this on assemblergames.


RE: G1-ATA Devices - aldair - 18.06.2014 21:42

(18.06.2014 16:28)SWAT писал(а):  |darc|, show us your eSATA realization inside the box please Smile
It's good idea, I saw this on assemblergames.
I will show how it was done!

Thanks for the new Dreamshell!

The Dreamshell in Brazil!: https://www.facebook.com/groups/262746670494622/

https://www.facebook.com/groups/191439611042985/


RE: G1-ATA Devices - xzer0 - 01.07.2014 21:34

Hello. Last time I made new method to do this mod. All wires soldered to GD Rom pcb, and ATA was stick to GD Rom metal shield. When I finish I saw my result. Sorry for my terrible English.

PS. I made this diagram. Alternative points of G1 port on GD Rom PCB.

http://imgur.com/9TfqRNv

http://imgur.com/U8Bb9eA


RE: G1-ATA Devices - SWAT - 02.07.2014 06:54

Good idea, xzer0. I think I make additional adapter from unused GD-drive motherboard for BIOS mod Smile


RE: G1-ATA Devices - Batman - 29.07.2014 00:31

Проблема отключения HDD так и не решена? У кого-то ещё умер HDD из за этого? Возможно, скажу глупость. Но, если после игры сделать reset и дождаться парковки головок, то отключение питания будет не так убийственно, верно?

Такой блок питания для HDD подойдёт или есть варианты лучше?

Кому-нибудь из русскоговорящих посетителей удалось заставить работать переходник IDE>SATA? Если возможно, укажите модель переходника и с каким HDD работал.

Эмуляторы от Chui работают так же, как и с SD?

(04.04.2014 17:56)SWAT писал(а):  Интересна их реакция на ответ - 144 петабайт Big Grin
Никаких ограничений по размеру HDD и разделов? Очень хорошо. (не западный) Smile


RE: G1-ATA Devices - SWAT - 29.07.2014 13:15

(29.07.2014 00:31)Batman писал(а):  Проблема отключения HDD так и не решена? У кого-то ещё умер HDD из за этого? Возможно, скажу глупость. Но, если после игры сделать reset и дождаться парковки головок, то отключение питания будет не так убийственно, верно?

Такой блок питания для HDD подойдёт или есть варианты лучше?

Кому-нибудь из русскоговорящих посетителей удалось заставить работать переходник IDE>SATA? Если возможно, укажите модель переходника и с каким HDD работал.

Эмуляторы от Chui работают так же, как и с SD?

(04.04.2014 17:56)SWAT писал(а):  Интересна их реакция на ответ - 144 петабайт Big Grin
Никаких ограничений по размеру HDD и разделов? Очень хорошо. (не западный) Smile

Мой старенький HDD Seagate Barracuda 7200 40 GB испытал уже не одну сотню резких обрывов питания и никаких проблем с ним нет, хотя ему уже лет 10 и без этого было. При этом я вообще не заморачивался по поводу парковки головок, сбрасывал и быстро и с паузой.
Блок питания подойдет, у меня есть подобный от переходника IDE/SATA->USB, очень удобно.
По поводу рабочего SATA адаптера тут уже писали, я думаю можно найти и другой, главное чтобы он поддерживал Slave и был на чипе Marvell 88SA8052 (только с ним срослось в данный момент). Как пример вот - http://www.amazon.com/gp/product/B000ZLM9IA но работают они заведомо медленней, примерно на 15-20% теряется скорость.
Про эмуляторы не понял. Если ты про запуск образов, то нет никакой разницы.


RE: G1-ATA Devices - Batman - 29.07.2014 13:59

SWAT
Большое спасибо!
(29.07.2014 13:15)SWAT писал(а):  Про эмуляторы не понял. Если ты про запуск образов, то нет никакой разницы.
Как понял, они запускали отдельные ромы прямо с SD. Не нужно было готовить образ с эмулятором и ромами.


RE: G1-ATA Devices - SWAT - 29.07.2014 15:45

(29.07.2014 13:59)Batman писал(а):  SWAT
Большое спасибо!
(29.07.2014 13:15)SWAT писал(а):  Про эмуляторы не понял. Если ты про запуск образов, то нет никакой разницы.
Как понял, они запускали отдельные ромы прямо с SD. Не нужно было готовить образ с эмулятором и ромами.

А ну тогда с HDD не получится, это же нужно чтобы сами эмуляторы поддерживали данный девайс, иначе только образ.


RE: G1-ATA Devices - Batman - 29.07.2014 17:37

SWAT
Chui давно переписал их для работы с Dreamshell. Если она работает с HDD аналогично SD, должны работать.
Когда cvgs пришлёт мне Dreamcast, обязуюсь отписаться о работоспособности.


RE: G1-ATA Devices - aldair - 30.07.2014 02:46

(29.07.2014 00:31)Batman писал(а):  Проблема отключения HDD так и не решена? У кого-то ещё умер HDD из за этого? Возможно, скажу глупость. Но, если после игры сделать reset и дождаться парковки головок, то отключение питания будет не так убийственно, верно?

Такой блок питания для HDD подойдёт или есть варианты лучше?

Кому-нибудь из русскоговорящих посетителей удалось заставить работать переходник IDE>SATA? Если возможно, укажите модель переходника и с каким HDD работал.

Эмуляторы от Chui работают так же, как и с SD?

(04.04.2014 17:56)SWAT писал(а):  Интересна их реакция на ответ - 144 петабайт Big Grin
Никаких ограничений по размеру HDD и разделов? Очень хорошо. (не западный) Smile





RE: G1-ATA Devices - SWAT - 30.07.2014 08:44

(29.07.2014 17:37)Batman писал(а):  SWAT
Chui давно переписал их для работы с Dreamshell. Если она работает с HDD аналогично SD, должны работать.
Когда cvgs пришлёт мне Dreamcast, обязуюсь отписаться о работоспособности.

Chui не переписывал их для работы с DS, он просто сделал поддержку SD (самостоятельную). Таким же образом ему нужно сделать поддержку HDD. Он не может использовать загрузчик образов для того чтобы использовать поддерживаемые им устройства, все только через эмуляцию привода, а для этого нужен образ.
Вот если однажды я решусь все же сделать поддержку "директории" вместо образа, тогда вообще не нужно будет переделывать никакие программы, для них все будет как обычно через привод, а пользователь не будет тратить время на создание образов.
Но эта функция фактически нужна больше именно для подобных эмуляторов, для игр это бессмысленная потеря производительности.

По поводу поддерживаемого размера IDE устройств.
Ограничений для железа нет, но нужно понимать что есть ограничение у файловых систем.
У FAT32 в частности это 4 Гб максимальный размер файла и 2Тб максимальный размер диска (с максимальным размером кластера), чем меньше размер кластера, тем меньше будет итоговый размер диска. К слову для игр лучше делать максимальный размер кластера.
У Ext2 ситуация иная, но ее поддерживает только ядро DS, загрузчики только FAT12/16/32.


RE: G1-ATA Devices - Zombar - 17.08.2014 18:59

Здравствуйте. С диска DS грузил и нормально винт работал. Начал грузить с винта, уже третий раз винт форматирую. Как будто дрим вит форматирует. Только вот занятое пространство остается, а на винте появляется папка "ory = 0x.8c0" и файл "type = 0.mo". Это происходит при запуске игры. Некоторые игры работают, например Code Veronica, D2 Shock запустил написано что файл не найден и все, опять винт форматировать. Игры запускал оптимизированные GDI. Подскажите что-нибудь.

P.S. Еще не один CSO GDI не запускается.