The ESP32 SoftCard for the Apple II

214 posts / 0 new
Last post
Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
vMAC

I finally got a chance to try the card after receiving it a while ago.  Thanks to CVT for developing this amazing card.  Adrian would be surprised as well;).  I Can't wait to try other emulators to come!

One question:  On vMac, what's the most standard (safe) frequency to select?  I used Apple IIc monochrome monitor and another auto sync LCD display, but both turned out failing to sync (can barely see anything).  How did you all manage to display vMac?  Thanks!

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
vMac
sugix8 wrote:

> On vMac, what's the most standard (safe) frequency to select?  I used Apple IIc monochrome monitor and another auto sync LCD display, but both turned out failing to sync (can barely see anything).  How did you all manage to display vMac? 

 

So I tried my cheap AVtoHDMI converter.  I noticed on one of the converter it recognized the signal as PAL, and it displayed steady image (noisy, top and bottom cut off).  I used another one of the same converter, and it recosginized as NTSC, both H and V non synced.  Perhaps vMac is closer to PAL?

<Upper PAL, Lower NTSC recognition>

<lower converter = NTSC on LCD, shot by iPhone (too fast shutter speed - see the faded rolling image>

 

 

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
IIgs compatibility
softwarejanitor wrote:

I have a IIgs.  I could pull it out later and try the ESP32 Softcard in it.  No reason to think it wouldn't work exactly as it does in my //e.  Since the card is generating its own video and the IIgs bus timing is designed to be compatible with the 8 bit Apple II family I can't see any reason it would fail.

 

I had a chance to try it on IIgs ROM1 and ROM3 motherboards..  Both were able to run ESP32, NES and SMS worked (audio not tested).

One issue I noticed is that keyboard sensitivity is EXTREMELY  bad, you would need to hold down a key for 1-2 seconds for the key press to take affect - 

typing "NES" is somewhat tough to accomplish.  Perhaps ADB timing is affected by the ESP32 board?

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
sugix8 wrote:I had a chance
sugix8 wrote:

I had a chance to try it on IIgs ROM1 and ROM3 motherboards..  Both were able to run ESP32, NES and SMS worked (audio not tested).

One issue I noticed is that keyboard sensitivity is EXTREMELY  bad, you would need to hold down a key for 1-2 seconds for the key press to take affect - 

typing "NES" is somewhat tough to accomplish.  Perhaps ADB timing is affected by the ESP32 board?

 

Thanks for testing the card on an Apple IIgs! I can assure you that you are the first person to do so.

 

I think I know exactly why the keyboard issue is happening, since it was also discovered by one of my Bulgarian customers on his Pravetz 8C – a clone of the Apple IIe. It has to do with my workaround of the infamous AY-5-3600-PRO/KR9600-PRO keyboard encoder bug found on all Apple IIe machines. It turned out that the Pravetz 8C did not have this bug and now I suspect that the Apple IIgs doesn’t have it either.

 

I compiled a version of the Interface program that doesn’t contain this workaround and it did fix the keyboard issue on the Pravetz 8C. I suspect that this fix will also work for the Apple IIgs.

 

Here it is: Package iconESP32 SoftCard Interface Program v1.0.C.zip

 

Please keep in mind that this version of the interface program will not work on the Apple IIe. Also it's very easy to mix the two, so I added the letter C after the version number:

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
sugix8 wrote:sugix8 wrote:>
sugix8 wrote:
sugix8 wrote:

> On vMac, what's the most standard (safe) frequency to select?  I used Apple IIc monochrome monitor and another auto sync LCD display, but both turned out failing to sync (can barely see anything).  How did you all manage to display vMac? 

 

So I tried my cheap AVtoHDMI converter.  I noticed on one of the converter it recognized the signal as PAL, and it displayed steady image (noisy, top and bottom cut off).  I used another one of the same converter, and it recosginized as NTSC, both H and V non synced.  Perhaps vMac is closer to PAL?

 

When you type the MAC command, you are prompted to choose from a list of pixel sampling rates ranging from 10.666 MHz to 14.5 MHz. This frequency determines how fast the ESP32 is going to bit-bang one horizontal line on the screen. The lower the frequency the more time it will take to draw one line, so in essence this frequency determines the width of the picture on the screen. It doesn’t affect the vertical synchronization. I usually choose 2: 11,428 MHz.

 

Now for the vertical synchronization to work, you really need a CRT monitor, since they can handle the non-standard frame rate of 45 FPS. Also you will need to adjust the v-hold and v-size. In this particular case we are pushing an old technology to its absolute limit and I have described this in much more detail in Post #104 on the previous page.

 

I will also take this opportunity to correct the following arithmetic mistake from that post:

 

So the ESP32 SoftCard does this by reducing the refresh rate down to 43.75 FPS:

   262 lines x 60 FPS = 315 lines x 50 FPS = 360 lines x 43.75 FPS = 15.750 kHz

 

This should read:

 

So the ESP32 SoftCard does this by reducing the refresh rate down to 45 FPS:

   262 lines x 60 FPS = 315 lines x 50 FPS = 350 lines x 45 FPS = 15.750 kHz

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
IIgs - it worked!
CVT wrote:
sugix8 wrote:

I had a chance to try it on IIgs ROM1 and ROM3 motherboards..  Both were able to run ESP32, NES and SMS worked (audio not tested).

One issue I noticed is that keyboard sensitivity is EXTREMELY  bad, you would need to hold down a key for 1-2 seconds for the key press to take affect - 

typing "NES" is somewhat t

 

CVT, thanks for the prompt actions.  The posted "C" startup worked!  Audio also confirmed (this time).

I tried on ROM1, but suppose it shall be the same for ROM3 as well.  Perhaps naming the file with IIgs or sort would be helpful to the followers.

Thank for solving the issue so quickly.  I'm also happy to be helping the community.

Couple of minor things for possible future improvement:  Video is slighty noisy, also Audio is picking up some noise - may be from MB?

 

BTW, for some reason, my IIe works fine with "C" startup application..  Hmm... maybe I just have a lucky machine that both versions work.

 

<SMS on IIgs (ROM1) w/ audio> -> Sorry I can't find out how to make this thumnail smaller... :(

 

 

 

 

 

 

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
CVT wrote:Now for the
CVT wrote:
Now for the vertical synchronization to work, you really need a CRT monitor, since they can handle the non-standard frame rate of 45 FPS. Also you will need to adjust the v-hold and v-size. In this particular case we are pushing an old technology to its absolute limit and I have described this in much more detail in Post #104 on the previous page.

Noted with thanks.  It's a pitty as it is almost there!

Perhaps I could try RGBtoHDMI in the future.  (I have one on my IIgs RGB, but not set up for mono/composit)

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
sugix8 wrote:Video is slighty
sugix8 wrote:
Video is slighty noisy, also Audio is picking up some noise - may be from MB?

 

 

The noise in the video definitely comes from the $3.75 AV2HDMI box. The audio should not be noisy though. Can you try opening the Apple II+/Apple IIe jumper if it is closed? Also try with some other sound source, like Doom or an MP3 file. If you still get noise, you can also try a different slot.

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
sugix8 wrote:BTW, for some
sugix8 wrote:
BTW, for some reason, my IIe works fine with "C" startup application..  Hmm... maybe I just have a lucky machine that both versions work.

 

If you run Wolfenstein 3D or Doom and use the arrow keys to navigate the menu, you will see that the version for the Apple IIgs doesn't work properly on the Apple IIe. 

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
CTV, thanks for the advise.

CTV, thanks for the advise.  Here are some update.

AUDIO - Excuse me!  The noise was not from the IIgs speaker, but from power supply itself - noise changes between 40/80/NES modes.  By changing to a different slot, it did make it quieter - so problem solved.  (II/IIe jumper had no affect)

I did noticed that on IIgs, slots 3,4, and 7 it works fine, but other slots have problem detecting the ESP card (both ROM1 and 3 boards).  I also tried configuring the slot to "your card" on control panel, but no change.   Just a note for anyone trying it on IIgs.

 

VIDEO, works like a charm on IIe, but on IIgs it is still noisy.  This is without the cheap converter, directly connected IIc green monitor /  LCD.

You can see its quite noisy especially on lower part of the screen.  On LCD color you can see the noise level. - same results on two IIgs's.  I also swapped my cable with bundled cable but same result.

<IIgs - on IIc monitor>

<IIgs - on LCD color - video>

 

 

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
CVT wrote:If you run
CVT wrote:

If you run Wolfenstein 3D or Doom and use the arrow keys to navigate the menu, you will see that the version for the Apple IIgs doesn't work properly on the

 

Ah, indeed!

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
sugix8 wrote:...VIDEO, works
sugix8 wrote:

...

VIDEO, works like a charm on IIe, but on IIgs it is still noisy.  This is without the cheap converter, directly connected IIc green monitor /  LCD.

You can see its quite noisy especially on lower part of the screen.  On LCD color you can see the noise level. - same results on two IIgs's.  I also swapped my cable with bundled cable but same result.

 

If the video is perfect on the Apple IIe, but noisy on the Apple IIgs, it must be picking up the noise from the machine itself.  I can't really tell exactly from where though. Have you tried PAL , NTSC-50 or simply choosing Monochrome? I am curious if the same noise pattern is still there.

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
CVT wrote:Have you tried PAL
CVT wrote:
Have you tried PAL , NTSC-50 or simply choosing Monochrome? I am curious if the same noise pattern is still there.
 
Let me do some testing and get back to you.  It'll take a while as I'll be on the road till weekend.
CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Thanks!

I forgot to mention: huge thanks for testing and finding this video noise problem on the Apple IIgs!

Offline
Last seen: 11 hours 52 min ago
Joined: Jun 6 2020 - 10:50
Posts: 388
Don't know if it's related or

Don't know if it's related or not, but when I had a RM Phasor clone in my IIgs, it picked up all kinds of bus noise that got mixed in with the audio out of the Phasor. I think it was mainly when there was disk I/O. But it may have been present other times too. It was a few years ago before I picked up a IIe and moved the Phasor to that. So I don't recall exactly what the circumstances were. Just that it was picking up something from the IIgs. 

Offline
Last seen: 6 hours 2 min ago
Joined: Jun 29 2018 - 16:55
Posts: 506
Slot 01 IIGS has a lot of bus

ROM 01 IIGS has a lot of bus noise, I thought this was common knowledge (not trying to be condescending). 

 

https://forum.vcfed.org/index.php?threads/apple-iigs-noise.37295/

Offline
Last seen: 8 hours 5 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2183
skate323k137 wrote:ROM 01
skate323k137 wrote:

ROM 01 IIGS has a lot of bus noise, I thought this was common knowledge (not trying to be condescending). 

 

https://forum.vcfed.org/index.php?threads/apple-iigs-noise.37295/

 

I wasn't really aware of that.  I wonder if this means an extra buffer on the data bus and more filter caps on cards are needed?  Maybe shielding over RFI sensitive components?  Or is this something that can't he easily worked around?

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Ground Noise

I also found this regarding the Apple IIgs and it seems to be right on the money:

 

Ground Noise

Since the Apple II expansion slots were designed with only one ground pin, complex expansion cards sometimes have problems with excessive ground noise -- especially in the IIGS, where the signals typically have faster rise and fall times. To reduce ground noise as much as possible, it is helpful to bypass all four supply voltages (+5 volt, +12 volt, -5 volt, -12 volt) to ground with electrolytic or solid tantalum capacitors, even if all the available voltages are not used on the expansion card. This additional bypassing has the effect of providing an improved ground by providing additional AC ground paths through the various supply pins.

 

Source: http://www.1000bit.it/support/manuali/apple/technotes/iigs/tn.iigs.068.html

 

The problem is that I don't have an Apple IIgs. I know a couple of guys in Bulgaria who do, but I am not sure if I know them well enough for them to be willing to loan me one for a week, so it might be a while until I am able to investigate this myself. 

 

But maybe someone with an Apple IIgs will be willing to help by trying electrolytic capacitors on the card between the unused +12V/-12V/-5V and ground as it is suggested? This will mess up the ESP32 SoftCard cosmetically a little bit, but you will get to use the prototyping area! :)

Offline
Last seen: 11 hours 52 min ago
Joined: Jun 6 2020 - 10:50
Posts: 388
skate323k137 wrote:ROM 01
skate323k137 wrote:

ROM 01 IIGS has a lot of bus noise, I thought this was common knowledge (not trying to be condescending). 

 

https://forum.vcfed.org/index.php?threads/apple-iigs-noise.37295/

In my case, it was a ROM3 that had the noisy Phasor. So maybe it was partially cleaned up on a 3, but definitely not eliminated.

 

The PSU is a whole other issue. I own 3 IIgs, and 2 of the PSUs have a slight whine under load. The 3rd PSU is dead quiet. All 3 were recapped, but made no difference in the noise. 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Frequency of the waves on the screen

Thanks to the high resolution image of the screen posted by sugix8, I can see that the waves of this noise are 11 horizontal lines peak-to-peak, which is about 1.4 kHz.

Offline
Last seen: 6 hours 2 min ago
Joined: Jun 29 2018 - 16:55
Posts: 506
nick3092 wrote:In my case, it
nick3092 wrote:

In my case, it was a ROM3 that had the noisy Phasor. So maybe it was partially cleaned up on a 3, but definitely not eliminated.

I believe that's right, the ROM 03 is better but not perfect. I have noticed Mockingboards definitely amplify it noticeably on my ROM 01 but I've come to simply accept it for the most part. However, to have this actually looked into is nice, definitely above and beyond! Cards like the MicroDrive turbo which have a lot of bus activity can practically be audibly monitored with a Mockingboard in a IIGS ROM 01. 

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
Further testing with IIgs
sugix8 wrote:
CVT wrote:
Have you tried PAL , NTSC-50 or simply choosing Monochrome? I am curious if the same noise pattern is still there.
 
Let me do some testing and get back to you.  It'll take a while as I'll be on the road till weekend.

 

Hi CVT and gents, I'm back home.

So, I have made some measurements on the scope (hantek DSO5102P).  This is based on ROM3 (less noise on power rail?) IIgs MB.

Conditions: ESP32 on slot #4, 5V measurement on slot #6.

Modes NTSC, NTSC-50, PAL have all similar noise visible on LCD (directly connected from ESP).

Picure 1: 5V/Yellet and NTSC (ESP32 out)/Yellow - you can see that noise on 5V and NTSC visible at the same timing - which I'm not sure which is the source of it.

Picutre 2:  5V/Blue with ESP32 installed - 640 mV pk-pk

Picture 3: 5V/Blue without ESP32 on the MB. - 320 mV pk-pk

My observation is that somehow 5V rail has more noise when ESP32 is installed.  Either the PSU is generating more noise due to some power consumption of ESP32, or ESP32 is somehow affecting the power rail (which I think it is less likely as it runs fine on IIe).

Unfortunaltey, I dont't have any test cards to filterr the three power rails, so this is as far as I can go. 

Here are the shots:

Pic1: 5V noise vs NTSC noise

Pic2: ESP32 installed

Pic3: w/o ESP32

If you can provide insturctions of what to do on the testing pins, I woud be happy to try it out - I due have some pF's around (though, please be patient regards to when it will happen :)

 

 

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
So first I just want to make

So first I just want to make sure we are talking about same noise - the 3 horizontal waves at the bottom of the screen inside the red rectangle:

 

 

If yes, this noise is in the kilohertz range (about 1.4 kHz) and it cannot possibly be caused by the megahertz range noise that you are seeing on the oscilloscope.

 

Also are these waves also present when you choose [M]onochrome instead of [C]olor?

 

Offline
Last seen: 13 hours 53 min ago
Joined: May 12 2022 - 16:58
Posts: 8
IIgs has timing problems with accelerator.
sugix8 wrote:
CVT wrote:

If you run Wolfenstein 3D or Doom and use the arrow keys to navigate the menu, you will see that the version for the Apple IIgs doesn't work properly on the

 

Ah, indeed!

 

Just got my card three days ago.  Shipping was faster than I expected.

 

The card is a great product and so far has exceeded my expectations but see the timing problem below.

 

I just got around to testing the card on the IIgs. I am using the card in slot 7. I have a ZipGS running at 8mhz. I can give more specs if needed but i am not sure, at this point, that the other specs matter.

 

I originally could only get the card to work intermittantly because the program would find the card in slot seven and display the "PLEASE PLUG THE MONITOR THROUGH THE CARD" message. After taking a keypress the program would exit and return to the BASIC prompt.  Every once in a while (every 4-7 restarts) the program would make it intot the card but once on the card firmware the keys were only recognized every third or so key press unless you wait between key presses about a second.

 

I tried both versions of the program and the latest program posted (the "C" version) was better but still did not recognize some of my key presses or mouse movements.  Especially in doom.

 

I started removing cards and running with different control panel settings and found that the only thing that worked successfully was to turn off the accelerator.  In the control panel I set the machine to 1 mhz and the card worked perfectly.

 

 

If you want I can take a look at the source and possibly add code to turn off any accelerator on the IIgs?

 

 

P.S. It is not that I do not have other apples to test this in.  I just started with the IIgs.  I have several versions of the apple II+ and several versions of the Apple IIe.  I have about four different Apple II accelorators and I might try a couple to see if all accelorators make any difference or if they need to be turned off.  If those accelerators do have a problem than that might be a bit more complicated to fix by software. (Just need more time in life with Baldurs Gate III out.)

 

Gary

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
GaryFDes wrote:Just got my
GaryFDes wrote:
Just got my card three days ago.

...

 

Hi Gary,

 

Thanks for finding yet another issue complete with a workaround on the Apple IIgs! I never designed this card to work on this particular machine, but it looks like with everyone’s help soon the Apple IIgs will be fully supported.

 

Here is the Assembly source of the "C" version of the Interface program - the one that works perfectly on the Apple IIgs at 1MHz: 

Package iconESP32 SoftCard Interface Program Source v1.0.C.zip

 

As far as shipping time is concerned, 8 days door-to-door from Bulgaria to the US by regular mail does happen every now and again, when all the flights align perfectly. :)

 

Btw, are you experiencing the same video noise on your Apple IIgs described by sugix8 above?

 

Also I would like to take this opportunity to thank sugix8 for offering to set up a Zoom call in order to investigate this video noise. Right now I am working on a special diagnostics firmware that would enable us to remove all the socketed chips and control the card through a Bluetooth keyboard. This will completely isolate the ESP32 from the data and address bus of the Apple IIgs. The Bluetooth radio is part of the ESP32, but I have disabled it in the regular firmware, because it consumes too much of the chip’s internal memory.

Offline
Last seen: 13 hours 53 min ago
Joined: May 12 2022 - 16:58
Posts: 8
IIgs code with debug messages

Good Afternoon,

 

I did get around to trying some stuff out.  I am including the code with debug messages.

 

I have not tried this on any other machine other than the IIgs because of time.  If someone wants to try the code and see if it still works (even though I modified the "c" version) then it would be nice.

 

This does fix the problem with having the  original speed turned on in the control panel and after that if the speed is turned to something else in the control panel although I am investigating why changes do not effect the soft switch.  Not that the code does not work but that it is giving unusual messages when the speed is controlled by the control panel after rebooting.

 

I am not turning on and off the ZipGS, which I could, I am using the C036 soft switch.  This seems to only be controlled at startup.  I am looking into that because no matter what is set in the control panel after startup the C036 soft switch does not acknowledge that value but the program works the same.

 

Here is the source and the ProDOS disk.Package iconESP32 IIgs ProDOS.zip

 

Gary

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
GaryFDes wrote:Good Afternoon
GaryFDes wrote:

Good Afternoon,

I did get around to trying some stuff out.  I am including the code with debug messages.

I have not tried this on any other machine other than the IIgs because of time.  If someone wants to try the code and see if it still works (even though I modified the "c" version) then it would be nice.

...

 

Thanks for providing this - I really appreciate it!

 

Btw, what other machine are you considering trying this, other than the Apple IIgs? The regular version of the Interface program that is on the SD card (the one without the "C") will not work properly on an Apple IIgs and the one with the "C" will not work properly on the Apple IIe. This is why I only posted the Assembly source of the "C" version.

Offline
Last seen: 13 hours 53 min ago
Joined: May 12 2022 - 16:58
Posts: 8
I plan on testing it on the

I plan on testing it on the IIe and at least the II+.  That and a couple of accelerators I have.

 

If you tell me what the difference between the two program types I can encorporate that change into the new logic.  Then there will only be one type.  I just don't know what the difference is between the non-C and C versions.

 

Gary

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Got it! Here is the Assembly

Got it!

 

Here is the Assembly source of the regular Interface program: Package iconESP32 SoftCard Interface Program Source v1.0.zip

 

It contains a workaround for the AY-5-3600-PRO/KR9600-PRO keyboard encoder bug. This bug is found on all Apple IIe machines, but it is not present on the Apple IIgs. If you diff it against the "C" version, you will see the workaround itself. It is this workaround that prevents the regular version from working properly on the Apple IIgs and some clones like the Pravetz 8C, which also don't have the keyboard encoder bug.

 

On the Apple II/II+ it doesn't matter which version is used, as they all send just a KeyPressed event, instead of the more game-friendly KeyDown/KeyUp events. The regular and the "C" version of the Interface program have the same code path when running on an Apple II/II+.

Offline
Last seen: 13 hours 53 min ago
Joined: May 12 2022 - 16:58
Posts: 8
First Combination Debug Code

I do not have much time tonight.

 

I have combined the two sets of code. If  I have time tomorrow I will combine the NTSC and the PAL versions.  Should be easy to do.  Just need to ask the user which.  Still lots of testing to do though.  Still with debug lines.

 

Package iconESP32 All ProDOS 1.0D.zip

Offline
Last seen: 13 hours 53 min ago
Joined: May 12 2022 - 16:58
Posts: 8
Let's try again.

I tried to edit the last post and could not.  The zip file was an older version where I reversed the test. <sigh>

 

Here is the test correctly: Package iconESP32 All ProDOS 1.0D.zip

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Great! Actually I would

Great! Actually I would prefer if the PAL and NTSC are also available as separate files. Almost every single user always uses the same one, so it might get too annoying giving the same answer every single time. This was my reason for splitting them. Of course we can keep the one that asks PAL or NTSC as well, so that everyone is happy.

 

When all the testing is done, I'll simply release it as version 1.1 of the Interface program.

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Firmware Update

Here is the latest firmware update: Package iconESP32 SoftCard FW v.1.07.zip

 

Version History: (Continued)

v1.07

    - Mac emulator: increased the memory available to the Mac emulator from 2.5 MB to 3 MB.

    - Mac emulator: executing the MAC command from a sub-directory will load the Mac ROM and disk images found in that sub-directory.

    - Sega/Nintendo emulators: executing the SEGA or NINTENDO command from a sub-directory will only show the ROMs in that sub-directory.

 

Details:

 

Setting up the Japanese localization of Mac OS 7 (KanjiTalk) on the Mac emulator revealed that the Japanese OS uses so much of the available RAM, that there is barely anything left to run applications! So, after converting some static memory allocation into dynamic elsewhere in the firmware, I was able to increase the available memory to the Mac emulator from 2.5 MB to 3 MB. This also benefits the English version of Mac OS 7, as there is now almost 2 MB of free RAM to run applications.

 

 

Another change in this firmware update is the ability to have more than one Macintosh configuration on the same SD card. This is accomplished by storing different Macintosh ROM + hard drive images in different sub-directories. For example when the MAC command is executed from the root directory it will look for the needed files in the /Mac directory. However if it is executed from another sub-directory, it will look in that sub-directory first. This way the English version can still remain in the /Mac directory, while the Japanese one can be stored in /MacJP for example. If the user wants to start the Japanese version, they will have to change the current directory to /MacJP before executing the MAC command.

 

This concept is also extended to the Sega and Nintendo emulators. Game ROMs can now reside in directories other than the standard /SMS and /NES. Starting either the Sega or Nintendo emulator from a sub-directory will result listing the game ROMs found only in that sub-directory. One useful use case of this is the ability to separate NTSC games from PAL ones. In order for the game speed to be correct, the video standard needs to match the game region. Otherwise American/Japanese game ROMs will run slower when the video standard is PAL and European game ROMs will run faster when the video standard is NTSC.

Offline
Last seen: 13 hours 53 min ago
Joined: May 12 2022 - 16:58
Posts: 8
After testing on II+, IIe and IIgs

Good Afternoon,

 

I finished all the testing that I could do at the moment on this. I did change the STA I was doing to either TRB/TSB apropriatly as specified in the IIgs hardware reference.  Firmware reference did not specify that and some online seem to be doing the STA instead but seems better the way the hardware reference suggests.

 

Played DOOM on the II+ and Wolf3D on the IIe.  On the IIgs I played both. Played NES and Sega on all three. I cannot think of anything that I had a problem with during the testing using the same program with everything.  I did run the PAL version on the II+ and the IIgs and they seemed to work fine except that on the IIgs it seemed cut off more but it could have been the output.

 

I think you can take a look at things and maybe have others test out the program.  Especially on the IIgs version. Hope this helps. Package iconESP32 All ProDOS 1.0E.zip

 

I am including the D=Debug and E=whatever versions.  Of course, I do not think that you will be able to build this on the earlier versions of Merlin because of the TRB/TSB opcodes and the DSK directive.  You might want to get Merlin32 from https://brutaldeluxe.fr/products/crossdevtools/merlin/index.html and build with that.  I use an environment of VSCode (with Merlin 6502 extension), Merlin32, CiderPress, and Beyond Compare (mostly to sync up the PAL to NTSC versions).  And most important I cannot forget the Floppy Emu.  Sixty second turn around from a programmed fix to the system up and running.

 

Thanks,

     Gary

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Firmware Update

Thanks for all the help, Gary! I will get Merlin32, compile it, do some testing myself on my machines and then incorporate your changes into version 1.1 of the Interface program, which I will post later.

 

On the Apple IIgs video noise issue, sugix8 and I had a Zoom call and we were able to solve the problem. I am now publishing version 1.08 of the firmware that contains the fix, which he already tested and confirmed that all the video noise is now gone.

 

Here it is: Package iconESP32 SoftCard FW v.1.08.zip

 

Version History: (Continued)

v1.08

    - Fixed a video noise issue that was occurring when the ESP32 SoftCard is hosted inside an Apple IIgs.

    - Nintendo: Fixed an issue causing the video to break on NTSC when the game "Blades of Steel" is launched first.

 

Details:

 

The reason for the video noise turned out to be turning off the Wi-Fi radio of the ESP32 in situations when it will not be needed, in order to save memory. We stumbled on the fix pretty much by accident, as the diagnostics firmware that I had prepared for the tests didn’t happen to turn off the Wi-Fi. I suspect that this noise is more noticeable in Japan due to the lack of ground in all the power outlets. This also means that even if I had an Apple IIgs, I probably wouldn’t have been able to reproduce this noise myself, since all the power outlets in my house are 3-prong and have a proper ground.

 

I want to thank sugix8 once again for setting up a Zoom call with multiple cameras, helping to find a fix and then testing it!

Offline
Last seen: 2 months 2 weeks ago
Joined: Sep 2 2023 - 12:00
Posts: 10
CVT wrote:I am now publishing
CVT wrote:

I am now publishing version 1.08 

thank you CVT for all the work and this new release!

I'm glad to be a help, but this hybrid of new and retro technology is just awesome.  Perhaps one day, Apple II may become our main machine at home once again :)

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Project Update

I the past I would often get excited about some new feature and write about it, only to discover later that it won’t be able to make it into the firmware for one reason or another, as was the case with the Sega Genesis emulator. So from now on I will only mention things when I am more than 99% sure that they will be added.

 

Comming Soon: TurboGrafx-16 (a.k.a. PC Engine)

 

I have been working on the first new major feature update, which is coming very soon and it will add one more game console emulator – the TurboGrafx-16, also known as PC Engine. I already have it ported and working at full speed, so now it’s just a matter of fixing a couple of bugs. This is the most powerful game console to be emulated so far. It has an 8-bit CPU running at 7.16 MHz, which is twice the clock speed of the Sega Master System and 4 times the clock speed of the NES. It also has a 16-bit GPU, providing some really amazing graphics.

 

Here it is running one of my favorite games: Street Fighter II – Champion Edition:

Offline
Last seen: 8 hours 5 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2183
That looks pretty cool!  It

That looks pretty cool!  It is amazing the power of a chip like the ESP32.

 

Offline
Last seen: 8 hours 5 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2183
I've been wondering if it

I've been wondering if it would be possible to build a version of the ESP32 Softcard that output VGA RGB video instead of composite?  Sort of grafting the video hardware from like the Briel card onto it?  I don't know if RGB would take more CPU power or less?  I'm thinking it might actually be simpler in some ways although it would require totally new video generation code.

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
It's possible...

It's possible, but to be honest with you I see that as a camper move and I won't do it, considering that mine is not an open source project. Also I always wanted to expand its features vertically and not adding features that are already available in other Apple II projects.

 

However I would be totally interested in doing something in concert with an Apple II VGA card. For example there is a version of the Pico that has a Wi-Fi module. Maybe the ESP32 SoftCard can connect to it over Wi-Fi and send over the video, so that it can be rendered in VGA with scanline simulation by the Apple II VGA card.

Offline
Last seen: 8 hours 5 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2183
CVT wrote:It's possible, but
CVT wrote:

It's possible, but to be honest with you I see that as a camper move and I won't do it, considering that mine is not an open source project. Also I always wanted to expand its features vertically and not adding features that are already available in other Apple II projects.

 

Using WiFi in different ways like that is interesting.

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Firmware Update: TurboGrafx-16 (a.k.a. PC Engine)

Firmware Update:

 

Here is the first major version firmware update, which adds one more game console emulator: Package iconESP32 SoftCard FW v.2.00.zip

 

Version History: (Continued)

 

v2.00

    - Added the TurboGrafx-16 (a.k.a. PC Engine) game console emulator. To start just type TG16 or PCE.

 

Also some games gathered from the Net: Package iconPCE.zip (Game ROMs need to be in the /PCE directory.)

Once again huge thanks to sugix8 for the help with the testing, even though often it was after midnight in the land of the rising sun.

 

Here are a few pictures on a color CRT monitor:

Offline
Last seen: 8 hours 5 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2183
CVT wrote:Firmware Update:
CVT wrote:

Firmware Update:

 

Here is the first major version firmware update, which adds one more game console emulator: Package icon

 

This card just keeps getting better.  Nice work!

 

One idea I had for something unique that could be done with this card would be to write an "Arcade board" emulator to emulate the TMS 9918A video chip and sound chip that board had that are available to the Apple II and be able to run games written for that (and maybe even develop  new ones).  I know that there wasn't nearly as big a catalog of games for that as these game consoles so probably not a huge priority but it would be in some ways more "Apple II".  It would also be pretty much all uncharted territory unless there is code out there already for the 9918A like maybe from a TI 99/4A or an MSX emulator.  Or maybe some game console used one of the Yamaha chips derived from the 9918A.  Anyway...  probably a pipe dream, but I think probably technically possible to do.

 

Another thing that kind of seems obvious so I would guess it is maybe omitted intentionally is an "MS DOS BOX" kind of emulator.  The board can run DOOM and Wolf 3d, so it probably has enough power to emulate at least an original IBM PC level machine like the old Appled Engineering PC Transporter.  There are a ton of MS-DOS games out there and some people might find running MS-DOS business apps like Word Perfect or Lotus 1-2-3 or DBase III or Quatro Pro amusing as well.  I don't have a big nostalgia for that personally but I know a lot of people who do.

 

 

 

Offline
Last seen: 6 hours 2 min ago
Joined: Jun 29 2018 - 16:55
Posts: 506
Awesome stuff! The only

Awesome stuff! 

The only button I can't find in the TG16 emulator is 'Select.' Button 1 and 2, and run (using Return) work fine. 

 

Also is there a way to map 2nd player controls in this emulator? I started a Jack Nicklaus golf round with 2 players and I don't think I can control the 2nd. Sorry if I am missing something obvious there. 

 

Cheers and thanks 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Space is SELECT. Also you can run PadTest.pce

Space is SELECT. Also you can run PadTest.pce and test each button of the pad.

 

Two pads are not supported in any of the emulators, but this golf game is turn-based, yet there doesn't seem to be a way to tell it to use Pad 1 for both players. However there is another Jack Nicklaus golf game that lets you tell it to use Pad 1 for all 4 players and they just take turns.

 

Here it is: Package iconJack Nicklaus' Greatest 18 Holes (Japan).zip

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
softwarejanitor wrote:..
softwarejanitor wrote:
...
Another thing that kind of seems obvious so I would guess it is maybe omitted intentionally is an "MS DOS BOX" kind of emulator.  The board can run DOOM and Wolf 3d, so it probably has enough power to emulate at least an original IBM PC level machine like the old Appled Engineering PC Transporter.  There are a ton of MS-DOS games out there and some people might find running MS-DOS business apps like Word Perfect or Lotus 1-2-3 or DBase III or Quatro Pro amusing as well.  I don't have a big nostalgia for that personally but I know a lot of people who do.

 

I find myself in the same line of thinking and I will start investigating. In terms of graphics, it will have to be limited to 640x200 monochrome or 320x200 color. However I think it can also support Hercules' 720x348 at 45 FPS on a monochrome CRT monitor (just like the Mac emulator).

Offline
Last seen: 8 hours 5 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2183
CVT wrote:softwarejanitor
CVT wrote:
softwarejanitor wrote:
...
Another thing that kind of seems obvious so I would guess it is maybe omitted intentionally is an "MS DOS BOX" kind of emulator.  The board can run DOOM and Wolf 3d, so it probably has enough power to emulate at least an original IBM PC level machine like the old Appled Engineering

 

 

I think that is sufficient to do at least most of the CGA and PCJr/Tandy "Video 1" graphics modes that a lot of the early MS-DOS games used.

 

https://en.wikipedia.org/wiki/Color_Graphics_Adapter

https://en.wikipedia.org/wiki/Tandy_Graphics_Adapter

The only one that probably would be a problem on the TGA would be the 640 × 200 with 4 colors (from 16) and obviously the ETGA 640 × 200 with 16 colors is probably not possible.

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Yeah, it cannot do any colors

Yeah, it cannot do any colors in 640x200, but it can do up to 256 levels of grey.

 

I have found that the NTSC luma conversion formula works pretty well (grey = 0.299 * red + 0.587 * green + 0.114 * blue) and I use it even now when a monochrome monitor is chosen.

 

I just ordered this from Olimex to see how fast is the FabGL library's x86 emulator on the ESP32 and whether I can use it, or if I will have to try something else, like Faux86. If they ship it on Monday, I should have it by Tuesday morning.

Offline
Last seen: 8 hours 5 min ago
Joined: Jul 5 2018 - 09:44
Posts: 2183
CVT wrote:Yeah, it cannot do
CVT wrote:

Yeah, it cannot do any colors in 640x200, but it can do up to 256 levels of grey.

 

I have found that the NTSC luma conversion formula works pretty well (grey = 0.299 * red + 0.587 * g

 

 

Sounds really cool!  Looking forward to what you find out.  I bet that a lot of people will love it if you can get any kind of MS-DOS box emulation working.  AE PC Transporter cards are pretty rare and high $$$ cards.  Additing this to an already awesome card is major icing.

 

 

CVT
CVT's picture
Offline
Last seen: 24 min 11 sec ago
Joined: Aug 9 2022 - 00:48
Posts: 778
Project Update

Some progress on the x86 emulator: got the 640x200 graphics, keyboard and mouse working and now I can boot in DOS. It's pretty slow though, somewhere around a 4.77 MHz 8088 machine. The Olimex ESP32 board with FabGL arrived yesterday, but I have not checked it yet. Hopefully its emulator will be faster than this one.

 

Here is QBasic:

Pages

Log in or register to post comments