Автор Тема: Геймдев под M68K  (Прочитано 40160 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #60 : 19 Июль 2010, 20:19:12 »
а я вот еще что нашел - MOVEM.W - тоже знакорасширяемая.

и я тут начал ром сначала изучать и смотрим:
ROM:00000294                 movem.l (a6),d0-a6  ; видимо решили очистить региcтры?

но можно было очистить через movem.w  .


некоторые вопросы вызывает это:
ROM:0000023E loc_0_23E:                              ; CODE XREF: RESET+24j
ROM:0000023E                 move.w  (a4),d0
ROM:00000240                 moveq   #0,d0

в чем смысл неясно??  (a4= вдп_контроль)

потом move.l  #'SEGA',$2F00(a1)  ; код безопасности сеги который записывается если версия неправильная? вот что за версия - железа? что будет если его записывать если правильная и не записывать если неправильная (т.е. наооборот).

далее:
 moveq   #0,d0
  movea.l d0,a6
  move    a6,usp  ,  user stack pointer  - что это такое , зачем он нужен еще 1 стак поитер? и в него тут 0 пишут ?

дальше: команды для VDP (инициализация)
ROM:000002B8                 dc.b 4                  ; 8004
ROM:000002B9                 dc.b $14                ; 8114
ROM:000002BA                 dc.b $30              ; 8230
ROM:000002BB                 dc.b $3C             ; 833c
ROM:000002BC                 dc.b   7                ; 8407

и т.д.

вот есть у кого список всех (или большинства команд?) только не в битах как в мануале.

и эта шаблонка (reset+data для регистров) она у всех одинаковая (её сега чтоли выдывала всем?), и зачем её так запутали? (везде циклы, всё от-но берется и т.д.) - то есть это просто им захотелось сильно сэкономить место или от пиратов(чтобы ломали дольше)?
можно ж было просто напихать move.w $8004,(a4) и т.д.



Добавлено позже:
p.s. чтобы в asm68k.exe  схавал надо писать move.l a6,usp  (а не move).

в comix zone тут дизасмил увидел используют во многих местах trap  (trap #1) - в других играх не видел (надо бы побольше проверимть) .
и ворды после нее потом к какому-то адресу прибавляются.  

ещё интересно что графику Cкеча сжали?я не нашел (и куда распаковывается в RAM или каждый раз??- но не тормозит?)

ROM:001DBFFE loc_0_1DBFFE:                           ; CODE XREF: ROM:loc_0_1DBE88p
ROM:001DBFFE                 trap    #1
ROM:001DBFFE ; ---------------------------------------------------------------------------
ROM:001DC000                 dc.w $AF6A
ROM:001DC002 ; ---------------------------------------------------------------------------
ROM:001DC002                 moveq   #$1B,d0
ROM:001DC004                 jsr     loc_0_2E46
ROM:001DC008                 rts

вот она:
ROM:001CE58A                 global TRAP1
ROM:001CE58A TRAP1:
ROM:001CE58A                 move.l  a5,-(sp)
ROM:001CE58C                 movea.l 6(sp),a5
ROM:001CE590                 movea.w (a5)+,a5
ROM:001CE592                 adda.l  #word_0_138E0E,a5
ROM:001CE598                 move.l  a5,$30(a0)
ROM:001CE59C                 move.w  #1,$34(a0)
ROM:001CE5A2                 andi.w  #unk_0_FFFFFBF7,$A(a0)
ROM:001CE5A8                 clr.w   $2A(a0)
ROM:001CE5AC                 move.w  #8,$3A(a0)
ROM:001CE5B2                 addq.l  #2,6(sp)
ROM:001CE5B6                 movea.l (sp)+,a5
ROM:001CE5B8                 rte



еще вопрос по z80 что-туда записывают вначале в его RAM (из этой же шаблонки), ведь писали что он в перезагрузке должен быть при включении??
и он не с 0 своей RAM читает а с "C"??  ( у меня в эмуляторе так показывает, да и тут видно что-то нето начинает с XOR, так что там
за цифры внаале?

ROM:0000                 xor     a
ROM:0001                 ld      bc, 1FD9h
ROM:0004                 ld      de, 27h
ROM:0007                 ld      hl, 26h ; '&'
ROM:000A                 ld      sp, hl
ROM:000B                 ld      (hl), a
ROM:000C                 ldir
ROM:000E                 pop     ix
ROM:0010                 pop     iy
ROM:0012                 ld      i, a
ROM:0014                 ld      r, a
ROM:0016                 pop     de
ROM:0017                 pop     hl
ROM:0018                 pop     af
ROM:0019                 ex      af, af'
ROM:001A                 exx
ROM:001B                 pop     bc
ROM:001C                 pop     de
ROM:001D                 pop     hl
ROM:001E                 pop     af
ROM:001F                 ld      sp, hl
ROM:0020                 di
ROM:0021                 im      1
ROM:0023                 ld      (hl), 0E9h
ROM:0025                 jp      (hl)
« Последнее редактирование: 19 Июль 2010, 20:24:20 от Ti_ »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #61 : 19 Июль 2010, 20:50:05 »
нда, книжки ты по-прежнему читать не хочешь )
Цитата: Ti_
move    a6,usp  ,  user stack pointer  - что это такое , зачем он нужен еще 1 стак поитер? и в него тут 0 пишут ?
в процессоре есть два режима - пользовательский и супервизора.
в юзер-моде вот как раз этот USP и используется как стек (А7)
супервизоре используется свой А7, а доступ к тому пользовательскому регистру стека идет как USP.

Цитата: Ti_
в comix zone тут дизасмил увидел используют во многих местах trap  (trap #1) - в других играх не видел (надо бы побольше проверимть) .
и ворды после нее потом к какому-то адресу прибавляются.
я такое встречал раньше - суть в том что таким макаром передают какие-то аргументы обработчику трапа
ну а он после возвращает управление не на (A7) а на (A7)+длинааргументов, в твоем случае +2
это кстати четко видно на твоем листинге
« Последнее редактирование: 19 Июль 2010, 20:52:43 от MetalliC »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #62 : 28 Июль 2010, 00:23:38 »
Существует ли редактор ассемблера для M68K нормальный? 
В текстовых редакторах не нашел, готовых плагинов тоже нет(то есть может быть есть , но где?)

Пробовал редактор из комплекта EASY68K - так он там кривой ужасно. (Стоит ли пробовать IDE68k-может там нормальный?)

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

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #63 : 28 Июль 2010, 13:48:35 »
Сам искал в свое время, ничерта не нашел. Пришлось писать в блокноте xD

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #64 : 28 Июль 2010, 23:00:46 »
B Scite есть подсветка синтаксиса, если тебя это интересует. Я себе добавил инструкции мотороллы в sci lexer и подключил его к sci te.

Оффлайн worm

  • Пользователь
  • Сообщений: 1074
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #65 : 19 Ноябрь 2010, 20:39:02 »
Джентельмены, возможно ли присобачить этот gcc для m68k к code blocks? на мой взгляд - самый удобный ide, а как
пользоваться компилятором без ide - понять ума не хватает. Очень хочется написать игру для SMD на С.  :)
romanich, sergi, обновите ссылки, прошу. Ни сырцов mr.nuts2 ни проекта romanich скачать не получается  :(

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1284
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #66 : 19 Ноябрь 2010, 21:22:14 »
Где-то в этой теме.
http://gendev.spritesmind.net/forum/viewtopic.php?t=14

Добавлено позже:
Блина, нажимаю на первом посте этой странице Цитировать, и виснет. Скопировал цитату вручную.
Цитата
некоторые вопросы вызывает это:
ROM:0000023E loc_0_23E:                              ; CODE XREF: RESET+24j
ROM:0000023E                 move.w  (a4),d0
ROM:00000240                 moveq   #0,d0

в чем смысл неясно??  (a4= вдп_контроль)
Холостое чтение, VDP_CTRL это порт, а не ОЗУ, поэтому такое чтение на что-то может повлиять.
Например, в стандартном коде старта сеговских игр есть такой кусок:
_000002FA: 4A79 00C00004            TST.W     VDP:$00C00004
_00000300: 2E79 00000000            MOVEA.L   ROM:$00000000,A7

Оффлайн worm

  • Пользователь
  • Сообщений: 1074
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #67 : 16 Май 2011, 22:10:13 »
GManiac, вот спасибо, дружище! =)

Добавлено позже:
Есть вопрос касательно компиляции исходников totin'a (battlecity)..
жалуется на sh.exe, выдает запрет.  :(
Если кто знаком с решением данной проблемы буду благодарен за помощь.
« Последнее редактирование: 16 Май 2011, 22:42:43 от worm »

Оффлайн MobNet

  • Пользователь
  • Сообщений: 174
  • Пол: Мужской
  • Акк заброшен
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #68 : 09 Апрель 2012, 02:04:25 »
чет неочень хороший исходник уменя вышел(

E:\Sega\asm68k>asm68k /p asm.asm,asm.bin

SN 68k version 2.53

E:\SEGA\ASM68K\ASM.ASM(44) : Error : xdef/xref can only be used when producing l
inkable output
 global reset
E:\SEGA\ASM68K\ASM.ASM(1229) : Error : xdef/xref can only be used when producing
 linkable output
 global vblank
E:\SEGA\ASM68K\ASM.ASM(1246) : Error : xdef/xref can only be used when producing
 linkable output
 global hblank
Errors during pass 1 - pass 2 aborted
Assembly completed.
3 error(s) from 170615 lines in 0.2 seconds

E:\Sega\asm68k>pause
Для продолжения нажмите любую клавишу . . .


44 строка

global RESET
RESET: ; DATA XREF: sub_694o
move #$2700,sr
move.b (byte_A10001).l,d7
move.b d7,(byte_FFB036).l
andi.b #$F,d7
beq.w loc_222
move.l #$53454741,($A14000).l

« Последнее редактирование: 09 Апрель 2012, 02:08:01 от MobNet »

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #69 : 09 Апрель 2012, 10:32:33 »
убери все global
RESET: ; DATA XREF: sub_694o
move #$2700,sr
move.b (byte_A10001).l,d7
move.b d7,(byte_FFB036).l
andi.b #$F,d7
beq.w loc_222
move.l #$53454741,($A14000).l

Оффлайн MobNet

  • Пользователь
  • Сообщений: 174
  • Пол: Мужской
  • Акк заброшен
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #70 : 09 Апрель 2012, 10:41:23 »
Segaman,спасибо конечно но я уже ранее твоего ответа попробовал убрать но после компиляции ошибок 0 а работать  не хочет черный экран(

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #71 : 09 Апрель 2012, 13:14:15 »
попробовал убрать но после компиляции ошибок 0 а работать  не хочет черный экран(
Что за исходник? Дизасм какой-то игры?

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #72 : 09 Апрель 2012, 15:42:46 »
да, новую игру разбирает

Оффлайн worm

  • Пользователь
  • Сообщений: 1074
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #73 : 09 Апрель 2012, 22:14:39 »
Я видел, кстати я даже имею исходники нескольких игр - если кому надо то могу поделиться запросто

2 игры
Turrican 3

Mr Nuts 2

проблема одна - исходники то С, но вообще девелоперский софт был на компьютере Амига
поэтому нужно както коды эти перекодить уже под ваш девелоперский компилятор
но вполне реально думаю - там все есть практически
Скачал с зофара исходники Mr Nuts 2, в них нет ни намека на C.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #74 : 10 Апрель 2012, 01:28:03 »
Цитата: worm
Скачал с зофара исходники Mr Nuts 2, в них нет ни намека на C.
от этого не легче - исходники писались под амижным пакетом Hisoft Devpac и скорее всего под чем-то другим не соберутся, плюс там еще есть вагончик скриптов под AmigaOS и всяких утилиток (бинарные файлы начинающиеся с 00 00 03 F3 - это исполняемые файлы под амигаось)
« Последнее редактирование: 10 Апрель 2012, 02:04:47 от MetalliC »

Оффлайн worm

  • Пользователь
  • Сообщений: 1074
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #75 : 10 Апрель 2012, 08:52:33 »
В общем про "забилдить" можно забыть :lol:

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #76 : 10 Апрель 2012, 09:51:11 »
такой вопрос. никто не пробовал запустить программу для м68к в адресном пространстве з80 заранее отключив сам з80?

Добавлено позже:
и еще вопрос. помница на вики давным давно находил инфу про техас инструментс из сеги.
так вот там было сказано что шумогенератор можно приспособить к проигрыванию звуковой дорожки путём очень частого изменения частот. я даж дему качал, но её увы не сохранилось. там еще говорилось что з80 даже на пару с моторолкой не смогут так часто менять частоту. что там нужен был бы проц в 2 или 3 раза мощнее моторолки.
щас копаться в инете времени нет. может кто слыхал такое?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #77 : 10 Апрель 2012, 13:44:22 »
Цитата: worm
В общем про "забилдить" можно забыть
ну почему же, собрать можно, только нужно разбираться в амижных девелоперских пакетах.
при чем авторы зачем-то использовали два ассемблера - вышеупомянутый "Devpac" для Nutz_Sources_11_8 и какой-то немецкий "Optimierender Makro Assembler" для Nutz_Karte_11_8, и плюс еще линковщик SLink от "SAS C"

к тому же не хватает еще файлика sega.obj (заголовок рома с инитом и запуском игры), его нужно сделать из "Nutz_Karte_11_8\Startup.asm"

у меня всё это получилось, так что встречайте - Mr. Nutz 2 для мегадрайва

к сожалению можно только погулять по первому уровню, при попытке зайти на другие - вылет в главное меню :(



Добавлено позже:
ага, и я уже вижу почему - надо еще билдить уровни в Nutz_Levels_11_8 чтоб получился файлик Levels_all и вшить его в ром.
попозжа попробую его собрать.

Оффлайн Pain

  • Пользователь
  • Сообщений: 6232
  • Пол: Мужской
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #78 : 10 Апрель 2012, 14:28:26 »
Слушай. А игра чтоли должны была выйти и ты её сызнова делаешь или допиливаешь?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #79 : 10 Апрель 2012, 15:14:13 »
Pain, должна была выйти, по сути порт для мегадрайва был полностью готов, но в виду того что МД к 1994г уже устарела игру решили не выпускать.
года три назад один из авторов выложил исходники игры, а я вот пытаюсь их собрать.

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



Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #80 : 10 Апрель 2012, 15:54:44 »
замечательная игра однако. красочная и стильная
наверно правда стоит её доделать

Добавлено позже:
а не известно, насколько игра была закончена?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #81 : 10 Апрель 2012, 16:28:19 »
Цитата: Segaman
а не известно, насколько игра была закончена?
говорят что полностью, чел который исходники слил, выкладывал скриншоты эмуляции и платформенные уровни там работали.

у меня подозрение, что там указатели на данные уровней не верные, наверное проект полностью нужно пересобрать (все уровни, карты и т.п.), но этого сделать не получится без упаковщика (Turbo Packer by Wolfgang Mayerle) а в комплекте его нет :( и спросить не у кого - амижный форум abime.net в дауне...

так что я не знаю что еще можно сделать, кроме как играть в амижную версию - она почти такая же, может графика чутка хуже.

Добавлено позже:
ну в общем как я и думал, игра виснет в декранчере - видимо вызывается с левым указателем и зацикливается.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #82 : 10 Апрель 2012, 19:47:45 »
сам файл Levels_all наверно с неправильными указателями.
надо бы скачать ресы да самому посмотреть. уж очень игра забавная

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

Оффлайн worm

  • Пользователь
  • Сообщений: 1074
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #83 : 10 Апрель 2012, 20:08:33 »
MetalliC, спасибо за сборку, хоть как то можно узреть и испытать этого "не родившегося ягненка" :)
Тут даже дебаггер есть)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #84 : 10 Апрель 2012, 21:57:05 »
если долго мучаться - что-то да получиться :)
пересобрал все ресурсы (без перекранчинга) - и игра заработала  :jumpy:

играйте, тестите - вдруг где-то дальше в игре баги есть.



« Последнее редактирование: 10 Апрель 2012, 22:00:00 от MetalliC »

Оффлайн worm

  • Пользователь
  • Сообщений: 1074
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #85 : 10 Апрель 2012, 22:21:01 »
MetalliC, отлично! :wow:
Приспособить его для asm68k представляется возможным?)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #86 : 10 Апрель 2012, 22:59:07 »
worm, врятли. точнее можно но долбаться долго и нудно, дело-то не в asm68k, а как я уже говорил нужно будет все скрипты переписывать на что-то понимаемое виндой, плюс всякие утилитки писать самим.
я смысла в этом не вижу - мне проще будет выложить архив системы со всеми сорцами и утилитами для WinUAE, сложного там ничего нет, запустишь один скрипт - соберутся ресурсы, другой - движок, третий - весь ром.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #87 : 10 Апрель 2012, 23:04:35 »
игруха оказалась длинной... фтопку, ибо занудная.

Оффлайн worm

  • Пользователь
  • Сообщений: 1074
  • Пол: Мужской
  • Злой тролляка
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #88 : 10 Апрель 2012, 23:31:22 »
мне проще будет выложить архив системы со всеми сорцами и утилитами для WinUAE
Было бы здорово)

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #89 : 11 Апрель 2012, 09:58:34 »
MetalliC, спасибо тебе. если надо, то могу встоить трушный дебаг из UMK3