| 
 
 
 
	
			
	
	
	
        
        
            | Автор | Сообщение |  
			|  14 апр 2008, 09:45 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | По крайней мере пяти человекам здесь будет интересно посмотреть на хоумбрю демки или игры для 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 байт]
			
			Скачиваний: 530 |  
		 
		|  |  
			|  16 окт 2008, 11:44 | 
					
					       |  
			| 
				Зарегистрирован:
 24 июл 2007, 10:41
 Сообщения: 575
   | Привожу алгоритм чтения кнопок джойпада из игры бомбермен    Хотя какой там алгоритм... Просто читаются все кнопки и для удобства пакуются в 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 %10000000PAD_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
 Сообщения: 575
   | Ал хватит стебаться 
 
 |  
		 
		|  |  
			|  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 cpush 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 | 
					
					 |  
			| 
				
				   | Маппер 0 же. 
 
 |  
		 
		|  |  
			|  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
 
 
 |  
		 
		|  |  
		|  |  
 
	
		| Кто сейчас на конференции |  
		| Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3 |  
 
	|  | Вы не можете начинать темы Вы не можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете добавлять вложения
 
 |  
 |