KallistiOS VS Microsoft DC libs ....

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.
Post Reply
SSJKarma
Insane DCEmu
Insane DCEmu
Posts: 124
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Sun Jan 05, 2003 11:44 pm
Has thanked: 0
Been thanked: 0

KallistiOS VS Microsoft DC libs ....

Post by SSJKarma »

hello everybody, was wondering about some of the things that make DC games programming possible !

then i found something called KallistiOS, and i was wondering what that was until i found out that it was also an OS for DREAMCAST ! so i was wondering even harder...

then this question came in my head !
what the DIFFERENCE between both.
i mean, i know that Microsoft DC LIBS are used to make games and such, but what makes the KallistiOS a better or a worster choice ?
anyway... the question really was clear in my mind when i found that PCSX for DC was made using KallistiOS. that a PSX emulator that plays pretty well PLAYSTATION games ! not all works and it is in fact not so many either, but games STREET FIGHTER EX2+ works like almost 100% in that emu. so i was wondering how a PSX game could work 100% when a simple SNES couldn't !

anyway... not bitching, i just love your emulator right now, hope to see the next update one day. anyway... just tell me if you have known that KallistiOS and if yes, then tell me why you choosed MS DC LIBS instead !
No Name
DCEmu Ultra Poster
DCEmu Ultra Poster
Posts: 1837
Joined: Sat May 04, 2002 10:40 am
Location: Avon, Conn. Posts: Yes
Has thanked: 0
Been thanked: 0
Contact:

Post by No Name »

KOS is legal, the WinCE and Katana devkits are not.
Image
mmm.... n00b blood
BlackAura
DC Developer
DC Developer
Posts: 9951
Joined: Sun Dec 30, 2001 9:02 am
Has thanked: 0
Been thanked: 1 time

Post by BlackAura »

Basically, the WinCE development kits are commercial software, and the only way most people are likely to get their hands on one is by downloading a pirate version. The WinCE libraries allow you to program for the DC using a version of DirectX, and they were mainly used for porting Windows games to the Dreamcast.

KallistiOS, on the other hand, is a sort-of-OS that was built using free tools, and made available as open-source software. That means that you can legally get it, and you can make any programs you like with it, and even sell them. KallistiOS is also still under development, and isn't anything to do with Sega, so it doesn't fully support everything that the Dreamcast can do. Yet.
Ex-Cyber
DCEmu User with No Life
DCEmu User with No Life
Posts: 3641
Joined: Sat Feb 16, 2002 1:55 pm
Has thanked: 0
Been thanked: 0

Post by Ex-Cyber »

so i was wondering how a PSX game could work 100% when a simple SNES couldn't!
The short answer (and you probably don't want to hear the long one) is that older/simpler hardware typically requires more complex programs to drive it, and programmers have to care more about details. Thus, the programmers of emulators for simpler systems have to care more about the same details, and emulators have to spend more time to make those details correct.

Besides, if you're only going to give one example of a game that runs nicely, I counter Street Fighter EX 2 with Super Punch-Out. :D
User avatar
toastman
Iron Fist of Justice
Iron Fist of Justice
Posts: 4933
Joined: Sat Nov 10, 2001 3:08 am
Location: New Orleans
Has thanked: 0
Been thanked: 0
Contact:

Post by toastman »

That and it's probably a port, and not emulated.
No signature.
ReGex
FrNES Creator
FrNES Creator
Posts: 63
Joined: Wed Oct 17, 2001 7:44 pm
Location: Calgary, Alberta Canada
Has thanked: 0
Been thanked: 1 time
Contact:

Post by ReGex »

so i was wondering how a PSX game could work 100% when a simple SNES couldn't!
Well, when you're emulating a system that uses 2d sprite hardware with per-scanline register based effects (NES, SNES, SMS, TG16 and Genesis all do this), you can't use your 3d hardware to speed up drawing reliably, because rectangles will always be drawn as rectangles. For an excellent example of per-scanline register effects see Contra for the Genesis or Bayout Billy's intro on the NES. So when you can't draw using the 3d hardware (how the system was designed to operate), you have to develop the whole screen as a bitmap in realtime and that requires quite a bit of memory bandwidth (a 320x240x16 texture = 1.22 MB of memory, doing that 60 times a second = ~73MB / second of memory bandwidth). The kicker with the DC is that it's memory bus and cache system sucks pretty hard, and that it's limit is already around 80MB / s under ideal circumstances (optimized code, minimal cache misses etc.).

Emulating a 3d system, although it may have a more complex and faster CPU, because it uses 3d hardware that can be mapped directly, can operate more ideally than a 2d system that requires tons of memory bandwidth. Advances in usage of the DMAs have make things much better than when I was coding FrNES. Coding entirely in ASM can help immensely too (if you prestore whenever possible, use instruction matching properly, and keep in 16kb pages). So in short, under some circumstances 3d platforms are easier to emulate on 3d platforms, than even some crappy old 2d platforms, because the DC really wasn't designed for that purpose.
i mean, i know that Microsoft DC LIBS are used to make games and such, but what makes the KallistiOS a better or a worster choice ?i mean, i know that Microsoft DC LIBS are used to make games and such, but what makes the KallistiOS a better or a worster choice ?
Well, unfortunately the KOS documentation is far behind where development is, but if you know how to browse header files you'll have no problem finding what you're looking for. MS libs are far worse performance-wise than the Katana devkit. As far as I understand the Katana devkit has a slick interrupt driven device manager for all the DC hardware. After all some of the team that did VF3 and Shenmue were involved with the hardware design and some of the devkit development. KOS is getting there, it's starting to look like a different sort of take on this concept. Dunno about the MS tools. I think using KOS is the way to go now, because you don't have to worry about making a large multinational corporation mad at you, and that you have all the source (I've customized KOS for my own uses at times, you couldn't do this with MS or Katana because you don't have the whole source). So yeah, GO KOS!

-ReGex
Phantom
DC Developer
DC Developer
Posts: 1753
Joined: Thu Jan 16, 2003 4:01 am
Location: The Netherlands
Has thanked: 0
Been thanked: 0
Contact:

Post by Phantom »

ReGex wrote:Emulating a 3d system, although it may have a more complex and faster CPU, because it uses 3d hardware that can be mapped directly, can operate more ideally than a 2d system that requires tons of memory bandwidth.
Right, and the same goes for emulating 2D systems on 2D hardware. Full speed NES emulation is possible on a GBA (16Mhz ARM7) because the NES 2D graphics can be implemented relatively easily with the GBA's 2D functions.
SSJKarma
Insane DCEmu
Insane DCEmu
Posts: 124
Joined: Sun Jan 05, 2003 11:44 pm
Has thanked: 0
Been thanked: 0

Post by SSJKarma »

thanks for all your answers !
my question was intended to have two main answers !
1 - why PSX works almost 100% while emulated when SNES couldn't ?
2 - why has the developement team of DSNES used what they used instead of the other ?

thanks you answered both questions !
- 2D systems are harder to emulates on a mainly 3D system !
- KOS is still under developement so its less reliable then the rest !

anyway...
i kinda asked the question to know if KOS was beter for the emulator !
i mean, if it was, then maybe we could have had a less frame skip !
anyway... thanks all !
ReGex
FrNES Creator
FrNES Creator
Posts: 63
Joined: Wed Oct 17, 2001 7:44 pm
Location: Calgary, Alberta Canada
Has thanked: 0
Been thanked: 1 time
Contact:

Post by ReGex »

Just for clarification, DSNES wasn't made using either Katana or MS WinCE, it was made using an C (and Marcus' own language) framework. This framework has some shared code and information with KOS but it is neither KOS or Libdream. Ideally, to make a speedy emu at this point, if you really wanted something of comparable quality to bleem or even the much maligned proprietary SEGA Genesis emulator, you'd have to do the implementation in assembly language.

-ReGex
Post Reply