Heja!
Heja!
Nie wiem czy powroty na scenę są jeszcze w modzie w 2011, w każdym razie postanowiłem powrócić
Pozdrowienia dla wszystkich!
Pozdrowienia dla wszystkich!
- Sebaloz/Lepsi.De
- Posty: 3949
- Rejestracja: 14 wrz 2008, 00:02
Hehe, będzie więcej falstartów w 2011, tak mniej więcej spóźnionych 15 lat. Ale potem już na czasiekisiel pisze:A tak przy okazji a to falstart w 2010 Color Fade Editor .....?
Od niedawna znowu Ebay okazał się niezłym źrodłem zaopatrzenia.comankh pisze:niektorzy to nawet dema ogladaja nie-na-emulatorach
witaj brachu
4 x C64 Breadbox '83, C64C, C16 '84
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
Re: Heja!
Jakoś nie jestem zaskoczony bo spodziewałem się tego powrotu. Można było u Ciebie zauważyć pewien wzrost aktywności związanej z c64 czego naturalnym skutkiem jest powrót na scenę. Super!Digger pisze:Nie wiem czy powroty na scenę są jeszcze w modzie w 2011, w każdym razie postanowiłem powrócić
Pozdrowienia dla wszystkich!
Re: Heja!
Hehe, dobra intuicja Mirek. Ja był się tak nie cieszył – spodziewaj się maili z zalewem pytań i męczenia o wytłumaczenie twoich efektów z BSODzielok pisze:Jakoś nie jestem zaskoczony bo spodziewałem się tego powrotu. Można było u Ciebie zauważyć pewien wzrost aktywności związanej z c64 czego naturalnym skutkiem jest powrót na scenę. Super!
4 x C64 Breadbox '83, C64C, C16 '84
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
Re: Heja!
Z miła chęcią wytłumaczę:)Digger pisze:Hehe, dobra intuicja Mirek. Ja był się tak nie cieszył – spodziewaj się maili z zalewem pytań i męczenia o wytłumaczenie twoich efektów z BSOD
@Carrion: A to mi się podoba, wielkie dzięki! Nowe demo bę∂zie w 100% World Firstem więc logo jak najbardziej w stylu nie widzianym jeszcze na komie.
@Nitro: Bardzo chętnie ale czy to znaczy, że Kick Ass+Makra+.inc już nie wystarcza? To teraz ACME czy CC65 czy jak?
@Nitro: Bardzo chętnie ale czy to znaczy, że Kick Ass+Makra+.inc już nie wystarcza? To teraz ACME czy CC65 czy jak?
4 x C64 Breadbox '83, C64C, C16 '84
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
Wystarcza, i o to chodzi Profilaktycznie zaoferowałem pomoc, aby ewentualnie odradzić assemblery powyżej, starego TASS'a czy kodowanie w czymś natywnym pod VICE'm.@Nitro: Bardzo chętnie ale czy to znaczy, że Kick Ass+Makra+.inc już nie wystarcza? To teraz ACME czy CC65 czy jak?
CC65 też jest potężnym assemblerem, ale nadaje się raczej do kodowania jakichś dużych wieloczęściowych programów czy narzędzi z powodu posiadania zaawansowanego linkera - modularny loader krill'a jest napisany w CC65.
Funkcjonalność KickAss'a jest głównie zorientowana na dema.
Polecam rzucić okiem na temat loadery IEC, trochę się tam o moim warsztacie naprodukowałem.
@Nitro: widziałem źrodła Krill'a do Artefacts – no szacun taki, że koniec. Dzięki za info o IEC – chętnie rzucę okiem.
Kodowanie na C64 odpada – wiadomo – z racji użyteczności/praktyczności przede wszystkim
Kodowanie na C64 odpada – wiadomo – z racji użyteczności/praktyczności przede wszystkim
4 x C64 Breadbox '83, C64C, C16 '84
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
@Nitro: chętnie zobaczę też jak robisz prototypy efektów w C++, ja (z racji profesji) używam AS3.
4 x C64 Breadbox '83, C64C, C16 '84
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
DualSID, 1541 Ultimate, C64SD
http://www.flickr.com/photos/digger-c64
http://play.blog2t.net
Nitro ja w sumie tez bym zobaczył
Ja prototypy robię w processingu (http://processing.org/) ale korzystam z tego głównie przy czysto matematycznych efektach i nie w samej wizualizacji efektu. Poprostu sprawdzam obliczenia wykonane w ASM czy zgadzają się z wynikami wykonanymi w językach wysokiego poziomu. Wizualizacje robiłem tylko przy bumpmappingu i plasmie.
Ja prototypy robię w processingu (http://processing.org/) ale korzystam z tego głównie przy czysto matematycznych efektach i nie w samej wizualizacji efektu. Poprostu sprawdzam obliczenia wykonane w ASM czy zgadzają się z wynikami wykonanymi w językach wysokiego poziomu. Wizualizacje robiłem tylko przy bumpmappingu i plasmie.
Proszę bardzo
Jakby ktoś nie rozumiał(sorry za posądzenia o niewiedze ) to tabelka LUT ma upakowane dwie 8'mio bitowe wartości w jedną 16'tke, potem przy renderingu sobie je wyłuskuje AND'em(& 0xff) i przesunięciem(>> 8 ).
Korzystam z biblioteki do SDL'a o nazwie QuickCG, w niej jest wszystko co potrzebne do mazania po ekranie - linie, punkty, bufory, wypisywanie tekstu oraz zmiennych itd.
A dlaczego wizualizacji nie kodujesz? Przecież przy każdym bitmapowym efekcie to formalność. Oczywiście zgadzam się, że nie ma sensu odtwarzać EOR-fillera czy tam jakichś trików sprzętowych w symulacji. Chociaż w tym pierwszym przypadku po prostu możemy beztrosko maznąć linie, potem flood fill czy inny nieoptymalny wynalazek i voila
Te długie write'y do bufora aby stawiać piksele 4x4 to partyzantka, aktualnie mam dwa bufory i funkcje kopiującą z jednego na drugi w podanej skali. Jak widać nie jest to żadna rakietowa filozofia, prosty do bólu, brudny kod, każdy może się tego nauczyć w dzień.#include "stdafx.h"
using namespace::std;
map<int, bool> keypressed;
bool keyPressed(int key)
{
if(keypressed.find(key) == keypressed.end()) keypressed[key] = false;
if(inkeys[key])
{
if(keypressed[key] == false)
{
keypressed[key] = true;
return true;
}
}
else keypressed[key] = false;
return false;
}
unsigned short *inversion_lut = new unsigned short [57600];
#define FALSE 0
void buildinversionlut(unsigned short *lut, int k, int xc, int yc, int width, int height);
#define TICK_INTERVAL 30
static Uint32 next_time;
Uint32 time_left(void)
{
Uint32 now = SDL_GetTicks();
if(next_time <= now)
return 0;
else
return next_time - now;
}
Uint32 texture[32][32];
Uint32 buffer[320][200];
int main(int, char *[])
{
screen(320,200,0,"Distorter Playground");
cout.flags(ios::hex);
//Build inversion look-up table
buildinversionlut(inversion_lut, 350, 22, 24, 64, 48 );
loadBMP("texture.bmp",texture[0],32,32);
float shift = 0;
next_time = SDL_GetTicks() + TICK_INTERVAL;
while(!done())
{
for(int x = 0; x < 64; x++)
for(int y = 0; y < 48; y++)
{
int tex_x = inversion_lut[(y*64+x)] & 0xff;
int tex_y = inversion_lut[(y*64+x)] >> 8;
tex_x %= 32;
tex_y %= 32;
buffer[x*4][y*4] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+1][y*4] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+2][y*4] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+3][y*4] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4][y*4+1] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+1][y*4+1] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+2][y*4+1] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+3][y*4+1] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4][y*4+2] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+1][y*4+2] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+2][y*4+2] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+3][y*4+2] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4][y*4+3] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+1][y*4+3] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+2][y*4+3] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
buffer[x*4+3][y*4+3] = texture[(int)(tex_x+shift)%32][(int)(tex_y+shift)%32];
}
drawBuffer(buffer[0]);
redraw();
SDL_Delay(time_left());
next_time += TICK_INTERVAL;
shift+=0.5;
const int texOne = 0x2400;
if(keyPressed(SDLK_g))
{
char speedCodeCache[0x10000];
//Itp, itd
}
}
return 0;
}
Jakby ktoś nie rozumiał(sorry za posądzenia o niewiedze ) to tabelka LUT ma upakowane dwie 8'mio bitowe wartości w jedną 16'tke, potem przy renderingu sobie je wyłuskuje AND'em(& 0xff) i przesunięciem(>> 8 ).
Korzystam z biblioteki do SDL'a o nazwie QuickCG, w niej jest wszystko co potrzebne do mazania po ekranie - linie, punkty, bufory, wypisywanie tekstu oraz zmiennych itd.
Heh, napisałem wektory w tym i to był mój pierwszy prototyp efektu. Potem zacząłem przygodę z grafiką w C++ i nie czuję potrzeby wracać. Znasz C/C++ więc wydaje mi się trochę dziwne używanie processingu, ale każdy ma swoje gusta Mi się wspaniały debugger Visual Studio przydał mocno przy jednym parcie, processing chyba pod tym względem kuleje, dobrze pamiętam?w processingu
A dlaczego wizualizacji nie kodujesz? Przecież przy każdym bitmapowym efekcie to formalność. Oczywiście zgadzam się, że nie ma sensu odtwarzać EOR-fillera czy tam jakichś trików sprzętowych w symulacji. Chociaż w tym pierwszym przypadku po prostu możemy beztrosko maznąć linie, potem flood fill czy inny nieoptymalny wynalazek i voila
pozwolę sobie zabrać głoś w tym temacie
jakiś czas temu bawiłem się SDLem (tym co nitro) żeby sprawdzić czy kumam podstawowe efekty z dem. musze powiedzieć że do prototypownia faktycznie się to świetnie nadaje. api ma łatwe, działa na każdym systemie, a że nadaję się do więcej niż tylko do testowania dodam, że narzędzie graficzne grafx2 jest w tym napisane.
jakiś czas temu bawiłem się SDLem (tym co nitro) żeby sprawdzić czy kumam podstawowe efekty z dem. musze powiedzieć że do prototypownia faktycznie się to świetnie nadaje. api ma łatwe, działa na każdym systemie, a że nadaję się do więcej niż tylko do testowania dodam, że narzędzie graficzne grafx2 jest w tym napisane.
c64portal.pl, retronavigator.com
Processing używam dlatego, że po prostu wszystko stworzę szybciej i łatwiej niż w C++. Debugger przy tak prostych rzeczach (od strony PC) nie jest mi zbyt potrzebny a ważna jest dla mnie szybkość pisania kodu i tu processing IMO wygrywa. Aktualnie zresztą do tworzenia czysto PC'owych rzeczy używam LUA a do wspomagania komodorka używam Processingu. Jeszcze dwa lata temu byłem wielkim fanem C++ ale mi przeszło (tzn. czasem użyje)Nitro pisze: Heh, napisałem wektory w tym i to był mój pierwszy prototyp efektu. Potem zacząłem przygodę z grafiką w C++ i nie czuję potrzeby wracać. Znasz C/C++ więc wydaje mi się trochę dziwne używanie processingu, ale każdy ma swoje gusta Mi się wspaniały debugger Visual Studio przydał mocno przy jednym parcie, processing chyba pod tym względem kuleje, dobrze pamiętam?
Co do samego SDL to oczywiście tez z niego korzystałem (zresztą nawet na kilka platform: win, linux, win mobile, gp2x, psp) ale jednak bardziej do specyfiki c64 mi podpasował Processing.
O właśnie eor filera napisałem w C++:) Serio... tzn nie działał w 100% jak na c64 (czyli nie pracowałem na 8 hiresowych punktach naraz a na pojedynczych) ale zasada była mniej więcej ta sama. Wizualizacji nie robię głównie dlatego, że właśnie musiałbym bym robić jakieś zamienniki w stylu floodfill i nie mają one zbyt dużo wspólnego z c64 a jak efekt wyjdzie to już mam w głowie:) Owszem czasem pozwoliło by to zastosować jakieś inne parametry lub zaoszczędzić czas i stwierdzić, że efekt jest do dupy ze względu na założenia (czego ostatnio doświadczyłem) ale jakoś tak mi wygodniej.Nitro pisze: A dlaczego wizualizacji nie kodujesz? Przecież przy każdym bitmapowym efekcie to formalność. Oczywiście zgadzam się, że nie ma sensu odtwarzać EOR-fillera czy tam jakichś trików sprzętowych w symulacji. Chociaż w tym pierwszym przypadku po prostu możemy beztrosko maznąć linie, potem flood fill czy inny nieoptymalny wynalazek i voila
Ogólnie uważam, że wszystko należy stosować zgodnie z zapotrzebowaniem i uzyskaniem maksymalnej wydajności pracy i do tego dobierać odpowiednie narzędzia a nie robić cos aby to tylko zrobić.
ps. do nowego dema na kilka efektów tylko jeden mam prototypowany (nawet z wizualizacja). Jednak efekt stworzyłem kilka lat temu i tylko dostosowałem go do specyfiki c64. Kolejne trzy nie będą na pewno prototypowane bo korzystają ze specyfiki sprzętowej c64 a co będzie dalej to nie wiem:)
Brawo, 120% normy Teraz tylko dzień na naukę ASM'a 6502, drugi na naukę rejestrów sprzętowych C64 i witamy w klubie koderów.pozwolę sobie zabrać głoś w tym temacie
jakiś czas temu bawiłem się SDLem (tym co nitro) żeby sprawdzić czy kumam podstawowe efekty z dem. musze powiedzieć że do prototypownia faktycznie się to świetnie nadaje. api ma łatwe, działa na każdym systemie, a że nadaję się do więcej niż tylko do testowania dodam, że narzędzie graficzne grafx2 jest w tym napisane.
Spoko, ja mając w pamięci doświadczenia z wektorami w processing myślę, że C++ plus SDL plus QuickCG jest mniej więcej równie wygodne.rocessing używam dlatego, że po prostu wszystko stworzę szybciej i łatwiej niż w C++. Debugger przy tak prostych rzeczach (od strony PC) nie jest mi zbyt potrzebny a ważna jest dla mnie szybkość pisania kodu i tu processing IMO wygrywa.
Skryptowy język, a fujLUA
W 100% się zgadzam i stosuję tę filozofię.Ogólnie uważam, że wszystko należy stosować zgodnie z zapotrzebowaniem i uzyskaniem maksymalnej wydajności pracy i do tego dobierać odpowiednie narzędzia a nie robić cos aby to tylko zrobić.