Разработка и ромхакинг > Программирование
Разработка под M68K
(1/5) > >>
Segaman:
нифига се ресы. я такую билибирду никада невидел (без обид). и компиль на 4мега. абалдеть. я фигею, как ва всём этом ещё и можно было танки слепить.

Тема была создана из разливанного флуда в Battle City для SEGA MEgaDrive2. Заголовок можно поправить, обращайтесь если что...
Yaranga.
totin:

--- Цитата: Segaman от 18 Август 2009, 22:47:14 ---нифига се ресы. я такую билибирду никада невидел (без обид). и компиль на 4мега. абалдеть. я фигею, как ва всём этом ещё и можно было танки слепить.

--- Конец цитаты ---
ты привык на примитивном уровне в асме копаться а нормальные инструменты не 60кило весят и языки есть поинтереснее чем асм, но их учить конечно же нужно в отличии от асм. а асм годится только для узкого круга азадчь, и там где можно без него обойтись, лучше все таки обойтись, дабы не тратить свое время в погоне за сомнительными перспективами в виде размера/скорости. вот такое мое ИМХО (без обид)

Добавлено позже:
фраза "я фигею, как ва всём этом ещё и можно было танки слепит" вообще с ног валит (: дружище, это C, может это будет для тебя откровением, но на этом языке делают большинство софта, в особенности игр, в том числе и для SEGA, или ты думаешь что всё на асме пишут? может для денди и было все на асме а для сега я думаю по крайней мере большинство хороших игр было на С
Zephyr:

--- Цитата: Segaman ---я фигею, как ва всём этом ещё и можно было танки слепить.
--- Конец цитаты ---
Целиком согласенс с totin. Segaman, ты сам подумал что написал??? Или у кого-то просто дикое желание выпендриться!?
Segaman:
Не, просто я действительно фигею. я на C видел тока проги на комп, но никак не гамы на сегу.
totin:

--- Цитата: Segaman от 19 Август 2009, 14:31:23 ---Не, просто я действительно фигею. я на C видел тока проги на комп, но никак не гамы на сегу.

--- Конец цитаты ---
а ты вообще много видел исходников сеговских игр? хоумбрю и системный код типа драйверов не в счет. я думаю что вообще не видел, я тоже не видел но можно смело сказать что их писали на С так как нет ни одной объективной причины по которой мог бы использоваться асм в качестве основного языка. я даже только что припомнил исходники технопоповской игры/демки "ship" которые валяются вмести с исходниками GEMS, отгадай на каком языке написано?
ты так рассуждаешь "я на C видел тока проги на комп" так и что? ты много чего не видел, а я не один год проработал в игрострое и за плечами не один проект, и проекты разные, для разных платформ, крупные и не очень, масштабные,над которыми работала большая команда и свои поменьше. я точно знаю как и на чем нужно делать, а то что ты на асме копашишся и больше ничего не видишь это твои проблемы, у тебя такими темпами останется все на аматорском уровне, типа покодил, покодил, слепил pong, порадовался за себя и на этом все. хотя если  особо ничего не собираешся делать, а кодить на асме в кайф и делается все это исключительно ради удовольствия а не ради результата то это другое дело.
лично у меня ассемблерная романтика закончилась давным давно, ещё во времена спектрумов и меня не "возбуждает" мысль о тотальном контроле над каждым тактом процессора
sergi:
Я видел, кстати я даже имею исходники нескольких игр - если кому надо то могу поделиться запросто

2 игры
Turrican 3

Mr Nuts 2

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

си можно перенести он универсален, ну конечно главное чтобы железо могло реализовать это дело
просто хароших компиляторов на разные платформы к сожалению не так уж много, сега то харошо в этом плане прошарена, а остальные все через одно место :-\
totin:
sergi компиляторы должны быть нормальные, как минимум GCC под любой проц я думаю есть. думаю вполне можно пользоваться сеговским компилем  для программ для ягуара, к примеру (там же вроди тоже м68к?).
sergi:
Там у сопроцессоров свои инструкции ну базовый код на M68K
но сколько видал компиляторов - все интерфейс имеют хуже наверно нельзя придумать и в плане ягуара - там такая хрень, компиляторы есть но кривые код может и не работать потом или сбоить :-\
totin:
да, кривой код и у сеги бывает, SGCC к примеру глюкавый. интерфейс у них наверно у всех одинакоый - мейкфайл и командная строка, я честно сказать ненавижу мейкфайлы, но чтоже поделаешь, от них никуда не деться (: правда иногда их любезно автоматом генерируют и можно в гуе все настройки производить. вообще если помчуаться и хорошо все настроить, прикрутить к любимой IDE то дальше просто кайф. я к примеру работаю с сегой через нетбинс или визуал студию, очень удобно
sergi:
Ну я с асмом работаю, но мне так проще и нужнее, т.к. хочу для себя много вещей понять

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

вот сорс http://www.raregame.ru/file/Mr_Nutz_2_source_code_MD.zip
кому нада - смотрите
totin:
сбосибо за серцы, взгляну как деды делали (:
romanich:
Решил не плодить темы, написал в этой (коль уж кодинг для 68k, точнее Си)

Страница по Сеге МД:
http://segasecret.narod.ru

Демка с исходниками (тамже и бинарник)

Это так... в качестве разминки :)

А вообще желается написать небольшую игру. С нуля... Свою... Со своими главперсами...
Поэтому не порт и не хак и даже не ремейк :)

Вопрос Си-программистам 68k:

кто-нибудь объявлял static-переменные в функциях?

типа пример:


--- Код: ---void Function(void)
{
 static char z=5; //При первом вызове z будет 5 (потом ещё на 1 увеличится)
 z++; //z будет увеличиваться при каждом вызове функции
}

--- Конец кода ---

нужно для того, чтобы не плодить кучу глобальных переменных и не присваивать им начальные значения в main()

у меня почему-то пакет(XGCC) делает переменную z read only, тоесть суёт в ROM-секцию

а нужно, чтобы в RAM и делал начальное присвоение.


totin:
все будет нормально, если не будешь инициализировать переменную начальным значением

Добавлено позже:
кстати, в GenesisDev04 походу посвежее компилятор чем в XGCC
romanich:

--- Цитата: totin от 01 Сентябрь 2009, 14:11:50 ---все будет нормально, если не будешь инициализировать переменную начальным значением

--- Конец цитаты ---

в GenesisDev04 (от Stef'а который) тоже нельзя начальное значение присваивать, если нужна переменная?


--- Цитата: totin от 01 Сентябрь 2009, 14:11:50 ---кстати, в GenesisDev04 походу посвежее компилятор чем в XGCC

--- Конец цитаты ---

скачал MDKit с вашей ссылки, в папке bin лежит приложение sh.exe - оно не запускается под WinXP PE SP3  пишет, что "sh.exe - не является приложением Win32" :(
По этой же причине не отрабатывают до конца make-файл...
totin:
поставь cygwin, с ним все должно нормально работать, хотя по началу я и без него умудрялся, но возникали коекакие проблемы, особенно если запускать компилятор из IDE
GenesisDev04 (он же GCC 3.4.6) тоже нельзя инициализировать автоматом все, что в RAM находится. но нулями вполне можно все  инициализировать если в самом начале, перед переходом на main, залить весь RAM нулями, что и сделано в sega.s который лежит в GenesisDev04
такое вот там есть:

* clear Genesis RAM
        lea     0xff0000,%a0
        moveq   #0,%d0
clrram: move.w  #0,(%a0)+
        subq.w  #2,%d0
        bne     clrram
        jmp     start

думаю это вполне нормальный вариант

Добавлено позже:
кстати, твой ДиджиталТрешер - вешь! (:
romanich:

--- Цитата: totin от 02 Сентябрь 2009, 03:17:54 ---GenesisDev04 (он же GCC 3.4.6) тоже нельзя инициализировать автоматом все, что в RAM находится.

--- Конец цитаты ---

Ну тогда не вижу причин менять XGCC (к которому уже успел прилипнуть  :)


--- Цитата: totin от 02 Сентябрь 2009, 03:17:54 ---нулями вполне можно все  инициализировать если в самом начале, перед переходом на main, залить весь RAM нулями, что и сделано в sega.s

--- Конец цитаты ---

так и сделано, только не всегда нулями нужно и не всё...


--- Цитата: totin от 02 Сентябрь 2009, 03:17:54 ---кстати, твой ДиджиталТрешер - вешь! (:

--- Конец цитаты ---

спасибо  :) старался...  :)


Ti_:
кто знает в чем отличия  команды  JSR   $4EBAxxxx   (pc?)   от  bsr.w $6100xxxx (pc)
                                                  и с   jmp ($4EFA)/ bra.w ($6000 также.

есть ещё JSR 4EB8 xxxx   , xxxx - абс. адрес +$8000 до -$8000.  ( $xxxx    $FFFFxxxx)

почему 4eb8  не было использована в игре Rock n' roll Racing , а только 4eb9  xx xx xx xx (jsr  xxxxxxxx) ?

еще интересует что такое  st   sttr  (что-то не нашел у себя)




Smoke:
JSR   $4EB8xxxx -- это обычный джамп, где ХХХХ это 2-х байтовый адрес. Прыгать можно от 0 до $FFFF. Редко используется.
Джампы относительно PC по-моему ничем и не отличаются от bsr.w/bra.w, так что не нужно заморачиваться с ними, размер у них одинаковый.

--- Цитата: Ti_ ---еще интересует что такое  st   sttr  (что-то не нашел у себя)
--- Конец цитаты ---
Это что? Ни разу не встречал, и в мануалах нету
Навигация
Главная страница сообщений
Следующая страница

Перейти к полной версии