понедельник, 26 августа 2013 г.

Sort the year !

I didn't update that blog in last year, but not because of nothing to write, just because blogs as they are is kind of time wasting: because to write normal posts you loose time which you can spend on all other necessary stuff. Still, just today have some motivation to do so, and want to sort what happens in this year from my side in terms of amiga related stuff.

The most important part i think is that we got dopus5 sources and place them on SF. In the last 5 or 8 years, ppls from all the camps trying to get sources of dopus5 from GP-Soft,but sums always was big enough to do so (20k$, then 15$ or something). Add on top of that, that GuruMeditation some years ago (i do not remember now when, but 5-7 years or more for sure) got a "rights" to make a port of dopus5 to os4, and they all the time and everywhere claim that "port is done on 99%" (while it can't be true, i will explain why later) and was (imho) pure usual marketing. Year by year it was dropped, time for rights gone, and ppls by some reasons start to think (hey Toaks), that if guru-meditation's programmer can't do something, then no one can do it (holy-company-fan).

So, 16 monts ago Olaf Schoenweiss somehow was in more luck and have a good contact with Greg from GP-Soft, and he agree to open a sources just for 5k$. Olaf initiate a bounty on, and after we annoy everyone and everywhere we collect necessary  sum for about a half of year (well, its not 100% true, as we collect just 4200$, but Greg seeing how hard we trying , just give the sources for us for such a 4200$, minus paypal fees, so in end just 3800-3900$).  And right at end of 2012 and beginning of 2013 we put them on sourceforge. So, 8 months ago we start to working on make a proper port to all amiga and amiga like oses (os3, os4, mos and aros).

For first, and of course, when we only got sources i start to think how to make dopus5 even in 68k form works on os4. There was a hardcore bug which prevent dopus5 to works on os4 (listers freezes and don't works at all). Ppls from another camps all the time point by fingers that its because os4 do something very bad, and dopus5 can't works on it, but in end, it was just a really minor thing called "dopus5 use some hardcore value for PF_ASYNC, while should't". If you in interest in technical details, then there is relevant discussion from our dev forum. Having say that, its not me who found the bug, i only found places where crashes start to happens, and it was Georg Steger (low-level aros developer) who help me to fix that.

Now, after we have working 68k version, and os4 users can use it the same as os3 and morphos users, we still was in "a lot to do to make a port", and then we go route "port firstly library to 68k-gcc, then program to 68k-gcc, and then modules if that necessary, and then step by step to native". 

First steps do Xenic, and he rewrite whole library from SASC to GCC, fix SDI issues, rewrite assembler parts (there wasn't few, only small chunks) and all the other weird things. But it was only objects which don't links, and of course didn't works , as shared library on sasc handles automatically, while on gcc you need to do everything manually. But it was really beginning and motivation to continue. Then i just realise that Jens and Thore use already cross-platform gcc-librarys in their projects such as CodeSets , YAM and co. So, i just grab the necessary code from, adapt a bit, then bugs and problems there and there, and we have it links , but of course, heavy crashes.  After a while, it was everything and everywhere, and Xenic with Itix fix hardcore bugs step by step. 

There was a lot of problems with library itself. I just can't remember them all right now, but it was and problems with usage of internal and external functions of library in the library itself, and patching (holy patching ! i loose about week to make it works on os4, thanks to Itix it was done in end), and different bases, and necessary for os4 changes to obtain interfaces where is need it , and making some bases global instead of local, and rewriting some functions because they was just buggy initially, and was done in meaning to be sasc only based, and gcc specific moments, and everything was here. Those obsolete and ancient attributes like __alignment, __chip, some direct usage of 68k a5/a6 registers, nigthmares with fd2pragma/fdtrans/idtools generation of all includes/inlines, fixing of varargs68k functions and get ridding of them at all, replacing all the crap on more cross-platform, testing, testing, testing and testing, cleanup, bug fixing and again testing. Necessary hooks replacement, getting to be ppc abi complain, again cleanup and again testing. Emulation gates to make 68k and ppc library/binary mix working.  And that all of course not all, there was more.

After a while (2 months i think) we got working library for os3, os4 and morphos.. Then, it come to some surprise that main binary itself was more or less easy to port. I do so for few hours, but of course, only objects compiles , but nothing links. We loose some time on it as well. Then it compiles, but of course crashes. Everything as with library going on here (but much, much less. in compare library was in 2-3 times harder than main binary). Then of course bugs. Bugs bugs and bugs in all the versions and different. For example, os3-gcc build crashes in some clock functions, while os4/mos ones are not. Xenic found the roots and fix it , as it was because of ancient gcc2.x which we use to build 68k-gcc version and the way how gcc handle some part of code (there was a _non_ harmless warning for). Thousand of warnings also was fixed (and some still to be fixed even in our current version). Problems with 68k-gcc inlines when a5/a6 registers used as arguments, and gcc-inlines can't deal with it normally, so in end of all we (we mean Xenic) even make some assembler code wrapper for).  

In end of all, somewhere in end of summer, we have working main binary for os3/os4/mos and libary for the same os3/os4/mos. The weird things through was that some of 68k modules just didn't not works on native versions, and didn't works differently on os4/mos (like on one os crashes, on another just didn't works). Then, it was time to port all modules to native.

Those ones i port for about a week (through not all of them, but almost). But then about a month take fixing of them. For example diskinfo.module with those obsolete mmath/mmathtrans related functions which was replaced with help of Thomas and Salas00 on necessary ones. Filetype.module was initially done in weird way, and we catch there few original bugs, which was fixed by Xenic in end. ftp.module (the harder module from all of them), i only make compiles and "half-works" on os4, but all the necessary changed , cleanup and adaptation was done by BSZili, who joint to our project about few weeks ago to make an AROS-i386 port, but in end he jump as all we on everything, and start to help fixing all bugs on all platforms as well. 

Basically, BSZili was some fresh air , because 2 month there wasn't any activity on the project , because Itix was busy with real job, Xenic was kind of burn out and i spend my time on another tasty things. But once he join, we start to take a close looks at everything again. ftp.module almost done now, whole program and library get some good clean up, aros-i386 version also almost on pair with all the others, and we now really on the finish line, there just very-few bugs to fix before first opensource release. It also will have few improvements: like native icons support, no more ugly gadget in main listers and native-mouse-wheel support for os4, new art-work from Mason (icons,toolbars and stuff), all documentation in PDF, user-friendly archive (no need to boring with anything, just unpack and run) and so on. Of course plan to make release as fast as possible, but few remain bugs still to be fixed.

Of course, anyone who _very_ want to have latest version, always can grab it from SF's svn and build it for yourself. Everything clean and always builds, not as usual mess where nothing understandable and never builds.

Well, enough of dopus5. What else i done for the last year ? I write few os4-coding-related article, and put them on os4wiki and One just about how to make a normal serial-cable and how to do all the debugging (some very deep describe of everything, so even dumbs can do it now), and another ones is more programming related about ppc-glue stubs for 68k libraries. Nothing very hardcore too, but can be intersting for some. There they are:

There is also was some usual ports from me, such as:

Hugi's SE3 and SE4:

Some improvements in Zaphod (native mouse wheel support for os4):

Port of Gigalomania game:

And some other stuff which wasn't on os4depot. But in general, all the year is taken up by Dopus5. We want to make it as good as possible, so no one will say "they grab the sources, and make it worse, not better!". At least i for myself dislike all those half-finished, unlogical and buggy apps which come up from time to time on all our oses.

Also as i am os4-betatester now, i do bunch of tests everyday, so i have a lot to do.

What i hope to do in next year ? Well, we for sure will release dopus5, as well as i want to finish port of VPDF from morphos to aos4 , and report recent version of muiowb. At least, those apps are important enough for everyday's use. I also still working on some "big-fat" article for "hacking way" book, so hope it will be also published pretty soon. If time will permit , of course, bunch of fresh ports from os3, mos, aros, unix and win words , so some of you will cry "wtf, again ports ! where native apps?" :)

суббота, 7 апреля 2012 г.

HUGI 37, for AmigaOS4, AROS and MorphOS

Few post early, i talk about some russian diskmag (oldgames7), which are based on the panorama engine done by Crhis Dragan, which lately was ported to the SDL/Freetype/etc by Ransom (Ransom was a member of some old and welknown in the past in amiga demoscene group IRIS (they do Eurochart and tons of quality demos)). He and Crhis kindly give me the sources of all their stuff, and so i port it to os4/mos/aros, what mean that any diskmag based on the Panorama will works on any of our amiga oses.  And "oldgames7" was kind of first cross-platform test. 

So, few days ago, HUGI 37 was released. HUGI is very old and wellknown diskmags which till the issue 34 was avail for Windows only, but since i have good contacts with authors (currently its Magic who works on hugi mostly, together with Adok) i annoy them to release amiga versions as well.  Issue 34/35/36 are avail for amigaos4 only, but now AROS time is coming as well ! (for morphos there was also some port back in past).

To be honest, you can use with the current .exe any version of hugi starting from the very old issues when panorama start to be use (i think its around 15-16 or co). Through till issue 34 there wasn't a lot of amiga articles. But when Magic take a rule on diskmag, its start to be filled with more scene related content and with many (in compare with previous issues) amiga related articles.  

Issue37 is intersting to read for some oldschool diskmag fans, but if you want jump to amiga articles only, then you can check those ones:

from HeadLines

Revision 2012 Warm UP: Evens & Releases. What to Expect: chapter "Other Platform releases
Special Effects in the Moview with Danny of TBL

from Behind The Scene

Desire - Comeback to the demoscene
The Making of "We Come In Peace"
Dismag Galore #2 : chapter about amiga releases
GUI on Amiga today
Amiga in 2012 - Present days
Viva Amiga Party 2012

from Interviews

Blast from the past: Mantronix of Phenomena
Top Personality: Ubik of Elude

from PartyZone

Revision 2011 report
The Amiga 25 years party
BreakPoint 2010 report

Issue37 also have a lot of good and quality music done by real proffesionals, specially for that diskmag. To add , issue have a lot of good design, art and any kind of articles, reports and interviews. Just take a look on how it looks like (screens from aos4):

You can download amiga version of diskmag (i.e. that one, for aos4/mos/aros) here:

Enjoy !

четверг, 22 марта 2012 г.

Yesterday i publish one more aos4-programming related article, where i cover some low-level stuff such as: ppc assembler in brief, programming on assembler on os4 in different ways, disassembly, debugging, ELF file internals and ELF loader internals (all of course in meaning of os4, as its topic of article), differences beetwen different libc realisations, and some other bits here and here.

Article are not for newbes, but for someone who have basic coding skills. Even better to have exactly "coding", not "programming" skills. Old-scholl hackers can find it interesting to read.

You can read article on HERE , or download PDF with all the samples included HERE

Bit thanks going to Trixie , who do pretty hard work to fix my english grammars and rephrase some parts where it was necessary, and to Frank Wille (yeah, VBCC author) for his never endles, never egoes, and never tired help.

вторник, 24 января 2012 г.

Russian diskmag for all NG amiga and like oses

Few days ago one of russian person who in interest about amiga and related stuff, release a russian diskmag called "oldgames" issue7. Diskmag works initially only on windows (there is win32 version), and while it sound strange that amiga-related mag works only on windows, amiga vesion of that was planned, but due to all the problems, and that it for first was oriented on the classics only and only for russians, all attempts die in rest somethere in beetwen and only windows version are done. 

The easy way with win32 version wasn't because someone code win32 engine from scratch, but just because engine for mag use welknown and open diskmag engine called Panorama done by the Crhis Dragan. For example diskmags like Hugi, latest EuroChart, latest ShowTime and some others use that engine. And for our surprise, some time ago, Ransom from IRIS (that one who do EuroChart), get sources of engine from Crhis, and make a SDL port. At that time, it was a bit buggy in few parts, implemenation of SDL on amigaos4 was buggy like hell, not saying that AROS on that times was out of question as something totally not mature (only year ago AROS get decent SDL support). Only on Morphos it was more or less fine. 

1.5 year ago, after a lot of tryes to find out Crhis and Ransom, i found both, and get from them all the necessary code, which, i just recompile for os4 with new SDL, and release a new version of  EuroChart 48, as well as few versions of latest HUGI: Hugi34 and Hugi36. Engine still a bit slow, and only on normal machines like with 800mhz and more it will be usable fine (i am sure there is a lot parts which i can change to speedup it, but that not done yet). But you can see it for yourself on the videos of hugi36 on os4 in action, on "25 years of amiga" aprty in Holland: 

Not ultrafast, but still usable. I hope to speed up it radically in near future (with adding opengl stuff, profiling bad parts of sdl code and co.), but for now it works at least and can bring some fun to amiga users.

And so, few days ago one man release a russian diskamg which based on that engine, and ask "if someone will intersest to port it to amiga, let me know". And as i already have panorama port, i of course was in interest to help, even, if diskmag still only in russian (that of course the big problem for the all the amiga users, but hey, you can navigate over, and listen some good and welknown music). 

The problems with which i meet , was fonts and cyrilic support. Fonts its something boring and un-interesting all the time, but at this time i dig in to found the solution. Problems lies in the code of engine (again), which just use Freetype for text parsint (so .ttf fonts), but just without meaning in mind cirilic at all. By standards all the .ttf fonts should be unicode-kind, but of course, its still possible to create some self-modified fonts, which will not follow to standart, but will still works. And so, i just follow the easy way , and except of changing a code of engine (yeah, a bit lame, but i just want to make it works fast, without waiting till engine code will be changed, adapted and tested) i just create self-made ttf fonts with necessary cp1251 codepage (the codepage #1 for russians) and with fixing of some bugs, create a working aos4 version. 

But as we all know that  aos4 is not only one os in the amiga world, i trying to support in last time all the modern and popular amiga and amiga like oses (that is aos4, morphos and aros-i386), and because of that i create new version of morphos engine, and, what is most important and for sure interesting first version of egine for aros-i386 ! Of course, on aros with modern and fast hardware, you will not have any kind of slowdowns, or problems with speed. Its all will be fast and good, just like on win32 with original engine by Crhis. Should i add that for aros all what i change its only makefile and endian fixes (as it little-endian, not as os4/mos which are big-endian) and nothing more ? That show us that AROS also reach some level for now. The level, when you can easyly build some code without problems, and without jumping to aros-specific problems. Wish that someday it will be the same for all the aros parts.

So, enough of talks, let's check screens !




Of course many of you will undestand nothing on russian, but you at least can plays with it. Keys 1,2,3,4,5 are used for swith beetwen music tracks (so even if you do not know russian, you can run it, and enjoy some music while browsing the articles and trying to understand what is all about :) ).

As for quality of diskmag itself, i think we can mark it as "middle". Not that bad to call it bad, and not as good to call it quality. Music are used in are wellknown and not done specially for, the design itself a bit "ok", but still its all a lot of effort to put all together, write articles and so on. I know that for myself from my past expirience with diskmags.

You can get fully working archive here with 3 bins for aros/os4/mos here: oldgame7 amigang

понедельник, 2 января 2012 г.

GDB on os4

Lately i start to write some research-kind article about aos4 internals from the 3d party coder perpective, and while i still works on it, i found that few parts of articles can fits to some small ones, about different aspects. Just something which can be interesting to read for some beginners. And so, as result i just make first one, which cover some first steps with GDB, for someone who not familiar with it, or just want something aos4 specific only.

If you in interst, check this out on there

воскресенье, 11 декабря 2011 г.

TheGoonies, now for AROS/i386 as well


This is the remake of one of Konami classic: The Goonies.

This game was made by Konami in 1986. There were both a NES version and an MSX version of the game; this remake is based on the MSX Version.

SpotUP was made a port to AmigaOS4 in 2008 (in that times SDL+OpenGL combo do not works in window mode, and that was the reasson why i recompile it in 2010 again, to make it works with new SDL/GL in all the resolutions and win/fullscreen modes). Somethere in beetwen, in 2009, Hak was made port to MorphOS, and so, again only AROS lack the port of this good game (because only about year ago SDL and GL on AROS start to works fine).

Game are based on SDL, SDL_mixer (mikmod, ogg), SDL_gfx/SDL_image (png, jpeg), ttf/freetype and OpenGL/GLUT. Window and fullscreen modes, music, sounds, detailed graphics and more or less modern resolutions make feel of fully completed and nice to play game. 

For AROS compilation was very easy, just because i re-use the port which i compile for AOS4 year ago, and all amiga-like related fixes (there was not only PROGDIR: changes, but also some code-reworking have place) was already done by SpotUP back in the past. The only parts which i fix, its makefile in terms of gcc/g++ and right stubs. 

Negative note is that on Vmware game feels very-very slow (sure, that Vmware and SW mesa rendering can make differences, but still on aos4/morphos on peg2/1ghz it works very fast) and very possible that AROS realisation of SDL/GL combo can show some problems again (as in case with CadogAdventure). Cross the fingers that not, and if someone can check it on real HW with real HW acceleration, plz put a comment-note about speed.

As usual i386/abiv0 , and you can get the full game here. 12 mb of size.

Pachi el Marciano. AROS/i386

Today i found that team who do Dragon Memory , do some other games, one of which called Pachi el marciano , and which is a platform game inspired by classic games like Manic Miner and Jet Set Willy (remember that old zx-spectrum game from Mathey Smith ?)

The game already ported to AmigaOS4 (can be found on and to MorhpOS (can be found on , and so, only AROS not have it. Plain SDL (without direct opengl usage), good and fun music/sounds, "complete" levels design and normal design of game itself, make all of this worth of porting. 

Porting process was easy enough, through, configure scripts again ask for auto-tools and for easy-way (to avoid manual creating of makefiles) i just use cygwin/winxp crosscompiler. 

Changes in terms of code was usuall PROGDIR: stuff , as well as manual change in all the sources of all pathes to make all works fine with PROGDIR. I.e for example was DATADIR"/gfx/something", and that translates to PROGDIR:/gfx/something => so removing of first slash are must. And as usuall few tweaks to make it compiles in terms of right libs (like sdl_mixer with mikmod support, ), flags and co.  In other words, nothing hard, but still spend some time to make it right.

Binary are i386-abiv0 (as for now the only one and main aros is abiv0).

Get the full-game here