Page 1 of 1

Ice Ice Baby ;)

Posted: Thu Dec 30, 2010 4:16 pm
by PeteD
Hey,

I was digging around old hard drives and PCs a couple of days ago and came across some source code which after an hour or so struggle I got compiling with a new version of dev studio..

Maybe you can guess from the topic title what it is but here's a vid to explain it better..

VID

Might be some useful stuff to help in Cdifan's current direction with the emulation.. Also shows those clever know it all folk on certain forums that it wasn't a one trick pony ;)


Pete

Posted: Thu Dec 30, 2010 4:33 pm
by K1ngArth3r
Excellent nice find... :-) I wonder what the levels of compatibility are for this emulator

Posted: Thu Dec 30, 2010 4:40 pm
by PeteD
After having a quick run through a few game ISOs I'd got I can say the compatibility isn't (wasn't) great although from what I remember from all the way back then there were only a couple of significant things stopping it running a lot more games.

The main one I've come across today (and remember fighting at the time) is all to do with the multi process stuff (loading a process from another one, running it and then Exiting, a lot of games did this type of stuff to play the bumper or their own intro anims). That might not be that hard to fix as looking at it with fresh eyes I can see some mistakes in how I handled stuff. There's also a couple of screen drawing problems eg Flashback runs great but tends to draw crap all over the screen outside of the game/movie area (probably should just be not displaying screen there and I'm ignoring an LCT instruction or something).

I'll probably have a play about with updating it myself first then decide what to do with it later.


Pete

Posted: Sat Jan 01, 2011 3:27 pm
by PeteD
From further testing I've come to the conclusion that this code I found wasn't the latest version.

I've run a few ISOs on it and things that were working (Micro Machines, Tennis, Striker) now don't.. Also Defender of the Crown works fine BUT for some reason the screen is turned off :) A quick change of an FCT instruction in the debugger brings it back to fully working order..

Odd. I'll have to investigate further.


Pete

Re: Ice Ice Baby ;)

Posted: Sun Jan 02, 2011 11:00 am
by cdifan
Very nice find Pete! Congrats.
PeteD wrote:Might be some useful stuff to help in Cdifan's current direction with the emulation...
I have some doubts about that, but we'll see.
PeteD wrote:The main [problem] I've come across today (and remember fighting at the time) is all to do with the multi process stuff (loading a process from another one, running it and then Exiting, a lot of games did this type of stuff to play the bumper or their own intro anims).
That's been one of my reasons for selecting the ROMless emulation approach of CD-i Emulator.
PeteD wrote:That might not be that hard to fix as looking at it with fresh eyes I can see some mistakes in how I handled stuff.
Are you handling per-process path tables and proper sharing and stuff? And how about things like D_MinPty and D_MaxAge manipulation, and video interrupt interception with F$Event hooking?

Re: Ice Ice Baby ;)

Posted: Sun Jan 02, 2011 11:24 am
by PeteD
cdifan wrote:
PeteD wrote:Might be some useful stuff to help in Cdifan's current direction with the emulation...
I have some doubts about that, but we'll see.
lol, I'm not forcing it on you.

cdifan wrote:
PeteD wrote:That might not be that hard to fix as looking at it with fresh eyes I can see some mistakes in how I handled stuff.
Are you handling per-process path tables and proper sharing and stuff? And how about things like D_MinPty and D_MaxAge manipulation, and video interrupt interception with F$Event hooking?
Per process data, yes. D_* No. There is some attempt at priorities and sharing but this stuff is amongst the info I didn't have at the time. For example F$SetSys in my code does pretty much nothing..

After a bit of debugging last night I think most of the process launching/sharing/exiting etc is working (by luck more than anything) apart from I'm screwing up what's being pushed back onto the stack so things will boot, fork another process, exit from that one then end up executing random ram. Weird how some of it still all (seems to) work fine though. Been way too long for me to remember wtf is going on really.

Having said that, the process handling could all do with a rewrite now that the info is available and I can probably fill some gaps in some other things but I doubt it's really worth it so I think it's best to mark CD-ice as permanently dead. I've got waaaaaaay too many other things to be working on instead of a 10 year old emu :)


Pete

Posted: Sun Jan 02, 2011 3:43 pm
by Bas
I think most of us marked CD-Ice being dead for years, but it is the first time you show more of it than just Rise of The Robots. And it's not that you can download it anymore, right? Maybe you can share the code if you decide to stop it permanently.

It is in my opinion a big pity CD-i doesn't share more dedication, the format apparently is too obscure, too uninteresting. The working emulators are at a reasonable working state, but it can nowhere replace a real CD-i player. I wish I could give you a million dollar to create a full working CD-i Emulator, perhaps that would stop you from calling CD-Ice permanently dead :D

Posted: Sun Jan 02, 2011 4:18 pm
by PeteD
Bas wrote:I think most of us marked CD-Ice being dead for years, but it is the first time you show more of it than just Rise of The Robots. And it's not that you can download it anymore, right? Maybe you can share the code if you decide to stop it permanently.
Yeah, 10 years and I'm not surprised ;) I didn't (don't) really have any intention of resuming development but as I am intending on coding a new CD-i game I thought why not use my own emulator to develop it on. I think until the latest beta version cdifan's emu didn't run RotR and as I'd be using the same code as a base it wasn't going to be very helpful. Happy to see Rise now runs great on it :)

My current dabbling with the emu is just to check how compatible it is (was), just out of interest because I couldn't remember. As you say, only the RotR crippled version was ever released. btw, that just checks which file is the "boot" file on the cd and if it's not rise_cdi it wont run ;)


Pete