Автор |
Сообщение |
14 апр 2008, 09:45 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
По крайней мере пяти человекам здесь будет интересно посмотреть на хоумбрю демки или игры для NES. А это уже пати! Так что творите, а ваше творение само найдет почитателей.
|
|
14 апр 2008, 14:26 |
|
Зарегистрирован: 06 апр 2008, 13:46 Сообщения: 119
|
CaH4e3 писал(а): GrandThiefTendo от Brian Provinciano. Недавно пронеслась весть, что он опять взялся за работу. Где же можно скачать это чудо, поглядеть что за оно? Гугл не знает что такое GrandThiefTendo вообще.
|
|
14 апр 2008, 14:47 |
|
Зарегистрирован: 22 июл 2007, 02:10 Сообщения: 313 Откуда: ниоткуда
|
Всё-таки вспомнили про GTE: http://grandtheftendo.com/Там щас ничего нет.
_________________ Мысль - это интеллектуальный эксцесс данного индивидуума.
|
|
14 апр 2008, 15:58 |
|
Зарегистрирован: 25 июл 2007, 05:09 Сообщения: 211 Откуда: 39
|
Вот тут качественные скрины из игры GTANES (эксклюзив) - http://tim007.com/Stati/GTANES/Grand_Theftendo.htmА Дюну на NES чел делать задумал... Он вообще загнул, ведь, ресурсов у NES на подобную стратегию не хватит. - http://dune2nes.narod.ru
_________________ http://romhacking.net.ru - всё про ромхакинг
|
|
14 апр 2008, 19:04 |
|
Зарегистрирован: 06 апр 2008, 13:46 Сообщения: 119
|
Пишут что эта GTANES писалась на NESHLA — что-то типа ассемблера с синтаксисом высокоуровневого языка. Идея интересная, мне понравилось http://neshla.sourceforge.net/Код:
// array elements defined with arithmatic operations byte oamaddrs[] = {$00*4, $08*4, $10*4, $18*4}
// code with an arithmatic sizeof keyword clc adc #sizeof(SPR_OBJ)
// use of the lo and hi keywords on an immediate integer passed as a macro param inline jsrind_imd(pproc) { lda #lo(pproc) ora #hi(pproc) if(not zero) { assign_16i(_jsrind_temp, pproc) jsrind_f() } }
// use of the lo and hi keywords on a pointer variable passed as a macro param inline jsrind(pproc) { lda pproc + 0 ora pproc + 1 if(not zero) { assign_16_16(_jsrind_temp, pproc) jsrind_f() } }
|
|
12 сен 2008, 17:54 |
|
Зарегистрирован: 01 авг 2007, 10:17 Сообщения: 68
|
Наконец руки дошли и до асма)))юСделал шарик, мечущийся по горизонтальной линии. Море радости)))
|
|
12 сен 2008, 21:17 |
|
Зарегистрирован: 01 авг 2007, 10:17 Сообщения: 68
|
Вах! теперь он еще и с джоя управляется ) А теперь вопрос к людям знающим: стоит ли на управление убивать столько строк, сколько убил я?
Вложения:
Комментарий к файлу: src
The Ball.rar [975 байт]
Скачиваний: 476
|
|
16 окт 2008, 11:44 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Привожу алгоритм чтения кнопок джойпада из игры бомбермен Хотя какой там алгоритм... Просто читаются все кнопки и для удобства пакуются в 1 байт, чтобы было проще проверять операцией AND. Переменные. Код: PAD1_TEST EQU $10 ; Используются для повторной проверки джойстика PAD2_TEST EQU $11 JOYPAD1 EQU $12 ; Значения кнопок для Joypad 1 (см. маску PAD_*) JOYPAD2 EQU $13 ; Значения кнопок для Joypad 2 (см. маску PAD_*)
JOYPAD_PORT1 EQU $4016 ; Порты контроллеров JOYPAD_PORT2 EQU $4017
Маска кнопок для проверки Код: PAD_A EQU %10000000 PAD_B EQU %01000000 PAD_SELECT EQU %00100000 PAD_START EQU %00010000 PAD_UP EQU %00001000 PAD_DOWN EQU %00000100 PAD_LEFT EQU %00000010 PAD_RIGHT EQU %00000001
Сам код: Код: ; Прочитать кнопки контроллеров. ; Причем читаются два раза, и если два чтения не совпадают, то оно не засчитывается. ; Поместить результат в переменные JOYPAD1 и JOYPAD2 как битовую маску. PAD_READ JSR PAD_STROBE LDA JOYPAD1 STA PAD1_TEST LDA JOYPAD2 STA PAD2_TEST JSR PAD_STROBE LDA JOYPAD1 CMP PAD1_TEST BNE PAD_DRE LDA JOYPAD2 CMP PAD2_TEST BNE PAD_DRE RTS PAD_DRE ; Ошибка чтения (или ложное срабатывание, точно не понятно зачем читать по два раза) LDA #0 STA JOYPAD1 STA JOYPAD2 RTS
; Вспомогательная процедура для PAD_READ. ; Делаем 8 последовательных чтений, получаем 8 байт о состоянии кнопок. ; Чтобы было проще проверять пакуем эту информацию в 1 байт. PAD_STROBE LDA #1 STA JOYPAD_PORT1 LDA #0 STA JOYPAD_PORT1 TAX LDY #8 JOY1 TXA ASL TAX LDA JOYPAD_PORT1 JSR IS_PRESSED BNE JOY1 STX JOYPAD1 LDX #0 LDY #8 JOY2 TXA ASL TAX LDA JOYPAD_PORT2 JSR IS_PRESSED BNE JOY2 STX JOYPAD2 RTS IS_PRESSED AND #3 BEQ NOT_PRESSED INX NOT_PRESSED DEY RTS
------------------------------------------------------------------- Ну и собственно как всё это применять. - Вызываем PAD_READ в обработчике NMI для обновления состояния кнопок. - Проверка на нажатие кнопки делается парой команд, в любом месте программы: Код: ; Проверка нажатий на кнопки. LDA JOYPAD1 AND #PAD_SELECT BNE SELECT_PRESSED ; SELECT LDA JOYPAD1 AND #PAD_UP BNE UP_PRESSED ; UP
Для удобства можно создать отдельный ASM-модуль со всеми низкоуровневыми процедурами, типа чтения кнопок, обновления спрайтов и пр. Большинство создателей игр для NES так и делали. В начале рома находятся все сервисные процедуры, а дальше идет чисто игровая логика. Обьем программы получился даже больше Но зато экономия памяти целых 4 байта
|
|
20 окт 2008, 19:15 |
|
Зарегистрирован: 20 окт 2008, 18:41 Сообщения: 1 Откуда: Украины
|
Дайте мне что то для G-Basic-а, обучалку... Я незнаю как с етим ромом работать))) Набираю цифры запрограммирую их, а дальше что? А что обозначает ета функция CALL ? - Допустим я набераю в строку "CALL 43269 OR 520" - и у меня получается парад цветов, нажимая на ENTER.
|
|
21 окт 2008, 10:45 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 570
|
Ал хватит стебаться
|
|
13 фев 2009, 04:05 |
|
Зарегистрирован: 18 июн 2008, 10:19 Сообщения: 162
|
VEG писал(а): В общем отложим идею с Си для NES на потом в черный ящик. Очень сомнительно, что нормальные NES игры действительно писали на голом ассемблере. Мне известен проект под названием Sphinx C--Лично сам его щупал и писал на нём программы мультимедийного характера (с открыванием просторов 32-битности). Исключительно под ДОС. Компилятор позволяет писать на Си программу, вплоть до 1 байта (выход "retn")!!! Очень гибкое распределение данных, стека, кода. Ничего лишнего!!! При этом сохраняется "чисто-сишная шаблонность" - вызов функций, работа с переменными итп. Очень удобно. Позволяет действительно создавать крохотные программы! При этом можно свободно мешать Cи и Ассемблер типа такого: Где AX - регистр i80x86 процессроа, jmp - безусловный переход. В общем мне понравилось Функции: Код: void Func(char a, short b, long c); На асме не очень удобно типа: Код: push DWORD PTR c push WORD PTR b push WORD PTR a call Func
А макрос дополнительно накручивать чё-т не хочется. С регистровыми параметрами в функции на асме -ещё более уродилвее. Думается, что у NES-девелоперов были подобные компиляторы P.S. Масштабный проект не пишется на ассемблере в силу трудоёмкости проекта. Покажите хоть одну нормальную игру типа BT&DD или Contra, сделанную одним человеком. Максимум - напишут движок погоняют пару спрайтов и всё =)
|
|
13 фев 2009, 05:34 |
|
Зарегистрирован: 22 июл 2007, 11:16 Сообщения: 787
|
Масштабность, она, конечно, имеется, но не там, где окно кода - 32 килобайта. И почти все игры для денди писались одним-двумя программистами, максимум тремя. И если покопаться в коде некоторых игр, то видно сразу, что некотоыре кунштюки компилятору просто не под силу - использование одних и тех же кусков кода для разных частей программы - укороченные прыжки на RET опкоды соседних функций. Нет, там все писалось исключительно на ассемблере, максимум с макро-функциями. Опять же, тайминги и порой острая нехватка памяти заставляют извращаться с опкодами, выдавливать тайминги в критичных местах и экономить байтики. Этого даже современные компиляторы полноценно не умеют. ---- upd ---- Чтобы не быть голословным. http://forums.lostlevels.org/viewtopic.php?t=1960Это исходные коды игры 1991го года от Eurocom, "James Bond Jr". Несмотря на то, что это в общем-то уже 1991ый год, как видно, весь код целиком написан на асме, а для сборки всего этого месива используются самописные утилиты и конвертеры. ---- upd ---- Еще один заход. http://average.truechiptilldeath.com/fi ... rogenv.rarДиректория разработки нелицензионной игры FreeFall. Там есть почти все.
_________________ 1. Модератор всегда прав. 2. Если модератор не прав, см. п. 1.
|
|
17 сен 2011, 20:01 |
|
|
В игровом картридже используются два ROM'а: S-ROM и V-ROM. Допустим, у меня есть образы ПЗУ 32 и 8 кб, без всяких мапперов. Как эмулировать файлы образов? Если их какой-то программой нужно собрать в .nes файл, то какой?
|
|
19 сен 2011, 07:15 |
|
Зарегистрирован: 24 июл 2007, 06:54 Сообщения: 492 Откуда: Embedded
|
Маппер 0 же.
_________________ Tried so hard and got so far, but in the end, it doesn't even matter...
|
|
19 сен 2011, 11:10 |
|
Зарегистрирован: 17 сен 2011, 20:05 Сообщения: 1 Откуда: Russia, Ural56
|
Спасибо за подсказку, HardWareMan. Я думал, что наличие маппера определяет наличие устройства переключения банков. Вон оно как бывает) Предположительно, я имею картридж с мапером #0. Сливаю образ с микросхемы DS1 - 27C256, называю файл образа S-ROM.bin, сливаю образ с DS2 - 27C64, называю файл V-ROM.bin. С помощью какой программы я могу эмулировать и отлаживать эти образы?
_________________ Люди учат цифру.. Цифра учит людей..
|
|
19 сен 2011, 13:35 |
|
Зарегистрирован: 21 авг 2007, 14:55 Сообщения: 301
|
Насколько мне известно, проект сейчас называется Retro City Rampage ( http://www.retrocityrampage.com). Релиз намечен на первый квартал 2012 года. (Но это так, для справки)
_________________ Копи/паст в подписи.
|
|
21 сен 2011, 14:00 |
|
Зарегистрирован: 23 июл 2007, 19:37 Сообщения: 401 Откуда: Мытищи
|
Эльф добыл исходники Crystal Mines http://nesdev.parodius.com/bbs/viewtopic.php?t=8057у него много исходников и для NES, и для других систем: http://gilgalad.arc-nova.org/
_________________ Nestopia 1.37/1.40 Fixed
|
|
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|