Lyon
Moderator: Terryn
- Smilymzx
- I hope she made lotsa spaghetti!
- Posts: 182
- Joined: Sat May 20, 2006 2:58 am
- Location: LocacoLocacoL :LoL!
Re: Lyon
Hi there, Seventh Shade. Long time no see!Svnthshd wrote:Story of the vast majority of lives.
Back on topic: Saxxon, Please do not give up your fantastic work on Roton, It's pretty great stuff like this that's rarely seen for me!!!
Re: Lyon
I won't give up on it :) With a project that's so exciting and has so much going for it, there's no reason to abandon it. I feel I've gotten the framework right where it needs to be in order to do it "right". Every time I get far into the project I shoot myself in the foot due to an infrastructure decision. You've no idea how many times it's been rebuilt from nearly-scratch..
Re: Lyon
I'd encourage you to finish your easyflash version of blacksilver, but my allegiance lives here.
*POW* *CLANK* *PING*
Re: Lyon
That's technically already finished. :] Just lacks an intro and docs for a proper "scene" release.Commodore wrote:I'd encourage you to finish your easyflash version of blacksilver, but my allegiance lives here.
Re: Lyon
Since there's going to be a ZZT book out (and the author has linked Lyon on her website) I think it would be best to get this wrapped up in short order. We're going to make the deadline the release of the book for what would be considered a "final" release.
Although the linked one on the first post is "close enough" for 99% of games. It's only missing a few obscure bugs anyhow.
Although the linked one on the first post is "close enough" for 99% of games. It's only missing a few obscure bugs anyhow.
- Smilymzx
- I hope she made lotsa spaghetti!
- Posts: 182
- Joined: Sat May 20, 2006 2:58 am
- Location: LocacoLocacoL :LoL!
Re: Lyon
And now a new, seperate, and incomplete project (right now, as in WIP) called Roton2/Lyon2 appears in Google Code, With promises to implent things differently than the original project...
Just a piece of info for anyone working or looking at the project...
Just a piece of info for anyone working or looking at the project...
Re: Lyon
You are observant, SmileyMZX :]
I have separated it; the framework that is currently in the WIP is not adequate. I can use the frontend stuff, but the backend is really lacking. Sometimes taking a step away brings fresh ideas to the table.
I'm really, really ashamed of how Roton originally turned out (internally). I had a bit of a polar shift in mentality this year (and I'll save the real talk). This spills over into code. I wrote Roton angrily and hastily. It lacks serenity.
(That sounds stupid doesn't it? But the method in which the code is written has to be channeled through my other troubled thoughts.)
I have separated it; the framework that is currently in the WIP is not adequate. I can use the frontend stuff, but the backend is really lacking. Sometimes taking a step away brings fresh ideas to the table.
I'm really, really ashamed of how Roton originally turned out (internally). I had a bit of a polar shift in mentality this year (and I'll save the real talk). This spills over into code. I wrote Roton angrily and hastily. It lacks serenity.
(That sounds stupid doesn't it? But the method in which the code is written has to be channeled through my other troubled thoughts.)
Re: Lyon
This is like.. attempt 10 or something. Hell, I don't know. That book coming out gives me more inspiration to work on it.
Re: Lyon
I'm putting in an INT 21h service provider class. Am I working on too low of a level? :x I figured out ZZT's actual timing mechanism and it relies on constantly calling INT 21h,2C to query the system time in 100ths of a second. There's also the way it writes to PC speaker ports. Should I actually simulate the way it creates drums or stick with the recordings I've got?
Just some crazy things on my mind.
Just some crazy things on my mind.
Re: Lyon
Timing is good, but aren't the problems about speed mostly on the rendering end? Also I'm unclear about this class. Does it emulate dos interrupts? It is something that would affect portability?
No way it could be further split? That is, a separate library for the sound, so one could choose to use an emulated sound, or the wavs, or to roll their own?
Anyway, I'm all for more accurate, and if possible, tweak-able sound. PC speakers sound different from computer to computer.
No way it could be further split? That is, a separate library for the sound, so one could choose to use an emulated sound, or the wavs, or to roll their own?
Anyway, I'm all for more accurate, and if possible, tweak-able sound. PC speakers sound different from computer to computer.
*POW* *CLANK* *PING*
Re: Lyon
Emulation is encapsulated entirely within software. This means, no matter what I do, if it's not touching the system in any platform-specific way, it can be ported.
Emulating INT 21,2C (timer) is as simple as querying the current system time and converting it to the return values expected in CH/CL/DH/DL. This is done in a cross-platform way: by using the built-in DateTime.Now property.
Emulating PC speaker is as easy as converting the register into a frequency that some external sound class can use.
None of these INT requests can actually go through to the system because the OS will not permit us to use these directly. And we don't need to if we can emulate the end result ourselves.
Image attached is the planned model. (Edit: Input is also where Filesystem/Audio/Video reside.)
Emulating INT 21,2C (timer) is as simple as querying the current system time and converting it to the return values expected in CH/CL/DH/DL. This is done in a cross-platform way: by using the built-in DateTime.Now property.
Emulating PC speaker is as easy as converting the register into a frequency that some external sound class can use.
None of these INT requests can actually go through to the system because the OS will not permit us to use these directly. And we don't need to if we can emulate the end result ourselves.
Image attached is the planned model. (Edit: Input is also where Filesystem/Audio/Video reside.)
Re: Lyon
I (finally) picked up a book on x86. Happened to find one at a discount bookstore I frequent. It actually covers all the extensions up through 80486. There's some opcodes I thought I understood that had some operations I wasn't aware of. This book is actually quite comprehensive (and heavy!) I've already learned a lot.
I also learned that there are a lot of functions in the previous Roton code that were actually done the correct way. They can be transplanted almost directly into the new code base. I'll be cherry picking the code that appears correct, and redoing the rest.
In addition, I'm also experimenting with WPF. There will be a separate client specifically for Windows (as Mono doesn't have plans for WPF) and might have additional functionality and performance benefits. I considered the use of Silverlight instead for the prospect of being a web application, but for some reason I can't get the Silverlight SDK to work. Visual Studio claims it needs to be installed. The installer claims it is already installed. Reinstalling doesn't resolve this issue.
I also learned that there are a lot of functions in the previous Roton code that were actually done the correct way. They can be transplanted almost directly into the new code base. I'll be cherry picking the code that appears correct, and redoing the rest.
In addition, I'm also experimenting with WPF. There will be a separate client specifically for Windows (as Mono doesn't have plans for WPF) and might have additional functionality and performance benefits. I considered the use of Silverlight instead for the prospect of being a web application, but for some reason I can't get the Silverlight SDK to work. Visual Studio claims it needs to be installed. The installer claims it is already installed. Reinstalling doesn't resolve this issue.