1
Программирование / [SMD] Создание собственной многоигровки на одном чипе
« : 25 Март 2026, 08:35:11 »
А как многоигровки вообще обходятся с векторами и обработчиками прерываний, которые у каждой игры разные?
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
хорошо, что я ничего не понял... а то бы как понял!
VBlank:
0017F4: 48E7 FFFE movem.l D0-D7/A0-A6, -(A7)
0017F8: 007C 0700 ori #$700, SR
0017FC: 2A7C 00C0 0004 movea.l #$c00004, A5
001802: 2C7C 00C0 0000 movea.l #$c00000, A6
001808: 4A38 E2B2 tst.b $e2b2.w
00180C: 6704 beq $1812
00180E: 4EBA F01E jsr ($82e,PC)
001812: 2038 E002 move.l $e002.w, D0
001816: 6704 beq $181c
001818: 2040 movea.l D0, A0
00181A: 4E90 jsr (A0)
00181C: 5278 E006 addq.w #1, $e006.w
001820: 52B8 E01A addq.l #1, $e01a.w
001824: 4A38 E426 tst.b $e426.w
001828: 6704 beq $182e
00182A: 5338 E426 subq.b #1, $e426.w
00182E: 45F8 F800 lea $f800.w, A2
001832: 141A move.b (A2)+, D2
001834: 6F20 ble $1856
001836: 0242 0003 andi.w #$3, D2
00183A: 7600 moveq #$0, D3
00183C: 161A move.b (A2)+, D3
00183E: 0C43 0014 cmpi.w #$14, D3
001842: 6D0E blt $1852
001844: 0C43 003C cmpi.w #$3c, D3
001848: 6E08 bgt $1852
00184A: 2F03 move.l D3, -(A7)
00184C: 4EB8 1664 jsr $1664.w
001850: 588F addq.l #4, A7
001852: 5302 subq.b #1, D2
001854: 6EE6 bgt $183c
001856: 42B8 F800 clr.l $f800.w
00185A: 4CDF 7FFF movem.l (A7)+, D0-D7/A0-A6
00185E: 4E73 rteЕсли вознамерился портировать Dune или какой-то из её хаков на другую платформу с одной стороны, не "на глазок", а через переписку дизассемблята под нужную архитектуру, а с другой, не как самостоятельную игру, а как высокоинтегративный SDK-, движко-, и, может быть, даже языконезависимый модуль (несущий на себе функцию, например, какой-то бонусной активности внутри другой игры), то как бы перевалить отрисовку экрана и всякий такой код, который надо выполнять каждый кадр, с обработчика прерываний (пусть модуль полагается на таковой у материнской игры) на сердцевину модуля?
1 ядро будет работать, остальные курить...
под одно ядро...
Самым же лучшим вариантом для программирования будет Claude Opus 4.6. Для него тоже есть штуковина для агентного программирования. Нейронки в таком режиме могут разрабатывать код часами, а не выдавать результат после пяти секунд раздумий.
Если брать только американские нейронки, то Grok - самый тупой. Он даже не способен написать код эмулятора. Единственный его плюс - не стесняется материться и может послать на ***.
Кстати, о последнем - насколько адекватен тут созданный им прикреплённый ниже скрипт снятия художественного стиля с пакета изображений и сохранения в формате .pth?
а в комментариях там дан ответ в чем вероятная причина.
With the cycle-granular Z80 and new memory system features, it might be time to revisit this stuff., что ли?
какого бага? внизу я вижу коментарии Vas-а типа что тот кто создал issue просто голову морочит
movem.l d0-d2/a0-a1, -(a7)
movea.l #$200000, a1
add.l d0, d0
subq.l #$1, d1
move.b $1(a1, d0.l), d2 ;d0=423e
move.b d2, (a0)+
Конечно по Сатурну.
Почитай про обработку исключений и регистр VBR.
Значит, плохо смотрел.
Во-первых, зачем тебе это? А во-вторых, почему бы не почитать официальную документацию?
AIP:
0e20: d708 MOV.L @($0020,PC),R7 [00000E44]
0e22: d507 MOV.L @($001C,PC),R5 [00000E40]
0e24: 6772 MOV.L @R7,R7
0e26: 6352 MOV.L @R5,R3
0e28: c71b MOVA @($006C,PC),R0 [00000E98]
0e2a: 2032 MOV.L R3,@R0
0e2c: c706 MOVA @($0018,PC),R0 [00000E48]
0e2e: 6173 MOV R7,R1
0e30: e215 MOV #$15,R2
0e32: 6406 MOV.L @R0+,R4
0e34: 4210 DT R2
0e36: 2142 MOV.L R4,@R1
0e38: 8ffb BFS $00000E32
0e3a: 7104 ADD #$04,R1
0e3c: a030 BRA $00000EA0
0e3e: 2572 MOV.L R7,@R5
0e40: 0600 02dc
0e44: 0600 0260
<...>
0e98: 0000 0000
Почитав тему о том, почему на "Денди" была редка или вообще отсутствовала "Castlevania 3", задался вопросом, озвученным в названии этой темы. Понятно, что "Зельду", вероятно, не пиратили или почти не пиратили из-за необходимости воспроизводить батарейку для сохранений. Но есть и другие случаи. Да и можно задаться вопросом, почему некоторые игры пиратили гораздо реже, чем другие. Понятно, что причины, вероятно, разные.
ммм, а что с ней не так ?
вас в школе таблицы читать не учили? вверху столбца английским по белому написано SIZE, т.е. длина, и она не фиксированная потому что IP может поддерживать один или несколько регионов
Диапазон.
Оно не плавающее, а постоянное. Внизу документа же идёт расшифровка.
Почему? Те кто в теме и так знают, а те кто не в теме - им скорей пофиг. Дримовскому диску для запуска нажны две сессии - это был главный прикол, из-за чего дримку не надо было чиповать и ломать другими способами.
А структура... так посмотри на cui от первой плойки - там по большей части примерно так же.