Автор Тема: Разработка под M68K  (Прочитано 46374 раз)

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

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #30 : 05 Июнь 2010, 18:24:44 »
Есть ещё повторяющиеся команды, например, ADD.W #imm, Dn и ADDI.W #imm,
ну это не повторяющиеся -  addi.w #1,d0  и add.w d1,d0   ; а add.w #1,d0  вроде как не бывает! (просто в компиляторе все равно как писать- автоматически переделыает add в addi или adda.)

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

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1301
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #31 : 05 Июнь 2010, 18:38:48 »
Цитата
ну это не повторяющиеся -  addi.w #1,d0  и add.w d1,d0   ; а add.w #1,d0  вроде как не бывает!
Читать умеем? Я написал:
Цитата
ADD.W #imm, Dn и ADDI.W #imm, Dn
Ещё как бывает такая команда.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #32 : 05 Июнь 2010, 18:52:43 »
Читать умеем? Я написал:Ещё как бывает такая команда.
у меня экселя нет чтобы глянуть из твой сосендней темы, может напишешь?
addi.w #1,d0 - 06400001 

add.w #1,d0  - ?
« Последнее редактирование: 05 Июнь 2010, 18:56:19 от Ti_ »

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1301
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #33 : 05 Июнь 2010, 20:47:45 »
В 68kpm.pdf ведь все опкоды есть.

ADD <EA>,Dn: 1 1 0 1 Dn 0 Size Mode EARegister#imm - это 111100 для Mode + EARregister
Size.w = 01
Dn = d0 = 000
Итого: 1101 000 0 01 111100 = 1101 0000 0111 1100 = D07C
Второе слово - само значение.

Мой дизасм различает эти команды:
_00000200: D07C 1234                ADD.W     #$1234,D0
_00000204: 0640 1234                ADDI.W    #$1234,D0

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #34 : 05 Июнь 2010, 23:36:08 »
Мой дизасм различает эти команды:
вижу, спс.
но если получается , что одинаковые они, то addi.w тоже неспециально делали, а получилось исходя из логики процессора?
но при этом везде используют addi если число+d0. (и компилятор меняет на addi сам)

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1301
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #35 : 06 Июнь 2010, 01:33:11 »
Наоборот, addi - это команда специально для прибавления числа к операнду любого вида адресации. Т.е.:
#imm, <EA>
С помощью add можно складывать только
<EA>, Dn
Dn, <EA>
операнды, и здесь может получиться частный случай: прибавление числа к регистру Dn:
#imm, Dn
Поэтому "одинаковость" этих команд - просто пересечение частных случаев. Внутренне они декодируются по-разному и, возможно, выполняются по-разному, но суть у них одна.

То же справедливо для BSR.w и JSR (pc).

Что с того, что есть "одинаковые" команды? Нам главное результат. Ну, можно написать move.b #0, <EA>, зачем тогда использовать clr.b <EA>? Для удобства.
А ещё есть трюки вроде:
xor ax,ax (для интелов)
suba a0,a0
и т.д.
Здесь нет ничего необычного.

Добавлено позже:
Компилятор наверно легче настроить так, что когда он видит первым операндом #imm, то он автоматически настривается на команду ADDI. Иначе, чтобы сделать ADD #imm, надо ещё второе условие проверить - чтобы вторым операндом был Dn.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #36 : 06 Июнь 2010, 01:49:18 »
Ну, можно написать move.b #0, <EA>, зачем тогда использовать clr.b <EA>?

suba a0,a0
и т.д.
Здесь нет ничего необычного.
есть резон clr. выполнится быстрее по идее) у меня в одной из мануалок с командами еще список по оптимизации скорости смотрел  :)

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #37 : 13 Июль 2010, 22:36:27 »
JSR   $4EB8xxxx -- это обычный джамп, где ХХХХ это 2-х байтовый адрес. Прыгать можно от 0 до $FFFF. Редко используется.
4eb8 - насколько я помню до $8000 - это прыжок в ROM, а после в RAM.
4eb8 это jsr (xxxx).w - переход на абсолютный 16-ти битный адрес (не относительный, т.е. без знака)
Так я тут тесты провёл вообщем получается что адрес 16 битный, но он знаковый, поэтому прав evgeny.

То есть адрес move.b  d0,($1234).w   это тоже самое что ($00001234).l
Но если адрес move.b  d0,($8900).w           \
                     move.b  d0,($FFFF8900).w     / это = ($FFFF8900).l

hex code -11C0 8900   (FFFF тут нету).   то есть вычитывается из нуля и получается FFFF.

То есть адрес меняется целиком, хоть и 2байта.

Тоже самое все же знают команду moveq ? она в мануале называется 8битной. (move 8-bit immediate), но при этом меняются все 4байта регистра. (т.е. либо 000000xx , либо ffffffxx)

И разрабы многих игр как раз использовали 16битную, получая халявный доступ к RAM , начиная с
$FF8000, то есть 'читерили', потому что другие разрабы этого не знали(то есть не во всех играх есть.)   (и поэтому в loader'e HardwareMan'а  два сегмента ram создает)

Но при этом им прихидолись в область FF0000-FF8000  залезать по 32битной адресации.

но в RRR поступили умнее - там просто закинули в a4=FF8000 ( и получили доступ ко всей памяти, 16-битный, т.е. от -8000 до +8000 от-но (a4) , но это уже от-ная адресация).


Но, я тут по-другому вопросу вообщем, как загонять ram в исходник? т.е. создать рам + c00000+a00000 (чтобы получить доступ к меткам "lea VDP " и т.д.). Или как это надо делать?  (просто как задать меткам адрес?)
Я пока не пробовал, ну чтобы файл не вырос до 16мегабайт, т.е. если писать "ds.b" как в IDA? (или в компиляторе обрезать как-то размер?)

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3427
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #38 : 14 Июль 2010, 00:24:54 »
Цитата: Ti_
Но, я тут по-другому вопросу вообщем, как загонять ram в исходник? т.е. создать рам + c00000+a00000 (чтобы получить доступ к меткам "lea VDP " и т.д.). Или как это надо делать?  (просто как задать меткам адрес?)Я пока не пробовал, ну чтобы файл не вырос до 16мегабайт, т.е. если писать "ds.b" как в IDA? (или в компиляторе обрезать как-то размер?)
А собственно зачем это? Нужно что-то забить в RAM в самой начале загрузки рома что ли? По сути, я просто пишу абс. смещение и все, типа
move.w   #$855E, $C00004

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #39 : 14 Июль 2010, 01:15:48 »
А собственно зачем это? Нужно что-то забить в RAM в самой начале загрузки рома что ли? По сути, я просто пишу абс. смещение и все, типа
move.w   #$855E, $C00004
move.w  d0, car1_X_speed      (чтобы сорс читабельный был)

что-то в этом роде:
 org $FFС200
car1_X_speed:
 ds.b 1         
car2_X_speed:
 ds.b 1

+в дальнейшем ещё из адреса метки "вычитать" адрес метки. (я так у себя сделал чтобы разницу в архивах считал асм, а они инкбинами лежат). 
типа так:
org $20000
SOUND_MUSIC
 dc.w sounds-SOUND_MUSIC
 dc.b 6
 dc.b 0

 dc.l musictrack1-SOUND_MUSIC
 dc.l musictrack2-SOUND_MUSIC
 dc.l musictrack3-SOUND_MUSIC
 dc.l musictrack4-SOUND_MUSIC
 dc.l musictrack5-SOUND_MUSIC
 dc.l musictrack6-SOUND_MUSIC
musictrack1
 incbin music\mtrack1.smg
musictrack2
 incbin music\mtrack2.smg
musictrack3
 incbin music\mtrack3.smg
musictrack4
 incbin music\mtrack4.smg
musictrack5
 incbin music\mtrack5.smg
musictrack6
 incbin music\mtrack6.smg

sounds
 dc.w $2A
 dc.l sound0-SOUND_MUSIC
 dc.w sound1-sound0
 dc.w 0
 dc.l 0
 dc.l sound1-SOUND_MUSIC
 dc.w sound2-sound1
 dc.w 0
 dc.l 0


А тут я думал задать:

 org $FF8000
M
 ds.b 1


если прокатит-загнать ещё и относительные в RAM через разницу меток,

move.w d0, car1_X_speed-M(a4)         =  $4200(a4)

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1301
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #40 : 14 Июль 2010, 01:30:44 »
Цитата
То есть адрес move.b  d0,($1234).w   это тоже самое что ($00001234).l
Но если адрес move.b  d0,($8900).w           \
                     move.b  d0,($FFFF8900).w     / это = ($FFFF8900).l

hex code -11C0 8900   (FFFF тут нету).   то есть вычитывается из нуля и получается FFFF.

То есть адрес меняется целиком, хоть и 2байта.

Тоже самое все же знают команду moveq ? она в мануале называется 8битной. (move 8-bit immediate), но при этом меняются все 4байта регистра. (т.е. либо 000000xx , либо ffffffxx)
В MOTOROLA 68000 FAMILY Programmer’s Reference Manual обо всём этом написано. Даже схемы нарисованы, какая часть адреса берётся и когда он знакорасширяется. В частности, конечный адрес всегда 4-хбайтный, а воздействие на адресный регистр всегда влияет на весь регистр, о чём там часто написано. Т.е. если адрес в команде двухбайтный (например, MOVEA), он знакорасширяется до 4 байт и пишется в адресный регистр.

То же про MOVEQ, всё там написано:
Цитата
Description: Moves a byte of immediate data to a 32-bit data register. The data in an 8-bit
field within the operation word is sign- extended to a long operand in the data register
as it is transferred.


Цитата
Цитата
Но, я тут по-другому вопросу вообщем, как загонять ram в исходник? т.е. создать рам + c00000+a00000 (чтобы получить доступ к меткам "lea VDP " и т.д.). Или как это надо делать?  (просто как задать меткам адрес?)
Директива equ.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #41 : 14 Июль 2010, 11:41:20 »
Т.е. если адрес в команде двухбайтный (например, MOVEA), он знакорасширяется до 4 байт и пишется в адресный регистр.

Директива equ.
ясно, спасибо.

но то, все равно там если глянуть часть адресов можно было сделать, но не сделали через 2байта.
(может компилятор такой был?)
потом если посмотреть многие разрабы старались большую часть игры поставить в ram начиная с >ff8000  и там больше всего адресов находится , а другие делали просто подряд от начала ram.
« Последнее редактирование: 14 Июль 2010, 11:46:39 от Ti_ »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3255
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #42 : 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

  • Технический консультант
  • Сообщений: 9470
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #43 : 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_

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

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

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

Оффлайн Smoke

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

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

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

Оффлайн Takamura-kun

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

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1301
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #48 : 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

Оффлайн Takamura-kun

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

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

Оффлайн MobNet

  • Пользователь
  • Сообщений: 174
  • Пол: Мужской
  • Акк заброшен
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #50 : 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

  • Пользователь
  • Сообщений: 3206
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #51 : 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
« Ответ #52 : 09 Апрель 2012, 10:41:23 »
Segaman,спасибо конечно но я уже ранее твоего ответа попробовал убрать но после компиляции ошибок 0 а работать  не хочет черный экран(

Оффлайн Ti_

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

Оффлайн Segaman

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

Оффлайн Segaman

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

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

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3206
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #56 : 09 Май 2012, 17:18:45 »
ладно, не в той теме обащеетесь.
создайте отдельную.

вопрос к знатокам. команда PEA действует также как LEA, но записывает адрес в стек? правильно?
если да то какие вариации она ест?
т.е. pea (a1) и там pea offset_850(pc,d1)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9470
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #57 : 09 Май 2012, 17:50:16 »
Цитата: Segaman
ладно, не в той теме обащеетесь.
создайте отдельную.
я б с радостью, пусть только модеры этого раздела сообщения в нее перенесут

Цитата: Segaman
команда PEA действует также как LEA, но записывает адрес в стек? правильно?
ага.
Operation: SP – 4 ® SP; < ea > ® (SP)
Assembler Syntax: PEA < ea >
Attributes: Size = (Long)
Description: Computes the effective address and pushes it onto the stack. The effective
address is a long address.

PS: рекомендую почитывать вот эту книжку - www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf
« Последнее редактирование: 09 Май 2012, 17:53:42 от MetalliC »

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3206
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #58 : 10 Май 2012, 07:51:07 »
спасибо

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1396
    • Просмотр профиля
Re: Геймдев под M68K
« Ответ #59 : 06 Сентябрь 2012, 00:30:16 »
Не знаю даже, там ли я пишу :lol:
Создавать тему было лень. Подниму ка эту.
Вопрос следующий:
После немногочисленных тестов, мною был замечен баг. В одной ситуации, спрайты с Low priority, перекрывают спрайты с High priority.
Этот баг только эмуля? или на железе происходит тоже самое?
Погуглил немного, так и не понял ничего :lol:.
Это важно в двух смыслах: Фиксить ли эмуль? Если это и на приставке - то значит это никак не обойти (.