A new DC loader, and a larger idea to revitalize the scene

This is a forum for discussing the feasibility of getting emulators, games, or other applications that have had their source released ported to the Dreamcast. Please read the Porting FAQ before starting a topic in this forum!
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

A new DC loader, and a larger idea to revitalize the scene

Post by DaMadFiddler »

As many of you know, I haven't been particularly active here for a few years. Part of that is because in 2008, a dishonest ex stole my Dreamcast collection, and I didn't get around to replacing it until last February. I have been looking up some of the old stuff I used to enjoy, as well as doing my best to learn about what's happened in the meantime.

It's encouraging to see that there are still periodic commercial releases, but it looks like the homebrew scene has largely dissipated in the last couple of years. I know there are many factors contributing to this, but at least one significant issue seems to be a lack of a "go-to" place for Dreamcast news and software (no offense to Darc or DCEmu). If anything, the scene--or what remains of it--is even more fragmented now than it was when I left, and I was very frustrated to find that not only were many of the tools and resources I relied on just a few short years ago either gone or broken now, but that there isn't anywhere reliable I can go even to find out what's out there any more. There's nothing even approaching a comprehensive list of homebrew releases, and I fear many games may be lost forever.

However, in the intervening years, homebrew has thrived on systems such as the Nintendo Wii and DS. Both of these systems have built on the lessons of Dreamcast and Xbox homebrew, and brought those concepts into a more modern, accessible form with the use of three key hardware/software elements:

1. easy-to-use launcher interface that runs directly on the console
2. Internet connection allowing for direct download of software to the console
3. rewritable mass storage on the console

I remember when DCEmu wikified the main site, which seemed like the right idea... just a little too late. A wiki only works when it's got sufficient contributors. However, I have an idea that I believe can help bring people back, both to the Dreamcast homebrew "scene" as a whole and to DCEmu in particular. It'll take some work, but I really think it would be worth doing, if we can get a few developers on board to make it viable.

Here goes.

* * *

1. Salvage what there is to be salvaged. Reach out to the owners of fallen sites (Consolevision, Boob, DCHomebrew, DCEvolution, SBiffy, etc) to see if they still have local copies of their content. Once everything that can be found has been collected, put it in a staff folder on DCEmu and recruit a few people to start incorporating it into the new DCEmulation site. Ideally this would include everything from newbie guides to comprehensive game library information to a comprehensive homebrew database (with locally hosted downloads) to development tools to more advanced guides for working with KOS and various scripting environments/engines. Obviously this will be an ongoing effort, but the information was all out there once--it can be collected again. The top priority should be re-collecting all the homebrew (the Sbiffy archives would be the best starting point, since they are one of the most flexible incarnations of the software).

But here's where things start to get interesting.

2. Work with anyone who might be left to develop either a platform-agnostic (i.e. Java or Flash) or portable desktop client. The ideal result would be something very loosely resembling a stripped-down iTunes. It connects to DCEmu's central database, and lists all archived homebrew by name and by category. The user can then select which items to download, then they will be added to a local "library" of titles on the user's computer. From the user's local library, buttons will allow the user launch a one-click process to burn titles individually to self-booting discs, burn a self-booting compilation disc, transfer titles to an SD card for use with the SD adapter, or play them through a Dreamcast emulator (which would have to be externally configured).

If the application proves successful, it can even provide a gateway for more advanced functionality and deeper community involvement, such as:

- allowing users to enter ratings and mini-reviews for homebrew titles, which would show up both in-app and on the DCEmu website

- serve as a portal to DCEmu participation, such as wiki access/contribution and the forums

- serve as a means of contributing new or uploaded titles--allowing users to contribute new or modified software to the database, which would add the file (and a corresponding wiki entry) both to the website and to the database used for the desktop client. Of course, any submissions should be subject to admin review/approval before going live. This would also provide a means of cleaning up and automating version control.

3. Replace DreamShell with a "modern" dashboard app. Part of the reason systems like the DS and the Wii have thrived in terms of homebrew is because of how accessible it is. Both platforms have easy-to-use homebrew launchers that connect to a central database--much like the desktop client described above--and can download/launch software directly from the console itself. A lot can be learned from these systems, and from XBMC. While such GUI systems never seemed to make much sense on the Dreamcast in the past due in part to its lack of a rewritable mass storage device (and all the limitations that come with that), the SD adapter breaks this wide open.

So, let's talk to the DreamShell folks, and/or whoever else might have the interest and the know-how. Build a new UI, something more suited to console navigation, and make it modular. Give it a skinnable interface, and in addition to serving as a homebrew launcher, have it use plugin modules to expand its functionality for various filetypes.

If the Dreamcast is connected to the Internet, it should be able to connect to the DCEmu database--circumventing the need for the aforementioned desktop application--and download DC homebrew directly to the SD card. A universal format (possibly something based on SBI) should be established for the DCEmu archives... a format that would ensure cross-compatibility between the dashboard and the desktop client, and which would contain rich information about each title or module downloaded (i.e. icon, version number, release date, author, brief description, etc. Think in terms of how the Wii Homebrew Channel handles this).

A skinnable interface would be nice (though not strictly necessary), with skins archived and downloadable from the DCEmu database just like homebrew titles.

Similarly, the dashboard app should support expansion of its functionality through external modules or libraries. For example, adding a media player module could incorporate audio and video playback--perhaps even with modern features such as network streaming (if available), background playing (if the file is within parameters the Dreamcast can handle while still running the dashboard), and more robust library management. Someone could also theoretically rework NesterDC as a plugin module, for example, so that the dashboard can natively run NES ROMs. The same could be true of other emulators and interpreters. You get the idea.

Ideally, the program would be in multiple pieces:

a) a boot disc. Boots the console; checks for corresponding data on an SD card. The disc would contain a baseline version of the dashboard application, but would not launch it directly from the disc. Instead, if there is no dashboard data on the SD card, the disc allows the user to install it. Once an SD is identified as containing the dashboard app, the boot disc launches that.

b) the main application, on an SD card. Why? This way, you will never have to replace your boot disc with an updated copy. The dashboard can either self-update over the Internet, or the file can be manually replaced on the SD card. The aforementioned desktop client could also have an option to set up an SD card with the latest version of the dashboard. However, the main dashboard should be a very lean, small-footprint piece of software that mostly just provides a UI and framework for:

c) the plugin modules (or libraries). Stored on the SD card with the main dashboard program, each plugin adds to the dashboard's core functionality. Ideally, every main function of the dashboard should be a discrete module, to preserve the Dreamcast's limited resources--each module would identify what file types or commands it is used for (possibly through a separate configuration file), and the dashboard would only keep whatever module or modules are currently in use in active memory.

For example: there might be one module for music playback, another for video playback, another for launching homebrew applications, another for each emulation core (if the dashboard is to have native support for various ROM types), etc. (I'm sure that if this system caught on, clever developers could think of many other things to make modules for--which is part of the beauty of the module system. It makes the dashboard's core functionality infinitely expandable). Say there's a music playback module that supports multitasking. I can start an MP3 playlist, and download an emulation plugin that someone has made using the GenesisPlus source. Once it's installed, my dashboard now recognizes .smd files as launchable. I go into my library and launch a .smd file that I have previously added to my database (with ID tag information--again, think iTunes-esque, with all files having user-modifiable tag info and all viewed through a unified, categorized, sortable database, but only launchable if the dashboard recognizes the file type. The dashboard terminates the music module and dumps it from active RAM, then loads the GenesisPlus-derived module (which really only contains the emulation core; no interface elements, since the whole point is that it's essentially a library for the launcher) and points it to the selected file. Once I'm done, I call up the dashboard again, which terminates the GenesisPlus module and dumps both it and the SMD file from active RAM.

The only exception is homebrew, which by necessity would have to quit the dashboard entirely in order to launch. However, it may be possible to incorporate some sort of bootstrapper that relaunches the dashboard once the homebrew program has been terminated... though getting that to work would likely require establishing some standard procedures when it comes to software design. Not the easiest task, but then, they managed to make it work for the Wii Homebrew Channel....

d) the library. It should keep an active database--like the desktop client--of installed homebrew, as well as of locally stored media, to be used by the dashboard as appropriate. This would consist of both a standardized file/directory structure for storing apps and media, and of a database file used by the dashboard interface.

4. at a later point, possibly even serving as a commercial outlet. This particular aspect could get legally complicated, and may even prove too much of a technical challenge. But imagine giving developers and publishers a platform where they can sell digitally distributed Dreamcast games at a lower cost/risk factor than trying to deal with a physical release. Alternatively, it could allow people who ordered a game to have a digital backup of that game (or a means of playing it until their physical copy arrives), or a low-cost alternative for people who can't afford the physical copy, and could provide a means of exposure for developers unwilling to give their work away for free but whose games are either too "small" or too risky (or whose developers just don't have the money) for a physical release.

This obviously would be a roadmap feature, and not something that would be implemented from the start (if at all). But getting key partners on board, such as the GOAT Store or NG:DEV or Redspot, could help bolster such an effort. Even better, imagine a near future where you can buy a "Dreamcast starter kit" that includes a boot disc, SD adapter, and SD card. The Dreamcast boot disc also has a PC-readable track that contains the desktop clients for Windows, Mac, and key Linux distros. Once you're set up, you can connect to DCEmu and start downloading homebrew either through your desktop client, or directly on your Dreamcast through the dashboard. You can submit new applications--either as homebrew or as a candidate for commercial release--through the desktop client, for admin review and approval. You can buy new Dreamcast games and have them ready to play either from SD card or by burning them to disc almost instantly. And if commercial operations aren't something DCEmulation wants to get involved with, implementation and management of the Dreamcast store could be handled by a partner instead--heck, rather than being a "core" function of the shell, there could even be a "Virtual Store" plugin module for each publisher (i.e. GOAT, Redspot, NG.DEV). And if dashboard-native modules are developed for various emulation cores, the store could even be used as a means of selling new developments for other platforms (such as NES, Genesis, NeoGeo, or VCS) on Dreamcast, such as Battle Kid and Pier Solar.

* * *

So... er, yeah. It's ambitious, it would require a lot of outside coordination (particularly in terms of actually getting the software written), and it would require a massive amount of footwork in collecting and building up the information in the database (as well as converting, tagging, and updating each of the files in the archive and their corresponding wiki pages and database entries) in order to make everything work. I'd be more than happy to pour effort into that, and I'm sure there are at least a couple of other people who would as well. The hardest part, really, is finding someone(s) with both the skills and the interest to put the software together, but it seems like there are enough pre-existing pieces that could be worked with so that the task wouldn't be completely unreasonable.
cube_b3
Ex-Newsposter
Ex-Newsposter
Posts: 4037
Joined: Tue May 28, 2002 6:51 am
Location: pakistan,karachi
Has thanked: 13 times
Been thanked: 5 times
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by cube_b3 »

I as I've said on many occasions am against into shoving everything in to one site.

http://www.dchelp.com was perfect for noobs.
http://www.dreamcast-scene.com is perfect for all commercial activity.
http://www.dc-evolution.com was perfect for homebrew.

We can help beef these 3 sites up with relevant information and everything would be perfect.

http://www.dreamcast.dcemu.co.uk is the best source for all news on Dreamcast, but it has a really ugly interface.

http://www.dcemulation.org, while not good for much has a great forum with capable members.

I would like an external message board:

http://www.dc-forums.com (hypothetically speaking), where all websites can have a unified message board under a democratic administration.
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by DaMadFiddler »

"These 3 sites"?

2 of them don't exist any more. Neither does Sbiffy or DCHomebrew, and since their demise, NO site has anything remotely approaching a comprehensive set of homebrew releases. In addition, the "scene" (or what's left of it) is too small to remain this scattered and survive; it's almost impossible to attract new people as things currently are. No site is busy enough to serve as much of a resource for either new end users or potential new developers, and there's no easy place to go to get stuff or publish stuff.

The only way to get more people interested is to make it EASY for them to get interested: easy to hear about new information, easy to seek out old or existing information, easy to find the software or resources or tools they want, and easy to put them into use.

Besides: even if the info is coming from multiple sites, there is no reason it can't be pulled into a unified interface. The bulk of the idea I discussed above was not about site expansion or mergers, but about building a new, easy-to-use interface for DC and desktop that makes it much easier to find what you're looking for and use it. Basically, setting up a simple, lightweight, expandable platform both for your computer and on the Dreamcast itself to make homebrew as simple and user-friendly as possible.

Have you tried the Homebrew Channel and Homebrew Browser for Wii? They're dead-simple, and thus Wii homebrew has thrived. It may not be practical to expect people in this age to connect their Dreamcasts to the Internet directly, but a good desktop client paired with with a single centralized software database (and yes, the former would depend on the latter to be successful), we can still make it REALLY simple for people, and it seems like that piece of it would not be hard to do; all it takes is someone with the skill and the interest to step forward.

I have the interest, but I lack the skill.

Any takers?
cube_b3
Ex-Newsposter
Ex-Newsposter
Posts: 4037
Joined: Tue May 28, 2002 6:51 am
Location: pakistan,karachi
Has thanked: 13 times
Been thanked: 5 times
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by cube_b3 »

DaMadFiddler wrote: I have the interest, but I lack the skill.
Yeah me, too.

Good luck finding anyone to step up.
User avatar
mankrip
DCEmu Ex-Mod
DCEmu Ex-Mod
Posts: 3712
Joined: Sun Nov 04, 2001 5:12 pm
Has thanked: 0
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by mankrip »

The only problem is: Your plan requires a HUGE, strong hivemind. It's impossible.

Here's a bold statement: Teamwork is what killed the DC scene. Trying to glue everyone together always ended up in disputes and broken promises that dragged everything down.

If money and a contract aren't on the table, teams must precede the projects. The absolutely worst way to start a team is with this "this idea needs a team, so let's assemble a team to work on it" approach. First you must assemble a team, and then you can ask yourselves "Ok, so what can we do?".

Ask yourself what you can do without a team. And work on it. If anyone else can help to improve that, they will. But don't plan everything in advance, and don't make plans for what others should contribute. Don't plan anything beyond your own work.

If you lay out a huge plan where everything depends on everything else, everything will fail. And it will fail even before a team is assembled, because it'll be all or nothing; this plan you've written is so big that a single person would never be able to tackle everything in it. When people notice that, they give up because they know that their individual contributions will never make any difference if everything else isn't completed too.

I'm still working on the Dreamcast port of Makaqu. And I don't give a fuck if nobody else cares. I'm doing what I can do to improve it, and I'm doing it because it's fun. Nobody else can make me stop, and this is why it's still going on, no matter the pace.

The most important thing is to not stop. If you want a project to succeed, don't take any risks that may force it to be stopped. Anything else is a bonus.
Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
Dev blog / Twitter / YouTube
Image
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by DaMadFiddler »

Yeah, I know the team approach is problematic. I originally registered here to launch a game project, and the team falling apart leaving vital skill gaps is what broke that project.

But this is the idea I had. I think it would be a good thing--an important thing--for modernizing DC home-brew and making the "scene" both approachable and tenable in the long term, and I simply don't have the skill to do it. That's why I posted it here: in the hope that someone would see it and take interest.

If I could have done it myself, I would have gone ahead and built a preliminary version, then just launched it once all the pieces were in place and given everyone the norms and specifications so they could add their files.
User avatar
mankrip
DCEmu Ex-Mod
DCEmu Ex-Mod
Posts: 3712
Joined: Sun Nov 04, 2001 5:12 pm
Has thanked: 0
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by mankrip »

Don't think about the whole project at once. Pick up the parts where you can do something, and try to do them without waiting for anything else.

If you can't program, don't rely on making those programs you mentioned. Rely on what your skills can do.

See what you said:
there isn't anywhere reliable I can go even to find out what's out there any more. There's nothing even approaching a comprehensive list of homebrew releases, and I fear many games may be lost forever.
You don't need to be a coder to write down a list.

Databases needs standards. What info should go in? Project name? Original filename of the releases? Original release dates? Authors and team names? Relevant website links? What else? No one needs to be a coder to elaborate on things like these. And someone should collect such info and write it down in a temporary place before submitting it to a definitive database, because things like these must be defined before any database is built.

There is a lot you could do, if you aim for modest results first.
Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
Dev blog / Twitter / YouTube
Image
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

A new DC loader, and a larger idea to revitalize the scene

Post by DaMadFiddler »

Hey, folks.

|darc| Just brought me into this discussion. Admittedly, I was largely absent from the community for a few years, but early last year I started getting back into things and catching up on all I had missed... or rather, TRIED to catch up on all I had missed.

With development for older consoles growing a bit more mainstream, now seems like the perfect time to take a stab at this. I really agree with |darc|'s comments about the shift in user interest and the deeply entrenched problems that have evolved from it. Emulation isn't what this site has been about for a long time, and continuing to brand it that way runs the risk of marginalizing it in people's eyes before they ever look beneath the surface.

It's also a valid point that we have over a decade of history and branding as DCEmulation, and a rebranding effort would essentially mean starting from scratch in terms of public awareness. However, one thing to bear in mind: many of the high school and college kids who would make up a significant chunk of the potential new audience now are only vaguely aware of the Dreamcast, or are viewing it as a "new old" thing (the way we might approach radio plays or pre-80s TV shows), rather than a childhood or teenage memory. Keep in mind, the Dreamcast was killed off by Sega 12 years ago. People graduating from college this year were ten years old when the Dreamcast ENDED. I do think it would be useful for more established members of the community to find some way to indicate that we are/were DCEmu, but I don't think that "brand" counts for as much as it used to.

The opportunity is ripe for a fresh start, but the most important thing is to make sure we are rebooting the site to make it meet the needs of an audience, rather than just for the arbitrary sake of its continued existence.

The first step should be to make an inventory of all the currently unmet needs of the Dreamcast community, and what would be needed to help strengthen and grow that community. The first two things that come to mind are a comprehensive and up-to-date library of Dreamcast homebrew, and a detailed and up-to-date resource for getting developers who are new to DC up and running. With these two pieces in place, increased interest would naturally feed the growth necessary to revitalize this site as a community hub and news source.

Before making any changes, or even taking news of the reboot public, it would be important to have have the key pieces of the new content ready to launch, and any new partnerships necessary to maintain said content securely in place. To that end, I'd be more than happy to start plugging away at database entry and writing up articles/descriptions, if someone has the raw data (e.g., binaries and release information) to pass to me. However, someone else would have to write new guides and collect the necessary tools. It would be especially helpful if someone could put together a Windows/Mac/Ubuntu disc image that contained a ready-to-install set of tools, guides, and examples. I can't count the number of times over the last decade that I've gotten someone interested in DC development, only to have them give up before they ever got started because development information was too scattered.

And while we're talking ambition, I'm going to go ahead and repost something I've been kicking around to a few people over the last year or so. It would take a lot of legwork to make happen, but it is exactly the sort of shot in the arm that could really make this place not only meaningful again, but put us at the center of a strong, thriving community that actively draws in new players and new developers.

I had posted this about six months ago, in the rarely-trafficked "Development Ideas" forum. I'd previously sent variations of it to a few key community members, most of whom were intrigued but all of whom were also skeptical that we could get the manpower to make it happen. But some of you have connections that I don't. I'm more than happy to put in whatever work I can to make it happen (such as the data entry gruntwork to flesh out a database), but it will need a few dedicated developers behind it to get it off the ground:
DaMadFiddler in 2012 wrote:As many of you know, I haven't been particularly active here for a few years. Part of that is because in 2008, a dishonest ex stole my Dreamcast collection, and I didn't get around to replacing it until last February. I have been looking up some of the old stuff I used to enjoy, as well as doing my best to learn about what's happened in the meantime.

It's encouraging to see that there are still periodic commercial releases, but it looks like the homebrew scene has largely dissipated in the last couple of years. I know there are many factors contributing to this, but at least one significant issue seems to be a lack of a "go-to" place for Dreamcast news and software (no offense to Darc or DCEmu). If anything, the scene--or what remains of it--is even more fragmented now than it was when I left, and I was very frustrated to find that not only were many of the tools and resources I relied on just a few short years ago either gone or broken now, but that there isn't anywhere reliable I can go even to find out what's out there any more. There's nothing even approaching a comprehensive list of homebrew releases, and I fear many games may be lost forever.

However, in the intervening years, homebrew has thrived on systems such as the Nintendo Wii and DS. Both of these systems have built on the lessons of Dreamcast and Xbox homebrew, and brought those concepts into a more modern, accessible form with the use of three key hardware/software elements:

1. easy-to-use launcher interface that runs directly on the console
2. Internet connection allowing for direct download of software to the console
3. rewritable mass storage on the console

I remember when DCEmu wikified the main site, which seemed like the right idea... just a little too late. A wiki only works when it's got sufficient contributors. However, I have an idea that I believe can help bring people back, both to the Dreamcast homebrew "scene" as a whole and to DCEmu in particular. It'll take some work, but I really think it would be worth doing, if we can get a few developers on board to make it viable.

Here goes.

* * *

1. Salvage what there is to be salvaged. Reach out to the owners of fallen sites (Consolevision, Boob, DCHomebrew, DCEvolution, SBiffy, etc) to see if they still have local copies of their content. Once everything that can be found has been collected, put it in a staff folder on DCEmu and recruit a few people to start incorporating it into the new DCEmulation site. Ideally this would include everything from newbie guides to comprehensive game library information to a comprehensive homebrew database (with locally hosted downloads) to development tools to more advanced guides for working with KOS and various scripting environments/engines. Obviously this will be an ongoing effort, but the information was all out there once--it can be collected again. The top priority should be re-collecting all the homebrew (the Sbiffy archives would be the best starting point, since they are one of the most flexible incarnations of the software).

But here's where things start to get interesting.

2. Work with anyone who might be left to develop either a platform-agnostic (i.e. Java or Flash) or portable desktop client. The ideal result would be something very loosely resembling a stripped-down iTunes. It connects to DCEmu's central database, and lists all archived homebrew by name and by category. The user can then select which items to download, then they will be added to a local "library" of titles on the user's computer. From the user's local library, buttons will allow the user launch a one-click process to burn titles individually to self-booting discs, burn a self-booting compilation disc, transfer titles to an SD card for use with the SD adapter, or play them through a Dreamcast emulator (which would have to be externally configured).

If the application proves successful, it can eventually provide a gateway for more advanced functionality and deeper community involvement, such as:

- allowing users to enter ratings and mini-reviews for homebrew titles, which would show up both in-app and on the DCEmu website

- serve as a portal to DCEmu participation, such as wiki access/contribution and the forums

- serve as a means of contributing new or uploaded titles--allowing users to contribute new or modified software to the database, which would add the file (and a corresponding wiki entry) both to the website and to the database used for the desktop client. Of course, any submissions should be subject to admin review/approval before going live. This would also provide a means of cleaning up and automating version control.

3. Replace DreamShell with a "modern" dashboard app. Part of the reason systems like the DS and the Wii have thrived in terms of homebrew is because of how accessible it is. Both platforms have easy-to-use homebrew launchers that connect to a central database--much like the desktop client described above--and can download/launch software directly from the console itself. A lot can be learned from these systems, and from XBMC. While such GUI systems never seemed to make much sense on the Dreamcast in the past due in part to its lack of a rewritable mass storage device (and all the limitations that come with that), the SD adapter breaks this wide open.

So, let's talk to the DreamShell folks, and/or whoever else might have the interest and the know-how. Build a new UI, something more suited to console navigation, and make it modular. Give it a skinnable interface, and in addition to serving as a homebrew launcher, have it use plugin modules to expand its functionality for various filetypes.

If the Dreamcast is connected to the Internet, it should be able to connect to the DCEmu database--circumventing the need for the aforementioned desktop application--and download DC homebrew directly to the SD card. A universal format (possibly something based on SBI) should be established for the DCEmu archives... a format that would ensure cross-compatibility between the dashboard and the desktop client, and which would contain metadata about each title or module downloaded (i.e. icon, version number, release date, author, brief description, etc. Think in terms of how the Wii Homebrew Channel handles this).

A skinnable interface would be nice (though not strictly necessary), with skins archived and downloadable from the DCEmu database just like homebrew titles.

Similarly, the dashboard app should support expansion of its functionality through external modules or libraries. For example, adding a media player module could incorporate audio and video playback--perhaps even with modern features such as network streaming (if available), background playing (if the file is within parameters the Dreamcast can handle while still running the dashboard), and more robust library management. Someone could also theoretically rework NesterDC as a plugin module, for example, so that the dashboard can natively run NES ROMs. The same could be true of other emulators and interpreters. You get the idea.

Ideally, the program would be in multiple pieces:

a) a boot disc. Boots the console; checks for corresponding data on an SD card. The disc would contain a baseline version of the dashboard application, but would not launch it directly from the disc. Instead, if there is no dashboard data on the SD card, the disc allows the user to install it. Once an SD is identified as containing the dashboard app, the boot disc launches that.

b) the main application, on an SD card. Why? This way, you will never have to replace your boot disc with an updated copy. The dashboard can either self-update over the Internet, or the file can be manually replaced on the SD card. The aforementioned desktop client could also have an option to set up an SD card with the latest version of the dashboard. However, the main dashboard should be a very lean, small-footprint piece of software that mostly just provides a UI and framework for:

c) the plugin modules (or libraries). Stored on the SD card with the main dashboard program, each plugin adds to the dashboard's core functionality. Ideally, every main function of the dashboard should be a discrete module, to preserve the Dreamcast's limited resources--each module would identify what file types or commands it is used for (possibly through a separate configuration file), and the dashboard would only keep whatever module or modules are currently in use in active memory.

For example: there might be one module for music playback, another for video playback, another for launching homebrew applications, another for each emulation core (if the dashboard is to have native support for various ROM types), etc. (I'm sure that if this system caught on, clever developers could think of many other things to make modules for--which is part of the beauty of the module system. It makes the dashboard's core functionality infinitely expandable). Say there's a music playback module that supports multitasking. I can start an MP3 playlist, and download an emulation plugin that someone has made using the GenesisPlus source. Once it's installed, my dashboard now recognizes .smd files as launchable. I go into my library and launch a .smd file that I have previously added to my database (with ID tag information--again, think iTunes-esque, with all files having user-modifiable tag info and all viewed through a unified, categorized, sortable database, but only launchable if the dashboard recognizes the file type. The dashboard terminates the music module and dumps it from active RAM, then loads the GenesisPlus-derived module (which really only contains the emulation core; no interface elements, since the whole point is that it's essentially a library for the launcher) and points it to the selected file. Once I'm done, I call up the dashboard again, which terminates the GenesisPlus module and dumps both it and the SMD file from active RAM.

The only exception is homebrew, which by necessity would have to quit the dashboard entirely in order to launch. However, it may be possible to incorporate some sort of bootstrapper that relaunches the dashboard once the homebrew program has been terminated... though getting that to work would likely require establishing some standard procedures when it comes to software design. Not the easiest task, but then, they managed to make it work for the Wii Homebrew Channel....

d) the library. It should keep an active database--like the desktop client--of installed homebrew, as well as of locally stored media, to be used by the dashboard as appropriate. This would consist of both a standardized file/directory structure for storing apps and media, and of a database file used by the dashboard interface.

4. at a later point, possibly even serving as a commercial outlet. This particular aspect could get complicated. But imagine giving developers and publishers a platform where they can sell digitally distributed Dreamcast games at a lower cost/risk factor than trying to deal with a physical release. Alternatively, it could allow people who ordered a game to have a digital backup of that game (or a means of playing it until their physical copy arrives), or a low-cost alternative for people who can't afford the physical copy, and could provide a means of exposure for developers unwilling to give their work away for free but whose games are either too "small" or too risky (or whose developers just don't have the money) for a physical release.

This obviously would be a roadmap feature, and not something that would be implemented from the start (if at all). But getting key partners on board, such as the GOAT Store or NG:DEV or WaterMelon or Redspot, could help bolster such an effort. Even better, imagine a near future where you can buy a "Dreamcast starter kit" from somewhere like the GOAT Store that includes a boot disc, SD adapter, and SD card. The Dreamcast boot disc also has a PC-readable track that contains the desktop clients for Windows, Mac, and key Linux distros. Once you're set up, you can connect to DCEmu and start downloading homebrew either through your desktop client, or directly on your Dreamcast through the dashboard. You can submit new applications--either as homebrew or as a candidate for commercial release--through the desktop client, for admin review and approval. You can buy new Dreamcast games and have them ready to play either from SD card or by burning them to disc almost instantly. And if commercial operations aren't something DCEmulation wants to get involved with, implementation and management of the Dreamcast store could be handled by a partner instead--heck, rather than being a "core" function of the shell, there could even be a "Virtual Store" plugin module for each publisher (i.e. GOAT, Redspot, NG.DEV). And if dashboard-native modules are developed for various emulation cores, the store could even be used as a means of selling new developments for other platforms (such as NES, Genesis, NeoGeo, or VCS) on Dreamcast, such as Battle Kid and Pier Solar.

* * *

So... er, yeah. It's ambitious, it would require a lot of outside coordination (particularly in terms of actually getting the software written), and it would require a massive amount of footwork in collecting and building up the information in the database (as well as converting, tagging, and updating each of the files in the archive and their corresponding wiki pages and database entries) in order to make everything work. I'd be more than happy to pour effort into that, and I'm sure there are at least a couple of other people who would as well. The hardest part, really, is finding someone(s) with both the skills and the interest to put the software together, but it seems like there are enough pre-existing pieces that could be worked with so that the task wouldn't be completely unreasonable.
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

Re: Very serious question...

Post by DaMadFiddler »

...I think my wall of text out-walled |darc|'s original wall of text :oops:
User avatar
GyroVorbis
Elysian Shadows Developer
Elysian Shadows Developer
Posts: 1873
Joined: Mon Mar 22, 2004 4:55 pm
Location: #%^&*!!!11one Super Sonic
Has thanked: 79 times
Been thanked: 61 times
Contact:

Re: Very serious question...

Post by GyroVorbis »

Jesus. That was one of the most beautiful walls of text I have ever read. I think that would be everything anyone could possibly need to get into Dreamcast homebrew. I think we do have the manpower, but it is probably scattered and fragmented, and we will have to bring people together to pull this off.
DaMadFiddler wrote:1. Salvage what there is to be salvaged. Reach out to the owners of fallen sites (Consolevision, Boob, DCHomebrew, DCEvolution, SBiffy, etc) to see if they still have local copies of their content. Once everything that can be found has been collected, put it in a staff folder on DCEmu and recruit a few people to start incorporating it into the new DCEmulation site. Ideally this would include everything from newbie guides to comprehensive game library information to a comprehensive homebrew database (with locally hosted downloads) to development tools to more advanced guides for working with KOS and various scripting environments/engines. Obviously this will be an ongoing effort, but the information was all out there once--it can be collected again. The top priority should be re-collecting all the homebrew (the Sbiffy archives would be the best starting point, since they are one of the most flexible incarnations of the software).
God, PLEASE do this. It saddens me to no end to even think about the amount of content and wisdom that could potentially be lost without these sites. I think this needs to be the top priority for sure. Lets absorb all of this.

I agree with all of the software/application design that you have diligently dreamed up... I just have a few comments to make on the technical implementation side (I am an engineer, after all).
DaMadFiddler wrote:2. Work with anyone who might be left to develop either a platform-agnostic (i.e. Java or Flash) or portable desktop client. The ideal result would be something very loosely resembling a stripped-down iTunes. It connects to DCEmu's central database, and lists all archived homebrew by name and by category. The user can then select which items to download, then they will be added to a local "library" of titles on the user's computer. From the user's local library, buttons will allow the user launch a one-click process to burn titles individually to self-booting discs, burn a self-booting compilation disc, transfer titles to an SD card for use with the SD adapter, or play them through a Dreamcast emulator (which would have to be externally configured).
My initial proposal (if I were to create this piece of software) would be to use Qt and C/++. It's easy to develop with, has all of the UI/networking functionality built-in, is completely cross-platform, and it will also let us pull in C/++ libraries, drivers, and tools to build with the project rather than having to invoke them all externally (which can lead to potential issues when they get outdated). I think this would be an awesome app to contribute to.
DaMadFiddler wrote:The only exception is homebrew, which by necessity would have to quit the dashboard entirely in order to launch. However, it may be possible to incorporate some sort of bootstrapper that relaunches the dashboard once the homebrew program has been terminated... though getting that to work would likely require establishing some standard procedures when it comes to software design. Not the easiest task, but then, they managed to make it work for the Wii Homebrew Channel....
Yeah, I think this is doable. Remember how commercial games let you hold A, B, X, Y and push start to jump back to the title screen? Then doing it again quit to the bios? We could use that same mechanic. I use it to jump back to DC-Load when I'm debugging. Maybe we could use this interrupt to jump back to the shell? It would require people registering this interrupt, but I think maybe we could add this as default behavior to KOS (and maybe add a toggle for the assholes who don't want to interop with the scene.)

Also, I'm thinking Homebrew would not be the only application that would have to exit the sexified Dreamshell app. While it would certainly be awesome to have the emulators built into this, I think their code sizes and memory footprints are going to be way too big for this. I think they will definitely need to be individual applications that are launched from the shell like homebrew.

I think the emphasis you are making on the SD card here is the right way to go. It really opens up an astounding amount of possibilities to the casual DC homebrewer that we haven't even begun to tap into. Now that Crabby has gotten the drivers up and running, we need to take full advantage of this.
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5948
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has thanked: 10 times
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by Christuserloeser »

I've split this discussion and moved your proposal to a dedicated thread.

Personally I'd love to see an update to DreamInducer. (You know, the GUI of SBInducer)

A fresh start might be what PH3NOM is working on for Dreamcast Media Center.
Insane homebrew collector.
User avatar
Juan
DCEmu Commie
DCEmu Commie
Posts: 3398
Joined: Sun Jun 15, 2003 11:47 pm
Location: Montevideo
Has thanked: 39 times
Been thanked: 3 times

Re: A new DC loader, and a larger idea to revitalize the sce

Post by Juan »

Christuserloeser wrote:A fresh start might be what PH3NOM is working on for Dreamcast Media Center.
I was gonna say that, it's looking quite good and if I'm not mistaken he was considering making it more of a dashboard type of thing.

On the whole desktop app thing, the description somehow reminded me of DCFactory - even if it's not fit.
I guess if it does happen, given the nature of this and most homebrew scenes, it wouldn't be an effort bound to a specific site structure but rather an open solution. On that note, and considering the desire to make this a centralized content hub, I thought about KDE's Bodega Content System (here's an overview). While I'm not aware of it's current state, it should implement some of the ideas thrown here. Maybe there are better ways to go about it, this is just the one I read about recently :wink:
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by DaMadFiddler »

So is this something that people would actually be interested in enacting? It's going to take a lot of effort to set up, and it will be a pretty significant shift. GyroVorbis, can I interpret your response as a willingness to help create this? Any chance you'd be willing to take charge of development?

Christuserloeser & Juan, I had actually talked to PH3N0M last year about adapting his project to this end... he was intrigued by the idea, but said he didn't really have the time to make it happen. However, if we can get someone else to take point on this, I might be able to talk him into either working as a contributor or adapting any useful parts DCMC.

I can start drafting up some preliminary planning docs, if this is something we're actually willing to move on.

Any suggestion, feedback, ideas (either in terms of the design itself or in terms of how/who to get it done), etc. would be greatly appreciated.

Anyone got some ideas of what might be out there already in FOSS-land that might be suitable as a code base? Or would a ground-up approach be better?
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5948
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has thanked: 10 times
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by Christuserloeser »

Thinking about it, the closest we got in the past was the SBInducer & DreamInducer combo. An update to DreamInducer that irons out the one "bug" it had (Pressing Start) and which would implement a file browser would be REALLY neat.

Another solution would be to use Dreamshell or maybe a fork of DreamShell, cutting back the GUI and making it more accessible.

---

All this talk is fine but right now it'd be important to focus on the next logical step ahead and get that done first before doing more plans.

To me the next logical step would be to get a coder on board - preferrably none of those involved in triple A projects like KOS or Elysian Shadows, and decide on one GUI to update.


What I think would be an option we have right now, and what needs to be done:
- DreamShell needs to be cut back to a more simpler themeable GUI, the PC side of things is 0% done
- PH3NOM's Dreamcast Media Center needs very little work on the GUI I think, but again the PC side of things is 0% done. Like with DreamShell there is no interface that would allow to control menu entries.
- DreamInducer needs the least work on the Dreamcast side of things (a file browser and Press Start 'bug' fixed), and with Selfboot Inducer the PC side of things is ~95% done (plus we got a huuuge archive of past releases ready to go). DreamInducer does have an interface that allows to control menu entries via XML.

so yeah, I propose to update DreamInducer for SD card support and get the SBI repository back up (here at DCEmulation).

(edit: moving this to the public forums to make this accessible for the public, merging it with your original thread)
Insane homebrew collector.
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by DaMadFiddler »

Aww... first it was split off from the original discussion, and now it's moved back to the subforum where nobody saw it :P

I kinda disagree. If there's interest, I think it would be best to get the ball rolling before momentum is lost. Besides, if this is the direction we decide to take, it would necessarily inform the structure of any redesign. It's a heavy lift, and it's important to start getting the team together and a course of action drawn up as soon as can be managed.
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5948
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has thanked: 10 times
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by Christuserloeser »

DaMadFiddler wrote:Aww... first it was split off from the original discussion, and now it's moved back to the subforum where nobody saw it :P
Yeah, sorry, I may stickify it so it doesn't get lost again. Edit: Done.
DaMadFiddler wrote:I kinda disagree. If there's interest, I think it would be best to get the ball rolling before momentum is lost. Besides, if this is the direction we decide to take, it would necessarily inform the structure of any redesign. It's a heavy lift, and it's important to start getting the team together and a course of action drawn up as soon as can be managed.
Well, again, and to sum my thoughts up: I think we had SBInducer & DreamInducer and they already did almost everything you want to do so I think these should be bought back to life and updated with SD support.

PS: The source code to Dream Inducer: viewtopic.php?p=1013324#p1013324
Insane homebrew collector.
User avatar
GyroVorbis
Elysian Shadows Developer
Elysian Shadows Developer
Posts: 1873
Joined: Mon Mar 22, 2004 4:55 pm
Location: #%^&*!!!11one Super Sonic
Has thanked: 79 times
Been thanked: 61 times
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by GyroVorbis »

Well, shit. I didn't realize we were ready to go public with this idea yet... The only way this could be impossible is if not enough developers cared enough about the Dreamcast scene to see this through. As someone who grew up in this scene and who is currently developing a title on the platform, I would love to help make this happen... We are in a position to either make some drastic changes here and turn the Dreamcast into a very accessible, classic homebrew platform for many years to come, or we can take the easy route, make a few minor changes, keep going the way we are, and merely further postpone this scene's inevitable demise.

Since this topic was split off of something originally in the staff forum, and lots of the discussion is happening in PMs, I'm going to go ahead and move the conversation DaMadFiddler and I were having to the public... Hopefully he doesn't mind. :mrgreen:
DaMadFiddler wrote:As mentioned, I'm sort of envisioning it as three separate pieces:

1. The Dreamcast loader. Functionally, a hybrid of Dreamshell and something like XBMC. A description of I have in mind is in the thread.
I would personally not mind contributing to this, and if nobody else steps up, I will try to do it myself, but I don't necessarily have the low-level bootloader experience to head this up. Most of my DC development has been either driver or application layer. I could definitely look through some Dreamshell/DC-Load code and learn, but there would be a learning curve and some downtime for me. If there is anyone else here who does have that kind of experience, I would like to humbly request stepping up for this piece of software... I definitely wouldn't mind working with you.
DaMadFiddler wrote:2. The iTunes-like desktop application. It connects to DCEmu for its hosted library+metadata and for any other linked features (user reviews, etc.), and can be used both to create both bootable Dreamcast discs and set up/manage SD cards for use by the loader.
This is where I see myself fitting in best during the initial phases. This is an endeavor I feel confident that I can lead. I would also like to suggest also incorporating DC-Tool functionality for Coder's Cable/BBA transfers to make the app also useful for developers. I actually just integrated this functionality into our Toolkit with Elysian Shadows.

I would like to write this piece of software in Qt with C++, as it's fast, multiplatform, and allows you to easily create and connect UI functionality to a software back-end. Someone else can also help make it look trendy while I write the back-end code. Using C/++ for this would also open the door for directly compiling in some of these tools, so that we don't have to maintain builds for every platform and invoke them externally.

I think that in order to finally burn/write this data to SD, we will need to have the DreamShell++ application to interface with (or at least know enough about it to know how to treat this data). However, there is no reason these two applications cannot be designed in parallel and fully integrated at the end. BBA/Coder's Cable functionality would also not rely on this (although they are admittedly more applicable to developers and homebrewers who are hardcore enough to own the hardware).
DaMadFiddler wrote:3. The database. Both of the applications and the downloads section of the new DCEmu (or whatever it's called) would be driven by this

I'd like to get to the point where we have a detailed enough project spec that I can start putting together the data on which the software would rely. I figure if I can get the ball rolling with assembling the underlying database, then it'll help boost efforts both on this and on the site redesign. I'm more than happy to deal with the long, tedious slog of data entry if it'll help lead to the software actually getting made.
I definitely believe this should be our starting point. I can't really begin the software back-end until I know how to connect to the DB, what fields we will have, what format(s) our images will be in, etc. I think we should start fleshing out the database fields/tables/architecture first...

I think it would also be in our best interest to somehow share this DB with the website, so that we aren't having to maintain two different databases to store data for the website's content and data for the app's content.
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5948
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Has thanked: 10 times
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by Christuserloeser »

GyroVorbis wrote:We are in a position to either make some drastic changes here and turn the Dreamcast into a very accessible, classic homebrew platform for many years to come, or we can take the easy route, make a few minor changes, keep going the way we are, and merely further postpone this scene's inevitable demise.
Why not do both? Take the easy route AND do the homebrew database (as that's what I am proposing)

My concern is whether we keep those in mind who are really new to scene, those without an SD card reader or without their Dreamcasts hooked up to the net. Anything we should do should work with just a barebones Dreamcast and a CD-R.

When I keep sounding like a broken record about Selfboot Inducer and Dream Inducer I am not referring to how things were in 2003 or whatever. I think the concept of what DMF proposed and bringing back the SBI archive is not mutually exclusive.
Insane homebrew collector.
User avatar
GyroVorbis
Elysian Shadows Developer
Elysian Shadows Developer
Posts: 1873
Joined: Mon Mar 22, 2004 4:55 pm
Location: #%^&*!!!11one Super Sonic
Has thanked: 79 times
Been thanked: 61 times
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by GyroVorbis »

Here's what I said in the staff forums... I'm just going to keep the conversation here. :lol:
me wrote:
Christuserloeser wrote:My concern with your proposal is whether you are thinking about those without an SD card reader or without their Dreamcasts hooked up to the net. If you're thinking about those new to the Dreamcast: those without all this stuff would be the people to think about.
If I understood the idea correctly, I believe he is already considering this by proposing the iTunes-style app. The baseline, newcomer, doesn't-know-anything-about-the-DC case would be just a DC with no extra hardware. These guys can still use the app to connect to the database, grab homebrew/emulators, and burn a disc that will boot up and be navigatable with the proposed Dreamshell++ app.
Christuserloeser wrote:I also wonder if we can somehow combine your idea with the good ol' SBInducer ? (yes I am a broken record) You can do almost anything with DreamInducer - granted it currently lacks BGM/SFX, a file browser and SD card support but that's nothing that can't be fixed. Other than that you're good to go. As for its appearance you're only limited by your Photoshop skills.
Plus it already did (almost) everything you proposed.
I hate to admit it, but I have never used DreamInducer of SBInducer... I have had a BBA for years and have just streamed things that way. If these pieces of software already have the desired functionality minus a few modifications, I agree that we should leverage them. They need to (at least) 1) be trendy and visually appealing 2) support browsing homebrew from disc 3) support browsing homebrew from SD-card 4) I would even like to say support browsing hombrew from PC via BBA/Coder's cable.
Christuserloeser wrote:Well, hm... there's no real need to really start from scratch. Let's just take a step back, look at what we got and evaluate:

- The forum's restructure turned out pretty good, it just came a bit too late. (Better late than never)
I don't know if anyone has mentioned redoing these forums or not yet... but actually "starting over" would be a terrible idea. There is sooooo much knowledge buried in these forums that I am constantly finding by doing a search. We can never get rid of this forum DB. It would also be a great way to drive all of the old members (who may return in the future) away. If we get a new URL and rebrand (which we totally should do), we should still keep these boards.
Christuserloeser wrote:- The Wiki is great, it just came a few years too late (again, better late...)
I'm not a web guy, so I don't really have much input on the matter of the site restructure, but we definitely need to architect a DB for the DC applications that can easily be connected to via DaMadFiddler's proposed iTunes-style piece of software.
User avatar
DaMadFiddler
Team Screamcast
Team Screamcast
Posts: 7953
Joined: Fri Feb 06, 2004 7:17 am
Location: San Francisco, CA
Has thanked: 0
Been thanked: 0
Contact:

Re: A new DC loader, and a larger idea to revitalize the sce

Post by DaMadFiddler »

Yeah, this thread touches on some things that I didn't think were really ready for public discussion yet. That's why I was surprised when it was merged with my previous (old, dead) thread in the public forums.

I sent a PM to |darc| about it, since the post was originally intended for a private staff discussion, to see if there's anything that should be removed now that it's public.

Anyway, I posted a more specific response in the staff forums just now, because it ties in specifically with other things that I don't think are ready to go public yet.
Post Reply