Mar 25 2007, 08:33 PM
First, a big thanks to moderators and admins who accepted this forum creation.
PC0 is a PC without hard disk.
So, any project allowing to use standard PC as a piece of equipment as friendly as a modded console is welcome here.
Here is a little demo :http://minilgos.perso.sfr.fr/pc0/pc0_demo.zip
Burn the image on any cd-rw with any burning software. Have a pc boot on it. If you have one of the pci network card supported (see list below), the first quote of xbox-scene home page will be read from internet and displayed on screen (it says press X or B but on PC0 it will just stop and do nothing more). You will need a DHCP server alive on your local network (i.e either XP with ICS activated and that can connect to internet, or a modem acting as a DHCP server, etc...).
Supported network card in this little demo:
The .dsk file is a floppy disk image and has 6 packet drivers copied in it.
The following .com files (standard packet driver for msdos-like os'es) are stored at these locations (track, side, sector) without any modification:
PCI (1317,0985) : SMC 1244TX (www.smc.com) (64,1,1)
PCI (1106,3106) : D-link DFE530TX (www.dlink.com.tw) (66,0,4)
PCI (1186,1300) : D-link DFE528TX (www.dlink.com.tw) (69,0,2)
PCI (10EC,8029) : Realtek 8029 (www.realtek.com.tw) (72,0,9)
PCI (10EC,8139) : Realtek 8139 (www.realtek.com.tw) (72,1,11)
PCI (10B7,9200) : 3Com 3c905cx-txm (www.3com.com) (74,1,5)
You will see that it's quite possible to have a PC boot as fast as a modded console. Now, I know what you think... xbmc? Why not...
Mar 26 2007, 01:42 AM
Im not entierly sure how much use something like this would be, perhaps you could explain in a little more detail?
i'm quite interested.
Mar 26 2007, 07:00 AM
A next gen console made of PC parts may have 3 interesting properties :
- It's x86 compatible, allowing ports of xbmc that requires x86 processor
- It's upgradable. You can replace graphic card to raise graphic horse power
- There is less risk to receive letters from console manufacturers lawyers
PC0, thanks to the non-existing (or ignored hard disk), also obtains these :
- Still work after a nasty thunder strike (usually corrupts hard disk contents)
- Can't be victim of viruses
- Can't be victim of a possible user's bad move (deletion/move by mistake)
- Don't need complicated steps to repair (burn cd again or replace part)
- You are allowed to brutaly shutdown computer anytime (no file damage)
All these reasons allow kids and elders to enjoy computers too.
Mar 26 2007, 07:09 PM
I've updated pc0_demo.zip :
- Removed a reference at top of .htm file (Sorry, I missed it earlier)
- Replaced silly final message "Press X or B" with "You can shutdown PC".
If you are interested in ps2 and xb1 platforms too, here are the identical demos for them (demonstrates unified API):http://minilgos.perso.sfr.fr/xb1_wattcp_http_get_demo.ziphttp://minilgos.perso.sfr.fr/ps2_wattcp_http_get_demo.zip
I've just updated the xb1 version. It now gets the nice fast black on white antialiased font like on ps2 and a big sprite moving in background thanks to pbKit. Only binaries because of the odd wattcp 1.2 license (doesn't allow to publish modified source). Just uses 2D sprites shown in demo03 anyway.
Wattcp 1.2 can be found in bobcat07 source (small real mode tcp/ip stack).
Future improvements will appear in the 'Minidash' thread through minidash releases. Minidash is only one application among others for PC0 platform.
Mar 29 2007, 02:46 PM
I don't understand why you're making a point of it being without hard disk. Care to elaborate?
Mar 29 2007, 06:14 PM
If it comes to you, who knows how to repair your hard disk, there is no point.
I'm thinking about elders and kids, and all others not willing to invest time in learning how to repair a damaged configuration on hard disk.
Mar 31 2007, 11:25 PM
1. XBMC needs a harddrive, so it should run via FTP/SMB, USB stick or something else?
2. So it should be possible in theory to run XBMC at 1366x768 or even 1920x1080 resolution via HDMI one day, streaming HD movies over ethernet.
3. For PC0 to truly be an "Xbox" it should be able to run Xbox games (maybe Caustik's code is a place to look?). These games would be runable again from ethernet though at lower load speeds than a harddrive but still pretty fast compared to dvd media.
4. Multi tasking. Will PC0 support multitasking or just one application at a time like an Xbox. I'm thinking a KAI server could run in one task removing the need for a PC running for those who does not have a modded router.
Also this could make it possible to have XBMC running in the background when running other software eg. games and make it possible to jump to dashboard kind of like on the PC
5. With the power of a PC and the extendability, XBMC tv tuners and recording could be come reality.
I really see the possibilities if you can pull this off and cheap PC0 compatible machines could be built. Heck they could even be massed produced for this and sold on places like ebay fully configured with PC0
Apr 1 2007, 09:51 AM
"1. XBMC needs a harddrive"
If I am to create a player, it will have access to another pc hard drive thru ftp/http (working) or more appropriate protocol. Idea is to have main storage of data in a secured place, not the living room.
"2. So it should be possible..."
Sure! Depends on power of driver we can do for Nvidia family. I discussed with Nouveau project leader, he knows ATI as well but the comparison makes him prefer Nvidia by far. But I have no details. But I don't exclude to take a look myself in ATI stuff, but it's low low priority.
"3. For PC0 to truly be an "Xbox" it should be able to run Xbox games"
Once minidash is usable as a developpment tool, surprises will come. Don't expect to see other already existing games to work on PC0, but expect new games (originals or ports) to work on all platforms simultaneously (multi player games with same code on different platforms, pc0, xb1, ps2 included, maybe even ps3 & 360 later). Mainly because the way to develop with low level access to GPU is a bit different than the way used by DirectX and OpenGL. Can't do everything easily without them but what you manage to do, you are sure you can't do it faster. That's for what I'm writing. Others can create xbox emulators if they like.
"4. Multi tasking."
PC0 is just the hardware name (a PC without harddisk, with a few mastered drivers limiting choice of peripherals). What can run on it can vary a lots.
Minidash is one application among many others. My way will lead me to monotask, like on xbox.
When it comes to GPU it's important. Multitasking requires you switch hw GPU contexts which is complex.
Monotask allows to go faster to the goal with less complexity. PC0 is non exclusive, not copyrighted, not patented environment. All are welcome to try their way. But if the boot thing scares you, you will be able to use, for free, minidash as a bootloader for your own other code parts (i.e you can get rid of all my nice unified api, switch to protected mode, and take over the entire machine as you want). Whatever complexity you target there is the need to start simple and small. Once a group of people accepts to choose the same basic peripherals, that can create a dynamic move and raise the possible audience around the same, mastered, hardware pieces (that's what is doing a console manufacturer when it floods market with its console). So, if many try, a large choice of products you will get. PC with hard disk, is almost instantly locked with MS products. Linux is still a bit hard to master/repair for largest audience. PC without hard disk keeps all its chance (with Vista high price, its chance actually rises a lots!).
"5. With the power of a PC..."
All is possible and quite bonds free... Just need to dig in the big evil ones' secrets... (drivers)
Apr 1 2007, 10:23 AM
1. I have 5 Xboxes and 1 NAS with all my movies, music and pictures. XBMC needs to save files (XML and SQL database). It's not static. For it to be fast it needs fast access to some data. I don't understand your focus on not having a harddrive - they cost next to nothing. Keeping files that does not require fast access on NASes etc is a good idea, but some files needs fast access and transfer rates. A quiet and semi cheap way for these files could be using compact flash as a storage for application releated files that a often accessed and needs to be fast.
2. ? I don't have a ATI card nor will I ever I think. nVidia supports 1366x768 and 1920x1080 fine. GPU decoding of video will be a must but that is really application specific unless the platform will provide GPU optimized decoders for different codecs.
3. I see the bigger picture
My focus is mainly on getting XBMC to playback 1080p VC-1 on cheap, small form factor, quiet hardware replacing the old Xbox. This could be the real "seller" for platform bringing people to it. Multi hardware games will be nice down the road
4. btw, I meant "jump to dashboard kind of like on the Xbox360"
5. of course. It was just a comment and not a question
Keep up the good work. I will follow this project closely
Apr 1 2007, 01:19 PM
1. On a 512Mb RAM (not expensive) PC0, you will have 510Mb for your application. 1Mb is real mode core, 1Mb is a set of reserved DMA buffers.
That's a lots of memory for doing things without the need of fast local temporary files on hard disk.
For persistent files, they can be downloaded at start, stay in memory, and if small parts change these small parts can be uploaded after or in background. Also it's probably not me who will finish the xbmc port if it ever starts, so my point of view can be ignored by the final person who will make the xbmc port become true. I will just try to open the blocked doors of GPU.
Also don't forget YOU know how to repair these hard disks. If you hope for very big audience, you will have to think about what is needed for catastrophe scenarios happening in the home of very 'normal' people.
Today if you try to sell something to 'normal people' and say it's linux based, they will walk away. Because they know they are 'things' to handle on a hard disk. If you sell the same thing based on a cdrom booting on a slim pstwo, they will be interested.
Jun 10 2007, 04:07 AM
So, lemme try understanding this:
PC0 is an operating system for standard computer hardware, but instead of giving it a variety of features like Windows or Mac OS, it turns it into a console for playing games.
Does this "game OS" try to emulate consoles (i.e. turn a computer tower into a NGC) or offer people an open platform that people can develop and distribute without having to worry about compatibilty (kinda like Java on a grander scale)?
Does this project have a homepage that I could look at?
Jun 10 2007, 09:18 AM
PC0 is the hardware name (a PC with ignored/missing hard disk)
Many people can suggest their own OS in this forum.
Personally I will try to offer two OS'es, for free :
- A hacker/gamer oriented OS named minidash (its home is this forum)
- A kid oriented OS named minilgos (you can google its home page) that will be a specific variant of minidash (internet accesses completely locked and narrowed to reviewed contents only, by default, in order to protect kids)
minidash gives (well, tries to), on many platforms (PC0 is only one of them, but the 100% sure legal one) :
- unified api (you will notice that there will be no function in that api that allows to access local hard disks)
- canonic assembler interpreter (for fast programming with a text editor, when speed is not needed)
- a way to upload native code (but you compile it yourself, I won't provide much help. the logical approach is : you test your ideas fast with interpreted canonic assembler, then you port it to native code to gain speed)
Other platforms will get code built with open dev kits, but many think they still can be considered illegal by the most aggressive lawyers... And to win the game, don't play with them at all.
If I manage to support hardware 3D acceleration for enough platform (PC0 is missing, but xb1 & ps2 are done), I think result will be quite interesting (some 3D multiplayers online game for example, allowing friends owning the 3 different platforms to play against each other with same source code written in canonic assembler). Hardware acceleration means you let a co-processor handle the heavy load, so if main cpu is slow because of interpreted code, it's not a too serious problem (a bit like xn/a on xbox360).
I'm a bit slow at the moment, but I should resume energetic coding soon. The canonic assembler engine on PC0 and hardware acceleration & network support on xb1 have kept me busy for the past two years...
So it's important for me to continue and obtain some solid, useful, result... even if it takes time.
Spending time on a console may be a bit ridiculous if you think about the legal issues (often unfair I think) and the actual lifetime of a console, so focusing mainly on PC0 is a good thing : legal for sure and will be still interesting for several decades for sure. Consoles support is there in order to raise the number of potential users/players since identical hardwares in the hands of millions is great from a programmer point of view for immediate release and fun... (otherwise, on PC0, it's limited to people having same graphic card, etc...). So the console part should raise interest for the portable homebrew code itself, then people will make an effort to have same PC0 hardware and then it will be total, legal, free, easy to code, homebrew pleasure, for decades...
Unified api is not finished but memory management, for example, is done (and well done, you freely access all memory with 32 bits linear physical addresses) on PC0, so you can already do some little complex programs, you can even use floating point unit.
I managed to decode ogg vorbis files with it, so it's quite usable I think.
You may consider canonic assembler+unified api as a very simplified version of java. An emulator would be a program written in canonic assembler, calling unified api, retrieving the "legal rom" through ftp or http, storing it directly in memory. On PC0 with 512Mb ram, the unified api call that will give you the amount of free ram available for malloc will probably return around 510Mb of free ram (a contiguous physical area you can address with 32 bits physical address values directly handled in your canonic assembler code through global or local registers!)
Linux does all this, but majority of people needs something that starts with a single button and don't ask them to "learn" how to become IT expert themselves... That's why I want to explore the way : "I insert cd, I power on, it works".
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here