1.1.2.1 Great release

General forum for 4DO
BryWI
Posts: 154
Joined: Thu Oct 27, 2011 11:35 pm

Re: 1.1.2.1 Great release

Postby BryWI » Sun Feb 05, 2012 10:35 pm

OK the topic is jumping a bit in here... :) I found out what happens on the emulator on disc change. There was game guru codes to unlock all scenes, and there i later found out that there is a code for the game on gamefaqs to unlock all the scenes too.

Yellow words come up on the screen that say please insert disc 2. I use a virtual disc drive so I had to mount the disc and then I selected the drive again in the emulator. It reset and then after the disc 2 splash screen, the game started playing where I left off on disc 1. I can't be sure 100% if this is how it goes for all games on 3do, but I remember swaping game discs like that on a real 3do and the console reset itself. It wasn't a multi-disc game though. I was just switching games. I really don't want to dig out my 3do again for the second time in 4 days to verify this though. But yeah, minus the freeze, the game would be playable in 4DO.
CurlyPaul
Posts: 8
Joined: Sat Feb 04, 2012 9:24 pm

Re: 1.1.2.1 Great release

Postby CurlyPaul » Sun Feb 05, 2012 11:09 pm

Awesome, thanks for checking that out for me :D
Johnny
Site Admin
Posts: 119
Joined: Thu Oct 27, 2011 1:50 pm

Re: 1.1.2.1 Great release

Postby Johnny » Mon Feb 06, 2012 4:19 am

BryWI wrote:Yellow words come up on the screen that say please insert disc 2. I use a virtual disc drive so I had to mount the disc and then I selected the drive again in the emulator. It reset and then after the disc 2 splash screen, the game started playing where I left off on disc 1.


Uh oh. This might be a slight problem. Did the game automatically reset itself? If so, what does 4DO say the "Game ID" is? I'm concerned it will say "Daedalus Encounter - Episode 1 - Nanpasen no Alien (Disc 1 of 4)". If so, then the save states (F5) aren't going to save to the correct file names.
Johnny
Site Admin
Posts: 119
Joined: Thu Oct 27, 2011 1:50 pm

Re: 1.1.2.1 Great release

Postby Johnny » Mon Feb 06, 2012 4:28 am

CurlyPaul wrote:I would love to get into the brains of an emulator. I've been coding my whole life but this is something that is pretty new to me. I've only had a quick look through the freeDo source, and it doesn't immediately make much sense to me. I'll try and find some time this week to get into the tech docs and the code, and see if I can find this bug.

I notice on the 3DO Zero boards there is some talk of homebrew development, what with the disk encryption being cracked just lately. Is there a site where I could d'load an SDK and some examples? Might be easier to figure out the emulator if I had a 'Hello World' program to run in it.


Well, installing the 3DO SDK is a big can of worms. By "big", I mean huge. It only works with Macintosh 7.5.1. And, unfortunately, the only way to install this operating system is on a macintosh-specific virtual machine (like Basilisk). I've got it working, though and could plow through it with you, but it would take at least a weekend just to do that. So I don't recommend going this route at first or else you'll get burnt out quick!

For some real, hardcore work on the FreeDO core, I'm pretty certain this type of work will be necessary. For example, some tiny homebrew test applications for various graphics rendering would definitely be better than flopping through a bunch of games to try to verify visually that changes worked.

Well, anyhow, either way, the first step would be to try checking out the code and getting it built. If you want help, send me a PM in the forums and I could get in touch via email.
Johnny
Site Admin
Posts: 119
Joined: Thu Oct 27, 2011 1:50 pm

Re: 1.1.2.1 Great release

Postby Johnny » Mon Feb 06, 2012 4:35 am

CurlyPaul wrote:I'd like to help test the compatibility of the games. Can I just edit the wiki pages myself, or should I report in the forum for somebody to check what I find?


Sure! You'll need to register, but you could edit the Wiki. I think registration may be manual right now due to some ad bandits wrecking it recently. I just added Quarantine. Hooray!
CurlyPaul
Posts: 8
Joined: Sat Feb 04, 2012 9:24 pm

Re: 1.1.2.1 Great release

Postby CurlyPaul » Mon Feb 06, 2012 11:00 am

Already registered and added some compatibility notes to the wiki.

I think I'll skip the SDk for now and try and get hold of some homebrew demos to help with testing, sounds like the easier route for now.

I got the trunk of the source code and it built straight out, which is cool.

I'm slowly downloading Night Trap atm, when it arrives I'll push through to disk 2 and see what happens. I can get you a save state from the end of disk one if you like.
Johnny
Site Admin
Posts: 119
Joined: Thu Oct 27, 2011 1:50 pm

Re: 1.1.2.1 Great release

Postby Johnny » Wed Feb 08, 2012 5:51 am

Well, I'm unsure how much steam you'll have to look into any core emulation problems, but I figure a good place to start your understanding is GameConsole.cs.

In this file you'll see a "Worker Thread" starting at line 599. It's responsible for processing one "frame" at a time. A "frame" is just what the core machine thinks is 1/60th of a second. This involves a single call to the FreeDO core (DoExecuteFrameMultitask) which will process a "frame". After the frame is done, 4DO reads whatever was produced in the video memory and processes whatever was returned from audio processing.

So, that DoExecuteFrameTask hits the main entry point into the core (which is in C++). If you were to follow it as it was running, you'd see it hit line 254 in _3do_sys.cpp:
FREEDOCORE_API void* __stdcall _freedo_Interface(int procedure, void *datum)

So, to tie this together with that Daedalus encounter problem, the 4DO interface is ultimately unaware of any problems. It's just calling down into the FreeDO core to do each frame. If you were to fix the problem, you'd find whatever behavior in the core code isn't behaving correctly. Any of this would be helped if you have any low level experience. There would be a lot of ways to go about it...

One easier way you may be able to narrowing down the problem is to start stubbing out features in the core to see if it gets past the crash. For example, If you put some early "return" statements in the common functions in DSP.cpp, you could rule out any audio processing. You would also hear no audio from 4DO, obviously.

The hardest will be to debug the game code (in disassembly) as it's happening and figure out what's going wrong. There's no debugger for this, though. It's a complicated idea and would be slow, but with enough effort would ultimately be most likely to find the right solution. If you felt like trying I could lay out the basics.
BryWI
Posts: 154
Joined: Thu Oct 27, 2011 11:35 pm

Re: 1.1.2.1 Great release

Postby BryWI » Mon Apr 09, 2012 9:04 pm

I believe that Daedalus Encounter should be fixed in the latest version...

EDIT: I just found out, the scene 5 freeze still exists.
Viktor
Posts: 41
Joined: Wed Feb 29, 2012 3:47 pm

Re: 1.1.2.1 Great release

Postby Viktor » Sat Apr 14, 2012 9:26 am

BryWI wrote:I believe that Daedalus Encounter should be fixed in the latest version...

EDIT: I just found out, the scene 5 freeze still exists.


Yes, in 1.2.0.1 fixed only some video freezes, scene 5 and 6 freezes wiil be fixed in next release.
BryWI
Posts: 154
Joined: Thu Oct 27, 2011 11:35 pm

Re: 1.1.2.1 Great release

Postby BryWI » Thu Apr 19, 2012 11:02 pm

Confirmed. Freezes mentioned in this thread are fixed! Daedalus Encounter is now playable in version 1.2.0.2!

Return to “General Forum”

Who is online

Users browsing this forum: No registered users and 18 guests