Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Segaman

Страницы: Назад 1 [2] 3 4 5 6 ... 109 Далее
31
Я тут стрим провел с пояснением фактов по Zero Tolerance Underground.
Если кому интересно, исчерпывающая информация доступна ввиде записи стрима. Здесь и про ZT, BZT и ZTU.
Просто хочу, чтобы все факты стали доступны людям, а то судя по обзору на ZT Underground, их знает почти никто кроме меня.
Хотя странно, потому что я всем со всеми делюсь. Вообщем вот, приятного просмотра  :)

32
Ромхакинг и программирование / SGDK
« : 21 Июль 2022, 06:41:16 »
Вы передали указатель на указатель: SPR_setVRAMTileIndex(sprites,ind);, а у вас массив из указателей, нужно SPR_setVRAMTileIndex(sprites[0], ind);. Включите как можно больше предупреждений компилятора, читайте их и исправляйте.
тут ты не прав.
Sprite sprites[8] - тут sprites это указатель на первый обьект Sprite в массиве
а sprites[0] - это уже экземплаяр самого Sprite

так что передать sprites в качестве указателя на первый объект в массиве это вполне правильно

можно даже на второй и третий передавать вот так: sprites + 1, sprites + 2, вместо &sprites[1] и &sprites[2]
и разницы к тому же никакой нет, компилятор одинаково представит и sprites, и &sprites[0]

33
foxman999, круто! Дизасмишь ради кооператива? В сетевом протоколе уже разобрался?
И ты, случайно, не живёшь в Москве, и не знаешь ли кого, у кого есть дампер картриджа? :)
я так то год назад разобрал уже протокол.
его тока заэмулировать осталось.
опять все все пропустили :), вот и вот инфа

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

35
либо подскажите где взять лонгплей ввиде мувика для генса для пиратов голд :)

Добавлено позже:
проблема просто в том, что не все играли пиратов, а вот фикс вполне можно сделать руками того, кто не играл :) :)

36
Если всем так ненравятся спрайты жаб, в чём проблема заменить их оными из первой части для сеги? Там как раз перерисовка с нес
это не перерисовка, а говнявый апскейлинг.
там даже некоторые пиксели прям видно, что криво сапскейлены.
первую чать сразу надо отбрасывать

37
Underground - это тупо новый набор уровней? Или вообще просто дополнительные уровни в подвале с мухами?
Для сега сд готовился релиз. Уровни оттуда, слегка допиленные мной. Саунтрек новый, на стримах у меня проскакивал геймплей и музон, народ оценил.
Эту версию (еще в 1994ом) забраковали вместе со всем что в то время браковалось для сега сд. История известная.

Когда забраковали, сели делать бейонда, а потом технопопов купил какой-то крупный разработчик игр, заставил делать какую-то срань, а потом позакрывал кучу студий, которые купил. Так бейонда вместе с технопопой нестало.

Зато по документации, которая есть на руках, вселенная при должном обращении может спокойно стать вторым халф-лайфом.

И да, "разблокированная версия" весьма значительно отличается от той, которыя беткой была слита давным давно: здесь почти все допилено, кроме врагов и некоторых мелочей, новый саундтрек (говнище редкое, сразу под нож), звуки, управление, механики, добавили мид-боссов и так далее.

38
SERGK393, я решил эту проблему отключением анимации и написанием своего таймера.
таймер срабатывает и меняет кадр анимации. все

39
Я так понимаю на одном карике будут все 3 части?
Эту идею я им предложил :)

А насчет Beyond, ну он незакончен. Я над ним еще толком и не работал

40
Пусть хоть наработки зальет. Найдется же тот, кто сядет допиливать.

41
нашел ответ тут
попробую декодером подтянуть DTACK
алсоу продублирую сюда пост из ссылки на случай, если интернет исчезнет с лица россии
Цитата

The entire memory map for the 68000 is 16 MBytes. On the Genesis, that 16 MBytes is divided like this:

 

0x000000 - 0x3FFFFF = CART if a cart is inserted, if no cart, this is CD space

0x400000 - 0x7FFFFF = CD space is a cart is insert, otherwise it is cart space (a cart that doesn't assert the /CART line is considered a BRAM cart)

0x800000 - 0x9FFFFF = 32X space - if you have a 32X and it is enabled, this will have the cart rom, frame buffer, and frame overwrite regions

0xA00000 - 0xDFFFFF = IO space

0xE00000 - 0xFFFFFF = Work RAM space - only 64KB, but mirrored through whole 2MB

 

If you do not have a CD or 32X, you CAN use the space for those if the cart does its own decoding and asserts the /DTACK for areas outside the CART space. So you CAN have carts that go to 8 or even 10 MBytes, but only without the CD or 32X. With the CD and/or 32X, 4 MBytes is the max without bank selection.

 

SEGA did define one mapper for the Genesis (which is also supported by the 32X): A cart can have up to 32 MBytes of rom split into 512 KByte segments. There are eight 512 KByte pages in the cart space; page 0 will ALWAYS point to the first segment of the rom; pages 1 to 7 can be set to point to any of the 64 different segments of rom.

 

0xA130F1 controls the save ram

0xA130F3 sets the segment for page 1 (0 to 63)

0xA130F5 sets the segment for page 2 (0 to 63)

0xA130F7 sets the segment for page 3 (0 to 63)

0xA130F9 sets the segment for page 4 (0 to 63)

0xA130FB sets the segment for page 5 (0 to 63)

0xA130FD sets the segment for page 6 (0 to 63)

0xA130FF sets the segment for page 7 (0 to 63)

 

The only game to use the official SEGA mapper is Super Street Fighter 2, so most people call it the SSF2 mapper. SEGA had two different developer carts that implemented the SEGA mapper for developers wishing to make games larger than 4 MBytes. Note that the SH2 processors on the 32X cannot access the page registers on the cart; it must command the 68000 to do it for it. The 32X BIOS for the 68000 has two functions built into it besides the exception jump table - one functions sets one mapper register, and the other sets all the mapper registers. So it's clear SEGA meant to have 32X games that were larger than 4 MBytes, but it died before that happened.

42
Чо то мне подсказывает, что надо DTACK поднимать, но при этом не сажать на ноль.
т.е. если запрос по адресам $400000-$7FFFFF - надо поднять DTACK, но при этом не опускать на других адресах, чтобы нога в воздухе оставалась.

Насколько опасно в таком случае подавать /DTACK через демультиплексор? Например SN74HC138N

Добавлено позже:
И еще вопрос: А какую роль играет A22 (/ASEL   | /LO_MEM) ?

43
Дано: Китайский карик на 4мб с распаенной на нем памятью в 8мб
Дополнено: Накинул контакт ноги картриджа B11 до ноги памяти A21 на чипе (через резистор конечно же)
Проверено: Записал ром 8мб, прочитал ром 8мб, сравнил - все 8 мб работают.
Результат: Консоль пишет вот ето при старте демки Titan Overdrive 2 и в хекс редакторе видно, что память недоступна сежке
Задача: Сделать память доступной сежке.
243892-0243894-1243896-2
Я помню, что надо что-то ещё докинуть, но вопрос я изучал наверно год назад, щас уже не помню, что да где.
Паять я профессионально не умею, но пару тройку контактов подключить\прокинуть для меня не проблема.
В заначке имеется пачка разных демультиплексеров.

44
Ромхакинг и программирование / SGDK
« : 04 Январь 2022, 13:43:53 »
Знающие, подскажите плиз название эмулятора ниже на рисунке.   Интересует отладка:

(Ссылка на вложение)

P.S. Это же не Gens KMod, верно?
похоже на Exodus

45
Всем привет :)
У меня тут случился приступ технического творчества :lol:
(Ссылка на вложение)
 С помощью этого приспособления перебирал адреса на Альтере и вылавливал выходные сигналы !CS ROM;!CS RAM и !CE0#
Получилось вот что:
от $00 00 00  до $07 FF FF    !CS ROM  512Kb
от $08 00 00  до $0F FF FF    !CS RAM  512Kb
от $10 00 00  до $17 FF FF    !CS ROM  512Kb
от $18 00 00  до $1F FF FF    !CS RAM  512Kb
от $20 00 00  до $27 FF FF    !CS ROM  512Kb
от $28 00 00  до $2F FF FF    !CS RAM  512Kb
от $30 00 00  до $37 FF FF    !CS ROM  512Kb
от $38 00 00  до $3E FF FF    !CS RAM  448Kb ?

от $3F 00 00  до $FF FF FF   !CE0#   12Mb 64Kb
Это я уже программно на стриме выяснил, но приблуда интересная и по своему полезная.

Если дать питание читать любой адрес с $3F0000 по $3FFFFF - карик переключится в режим обычной работы (отлов чтения $78) и заодно кинет сигнал на M3, сбросив сосноль.
Скорее всего когда ты прочитал из того диапозона, взломщик включил !CE0# на постоянку и ждал чтения $78, чего не произошло.
т.е. дай питание и прочитай $3F0000 и затем начни читать адреса скажем с $100 - будет всегда !CE0#

Интересное наблюдение: Если читать с $400000 по $7FFFFF, плис не дает !CE0#  :)

И еще хотел добавить по переключению CS RAM и CS ROM: ПЛИС судя по-всему ловит только xx 00 xx и на них реагирует так:

При старте до чтения $3F0000При старте после чтения $3F0000До чтения $78После чтения $78После второго чтения $78
!CS ROM с $x00000 по $x7FFFF!CE0# с $000000 по $3FFFFF!CE0# с $000000 по $3FFFFF!CS ROM с $x00000 по $x7FFFF!CE0# с $000000 по $3FFFFF
!CS RAM с $x80000 по $xFFFFFНичего после $400000Ничего после $400000!CS RAM с $x80000 по $xFFFFFНичего после $400000
Ничего после $400000M3 (сброс консоли)Ничего после $400000

x - любое число
последние две колонки чередются по чтению адреса $78

46
То есть во взломщике используется GEMS, который сам по себе начинает что-то читать
хорошая шутка.
вот наглядный пример:
преставим что Z80 читает текст в роме.
как текст выглядит из игры:
Цитата
MC680x0/680x0/0x0/m68k/68k/68K — семейство CISC-микропроцессоров компании Motorola, основной конкурент процессоров семейства Intel x86 в персональных компьютерах 1980-х и первой половине 90-х
а вот так в том же месте выглядит текст в роме взломщика
Цитата
Zilog Z80 — 8-разрядный микропроцессор, разработанный и производившийся фирмой Zilog с 1976 года. Широко использовался в персональных компьютерах, во встраиваемых и военных системах
когда происходит вертикальное прерывание, взломщик подменяет ром картриджа на свой, выполняет скрипт, который устанавливает указанные в кодах переменные в указанные значения, а потом прыгает обратно в ром картриджа и выполнает тамошний код вертикального прерывания.
в это время Z80 неостанавливается и продолжает читать текст.
получается, что на стороне Z80 текст может начать выглядеть так
Цитата
MC680x0/680x0/0x0/m68k/68k/68K — 8-разрядный микропроцессор, разработанный компании Motorola, основной Широко использовался семейства Intel x86 в персональных компьютерах во встраиваемых половине 90-системах
на стриме мы это доказали: отключив вертикалочку получали неактивный взломщик, зато если читали по адресу $78, появлялся ром взломщика и оставался пока мы снова не прочтем $78
https://youtu.be/likXbUaztbE?t=23878

47
А с какого перепуга Z80 что-то там читает? Может просто не надо /M3 использовать не по назначению?

это претензии к коду звукового движка. именно он страдает от подмены пространств.
взять другие игры, которые Z80 чисто под PCM WAV юзают (Sonic, Gunstar Heroes, Alien Soldier) и они прекрасно себя чуствуют за одним лишь исключением: Дико громкие аудио артефакты при воспроизведении PCM WAV сэмплов.

Добавлено позже:
вот такие косяки у взломщика с таким подходом к переключению пространств ROM

48
Кто-нибудь может объяснить мне смысл этих манипуляций?
Когда взломщик щелкает ROM из игры во взломщик, страдает Z80, ибо он читает ROM игры, а тут вдруг на те - данные взломщика. ну и естественно Z80 начинает троить, так как он читал там ноты, паттерны и т.п. а здесь уже какая-то непонятная каша. Так можно и самому отъехать и всю систему с собой забрать.
Но если ROM взломщика будет в пространстве 0x400000 и при подмене ROM менять только первые 512 байт рома, то тогда это незаденет ROM игры и Z80 небудет троить из-за внезапного появления рома взломщика, вместо рома игры.

Добавлено позже:
А насчет рома взломщика в карике в 0-ом мегабайте и игры во 2-ом - это я отладочный картридж сделал.
т.е. я компилю ром взломщика, сохраняю его в 0-ой мегабайт, а потом сверху докидываю ром игры во 2-ой мегабайт.
получается удобный стенд для разработки нового рома для взломщика.
залил на флешак 4мб ром с взломщиком и игрой в одном флаконе, вставил во взломщика и протестил его работу.
жалко что всякие крикзовые флешаки не хотят работать - конфликт со встроенной RAM взломщика (хотя может найду для этого решение)

49
Ну и схему включения приложи

прикрепил. вроде все правильно указал.
242531-0
единственное, я питание для дешифратора беру с перемычки рома взломщика. мне показалось, что там его безопаснее брать.

входные данные:
!CS ROM
!CS RAM
!CE0#


выходные
!VA21+
!CE1#


таблица условий, которая помогла мне правильно все подключить:
!CS ROM!CS RAM!CE0#VA21+!CE1#
lowhighhighlowlow
highlowhighlowhigh
highhighlowhighlow

242534-1

50
Segaman, что за микросхема на макете?
Не могу разглядеть...
CD74HC238E :)

51
242527-0242529-1

Добавлено позже:
хотя как вариант можно сделать, чтобы при переключении пространств, взломщик менял лишь первые 512 байт, остальные оставались игровыми

52
заработал мой франкенштейн.  :lol:
сделал так, что когда включается игра, просто щелкается ROM на 2 мегабайта выше, где собсно хранится игра.
а в первых 2мб хранится код моей прошивки для взломщика.

записал самую проблемную игру: Adventures of Batman and Robin
написал, чтобы в прерывании проц сразу уходил из пространства взломщика.
результат: глюки музыки упали процентов на 80, как я и говорил, но к сожалению полностью не исчезли.
ну и игра понятное дело когда-то, но вылетает, хоть и делает это в разы реже (дошел без проблем до босса на дирижабле)

так что для идеального взломщика, как уже и говорил ранее:
- надо ПЛИС заменять на свой
- размещать ром взломщика в 4м мегабайте (там где резерв Sega CD)
- подменять только адреса $78 и $7A ссылкой на взломщика (в 4ый мегабайт)

но в рамках моей задачи буду сидеть делать свою прошивку без замены ПЛИС

53
У тебя феншуй не той системы :lol:
Посмотри даташит и ты увидишь, что /CE, как и /OE имеют активный уровень низкий. Да, вот эта чёрточка - это знак инверсии. Так что ты их не отключал, а включал, причём всегда, во всём диапазоне адресов. Хорошо что ничего не спалил.

вот теперь работает. спасибо  :)
щас продумаю механизм с декодером, шоб вместо рома взломщика переключало банки в картридже (и не конфликтовало со всем остальным на шине) и можно писать новую прошивку :cool:

54
отрезал на плате все CE-шки, накинул на них провода (чтобы в макетную плату подключать) и вот что заметил:
- если отрубить один из чипов (RAM или ROM) - на шине какой-то шум и перестает работать геймпад (залипают кнопки и не реагируют на нажатия)
- если поменять местами CE-шки (!CS ROM <-> !CS RAM) между RAM и ROM - все отлично, они меняются местами без шума. все работает.
- если оба чипа кинуть на один CE (!CS RAM), а другой CE (!CE ROM) кинуть на картридж - первые 512кб меняются на картридж, а там, где должна быть RAM, понятное дело оба чипа друг в друга шумят, но зато работает геймпад.

242476-0

отключая чипы кидал их CE по феншую на GND.

т.е. я не могу отключить ROM - шум на плате отрубает геймпад и RAM троит. :neznayu:
тоже самое с ROM - если отключить RAM, то троит ROM. :-\

это кстати обьясняет почему прошивка взломщика не работала во флеш версии, хотя наверное создает больше вопросов.

ну и собсно что я хотел сделать: я хотел шить во флешак ром с новой прошивкой взломщика, которую разрабатываю и тупо пускать напрямую в обход стандартного рома. а в режиме игры накинуть ногу на 0x200000 через логику (декодером), где у меня будет прошита игра для теста (условный соник например) :)

55
я чет немного запутался. проясните.
1.каплю пзу можно  переписать? не пробовали? или однозначно ее сдувать и ставить 29lv160.
2. если ром сдесь 2 метра, почему речь проскакивала про 29f800 ??
3. что за патченный ром взломщика?
  • Не пробовали переписывать
  • Ром так-то 256кб и максимум возможный без модификации это 512кб
  • Я делал ромхак на взломщика, который добавляет патч в ROM. На тот момент мы не до конца знали принцип его работы и полагали, что это сработает. Сейчас же ясно, что взломщик, это по сути ромхак для всех игр с настройкой заморозки значений для переменных

56
0_0 Странные у тебя представления о сути. С крикзовским не вижу ничего общего. И капля не смущает?
Ну касаемо сути, я впервые чем-то серьезным занимаюсь на железном уровне.
Про каплю не понял - что ты имеешь ввиду? Что такое важное может скрывать капля?

57
фотки карика
242222-0242224-1242226-2
кстати память тут 3,3 вольтовая, а вот резюков не подвезли.
как сие чудо вообще функционирует - загадка 0_0

58
У меня в зкарамах валялся карик, который по сути та же крикзовская хрень.
Мне её Пико присылали в честь релиза игры в декабре 2016.
В нем стоит w19b160btt7h на 2мб.
Вставил в программатор:
- Читается
- Не прошивается
пишет:
Flash erase...
Flash write...
Flash verify...
Verify error at 0
Так что 19ю точно не прошивает, хотя есть подозрения, что виновата конструкция.
Прозвонил Write Enable с чипа и с ноги карика:
-WE ведет только на площадку под другой формфактор ROM
-WE с портка карика ведет на площадки, где должна была быть SRAM
т.е. между ними нет контакта
щас докину провод до WE чипа и попробую прошить

Добавлено позже:
Докинул, софтина не пишет  :lol:
Подмечу, что на карике к той ноге, к которой я подпаялся до этого кто-то доже подпаивался, там олово.
Также есть еще площадки с таким характерным следом. Щас позвоню их.

Добавлено позже:
одни ноги с оловом вели к ногам DQ, другие к A
так что пока не ясно почему незаписывает в 19.
надо в софт смотреть.

59
Rumata, ну софтина вроде opensource, написана на C#, так что можно поискать  :)

60
Переписал хекс редактор. Теперь работает на консоле.  :cool:
Нужно было для тестов взломщика кодов на железе тестить, вот и обновил

Добавлено позже:
А можно как то в шапке обновить?  :-\

Страницы: Назад 1 [2] 3 4 5 6 ... 109 Далее