demOS frawework (Rebirth)

GFA, ASM, STOS, ...

Moderators: exxos, simonsunnyboy, Mug UK, Zorro 2, Moderator Team

User avatar
metalages
Atari freak
Atari freak
Posts: 50
Joined: Thu Jun 06, 2013 5:14 pm
Location: France
Contact:

demOS frawework (Rebirth)

Postby metalages » Fri Apr 01, 2016 10:48 pm

Some monthes ago I shared the framework I have used to write Rebirth demo on github.
But I had not opened a topic about it on the forum yet ;)

So demOS framework is available here https://github.com/gibs75/demOS
(it has been used used/developed for Rebirth https://www.youtube.com/watch?v=iNbVcFThTxY )

This framework is designed to be reusable.
My latest changes are not yet published on github, anyway current version ever provides many things ;)

- it provides a toolchain to produce disk images (generates images, FAT and some code) =>
you just have to send async requests to load data. According to your available memory, the system also
manages data preloading (then the corresponding load requests only copy the data in this case)
The imaging tool also provides some helpers to work with ARJ mode 4 files (use Mr Ni! routine to depack) without headers
and stores depacked size into file metadata. It also manages executable bootsector checksum...
Loading system can also manage the 2 floppy drives.

- it implements a "bi-threading" system to take advantage of the remaining time while waiting for the next vbl =>
you can switch to an async background routine, the next vbl interruption will switch back to the main thread
(which probably runs your vbl synched demo effects). This way you do not need to slice your background routines
(which is cool for background pre-computations...)

- a kind of "ring allocator" to manage dynamically memory allocations for your data in a demo context

- it is written in a mix of C (without any standard library) + ASM 68k =>
C startup has been rewriten, provided bootsector code allows to boot C program without TOS from a low address.
The idea is to be able to write "glue code" in C instead of doing everything in ASM in order to speed up the coding process...

- some bitmaps, colors, rasters helpers...

- some debug stuffs => fast print routine, display various systems states (loading, allocators, sndtrack...)
some basic emulation / compatibility layer to test some of your stuffs directly on PC (more to come about PC compatibility layer / emulation...)

- pcm streaming system (you can write some funny scores like this https://github.com/gibs75/demOS/blob/ma ... SNDTRACK.C :))
other strategies for sound are not yet comited on git but it is possible to replace it...

- Rebirth effects code => this part not designed to be directly reusable ;) but there are some routines here...
also it shows how the framework can be used...

A doxyfile (doxygen) is provided at the root of github depot (to extract some minimal documentation from the code)

User avatar
Maartau
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2578
Joined: Thu Dec 15, 2005 2:15 am
Location: France

Re: demOS frawework (Rebirth)

Postby Maartau » Fri Apr 01, 2016 11:14 pm

metalages wrote:This framework is designed to be reusable.
My latest changes are not yet published on github, anyway current version ever provides many things ;)

I'm very impatient to see the next version :D ... And thanks again for the sharing :thumbs:
Member of :
- aTaRi LeGeNd ,
- eLiTe ! ,
- NoExTrA .

[2017-10-18] & more...

-> "Cleaning/checking my ST mess " & "Back @ my (delayed) projects" <-
-> Slowed due to serious health troubles <-

User avatar
Strider
Atari Super Hero
Atari Super Hero
Posts: 865
Joined: Tue Jun 18, 2002 5:16 pm
Location: Grenoble, France
Contact:

Re: demOS frawework (Rebirth)

Postby Strider » Fri Apr 01, 2016 11:17 pm

Wow, awesome stuff! Thanks for sharing it.
Strider from MJJ Prod
May the TOS be with you!

User avatar
metalages
Atari freak
Atari freak
Posts: 50
Joined: Thu Jun 06, 2013 5:14 pm
Location: France
Contact:

Re: demOS frawework (Rebirth)

Postby metalages » Sat Apr 02, 2016 3:24 pm

Maartau wrote:I'm very impatient to see the next version :D ... And thanks again for the sharing :thumbs:


My pleasure ;)
A stuff I recently made for example is to port the ARJ depack routine in C.
This way it is more convenient to test some algos on PC with the same disk image...

User avatar
metalages
Atari freak
Atari freak
Posts: 50
Joined: Thu Jun 06, 2013 5:14 pm
Location: France
Contact:

Re: demOS frawework (Rebirth)

Postby metalages » Mon Apr 04, 2016 10:07 am

I have commited the depack routine C port for PC and have cleaned the crappy history from github.
Now things are more clear ;)

https://github.com/gibs75/demOS/commits/master


User avatar
metalages
Atari freak
Atari freak
Posts: 50
Joined: Thu Jun 06, 2013 5:14 pm
Location: France
Contact:

Re: demOS frawework (Rebirth)

Postby metalages » Mon Apr 04, 2016 12:30 pm

tx :)
I have just added links to doxygen docs on the github wiki: https://github.com/gibs75/demOS/wiki
Do not hesitate to ask if you need more info...

User avatar
metalages
Atari freak
Atari freak
Posts: 50
Joined: Thu Jun 06, 2013 5:14 pm
Location: France
Contact:

Re: demOS frawework (Rebirth)

Postby metalages » Fri Jul 15, 2016 9:40 am

Some minor (but useful) updates.
- the neo/pi? windows viewer can now save a bmp in the same time
- system font is now stored as static data into executable to be availble straight on (instead of loading it as data from floppy)
- remove some absolute path from projects (some remain in .S files)
- change license
- sound proto works on ST

https://github.com/gibs75/demOS/commits/master

User avatar
metalages
Atari freak
Atari freak
Posts: 50
Joined: Thu Jun 06, 2013 5:14 pm
Location: France
Contact:

Re: demOS frawework (Rebirth)

Postby metalages » Mon Sep 19, 2016 3:15 pm

Another demo based on this framework...

Have added some preload stuffs to manage version loading from HD (floppy image + prg for HD provided)
http://cyber.savina.net/ubi30/ubi30.zip
https://www.youtube.com/watch?v=Gbq4wI9HsEw


Social Media

     

Return to “Coding”

Who is online

Users browsing this forum: No registered users and 1 guest