FourDO's debut!

4DO & Freedo, we have tried playing some 200 games on them - if you have a question we might be able to help!

Moderators: Devin, Bas, 3DOKid

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Sun Aug 14, 2011 7:38 pm

Thanks for the find! I have an initial fix up here http://www.fourdo.com/?p=69

Unfortunately, I don't have a copy of Need For Speed to try. Well, I can't find it yet. But I wouldn't be surprised if it still doesn't work. It's possible I need to initialize NVRAM in some specific format rather than all zero's.

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Mon Aug 15, 2011 3:56 am

NVRAM is working! Also, Need for Speed works for me now, but I noticed on your site someone else said it doesnt work. I think it's because I deleted the old NVRAM file before trying the new version. So now it works for me. I really don't want to re-download the old version to confirm this, but im sure that is the reason why.

EDIT: I just saw on your site the reason why. And it makes sense! I played Killing Time just before! heh.

Also, Is there plans for vsync or triple buffering for the video?

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Mon Aug 15, 2011 4:17 am

BryWI wrote:Also, Is there plans for vsync or triple buffering for the video?
Actually, I do triple buffering already! Yes, I wasted your machine memory without even asking. :) I do not do VSync, although I sure tried to. I was unable to find a way to accomplish this without resorting to DirectX or OpenGL. Not that I have anything against either of those, I just hadn't decided to commit to one or the other (I'm currently leaning towards OpenGL and OpenAL). When I get hardware graphics going, VSync will be easy to add in.

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Mon Aug 15, 2011 4:42 am

Well no major bugs to report at this time. The only thing keeping me from using the emulator for a long period of time right now is the sound stuttering. I tried putting the emulator's priority to high in the task manager and it still does it. It seems to starts acting up within 2 to 3 mins of use. I haven't timed it thought. I assume it just needs more buffering for the sound? Once that is ironed out, there isnt any major annoyances left that I can think of.

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Mon Aug 15, 2011 8:37 pm

BryWI wrote:Well no major bugs to report at this time. The only thing keeping me from using the emulator for a long period of time right now is the sound stuttering. I tried putting the emulator's priority to high in the task manager and it still does it. It seems to starts acting up within 2 to 3 mins of use. I haven't timed it thought. I assume it just needs more buffering for the sound? Once that is ironed out, there isnt any major annoyances left that I can think of.
This has been troubling me as well. I rethought and augmented the audio behavior, and I believe I have it solved permanently. Next release will include this as well.

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Tue Aug 16, 2011 12:20 am

Can't wait! I'll put in some good play time to see if the sound stutter creeps up again on the new version when it's out.

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Wed Aug 17, 2011 2:33 am

Looks like there is a new version!

http://fourdo.com/

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Tue Aug 30, 2011 12:45 am

4DO 1.0.5.0 Alpha Released!

Features:
1.Joystick Support
2.Support for multiple bindings per control

read more about the release and download it at

www.fourdo.com

User avatar
3DO Experience
3DO ZONE ADMIN
Posts: 3686
Joined: Sun Jun 24, 2007 8:47 am
Location: U.S.A.

Post by 3DO Experience » Tue Aug 30, 2011 12:52 am

Sweetness!
"Wait. You don't have a bag of charcoal in your gaming room???"

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Tue Aug 30, 2011 1:27 am

The only problems I have with the emulator now are sound issues. Im not sure when he is going to fix them up but when that happens I will probably play quite a bit of 3do.

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Tue Aug 30, 2011 10:44 pm

4DO 1.0.5.1 Alpha Released!

Key Features:
1.Multiple player (controllers) support

Support for up to 6 players on one machine.

Read more about the release and download it at

http://www.fourdo.com

Mobius

Post by Mobius » Wed Aug 31, 2011 2:04 am

Finally had a chance to try this new emulator out. It runs my homebrew game I wrote earlier this year. Therefore, I like it. :)

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Fri Sep 02, 2011 6:42 am

Alrighty Mobius, you spilled the beans that you've done some homebrew, and now you have to put up with my incessant questions. My first conundrum is game identification. By the way, I would of course appreciate opinions from anyone else that would care to chime in.

I've been attempting to dream up a way to uniquely identify 3DO games. One reason is that when playing from CD, I obviously can't save the save data on the CD itself, so I have to save it somewhere on the file system, and I don't want games using each others' save states. Reasons could go on and on, but bladda blah blah blah.

Anyway, some of my concerns and requirements are:
* Needs to uniquely identify each game, including uniquely identifying each CD of multi-CD games like Daedalus Encounter.
* It must not resort to reading the entire CD image. For ISOs, this may be feasible, but when playing from CD, it would be drastically dumb.
* The unique identification should result in the same ID for a CD game as a game that's been converted to an ISO file. This eliminates the possibility of using file name as part of the identification.
* Different versions of the same game should produce different IDs.
* I would like to support uniquely identifying homebrew games if possible.

My best idea is to do an MD5 hash of some of data from the game. I know that there's various header information in the first sector (first 2k) of the CD, so I was going to give that a shot (I have to read CDs in full sectors anyway). I am expecting that some games might end up with the same MD5 hash with just one sector, so perhaps I'd ship 4DO with a database of games that require perusing extra sectors for a match. Anyway, would you have any comments on the sanity of this approach?

Homebrew throws a slight wrench in this. I'm expecting that it's probably not likely that the different versions of a homebrew game are going to differ on this first sector. I'm not really sure what would be a homebrewer's preference in this situation.

I could optionally throw any "unknown" game into the same bucket with an ID like 0. I don't particularly like this idea. That would mean if I use two different homebrew games, they share the same slot. I would hope that an MD5 of the first sector would also hold true for different homebrew (or unidentified) games. In the cases where they do match (like different minor builds of homebrew apps), hopefully nobody would really care.

If the "database" works spectacularly, that will simplify things. I'd say it's a pretty safe bet that new 3DO games won't be released at an unmanageable velocity!

This is one of the mechanisms I'm intending to have solid by Beta, since any changes to it may affect users' abilities to load previously saved states!

Mobius

Post by Mobius » Sat Sep 03, 2011 12:20 am

Are you able to read individual files instead of sectors? If so, then there are some good candidates. I would start with the Disc label. After that, LaunchMe is the main executable, so you can guarantee that it will be unique for all games (including different versions of a game). Then there's signatures and rom_tags, but I'm not sure those would be reliably unique in homebrew. If it exists, BannerScreen is also unique among retail releases, but might not be different for different releases of a game. Also, not all games have it.

So yeah, Disc label or LaunchMe. Start there.

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Sat Sep 03, 2011 12:35 am

Mobius wrote:After that, LaunchMe is the main executable, so you can guarantee that it will be unique for all games (including different versions of a game).
Really? How would it be unique? Is there a timestamp or something? I installed the SDK and got the samples compiling and such. I also remember the cd mastering process but not all the details, it was a while ago.

And yes, I could access the game's file system. Old FourDO had code for this I'll need to resurrect. Thanks for the idea.

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Thu Sep 08, 2011 4:42 am

4DO 1.0.6.3 Alpha Released!

Fixes:
1.Video rendering fix for several graphics cards (mainly NVidia)
2.Fixed bug where selecting the “None” void area background would not get loaded correctly on startup (it was showing up as “Bumps”).

Read more about it and download it from

http://www.fourdo.com

ssj
3DO ZERO USER
Posts: 5
Joined: Mon Sep 05, 2011 4:41 am

Post by ssj » Thu Sep 08, 2011 5:05 am

I can't get this to work, it just crashes everytime I run the executable on XP 32 bit.
I have both C++ 2010 Runtimes and .NET 4 installed, but still no luck at running it. Any ideas? Is there any way of running it in some sort of verbose mode so I can post a log that might help you debug the problem?

User avatar
BryWI
3DO ZERO USER
Posts: 1334
Joined: Sat Feb 03, 2007 8:16 pm
Location: Kenosha, WI, USA
Contact:

Post by BryWI » Fri Sep 09, 2011 12:44 am

You also have to have SlimDX installed which there is also a link to on fourdo.com downloads page. You need the SlimDX end user runtime for .NET 4.0

http://www.slimdx.org/download.php

if that doesn't fix it, please let me know.

Mobius

Post by Mobius » Sun Sep 11, 2011 5:13 pm

JohnnyDude wrote:
Mobius wrote:After that, LaunchMe is the main executable, so you can guarantee that it will be unique for all games (including different versions of a game).
Really? How would it be unique? Is there a timestamp or something? I installed the SDK and got the samples compiling and such. I also remember the cd mastering process but not all the details, it was a while ago.

And yes, I could access the game's file system. Old FourDO had code for this I'll need to resurrect. Thanks for the idea.
Sorry I didn't respond sooner, I've been on vacation.

LaunchMe is the program executable. So, the only way two would match is if they're literally the same program. Different versions of a game (such as with bug fixes) should have slightly different compiled code.

The only problem I could imagine here is if some company wrote a generic LaunchMe program that launches another executable on the disc and used that for every one of their games. But I can't imagine why they would do that. I'd be surprised if 3DO would have even approved a game made like that back in the day.

ssj
3DO ZERO USER
Posts: 5
Joined: Mon Sep 05, 2011 4:41 am

Post by ssj » Tue Sep 13, 2011 5:32 am

BryWI wrote:You also have to have SlimDX installed which there is also a link to on fourdo.com downloads page. You need the SlimDX end user runtime for .NET 4.0

http://www.slimdx.org/download.php

if that doesn't fix it, please let me know.
Yes, that did the trick! Thanks a lot.
Didn't notice the SlimDX requirement was there :oops:

cdoty
Bringer of game signing
Posts: 112
Joined: Thu Jan 18, 2007 5:42 pm
Location: Houston, TX
Contact:

Post by cdoty » Sun Sep 18, 2011 8:30 pm

I'm liking a lot of the features present in this emulator.

Any chance of either saving or displaying the output logs (or stdio) that were part of FreeDO?
Visit RasterSoft on facebook or visit the website.

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Sat Sep 24, 2011 9:08 pm

cdoty wrote:I'm liking a lot of the features present in this emulator.

Any chance of either saving or displaying the output logs (or stdio) that were part of FreeDO?
Thanks for the compliment!

Also, I currently output this stuff to the console. Try running 4DO from a command prompt and redirecting standard output to a text file:

Code: Select all

4DO.exe > debugoutput.txt
Later I should be able to dream up a better way for users to do this (through the UI). I haven't settled on exactly how. I'll probably introduce it if/when I also introduce generic 4DO debug logging.

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Sun Sep 25, 2011 5:49 pm

Mobius wrote:The only problem I could imagine here is if some company wrote a generic LaunchMe program that launches another executable on the disc and used that for every one of their games. But I can't imagine why they would do that. I'd be surprised if 3DO would have even approved a game made like that back in the day.
Well, it would appear that 3DO did a good job of enforcing uniqueness between publishers. An MD5 hash of the first sector (first 2k, which containts things like "company name") seems to be enough to uniquely identify 99% of games, including all samplers, 3DO magazine CDs, and adult games. At least one of the offending games (Starblade US vs JP) introduces a difference in the second sector, so merely sectors 1 and 2 may suffice.

The US and EU varieties of games result in there being several dozen games that report themselves to be identical according to the MD5 hash. I've been going through each of these and finding that the games are actually nearly identical. The only difference in these is the file size of the ISO (neither US or EU will be larger all the time), but the extra bytes in the larger of the two ISO's is always zero. So, these games seem to still truly be identical. However, if someone happens to know that I'm missing some difference in the EU vs US titles, I'd like to know.

User avatar
JohnnyDude
3DO ZERO USER
Posts: 261
Joined: Thu Nov 15, 2007 12:56 am

Post by JohnnyDude » Thu Sep 29, 2011 4:34 am

Analysis complete. It looks like an MD5 of the first two sectors (first 4k) is what I'll be starting with!

There was in fact only one game that prevented me from using merely the first sector. Not even the multi-CD games were a problem. All titles were unique and distinguishable except for one miscreant in the mix. Just one! One out of all the games, samplers, multimedia, and even the adult titles.

That game is Starblade. The Japanese and US releases of the game differ starting at byte number 2121. Naturally, I realize that this will forever tarnish the reputation of the title. I'm sure you are now itching to dig out your hard copy of the game and destroy it; this is an understandable reaction.

Anyway, this will allow me to provide unique save states per game when playing from CD and also to share save states when playing from CD or ISO format. I'm glad it turned out to be this easy!

Post Reply