| Разработка и ромхакинг > Ромхакинг и программирование |
| разогнал эмуль генс11а. (генсмуви) |
| << < (5/6) > >> |
| Марат:
Кстати, Ti_, ты откуда сырцы скачал? |
| Ti_:
--- Цитата: Марат от 19 Октябрь 2009, 22:45:08 ---Кстати, Ti_, ты откуда сырцы скачал? --- Конец цитаты --- http://code.google.com/p/gens-rerecording/downloads/list |
| Марат:
--- Цитата: Ti_ от 19 Октябрь 2009, 22:34:27 ---не помогло . может M68K_Fetch[1].offset = (unsigned)&Ram_68k[0] - 0xE00000; все таки FF0000 должен быть? --- Конец цитаты --- Вряд ли, но все равно попробуй. Добавлено позже: Можешь свой проект залить? Добавлено позже: Файл star.c ты мой использовал или в своем такие же изменения сделал? |
| Ti_:
--- Цитата: Марат от 19 Октябрь 2009, 23:04:53 ---Добавлено позже: Можешь свой проект залить? Добавлено позже: Файл star.c ты мой использовал или в своем такие же изменения сделал? --- Конец цитаты --- source его нужно распаковать в C:\gens11a\svnblah , и чтобы скомпилить нужно вначале pwm.obj вначале комплить потом ребилд всего ост.- если не будет компл. сейчас еще ориг. файлы выложу- все что я изменял. я не смотрел что ты сделал в своем) я просто написал 1FFFFF везде где ram_68k Добавлено позже: --- Цитата: Марат от 19 Октябрь 2009, 23:04:53 ---Вряд ли, но все равно попробуй. --- Конец цитаты --- мошт мы видеопамять тож расширили вот и показывает непойми че |
| Марат:
Думаю это из-за ram, куда распаковывается графика и карты. |
| Ti_:
не знаю как это фиксить. пробовал такие варианты: в стар.ц ( вместо 1FFFFF, писать где ред 1FFFF, где врайт FFFFF, так вообще не пашет ) +пробовал разные cpu68k.c тоже не помогает. с обычным cpu68k.c вообще не показывает графу., тоже самое случается если там сменить offset на FF0000. Добавлено позже: --- Цитата: Марат от 19 Октябрь 2009, 23:44:05 ---Думаю это из-за ram, куда распаковывается графика и карты. --- Конец цитаты --- там про нее ничего не сказано. мошт где-то что не учтено и эмуль на нее заезжает. и туда например копирует) - раньше дублировались блоки по 65кб , а теперь по 2мб дублируются из рам в видео. |
| Марат:
Ti_, я три раза скачал твой архив source, но так и не смог извлеч оттуда файлы. Ты можешь только измененные файлы залить? |
| Ti_:
--- Цитата: Марат от 20 Октябрь 2009, 14:58:49 ---Ti_, я три раза скачал твой архив source, но так и не смог извлеч оттуда файлы. Ты можешь только измененные файлы залить? --- Конец цитаты --- |
| Марат:
Ti_, там, в файле star.c, где функция "static void gen_readdecl" после метки not_in_ram --- Код: --- emit(".Not_In_Ram\n"); emit("\tadd edx, byte 2\n"); emit("\tpush eax\n"); emit("\tpush edx\n"); emit("\tmov [__io_cycle_counter], edi\n"); emit("\tmov [__io_fetchbase], ebp\n"); emit("\tmov [__io_fetchbased_pc], esi\n"); emit("\tcall M68K_RW\n"); emit("\tmov ecx, eax\n"); emit("\tsub dword [esp], byte 2\n"); emit("\tand ecx, 0x1FFFFF\n"); emit("\tcall M68K_RW\n"); emit("\tand eax, 0x1FFFFF\n"); emit("\tmov edi, [__io_cycle_counter]\n"); --- Конец кода --- нужно убрат 1F, т.е. оставить как было --- Код: ---emit("\tand ecx, 0xFFFF\n"); emit("\tcall M68K_RW\n"); emit("\tand eax, 0xFFFF\n"); --- Конец кода --- |
| Ti_:
--- Цитата: Марат от 20 Октябрь 2009, 16:04:26 ---Ti_, там, в файле star.c, где функция "static void gen_readdecl" после метки not_in_ram --- Конец цитаты --- да это я только сегодня добавил, ничего не изменилось вообщем-то. |
| evgeny:
Насколько я понимаю, чтобы расширить память нужно убрать мирроринг с адресов. Т.е. если не ошибаюсь, то запись в "свободные" значения памяти приобразовываются в запись по адресу стандартного диапазона. Где-то может быть прописано что E00000=F00000. |
| Марат:
Это только 13 мб ром криво работает или все игры? А как ты узнал, что рам дублируется в Vram? Дамп vram делал? У тебя, кстати, icq есть. Так можно было бы что-нибудь придумать. |
| evgeny:
Марат, Это был ко мне вопрос? Я про V-ram не говорил ничего. Или вы V-RAM расширить пытаетесь? Так там тоже мирроринги адресов после FFFF. т.е. выше идут биты, которые отвечают за палитру, зеркальное отображение и приоритет тайлов. |
| Марат:
Нельзя, кстати, в vram напрямую писать, только через порты C00000, C00002. Так что исключено дублирование Рам в Врам. Добавлено позже: --- Цитата: evgeny от 20 Октябрь 2009, 17:50:07 ---Марат, Это был ко мне вопрос? Я про V-ram не говорил ничего. Или вы V-RAM расширить пытаетесь? Так там тоже мирроринги адресов после FFFF. т.е. выше идут биты, которые отвечают за палитру, зеркальное отображение и приоритет тайлов. --- Конец цитаты --- Нет, Evgeny, эти вопросы адресовалисьTi_. Просто ты раньше меня пост свой отправил. |
| Ti_:
--- Цитата: Марат от 20 Октябрь 2009, 17:25:22 ---Это только 13 мб ром криво работает или все игры? А как ты узнал, что рам дублируется в Vram? Дамп vram делал? У тебя, кстати, icq есть. Так можно было бы что-нибудь придумать. --- Конец цитаты --- все игры. ничего я не узнал. я просто предполжил. во многих нет вобще изображения, в комикс зон например только спрайтов нет Добавлено позже: --- Цитата: Марат от 20 Октябрь 2009, 17:25:22 ---icq --- Конец цитаты --- отпишу позж. как освобужсь |
| Марат:
Там еще есть какой-то массив Ram_Backup_Ex. Может быть, его тоже следует увеличить. |
| Ti_:
test4 вот эмулятор. пробуйте комикс зон например - не показывает спрайты. rock-n-roll-racing- ниче почти не показывает. но если сменить, 0006C4:00E0 , заместо 00FF, то графа ток во время гонки пахать не будет.(ну и еще машины палитры) Добавлено позже: --- Цитата: evgeny от 20 Октябрь 2009, 17:02:48 ---Насколько я понимаю, чтобы расширить память нужно убрать мирроринг с адресов. --- Конец цитаты --- там было 4блока с одинаковым название Ram, и каждый урезался до 65кб, сейчас там разные названия и не урезаются. ( в Mem_M68k.asm ) Добавлено позже: --- Цитата: Марат от 20 Октябрь 2009, 18:01:40 ---Там еще есть какой-то массив Ram_Backup_Ex. Может быть, его тоже следует увеличить. --- Конец цитаты --- а что это вообще такое? в эмуляторе я видел BRAM backup в путях. так же как и sram и т.д. Добавлено позже: Марат взломал DMA в файле vdp_io.asm , его урезало в 2байта. и видимо из-за этого не работала графика. а вот и эмулятор: память работает, я проверил нонужен тест бы помощнее!!, игры пашут две проверил) gens 15mhz+13rom+2ram 10:0000 23 FC MOVE.L #$12345678,($00E00002) - новая память чтение 10:000A 0C B9 CMPI.L #$12345678,($00E00002) - запись. 10:0014 66 00 BNE #$0012 [10:0028] - пашет. 10:0018 0C B9 CMPI.L #$12345678,($00FF0002) - ориг память. 10:0022 66 00 BNE #$0004 [10:0028] - не задета. 10:0028 4E 71 NOP 10:002A 4E 75 RTS |
| Segaman:
Молодец чювак. Теперь только врам поджимаед. Насколько я знаю адрес на блоки 8х8 идут в запросе на контрол. я так думаю, можно использовать 2е пустые ечейки в заголовке, для выбора блок порта и количество блоков. в заголовке есть пашущие ечейки, из них обрабатывается код, а есть и непашущие, которые никогда невызываются, вот их и можно под это отвести. или же, если совсем плохо, мона инициализацию сделать на увеличение врам. т.е. в начале кода игры можно послать запрос на увеличение врам скажем в порт A3000, и тот увеличит врам на стока, скока ему сказали. ну я тут наверно намудрил, но смысл думаю ясен. нужен новый порт под увеличение врам, а ещё порт для блоков который поможет выбрать из врам нужный. или врам банком его заделать. кстати, а в каком участе памяти находится врам- |
| Ti_:
--- Цитата: Segaman от 21 Октябрь 2009, 08:56:07 ---врам --- Конец цитаты --- тут вроде как писалось что увеличение vram не имеет смысла. и вообще тебе он конкретно зачем? если эт относится к спрайтлимиту- то можно попробовать(скриншот где мигают танки), но как ты игре там объяснишь что врам стало в 2раза больше и как ее проверять я без понятия. |
| KABAL:
Если не увеличить VRAM, чтобы, скажем 500 костей вылетало - это сделать можно, но эти кости будут использовать одинаковые спрайты, т.е. порции по 50 одинаковых костей например и 10 их рисунков, и в сумме 500 костей получится и видеобуфер не переполнится, а если увеличить VRAM - то нужно как-то эмулятору в игре эту свободную область задать, проще 1-ым способом сделать |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |