CodeWalrus

Development => Consoles => Topic started by: gameblabla on September 16, 2015, 02:13:47 AM

Title: 3DO games and homebrew
Post by: gameblabla on September 16, 2015, 02:13:47 AM
EDIT by DJ: Topic split from https://codewalr.us/index.php?topic=670.msg22107#msg22107

Quote from: DJ Omnimaga on September 16, 2015, 01:24:29 AM
Also I didn't know you made games for the 3DO. I think there are only 20 official games available for it but I didn't know that console had any homebrew programmers. EDIT Actually it's the Virtual Boy that only had 20 games. The 3DO seems to have many more, except that I heard that only one or two exclusives were good.
Well, i did 3DO homebrew games since 2013, i even ported a CHIP8 emulator to it. (http://3do.cdinteractive.co.uk/viewtopic.php?f=21&t=3647&sid=4c9d580533bc77b394e5e1c3604cfc4c)
3DO has many games : Sure, not all of them are good but there are some good games on it.
The 3DO, unlike the Sega Saturn and PSX, has no copy protection and it's protection for unlicensed games
has since been cracked. (it was a 256-bits RSA key)

A list  :
Return Fire (my favorite), Road Rash (best road rash), Lucienne's Quest, Samurai Showdown (so good SNK cancelled future ports of Fatal Fury for 3DO),  Super Street Fighter 2 Turbo, Starfighter, Wolfenstein 3D, Bust-A-Move etc...
That's far than "one or two exclusives were good" in my opinion.

(Hopefully my post was not too off-topic)
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 16, 2015, 02:20:46 AM
Nice. I should take a look at those at one point. I should also check if I can find a 3DO for cheap. They are close to $100 here IIRC.

Maybe we could make a 3DO topic :P

Also the thing is that Road Rash, Samurai Showdown, Street Fighter 2, Wolfeinstein 3D and Bust-a-Move were not exclusives. AN exclusive game is when that game only gets released on 1 single console (for example, Mario Kart 8 with the Wii U and Halo for Xbox). The games above were also available on multiple other consoles that were far more popular (SNES and Sega Genesis, most notably). Games that were only available on the 3DO and nothing else but still were good were rather rare. The lack of enough good 3DO-only games, along with the high price, are what caused the 3DO to sell poorly. It definitively had potential, though, because it had some impressive-looking games even if they were often available on other consoles.
Title: Re: 3DO games and homebrew
Post by: Lionel Debroux on September 16, 2015, 05:58:12 AM
QuoteThe 3DO, unlike the Sega Saturn and PSX, has no copy protection and it's protection for unlicensed games has since been cracked. (it was a 256-bits RSA key)
The two 3DO RSA keys were 512 bits. We sieved them on RSALS.
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 16, 2015, 07:44:46 AM
Woah I didn't know they used RSA keys back then. Wasn't the 3DO released in 1993?
Title: Re: 3DO games and homebrew
Post by: novenary on September 16, 2015, 09:00:56 AM
Apparently yes. I guess back then 512bit keys were about as uncrackable as 2048bit keys are nowadays.
Title: Re: 3DO games and homebrew
Post by: Yuki on September 16, 2015, 04:49:55 PM
All keys are crackable, given enough time. RSA keys relies on the fact it takes a ridiculously long time to crack and people don't want to spend years and years to do so. A few years ago, it probably would have taken a century to crack a RSA-512 key, nowadays, thanks to our computers being more powerful, it's a matter of a few months.
Title: Re: 3DO games and homebrew
Post by: novenary on September 16, 2015, 04:55:44 PM
Actually if you have a few machines you can crack a 512 bit key in days (the CSE app signing key was cracked very quickly).
Title: Re: 3DO games and homebrew
Post by: gameblabla on September 16, 2015, 05:19:27 PM
Quote from: DJ Omnimaga on September 16, 2015, 02:20:46 AM
The lack of enough good 3DO-only games, along with the high price, are what caused the 3DO to sell poorly. It definitively had potential, though, because it had some impressive-looking games even if they were often available on other consoles.
The 3DO Goldstar was much cheaper than the Panasonic ones though.
So cheap in fact that Goldstar at one point sold it for 199$ and lost 100$ on each unit sold !
The 3DO failed mostly because not enough people knew it,
though i agree that the lack of exclusives did not pushed people to buy it.

For example, the Sega CD was much ctier than the 3DO.
It was quite expensive too but despite this, Sega managed to sold 3x times as much units as the 3DO.

Quote
Also the thing is that Road Rash, Samurai Showdown, Street Fighter 2, Wolfeinstein 3D and Bust-a-Move were not exclusives. AN exclusive game is when that game only gets released on 1 single console (for example, Mario Kart 8 with the Wii U and Halo for Xbox). The games above were also available on multiple other consoles that were far more popular (SNES and Sega Genesis, most notably)
The few exclusives by 3DO were not all good, i agree.
Blade Force looks awesome but its gameplay is... hmm.. i don't get it.
Captain Quazar (released very late in the 3DO's lifespan) plays pretty good from what i've seen but it looks like a SNES game.

Also, some games such as Road Rash, StarFighter, Need of Speed, The Horde, Po'Ed and Gex
were released first on 3DO before they were ported to other formats like the PSX and Saturn after the 3DO's demise.

In my opinon, this was a much better attempt to the video game market than the Virtual Boy was.

As for homebrew games on 3DO, i'm pretty much the only guy developping for it.
My best 3DO homebrew game is probably "Unlucky Pony" (http://3do.cdinteractive.co.uk/viewtopic.php?f=21&t=3217&sid=7a161b9f9de4987d38201a3485093565). (the sega cd port i did was not as good as this one)
Title: Re: 3DO games and homebrew
Post by: Lionel Debroux on September 16, 2015, 05:22:47 PM
Yeah, factoring 512-bit RSA keys requires low computing effort nowadays, which is why TI switched to 2048-bit keys. No real need to set up an automatic work distribution system for a task that small: copying executables to multiple machines, manually triggering sieving jobs, and copying the output (raw relations) to the post-processing machine isn't that cumbersome, especially if using SaltStack / Ansible-type management infrastructure for running operations in parallel on a cluster of nodes, or leveraging e.g. Docker containers.

For larger tasks, a job server such as Gearman is an option when using a well-controlled set of reliable workers; for handling highly distributed, unreliable workers, BOINC (RSALS, NFS@Home, Tom Ritter's cloud-and-control) is the obvious solution.

Brute-forcing Nspire OS encryption keys is even easier than factoring 512-bit RSA keys, by a large margin. But that's another, even more off-topic story.
Title: Re: 3DO games and homebrew
Post by: novenary on September 16, 2015, 05:31:45 PM
Quote from: Lionel Debroux on September 16, 2015, 05:22:47 PM
Brute-forcing Nspire OS encryption keys is even easier than factoring 512-bit RSA keys, by a large margin. But that's another, even more off-topic story.
Now you got me curious. Would you mind expanding a bit on IRC or in a new thread ?
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 16, 2015, 05:59:18 PM
Yeah it would be a nice idea, unless it puts the Nspire at even higher risks of more lockdowns (IIRC that's why most Ndless development is no longer discussed publicly on forums, right?)

Anyway I'm as surprised that the 3DO even used RSA keys in the first place. I was sure that those started being used in the early 2000's or so.
Title: Re: 3DO games and homebrew
Post by: Yuki on September 16, 2015, 07:31:39 PM
Quote from: DJ Omnimaga on September 16, 2015, 05:59:18 PM
Anyway I'm as surprised that the 3DO even used RSA keys in the first place. I was sure that those started being used in the early 2000's or so.
You're kind of right. RSA was first described in 1977 and patented in 1983, then the patent expired in 2000. And just like MP3 and GIF, everyone must have started using it once the patent expired.
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 16, 2015, 08:10:19 PM
Ah right, patents. I remember someone claiming that we were not allowed to use MP3-based OST in our indie games before.
Title: Re: 3DO games and homebrew
Post by: Yuki on September 16, 2015, 09:04:59 PM
The MP3 patents are weird (https://en.wikipedia.org/wiki/MP3#Licensing.2C_ownership_and_legislation) and there's a ton of them, some of them actively enforced. The last patent needed to make a MP3 decoder expires in 2012, or maybe it's next week, or even in 2017?

OGG Vorbis is way better, anyway.
Title: Re: 3DO games and homebrew
Post by: novenary on September 16, 2015, 09:25:24 PM
Quote from: Juju on September 16, 2015, 09:04:59 PM
OGG Vorbis is way better, anyway.
Yeah, it's a great compromise between lossless and high loss formats like mp3, since it allows higher bitrate and better compression ratios with better quality, and it's much smaller than flac.
Title: Re: 3DO games and homebrew
Post by: Yuki on September 16, 2015, 09:30:59 PM
Quote from: Streetwalrus on September 16, 2015, 09:25:24 PM
Quote from: Juju on September 16, 2015, 09:04:59 PM
OGG Vorbis is way better, anyway.
Yeah, it's a great compromise between lossless and high loss formats like mp3, since it allows higher bitrate and better compression ratios with better quality, and it's much smaller than flac.
Plus it's free and not patent-encumbered!
Title: Re: 3DO games and homebrew
Post by: novenary on September 16, 2015, 09:32:18 PM
Yes, which is the best part about it. :D

Also lol, we should stop derailing a derailed thread. :P
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 17, 2015, 01:39:31 AM
That reminds me, I am curious about which languages the 3DO support and if something like WalrusRPG would run on it? Would it need to be loaded onto a CD-ROM?
Title: Re: 3DO games and homebrew
Post by: novenary on September 17, 2015, 09:10:54 AM
It should be able to run, as long as a C++11 compiler is available (iirc not).
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 17, 2015, 03:57:12 PM
I see. That said, I guess we would need to check the 3DO forums and investigate. Maybe @gameblabla might know more, though?
Title: Re: 3DO games and homebrew
Post by: gameblabla on September 17, 2015, 04:58:39 PM
The only compiler available for 3DO does support C++ but not C++11.
I told StreetWalrus that using C++11 was not a good idea for portability but they made their decision...
For C++11, i would need to compile at least GCC 4.7 and target arm-coff.
The only other alternative to C/C++ is ARM Assembly and it's a slightly higher revision than the Nspire. (Armv6 vs Arm5vte)

There are still problems with the graphics libraries too.
For example, reusing existant graphics does not work with them, argh...
I think the guy who made the Space Invaders clone for 3DO using my examples found a workaround though...
EDIT: He did not...

If all the mentioned issues are fixed then WalrusRPG should be possible, yes.
The 3DO has 2MB of RAM and 1MB of Video RAM and a resolution of 320x240 for NTSC and 320x288 for PAL.
Hopefully, WalrusRPG will be light on resources...
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 17, 2015, 05:01:11 PM
I didn't know there was a difference between C++ and C++11. I think it's best to keep things portable, but I guess it's their call.

And 2 MB of RAM is impressive for the console's time.
Title: Re: 3DO games and homebrew
Post by: Lionel Debroux on September 17, 2015, 05:14:53 PM
C++11 was a major, much-needed upgrade from C++98/03, and made C++ a much better language. Likewise, the next major upgrade (C++17) shall make C++ a much better language (likely modules, possibly compile-time reflection / introspection, etc.).
C++11 support coverage in GCC was already acceptable in GCC 4.6, which I started leveraging for my main project at work in late 2011; GCC 4.7 added support for e.g. non-static member initializers and several other niceties. Of course, four years later, GCC 4.7 is hopelessly outdated and unmaintained.
Title: Re: 3DO games and homebrew
Post by: novenary on September 17, 2015, 07:37:54 PM
Quote from: gameblabla on September 17, 2015, 04:58:39 PM
I told StreetWalrus that using C++11 was not a good idea for portability but they made their decision...
We switched over to c++11 months ago, we're not going to go back on that as we already use a number of its features (which makes development much more comfortable). Our primary target is the Nspire and bare metal ARM toolchains are well supported (GCC 5.2 is available). Our other targets for now are desktop OS's supported by SFML and possibly the GameCube and Wii for which GCC 4.8 is available (I'll look into building a more recent toolchain though).

Quote from: gameblabla on September 17, 2015, 04:58:39 PM
The 3DO has 2MB of RAM and 1MB of Video RAM.
That's way too small. We don't use a lot of memory at the moment but it's expected to skyrocket once we add game content. We rolled our own "technologies" for this game which are mostly suited for the Nspire, and it involves memory-hungry things like decompressing data and storing large maps and textures in memory. If it ends up fitting then great, but I don't expect it to.
Title: Re: 3DO games and homebrew
Post by: Dream of Omnimaga on September 17, 2015, 08:35:39 PM
It probably depends how advanced your engine is. Chrono Trigger and Final Fantasy III for the SNES ran on a 128 KB of RAM console, but the cartridges had extra chips inside and the SNES had video memory.