Starting Coding again (AtariOwl)

If you have any questions on programming, this is the place to ask them, whether you're a newbie or an experienced programmer. Discussion on programming in general is also welcome. We will help you with programming homework, but we will not do your work for you! Any porting requests must be made in Developmental Ideas.
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5666
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Starting Coding again (AtariOwl)

Post by BlueCrab »

Like I said, you might want to start with some KOS examples, rather than ones that were designed to be used without KOS. You'd probably find it easier to look at those and backport whatever functionality you need rather than trying to bolt KOS onto something it wasn't designed to be used with.
User avatar
AtariOwl
DCEmu Freak
DCEmu Freak
Posts: 96
Joined: Fri May 23, 2008 5:57 am
Has thanked: 0
Been thanked: 2 times

Re: Starting Coding again (AtariOwl)

Post by AtariOwl »

Yeah

My KOS installation was wrong, its working now.
That's the problem when you don't know what you're expecting


Having said that... how worthwhile is KOS?
The elf files are about 900k, even the bins are 200k+ whereas that non KOS example was 54k

That seems like a pretty big overhead... how useful IS KOS really?
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5666
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Starting Coding again (AtariOwl)

Post by BlueCrab »

ELF files contain debugging symbols (which makes up most of their large size), so they're not a point to compare against to start with. :wink:

As for how useful it is, what do you think all that 150K extra is? Padding? :lol:

KOS pretty much supports every piece of hardware the Dreamcast has to offer, hence why it tends to make your binary larger. KOS also supports a full C library (through newlib) and a complete libm (also through newlib), neither of which were linked against your 54k example from before, most likely. KOS also has things like a network stack, not to mention many libraries ported to it to make your life easier. :)

It's not particularly difficult to strip out the pieces you don't need, but at the same time I doubt that 150K is going to make much of a difference in the grand scheme of things. :wink:

Basically, unless you want to reinvent the wheel, you're going to need to use some library for accessing the hardware in a sane manner. You basically have three choices: KOS (which is pretty much the dominant library), libdream (from which KOS was originally spawned), and libronin (used by a few homebrew programs, most notably DreamSNES and ScummVM). The latter two of these will produce smaller binaries for basic things, but you'll be pretty much on your own for figuring out how to use them. Not to mention that if you're looking for other useful libraries to use with them, you'll be stuck porting them yourself.
User avatar
AtariOwl
DCEmu Freak
DCEmu Freak
Posts: 96
Joined: Fri May 23, 2008 5:57 am
Has thanked: 0
Been thanked: 2 times

Re: Starting Coding again (AtariOwl)

Post by AtariOwl »

It may seem odd, but remember where i'm coming from.

On the Jaguar, those were the facts of life.Everything was done from scratch, no OS at all, essentially no libraries. Coded in ASM.
And every byte had to be fought for.
User avatar
RyoDC
Mental DCEmu
Mental DCEmu
Posts: 366
Joined: Wed Mar 30, 2011 12:13 pm
Has thanked: 2 times
Been thanked: 0

Re: Starting Coding again (AtariOwl)

Post by RyoDC »

AtariOwl wrote:It may seem odd, but remember where i'm coming from.

On the Jaguar, those were the facts of life.Everything was done from scratch, no OS at all, essentially no libraries. Coded in ASM.
And every byte had to be fought for.
I think that on Dreamcast situation didn't changed drastically. You have a 16 Mbytes of memory, were you need to fight for every kilobyte - that's it, the more memory you have, the more larger worlds you can load and display.
BlueCrab wrote:If I want people to respect the copyrights/licenses on the software I write, then I should probably respect the copyrights and licenses of the other software I use.
You will never understood and share Russian mentality.

Btw, Crab, is there's any way to not to link the unneeded libraries, for instance, if I don't need a math lib or tcp\ip part of a KOS?
How do I try to build a Dreamcast toolchain:
Image
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5666
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Starting Coding again (AtariOwl)

Post by BlueCrab »

RyoDC wrote:You will never understood and share Russian mentality.
If that mentality is that it is perfectly fine to steal from corporations simply because they are corporations, then no, I won't. Just like I don't find it proper to pirate games that aren't on the market anymore, and why I don't accommodate those that do find it proper to do so in my programs. As I said before, if I want others to respect my ownership of my intellectual property, then I feel I should respect that of others. :wink:
Btw, Crab, is there's any way to not to link the unneeded libraries, for instance, if I don't need a math lib or tcp\ip part of a KOS?
Well, if you don't want libm, don't link against it. As for the parts of KOS' kernel, you can cut them out from the compilation and remove any references to those portions to do so. It shouldn't be all that hard to do, although I don't have specific directions on how to remove any individual piece.
RyoDC wrote:I think that on Dreamcast situation didn't changed drastically. You have a 16 Mbytes of memory, were you need to fight for every kilobyte - that's it, the more memory you have, the more larger worlds you can load and display.
I respectfully disagree. I really doubt you'll find much in the way of homebrew that will ever push that limit for worlds or anything else of that sort. Sadly, I don't see the homebrew community moving in that general direction this long after the console's death.

That said, if someone is fighting for every single KB they can get, then that person is better off writing everything from scratch to start with. It's entirely possible to write very small pieces of code that do a lot of interesting things if you set your mind to it. Take my PSO patcher, for instance. The actual resident patching code is less than 768 bytes in total length (actually, I think in v2.0, I got it down to less than 512 bytes). Obviously that piece of the code doesn't use KOS (and in all actuality, v2.0 of the patcher doesn't use KOS proper at all, as mentioned before -- only a few small pieces of it which I separated out from the rest of the code).
User avatar
AtariOwl
DCEmu Freak
DCEmu Freak
Posts: 96
Joined: Fri May 23, 2008 5:57 am
Has thanked: 0
Been thanked: 2 times

Re: Starting Coding again (AtariOwl)

Post by AtariOwl »

Well, back from racing and looking at things again.

I got that issue sorted out, basically as soon as i found out about hvcounter.
Very useful to have the Video Registers to hand.

This is not so bad.

Its very difficult to tell if its perspective correct.
Theres some warping visible, but i'm not sure if that's an uncorrected perspective transform

I'll have a bit more of a leisurely play and see how i feel.

Cheers
Post Reply