ZX81 emulator for iOS

Emulator and emulator development specific topics
Post Reply
User avatar
kpalser
Posts: 80
Joined: Sun Jun 03, 2012 2:18 pm
Location: Dundee, Scotland

Re: ZX81 emulator for iOS

Post by kpalser »

dr beep wrote:Gave permission by PM and by contact form.
I should be honoured to have permission to include them! Many Thanks - contacting you now via details left on contact form.

Kevin
User avatar
Paul
Posts: 1506
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ZX81 emulator for iOS

Post by Paul »

I finally give up trying.
My iPhone 5 is not compatible. My wife's iPad isn't compatible and yesterday I tried a IPad mini that might be able to run it but although iOS 10.0.2 was installed your emulator complained that it needed iOS 10 to run on it.
How picky can an app be?
Is it so difficult to supply compatibility to few systems?
In theory, there is no difference between theory and practice. But, in practice, there is.
User avatar
1024MAK
Posts: 5087
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: ZX81 emulator for iOS

Post by 1024MAK »

I'm running it on an iPad mini with iOS 10.1.1

Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
User avatar
kpalser
Posts: 80
Joined: Sun Jun 03, 2012 2:18 pm
Location: Dundee, Scotland

Re: ZX81 emulator for iOS

Post by kpalser »

Paul wrote:I finally give up trying. My iPhone 5 is not compatible. My wife's iPad isn't compatible and yesterday I tried a IPad mini that might be able to run it but although iOS 10.0.2 was installed your emulator complained that it needed iOS 10 to run on it.


Genuinely sorry to hear about the app woes. To clarify iOS 10 and Apple A7 processor or above (which explains the iPhone 5 not being supported) are required. So for example the original iPad mini would not be supported but an iPad mini 2 and above should be supported so long as iOS 10.0 and above is installed. If you have any version of iOS 10 installed then you must have at least an iPad mini 2 since the original iPad mini does not support iOS 10.

Note: it's not the app complaining - it would be an iOS system message. Apple should not permit the app as a download via the app store app unless your device supports configuration supports it. Paul, some questions:

1) To what iPad mini model do you have access?

2) How did you try to download the app? The app store app on your iOS device or via a desktop download using iTunes on a Mac/PC? If it was the former does the app show when you do a text search or did you click a web link to get to it?

3) Could you be a star and post on this thread a screenshot of the incompatibility message?

4) If you update from 10.0.2 to 10.2 (latest public release at time of writing) any joy?
Paul wrote:How picky can an app be?
Very going by your experience. Odd. If your iPad mini device can run iOS 10 then it should run.
Paul wrote:Is it so difficult to supply compatibility to few systems?
No, it's not difficult to provide support to more earlier systems. But it is difficult to tell Apple which systems you don't want to support, e.g. earlier A5 processors. I don't want this app on older mobile devices and running hot. So, Paul you suffer because Apple does not have more developer options such as "don't offer to users with X device". Instead I have to use one of the few blanket device support options available, support only 64bit devices (A7+), to ensure totally unsuited devices will be shown as incompatible when the install/get button is pressed. Total 100% overkill. Feel free to rant, but please not in my direction.

I chose iOS 10 and because from my real world work I'm sick of bending over to support older devices for a user base who are quick to complain when their configuration is not supported and make me spend unthanked hours on workarounds only to hear they have subsequently bought the latest device shortly after. I have nothing to prove and the app code is cleaner without concerning myself with backwards compatibility for an ever diminishing older OS & device user base.

Reading the above does make me sound miserable. Sorry. I do care.

Happy Christmas!
Kevin
dr beep
Posts: 2059
Joined: Thu Jun 16, 2011 8:35 am
Location: Boxmeer

Re: ZX81 emulator for iOS

Post by dr beep »

What better days than writing explanations of the games and making a ZIP-file than Christmas.

Working on it. Plan to be ready before newyearsday.
User avatar
kpalser
Posts: 80
Joined: Sun Jun 03, 2012 2:18 pm
Location: Dundee, Scotland

Re: ZX81 emulator for iOS

Post by kpalser »

dr beep wrote:What better days than writing explanations of the games and making a ZIP-file than Christmas. Working on it. Plan to be ready before newyearsday.
Looking forward to seeing it! Don't let it get in the way of spending time with your family. No pressure. We can add the games in batches over two or three app store updates - it doesn't have to be at the start of January. I've driven more than half way down the UK to spend time with my family and find my self working on the virtual game pad keyboard for the next version of the app...

Kevin
dr beep
Posts: 2059
Joined: Thu Jun 16, 2011 8:35 am
Location: Boxmeer

Re: ZX81 emulator for iOS

Post by dr beep »

kpalser wrote:
dr beep wrote:What better days than writing explanations of the games and making a ZIP-file than Christmas. Working on it. Plan to be ready before newyearsday.
Looking forward to seeing it! Don't let it get in the way of spending time with your family. No pressure. We can add the games in batches over two or three app store updates - it doesn't have to be at the start of January. I've driven more than half way down the UK to spend time with my family and find my self working on the virtual game pad keyboard for the next version of the app...

Kevin
Well, Kevin. Time is on your site.
We played games and I found some time to finish the texting and files.

Now in your mail.
Not only the 1K games, but also SHOGUN, My first ZX81 program, added.

Fun part: since spring there is a SHOGUN-app for download, but my AI is better and the game will be free.
User avatar
kpalser
Posts: 80
Joined: Sun Jun 03, 2012 2:18 pm
Location: Dundee, Scotland

Re: ZX81 emulator for iOS

Post by kpalser »

dr beep wrote:Well, Kevin. Time is on your site.
We played games and I found some time to finish the texting and files.

Now in your mail.
Not only the 1K games, but also SHOGUN, My first ZX81 program, added.

Fun part: since spring there is a SHOGUN-app for download, but my AI is better and the game will be free.
Thank you for all your efforts!

Time to admit to arrogance in an assumption on my part. Whilst I'd seen YouTube videos of your games, today was the first time I ran them on the app emulator core. I understood that 16K WRX programs need a hardware modification in the RAM pack (is that true of TS1500?) but 1K WRX could work on unmodified ZX81s. Hence, my assumption that 1K WRX would just work with the app. Something is off in my code - it was written independently of other ZX81 emulators based on studying the various online sources documenting the hardware and has run fine with everything that I had thrown at it. That is up to now.

Subsequently, I have fired up EightyOne on a PC emulator (being a Mac user) and saw the same behaviour when WRX is not turned on. I've just been consulting the EightyOne source code, in particular the "BYTE zx81_opcode_fetch(int Address)" function to see how it handles the WRX option. It's structured quite differently from my code.

My focus in the short term has changed to fixing the WRX shortcoming in the app so that I can include your games.
User avatar
1024MAK
Posts: 5087
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: ZX81 emulator for iOS

Post by 1024MAK »

kpalser wrote:Time to admit to arrogance in an assumption on my part. Whilst I'd seen YouTube videos of your games, today was the first time I ran them on the app emulator core. I understood that 16K WRX programs need a hardware modification in the RAM pack (is that true of TS1500?) but 1K WRX could work on unmodified ZX81s. Hence, my assumption that 1K WRX would just work with the app. Something is off in my code - it was written independently of other ZX81 emulators based on studying the various online sources documenting the hardware and has run fine with everything that I had thrown at it. That is up to now.

Subsequently, I have fired up EightyOne on a PC emulator (being a Mac user) and saw the same behaviour when WRX is not turned on. I've just been consulting the EightyOne source code, in particular the "BYTE zx81_opcode_fetch(int Address)" function to see how it handles the WRX option. It's structured quite differently from my code.

My focus in the short term has changed to fixing the WRX shortcoming in the app so that I can include your games.
The internal RAM chip(s) that form the 1k bytes of RAM are controlled by the ULA. In common with Sinclair's keep it simple and low cost, the address decoding for this is as simple as possible, so this RAM chip will respond whenever the Z80 does an instruction fetch, a data fetch, a data write, or during a Z80 refresh cycle. Specifically, during the refresh cycle, this RAM will put data on the data bus. This is what machine code hi-res graphics takes advantage of.

The Sinclair 16k byte RAM pack uses dynamic RAM chips. In this, Sinclair only allowed the RAM pack to respond to instruction fetches, data fetches and data writes. During the Z80 refresh cycle, the RAM does not put any data on the data bus. So it cannot be used as-is for hi-res graphics. The modification adds some inexpensive components to allow the RAM pack to respond to the refresh control line (as a data read) and put the data from the address on the address bus at this memory location on the data bus.

If you modify a ZX81 by removing the existing 1k byte RAM chip(s), and replace it/them with a modern SRAM chip (16k bytes of a 32k byte chip), as long as you use the control line from the ULA, this will also be capable of hi-res graphics.

I'm not sure how Timex did the RAM control in the TS1500, so can't help there.

Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
gozzo
Posts: 452
Joined: Fri Jul 08, 2011 8:52 pm

Re: ZX81 emulator for iOS

Post by gozzo »

the ts 1500 uses dynamic rams so i suppose it would need similar mod as the rampacks..
Post Reply