[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Test: the cycle
On 8 feb, 19:00, BLuRry <brendan.rob...@gmail.com> wrote:
> Antoine,
>
> I agree a thousand times over on this point. I really want things like the original Flobynoid disk to boot up without requiring a special flobynoid disk to use it. But putting cycle-accurate emulation aside, I like the idea of augmented emulation also. Why not use emulation to enhance the original experience (optionally)? For example, it's pretty easy to trap routines used by games to render sprites/tiles and NOP those in the apple side while providing an alternative drawing engine in the host layer. Think of it like what the kiddos are doing to Minecraft and other games with install-able mods. Could be funny to play Airheart modded to look like Typhoon Thompson (or at least have the music -- the Atari ST used an AY chip and the mockingboard is the same).
>
> There are other games that would play better if only they could have faster drawing routines not possible back then. I recently saw a modded starfox (super nintendo) cartridge that was overclocked. The game was unchanged, things still happened at the same pace. But the framerate was AMAZING.
>
> -Brendan
I can't refrain myself from commenting... and I'm also a bit blushed
by Antoine's comments ;-).
Cycle-accuracy is very hard... it took a lot of of time to tackle this
issue in a generic and efficient way. I finally arrived at a scheduler
that considers these things:
* most CPU emulations have instruction-accuracy, not cycle accuracy.
The scheduler and framework take that into account.
* the scheduler is capable of altering the number of pending CPU
cycles on the fly (for example, when a new event is inserted right at
the top).
* the scheduler uses a master clock as timing base, and it possible to
specify a (floating point) CPU clock multiplier. This is useful for
implementing acceleration in a transparent way on all systems. And you
have absolutely *NO IDEA* how hard this was arghhhh... checking all
the math, all the floating point to integer roundings are correct, all
the many cases... arghhh, it is so good to do a catharsis on that!!! :-
D
So, why is this so useful? In order to implement the Apple II video
timing, I can just tell the scheduler "notify me in 17030" clocks. It
works wonders and should make things very easy on other systems.
In regard to Brendan's comment, I must say I'm a purist. I don't like
emulator extensions, I like the beauty of the original "perfection"
hehe. But I have some good news for Bredan: as OpenEmulator is based
on a component framework, you can just define your additional
components and map them wherever you want. If the component is
standard, there's not even a need to write code, just modify the XML.
Last comment: in OpenEmulator the Apple II emulations emulate only the
original, no extra features. But in case there is consensus, I propose
to add the "Apple IIcomp.sys.apple" :-).
With the best wishes,
Marc.-