Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II Emulation » Steve ][ – A fast Apple II emulator
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Steve ][ – A fast Apple II emulator [message #397535] Fri, 07 August 2020 15:16 Go to next message
D Finnigan is currently offline  D Finnigan
Messages: 1154
Registered: October 2012
Karma: 0
Senior Member
Article found on
https://www.callapple.org/emulation/steve-a-fast-apple-ii-em ulator/

----------

An unexpected highlight at KansasFest 2020 was the introduction of a speedy,
new Apple II emulator by Tamas Rudnai, dubbed “Steve ][.” Written for macOS
Mojave and later, Steve ][ has a modern interface with many options and
works with the popular WOZ format.

According to Tamas, “Steve ][ tributes the two co-founders of Apple, Steve
Wozniak and Steve Jobs. Wozniak was the evil genius hardware designer and
inventor, while Jobs was the brilliant marketing and visionary person behind
the most successful company in computer history. Steve ][ lets you travel to
1977 and bring an Apple ][ back with you to 2020, adding 40 years of
technology enhancements to it. It speeds up the 1.023 MHz legacy hardware to
a 1.3 GHz modern computer. That is a 1300x speed increase thanks to some
clever emulation techniques, including memory handling tricks and branch
prediction optimizations to utilize the full power of a modern host
computer.” During his presentation, Tamas calculated that software which
would normally take four hours to run on the original Apple II would only
take 11 seconds on Steve ][.

What I found especially interesting was Tamas himself and the story of what
inspired him to write Steve ][, so I asked him to elaborate. Tamas replied,
“My father was a mechanical engineer, plumbing engineer, designing heating
and water supply system for large buildings. He bought an Apple ][ in the
1980s to speed up his work,” said Tamas Rudnai. “This was not easy because
Eastern Bloc countries were not allowed to buy American computers, so we
smuggled in a Taiwanese clone piece by piece from Germany. My father wrote
the software by himself and was able to reduce the time needed for a budget
calculation from three weeks to just three days. One iteration of that
calculation lasted three to four hours. I remember, he started the program
and then came to the kitchen for a lunch, waited my mom to finish cooking,
eat everything, had a nice coffee, then talking to us, and the program was
still running. When he passed away I found the old Apple ][ in the basement
and all of these memories rushed into my mind. I was really curious how long
would that take to run that software in modern hardware? You know, if that
Apple ][ was built today’s technology….”

Tamas continued, “Steve ][ is capable of emulating an Apple II, Apple II
Plus and Apple IIe, depending on which ROM is selected from the Config menu.
It includes a 64K memory expansion card emulation which is also works as a
16K Language Card and an 80-column video card. It fully supports GR and HGR
graphics video modes in Color and Mono monitor modes. In Mono mode, one can
select between Green, Amber and White phosphor monitors. There is also a CRT
mode, which is a graphics rendering technique to get the real feel of old
CRT monitors, complete with scan lines and a tiny little bit of blurry
effect.

The CPU speed selector is conveniently accessible from the middle of the
toolbar as a slider. When it is moved all the way to the right, the roaring
1.3 GHz is achieved. A bit lower or higher speed than this is possible,
depending on the host computer and which apps are running at the same time.


Steve ][ also includes some interesting features, like CPU modes. In Normal
Mode, the screen is refreshed at 30 FPS and input latency is about 33ms,
which is prefect in normal situations. We can switch to Game Mode, which
doubles the screen refresh rate and lowers input latency to 1.5ms. That
means that games react faster for keyboard and joystick / mouse inputs.

Another CPU mode is ECO Mode, which is similar to Normal Mode, except when
the Apple II is only waiting for keyboard input, it sleeps the machine,
therefore it only has minimal energy impact on the host computer. However,
when the user starts typing, it automatically unpauses and lets it run at
the speed determined by the Speed Selector. And because of that, we can use
Steve ][ on an airplane for a longer period of time while enjoying quick
burst operations, such as compiling Assembly source code with Merlin.

Disk operation also provides some notable features. In Normal Mode, one can
hear an authentic disk sound which can be turned on or off. Furthermore,
Quick Disk Mode speeds up disk operations drastically. For example, the DOS
3.3 Master disk with Integer BASIC can be fully loaded in less than a
second.

Steve ][ natively supports the WOZ 1 disk image format, and DSK / DO / PO
formats. These latter formats are automatically converted to WOZ internally,
and it is done so quickly and transparently that it will not be noticed.

Steve ][ is designed to run on macOS Mojave 10.14 and higher, and it is
released as free and open open-source software under the GPL v3 license.
Download the source code from GitHub now, with binary distribution available
soon:
https://github.com/trudnai/Steve2

Please follow and like us:
error
fb-share-iconTweet fb-share-icon

Updated: July 31, 2020 at 16:48
Re: Steve ][ ? A fast Apple II emulator [message #397541 is a reply to message #397535] Fri, 07 August 2020 18:25 Go to previous messageGo to next message
Your Name is currently offline  Your Name
Messages: 910
Registered: September 2013
Karma: 0
Senior Member
On 2020-08-07 19:16:19 +0000, D Finnigan said:

> Article found on
> https://www.callapple.org/emulation/steve-a-fast-apple-ii-em ulator/
>
> ----------
>
> An unexpected highlight at KansasFest 2020 was the introduction of a speedy,
> new Apple II emulator by Tamas Rudnai, dubbed “Steve ][.” Written for macOS
> Mojave and later, Steve ][ has a modern interface with many options and
> works with the popular WOZ format.
>
> According to Tamas, “Steve ][ tributes the two co-founders of Apple, Steve
> Wozniak and Steve Jobs. Wozniak was the evil genius hardware designer and
> inventor, while Jobs was the brilliant marketing and visionary person behind
> the most successful company in computer history. Steve ][ lets you travel to
> 1977 and bring an Apple ][ back with you to 2020, adding 40 years of
> technology enhancements to it. It speeds up the 1.023 MHz legacy hardware to
> a 1.3 GHz modern computer. That is a 1300x speed increase
<snip>

An emulator running at that speed is completely unusable for many
things (especially games), unless it's a "turbo" mode that can be
easily switched on and off as needed. One of the old emulators (can't
remember which one off-hand) had such a function, which was great for
some of the slow-loading games like Wolfenstein.
Re: Steve ][ ? A fast Apple II emulator [message #397546 is a reply to message #397541] Fri, 07 August 2020 23:40 Go to previous messageGo to next message
Steve Nickolas is currently offline  Steve Nickolas
Messages: 2036
Registered: October 2012
Karma: 0
Senior Member
On Sat, 8 Aug 2020, Your Name wrote:

> An emulator running at that speed is completely unusable for many things
> (especially games), unless it's a "turbo" mode that can be easily switched on
> and off as needed. One of the old emulators (can't remember which one
> off-hand) had such a function, which was great for some of the slow-loading
> games like Wolfenstein.

ApplePC, AppleWin and KEGS all have such functionality.

In KEGS, it's enabled/disabled with the right mouse button (iirc); in
ApplePC, it's F7; in AppleWin, it's ScrLk.

-uso.
Re: Steve ][ ? A fast Apple II emulator [message #398334 is a reply to message #397546] Sun, 23 August 2020 23:09 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: google2@mcarlson.com

On Friday, August 7, 2020 at 8:40:52 PM UTC-7, Steve Nickolas wrote:
> On Sat, 8 Aug 2020, Your Name wrote:
>
>> An emulator running at that speed is completely unusable for many things
>> (especially games), unless it's a "turbo" mode that can be easily switched on
>> and off as needed. One of the old emulators (can't remember which one
>> off-hand) had such a function, which was great for some of the slow-loading
>> games like Wolfenstein.
>
> ApplePC, AppleWin and KEGS all have such functionality.
>
> In KEGS, it's enabled/disabled with the right mouse button (iirc); in
> ApplePC, it's F7; in AppleWin, it's ScrLk.
>
> -uso.

Ah, no. KEGS tops out at 200mhz. The others are less. This goes to 1.3ghz! This is an incredible achievement. All other Apple II emulators just use one big switch statement to step through 6502/65816 instructions. This emulator must have a JIT. A JIT! And, all you guys can say is that the other emulators already do this? Like hell they do.

Actually, looking at the code I see a switch statement. How in the hell did he do this? This is some really nice code. He separated out the instructions into multiple header files. Really clean. It sounds like he is from Eastern Europe, which explains it.

I would love to see his fathers HVAC? simulation code. That would be cool. I have some old grade school fractal code that I got to try with this ;). Love it.
Re: Steve ][ ? A fast Apple II emulator [message #398337 is a reply to message #398334] Mon, 24 August 2020 00:26 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: kegs

In article <19e78406-018a-4eed-bf0a-99d9b618caedo@googlegroups.com>,
google2@mcarlson.com <google2@mcarlson.com> wrote:
> On Friday, August 7, 2020 at 8:40:52 PM UTC-7, Steve Nickolas wrote:
>> On Sat, 8 Aug 2020, Your Name wrote:
>>
>>> An emulator running at that speed is completely unusable for many things
>>> (especially games), unless it's a "turbo" mode that can be easily
> switched on
>>> and off as needed. One of the old emulators (can't remember which one
>>> off-hand) had such a function, which was great for some of the slow-loading
>>> games like Wolfenstein.
>>
>> ApplePC, AppleWin and KEGS all have such functionality.
>>
>> In KEGS, it's enabled/disabled with the right mouse button (iirc); in
>> ApplePC, it's F7; in AppleWin, it's ScrLk.
>>
>> -uso.
>
> Ah, no. KEGS tops out at 200mhz. The others are less. This goes to
> 1.3ghz! This is an incredible achievement. All other Apple II emulators
> just use one big switch statement to step through 6502/65816
> instructions. This emulator must have a JIT. A JIT! And, all you guys
> can say is that the other emulators already do this? Like hell they do.

KEGS was artificially limited to 250MHz since 2004 since I was concerned
about how some FP calculations would be affected if it ran much faster
than that. The problem is there is a speed above which KEGS will not
operate correctly due to the way FP is used to track machine cycles.
Determining exactly what that speed would require a lot of effort to test
around, and so I just pick lower "safe" values so as to not worry about it.
I want KEGS to be an emulator you can trust to work reliably 20
years from now.

I have never heard of a request to raise the limit, or even a single
request for KEGS to be faster.

I've since looked into it, and I'm sure it can support 900MHz at least,
so that's my new limit. On my Mac, KEGS runs at 430MHz running Applesoft,
which is on a 4.3GHz (turbo) Intel chip. So KEGS runs at about 1/10th the
native CPU clock speed on Intel CPUs.

Bare-bones emulators can run faster than KEGS, but once they start
including more details, they tend to slow down. A II+ is much simpler
than a //e, and a IIgs is more complex.

It would be useful information to know what changes sped up an emulator
by how much, but as far as I know that information was not made available.

Kent
Re: Steve ][ ? A fast Apple II emulator [message #398340 is a reply to message #398337] Mon, 24 August 2020 03:01 Go to previous message
Anonymous
Karma:
Originally posted by: google2@mcarlson.com

On Sunday, August 23, 2020 at 9:26:40 PM UTC-7, Kent Dickey wrote:
> In article <19e78406-018a-4eed-bf0a-99d9b618caedo@googlegroups.com>,
> wrote:
>> On Friday, August 7, 2020 at 8:40:52 PM UTC-7, Steve Nickolas wrote:
>>> On Sat, 8 Aug 2020, Your Name wrote:
>>>
>>>> An emulator running at that speed is completely unusable for many things
>>>> (especially games), unless it's a "turbo" mode that can be easily
>> switched on
>>>> and off as needed. One of the old emulators (can't remember which one
>>>> off-hand) had such a function, which was great for some of the slow-loading
>>>> games like Wolfenstein.
>>>
>>> ApplePC, AppleWin and KEGS all have such functionality.
>>>
>>> In KEGS, it's enabled/disabled with the right mouse button (iirc); in
>>> ApplePC, it's F7; in AppleWin, it's ScrLk.
>>>
>>> -uso.
>>
>> Ah, no. KEGS tops out at 200mhz. The others are less. This goes to
>> 1.3ghz! This is an incredible achievement. All other Apple II emulators
>> just use one big switch statement to step through 6502/65816
>> instructions. This emulator must have a JIT. A JIT! And, all you guys
>> can say is that the other emulators already do this? Like hell they do.
>
> KEGS was artificially limited to 250MHz since 2004 since I was concerned
> about how some FP calculations would be affected if it ran much faster
> than that. The problem is there is a speed above which KEGS will not
> operate correctly due to the way FP is used to track machine cycles.
> Determining exactly what that speed would require a lot of effort to test
> around, and so I just pick lower "safe" values so as to not worry about it.
> I want KEGS to be an emulator you can trust to work reliably 20
> years from now.
>
> I have never heard of a request to raise the limit, or even a single
> request for KEGS to be faster.
>
> I've since looked into it, and I'm sure it can support 900MHz at least,
> so that's my new limit. On my Mac, KEGS runs at 430MHz running Applesoft,
> which is on a 4.3GHz (turbo) Intel chip. So KEGS runs at about 1/10th the
> native CPU clock speed on Intel CPUs.
>
> Bare-bones emulators can run faster than KEGS, but once they start
> including more details, they tend to slow down. A II+ is much simpler
> than a //e, and a IIgs is more complex.
>
> It would be useful information to know what changes sped up an emulator
> by how much, but as far as I know that information was not made available..
>
> Kent

Well, God has spoken ;). I'll have to dig through your code again. Okay, it's faster than AppleWin (until that author shows up ;). What years were you at HP? Cupertino? Fellow alumni ;). I noticed your PA-RISC code but I never did try to run it on my C3600. I got the feeling you coded it after hours at HP ;).

His code is on Github.
https://github.com/trudnai/Steve2

I will say that I really like how he made his switch statement. He does have a nice style. Although, I am not sure how this is with debugging. I haven't used Xcode in a long time. But, he has his own debugging code. Probably why.

There was GSport, then GSplus, are you back?
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: reinette II plus v0.2b released
Next Topic: MAME getting started instructions for Mac OS X
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Apr 24 06:31:42 EDT 2024

Total time taken to generate the page: 0.03352 seconds