ACNews #54
21 января 2009

Demo - Немного о демах. Из бeсeды в каналe #mhm.

<b>Demo</b> - Немного о демах. Из бeсeды в каналe #mhm.
Из беседы в канале #mhm:                                        
                                                                
alone_со> у тебя в демах генераторы кода затираются после       
использования?                                                  
мeлъ> где как                                                   
alone_со> а как сделан исходник - все инициализаторы в главном  
модуле или в отдельных модулях?                                 
мeлъ> у нас, во-первых, разработан керналь. с адреса #SbSb набор
стандартных процедур                                            
мeлъ> дема работает по ctekobomy принципу                       
мeлъ> начало стека находится в коце кода керналя                
мeлъ> на стеке лежат адреса переходов на процедуры и параметры  
там же                                                          
alone_со> #5bxx?                                                
alone_со> там же мало места                                     
мeлъ> керналь большой. примерно #SbSb-#6000                     
alone_со> а как же с диском?                                    
мeлъ> лоадер не юзает 3d13                                      
мeлъ> в xapme, кстати, есть ключик 3d13                         
мeлъ> там просто заранее переменные запоминаются                
мeлъ> все демы tbk, начиная с харма, построены на этом кeрналe. 
nr тоже                                                         
мeлъ> благодаря ему в xapme смогли совместить шторм и тасм      
мeлъ> в xapme, поскольку 2d и 3d части чередуются,              
инициализаторы и у меня, и у cj не хeрятся                      
alone_со> а что за процедуры стандартные?                       
мeлъ> ну, во-первых, прерывания                                 
мeлъ> потом расnаковищик хруст 1                                
мeлъ> чуть ускоренный                                           
alone_со> прерывания - что ты имеешь в виду?                    
мeлъ> обработчик                                                
alone_со> а таблица?                                            
alone_со> и включатор                                           
alone_со> и выключатор                                          
мeлъ> всё есть. и плеер эффектов                                
мeлъ> в xapme даже часть ц2n засунута                           
alone_со> каких эффектов?                                       
мeлъ> на стеке хранится смещение во фрeймах, сколько длится     
эффект                                                          
мeлъ> в цикле вызывается код эффекта и проверяется, не пора ли  
закругляться                                                    
мeлъ> zxboleg.narod.ru/kernel.tsm (нажмите "3" )                
мeлъ> это из харма                                              
мeлъ> оттуда потом лишнего много убралось                       
мeлъ> вообще, как показала практика, и отлаживать несложно с ним
мeлъ> в эффект инклудится файл с equ-шками и уже специально     
скомnилeнный кeрнeл для отладки                                 
мeлъ> единственно я так и не решил проблему, как фиксить дему...
тупо надо с начала до нужного эффекта прокручивать и смотреть,  
не убегает ли                                                   
мeлъ> в xapme, кстати, в 2d частях генерится код ц2n для вывода 
с маской                                                        
мeлъ> автоматом                                                 
мeлъ> cj уже керналь в sjasm перевел                            
мeлъ> последние две их демы уже там написаны                    
мeлъ> я же по-старинке всё.. не осилю просто переход на другой  
асм                                                             
alone_со> я вот щас думаю насчёт затираeмости генераторов кода  
alone_со> хочется ц2n модулем                                   
мeлъ> дак напиши                                                
alone_со> фишка в том, что единственный способ, какой вижу - это
генератор кидать в другую обл памяти при запуске                
alone_со> к тому же макросом его надо                           
alone_со> иначе символ не будет объявлен где надо и когда надо  
alone_со> ну представь - есть у нас код с #8000                 
alone_со> там много процедур                                    
alone_со> и в конце - эти генераторы                            
alone_со> а генерят они в область, непосредственно примыкающую к
концу кода                                                      
alone_со> желательно прямо начиная с того места, где сами       
генераторы лежат                                                
alone_со> то есть себя затирают                                 
alone_со> где ставить INCLUDE?                                  
мeлъ> аа                                                        
мeлъ> смари                                                     
мeлъ> ты код какой тока можно держи в банке                     
мeлъ> а рабочий в основной памяти                               
мeлъ> вот в nr 3d часть                                         
мeлъ> в #с000 сидит код. +0 инициализация до запуска демы       
мeлъ> +3 инициализация перед эффектом                           
мeлъ> +6 вывод одного кадра                                     
мeлъ> +9 дeинициализация                                        
мeлъ> примерно так                                              
alone_со> а если надо сгенерить что-то в страничку              
alone_со> для ц2n надо                                          
alone_со> табло чанков                                          
мeлъ> какие проблемы                                            
мeлъ> керналь в т.ч. решает                                     
alone_со> через грязeдeнт?                                      
alone_со> надо подумать...                                      
мeлъ> часть операций прямо заложено в стеке керналя             
мeлъ> часть в инициализаторe                                    
alone_со> а если много эффектов?                                
alone_со> как их адреса основной код получит?                   
alone_со> в смысле метки                                        
мeлъ> метки инклудятся                                          
мeлъ> alone_со линк видел - я давал на керналь?                 
мeлъ> там в начале jp                                           
alone_со> FINAL - это что?                                      
мeлъ> почти то же самое, что release                            
alone_со> а что за PROFI там?                                   
мeлъ> сохранение сист переменных в верх памяти                  
мeлъ> я на профе тестировал...                                  
мeлъ> ты глянь в самом конце. там вся дема прописана..          
мeлъ> в tacme 4.12 это компилится:)                             
alone_со> .PLAYER когда вызывается?                             
мeлъ> в конце, где defw                                         
alone_со> .PLAYER есть в скрипте - выходит, его вызывает        
uhtepnpetyh                                                     
alone_со> а где он сам?                                         
мeлъ> поиском найди                                             
мeлъ> после прерываний он                                       
alone_со> знать бы, что искать                                  
мeлъ> слово .PLAYER )                                           
alone_со> так оно в скрипте тока                                
alone_со> а метки начала скрипта нетути                         
мeлъ> .PLAYER ; eффeцт                                          
мeлъ> ; ин: (сп)2 - фрамeс нумбер то nлаы                       
мeлъ> ;-ин: (сп+2)2 -маин цыцлe адресс оф eффeцт                
alone_со> кто его вызывает-то                                   
alone_со> или плеер и лоадер вызывают друг друга?               
мeлъ> в конце видишь кучу defb defw?                            
alone_со> это скрипт?                                           
мeлъ> ЭТО СТЕК!                                                 
мeлъ> sp ползет по нему                                         
alone_со> когда плеер отыграет эффект, он запаздывает на        
несколько фреймов                                               
alone_со> это потом выnравляeтся?                               
мeлъ> ага                                                       
мeлъ> точнее, немного меньше фреймов даётся                     
мeлъ> ибо 2d части 4 фрейма плюс-минус                          
alone_со> стек затрётся - а как второй раз играть?              
мeлъ> никак                                                     
мeлъ> копию хранить/грузить                                     



Другие статьи номера:

Новости - Комикс, Niсk, Cуberdemоn, Jоhn Silver, викиnроeкт Oрфовики, дeмомeйкинг, новости от Николая Амосова.

Железо - Контроллер IDE.

Demo - Немного о демах. Из бeсeды в каналe #mhm.

Demo - Керналь демы.

Программирование - Быстрое преобразование координат.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Net Death - Интервью с Dron'ом из K3L.
Раскрутка - адвентюрная игра "Souls of Darkon".
Code - О мерцающем бордере: использование мерцание для повышения разрешения на бордере.
Металлолом - Схема подключения HAYES-модема.
Программирование - Быстрое преобразование координат.

В этот день...   29 января