Page 8 of 9

Re: Apple II Core

Posted: Sun Jul 16, 2023 9:15 am
by Newsdee

The new core works so well - we can play French obscure RPGs now!


Re: Apple II Core

Posted: Sun Jul 16, 2023 3:43 pm
by EeDee
alanswx wrote: Sat Jul 15, 2023 7:31 pm

This version fixes the reset button (F2) and allows reboot and self-test. This also adds the option to load 8k video roms from here: https://downloads.reactivemicro.com/App ... Dual-Euro/

There is also a video rom option like the switch that was on non-US Apple IIe's so you can switch between US and UK mode (unless you load the French or German rom, and then it is between LOCAL and US mode)

Thanks @alanswx :)


Re: Apple II Core

Posted: Sun Jul 16, 2023 8:28 pm
by thorr
alanswx wrote: Sat Jul 15, 2023 7:31 pm

This version fixes the reset button (F2) and allows reboot and self-test. This also adds the option to load 8k video roms from here: https://downloads.reactivemicro.com/App ... Dual-Euro/

There is also a video rom option like the switch that was on non-US Apple IIe's so you can switch between US and UK mode (unless you load the French or German rom, and then it is between LOCAL and US mode)

Thanks! This core is really great! A couple of observances. I prefer the "Normal" pixel clock. The "Double" causes artifacts. Changing the Aspect Ratio briefly stops the keyboard from responding. No big deal. There is no need to press Control when using reset. It would be cool to have an option to require this in the core menu.

What are the 8k video roms for?

I will update my list at the top of page 7, and below.

Also, can't wait for the IIgs core now. :-D


Re: Apple II Core

Posted: Sun Jul 16, 2023 8:39 pm
by thorr

Thank you for all the awesome progress. Here is what is left on my wishlist in order of my opinion of importance or value add:

  • Add Mouse support (Dazzle Draw). This alone would be huge because my Apple IIc ball mouse is, well, a ball mouse.
  • Add a No Slot Clock if one is not already there
  • Add separate volume controls for the Mockingboard and the internal speaker. It would also be cool if there were keys for this like F5/F6, F7/F8 for down/up.
  • Add support for a second Mockingboard for Ultima V. The volume for this should be at the same level as the other Mockingboard.
  • The backspace should print a "Checkered Square" symbol, not act as the left arrow key. Make this a configurable option in the core menu.
  • Add an option in the core menu to "Require Control Key for Reset"
  • Add a 1.5x, 2x, 3x and 4x turbo option. Sometimes having faster speed is desirable (I'm looking at you Rampage!)
  • Very low priority, but add an Apple IIc and Apple IIc+ option to the core with the ability to replace the ROM with a ROM 4x / 5x chip.
  • Option to save mounted .DSK and other files as .NIB with the same prefix file name when writing occurs. Alternatively and perhaps better, option to convert the files as they are read in to .NIB and removing the original or moving it to a backup folder or .bak extension. I found this DSK2NIB program compiled by Newsdee earlier in the thread that could be used manually in the meantime: viewtopic.php?p=49611#p49611
  • Prevent the possibility to mount the same disk in both drives.

Re: Apple II Core

Posted: Sun Jul 16, 2023 11:53 pm
by virtuali

Is the core now published as an official update named "Apple-II_20230716" newer than the one you posted here yesterday ?


Re: Apple II Core

Posted: Mon Jul 17, 2023 2:59 am
by Newsdee
thorr wrote: Sun Jul 16, 2023 8:39 pm

What are the 8k video roms for?

  • Add Mouse support (Dazzle Draw). This alone would be huge because my Apple IIc ball mouse is, well, a ball mouse.
  • Add a No Slot Clock if one is not already there
  • Add a 1.5x, 2x, 3x and 4x turbo option. Sometimes having faster speed is desirable (I'm looking at you Rampage!)
  • Very low priority, but add an Apple IIc and Apple IIc+ option to the core with the ability to replace the ROM with a ROM 4x / 5x chip.

The loadable ROM is to switch built-in languages. European Apple IIes would come with a new video ROM that can toggle between languages by a physical switch in real time. It's rather crude - all it does is switch ROM banks to support two sets of characters (e.g. US and UK, or US and FR, US and DE, etc...). But many programs heavy on texts (and cracks, docs, etc) would rely on it. So it's a super nice addition to have! There is even an enhanced ROM with a slightly different (English) character font if you want to try something different.

As for features:

  • No-slot clock feature is already there, Alan already added it.

  • Mouse would be neat, but I understand it's a lot of work to get running.

  • Overclock to 4Mhz (Apple IIc+) and 2Mhz (Apple IIe card) would be great (but not sure if feasible)

  • I'd personally like to tweak colors a bit; but that's something that maybe I can do...

  • Apples had a Z80 expansion card, not sure if any games use it

  • Not sure what other //c - specific features would be really needed;
    there were 800K disks but I guess most games came out on 128K floppies anyway

For .NIB I guess the main issue is having to run an external program to convert... but one possibility (that doesn't need any dev work) would be for the community to create a repository of save disks already in .nib format, pre-formatted for various games. I started something a while back: https://github.com/Newsdee/apple2saves so feel free to contribute!

I'll admit that for me having a compatible Apple //e is more than enough than an exact replication. And the core is already there except for a few minor things now. It's easier for users to just set a few overall settings that can run everything, rather than remembering which model to use.

virtuali wrote: Sun Jul 16, 2023 11:53 pm

Is the core now published as an official update named "Apple-II_20230716" newer than the one you posted here yesterday ?

Yes


Re: Apple II Core

Posted: Mon Jul 17, 2023 3:15 am
by rhester72

I think it would be better to have MiSTer Main transparently convert between DSK and NIB the way the C64/C128 core does to prevent confusion and improve usability.


Re: Apple II Core

Posted: Mon Jul 17, 2023 3:58 am
by Newsdee

If anybody wants to play Wizardry 1, then I can recommend using the latest recompiled version (Apr 9th 2023):
https://www.zimlab.com/wizardry/

It fixes many things and works fine with the new MiSTer core.
As a small caveat, it also fixes some cheat hacks (e.g. bishop XP cheat) but you can still enjoy the game without that anyway

The only other version of Wizardry I managed to get working is a "patched 40 columns" version from Asimov.
Other versions of the game hang after the title screen.

I suspect the reason these 40-columns and Recompiled versions work is because they remove the write-only check on boot disk.
The core currently doesn't support making a disk read-only; but it isn't strictly needed if you know which version to use.


Re: Apple II Core

Posted: Mon Jul 17, 2023 4:39 am
by thorr
Newsdee wrote: Mon Jul 17, 2023 2:59 am

The loadable ROM is to switch built-in languages. (snip)

As for features:

  • No-slot clock feature is already there, Alan already added it.

  • Mouse would be neat, but I understand it's a lot of work to get running.

  • Overclock to 4Mhz (Apple IIc+) and 2Mhz (Apple IIe card) would be great (but not sure if feasible)

  • I'd personally like to tweak colors a bit; but that's something that maybe I can do...

  • Apples had a Z80 expansion card, not sure if any games use it

  • Not sure what other //c - specific features would be really needed;
    there were 800K disks but I guess most games came out on 128K floppies anyway

For .NIB I guess the main issue is having to run an external program to convert... but one possibility (that doesn't need any dev work) would be for the community to create a repository of save disks already in .nib format, pre-formatted for various games. I started something a while back: https://github.com/Newsdee/apple2saves so feel free to contribute!

I'll admit that for me having a compatible Apple //e is more than enough than an exact replication. And the core is already there except for a few minor things now. It's easier for users to just set a few overall settings that can run everything, rather than remembering which model to use.

Thanks for the info on the loadable ROM's. Sounds like it is a great feature to have if you play the games that need it. Great!
That's awesome about the No Slot Clock. It must have been recently added. I haven't tested for it in the latest builds.
I really hope we can get mouse support. I use the mouse a descent amount, for programs I write and Dazzle Draw.
Regarding the colors, this was talked about previously in this thread, and I am pretty sure the colors are accurate, even though they look incorrect to me too. Actually looking back on page four of this thread, it was you that helped convince me they were correct, lol.
I don't really know what a Z80 card would be used for. If there is a reason, then cool.
Yeah 3.5" disks are a thing (Rampage). I didn't try these on the core.
The main thing about Apple IIc that is different that I care about is it supports programming in Double Lo-Res graphics much easier in BASIC. Also, the mouse is different I think too. It uses the joystick port.

Thanks for all the feedback!


Re: Apple II Core

Posted: Mon Jul 17, 2023 5:02 am
by Newsdee
thorr wrote: Mon Jul 17, 2023 4:39 am

[Actually looking back on page four of this thread, it was you that helped convince me they were correct, lol.
I don't really know what a Z80 card would be used for. If there is a reason, then cool.
Yeah 800K disks are a thing (Rampage). I didn't try these on the core.

I found out the problem - it was me :D I'm mostly using the core on an old VGA screen with brighter settings and as a result had Gamma dialed way up (which makes everything darker on MiSTer screen shots).

The core colors were based on an old detailed post done in comp.sys.apple2 so a priori are correct. I could do my own build with my own selected colors... but these can be subjective; I don't want to end up in a situation like the NES where we need palette files to cater for everybody :)

For 800K disks I wonder if we could convert them to hard drive instead; but it's a niche use case - like the Z80 card.


Re: Apple II Core

Posted: Mon Jul 17, 2023 6:20 am
by Malaespera

The Z80 card is basically to use the cpm operating system with 80 columns. Widely used at the time. Microsoft sold thousands of cards.


Re: Apple II Core

Posted: Mon Jul 17, 2023 2:36 pm
by Newsdee
Malaespera wrote: Mon Jul 17, 2023 6:20 am

The Z80 card is basically to use the cpm operating system with 80 columns. Widely used at the time. Microsoft sold thousands of cards.

Just remembered that CP/M already runs on the Multicomp core on MiSTer;
was there something special about the Apple version?


Re: Apple II Core

Posted: Mon Jul 17, 2023 5:16 pm
by thorr
Newsdee wrote: Mon Jul 17, 2023 5:02 am

I don't want to end up in a situation like the NES where we need palette files to cater for everybody :)

For 800K disks I wonder if we could convert them to hard drive instead; but it's a niche use case - like the Z80 card.

In general (MiSTer Main), it would be cool if there were color controls like saturation, etc. that could be saved per core. Maybe this already exists. Then people could change them to whatever they want (even though it would almost be guaranteed to be inaccurate).

3.5" disks are the main disks of the Apple IIgs, so it certainly doesn't hurt to support them because the technical knowledge and maybe some code can be used in the IIgs core. The same goes for the mouse. I am not sure if there are differences though. I had an external 3.5" drive on my Laser 128EX as a kid and it was awesome! You could hold so many programs on one disk, and they seemed to be less prone to read and write errors.

Thanks Malaespera for the Z80 card info. I know absolutely zero about CP/M. Never saw it, don't know what it even is. I will have to look into for curiosity's sake.


Re: Apple II Core

Posted: Mon Jul 17, 2023 5:19 pm
by rhester72

CP/M was like the DOS of the 1970s and very cross-platform...it was supported on two major categories of CPU and by many, many manufacturers. In fact, some of the command and device structure of QDOS/86DOS (later renamed to MS-DOS) is derived directly from CP/M.


Re: Apple II Core

Posted: Tue Jul 18, 2023 3:09 pm
by Newsdee
thorr wrote: Mon Jul 17, 2023 5:16 pm

I had an external 3.5" drive on my Laser 128EX as a kid and it was awesome! You could hold so many programs on one disk, and they seemed to be less prone to read and write errors.

Right but the core also support hard drives - you can just mount a 32MB hard drive and store whatever you want in it :D


Re: Apple II Core

Posted: Tue Jul 18, 2023 7:39 pm
by thorr
Newsdee wrote: Tue Jul 18, 2023 3:09 pm

Right but the core also support hard drives - you can just mount a 32MB hard drive and store whatever you want in it :D

Yeah, I already transferred all my important stuff from my floppies to a hard drive image. It's just nice to have the option to use 3.5" disks for the sake of completeness of the core and being able to use any disks with it. It's not on my wishlist though. Maybe I should add it. :D


Re: Apple II Core

Posted: Wed Jul 19, 2023 5:05 pm
by alanswx

In this version I am trying to figure out write protect. I think it will write protect D1 and/or D2 based on the OSD.


Re: Apple II Core

Posted: Wed Jul 19, 2023 5:47 pm
by thorr
alanswx wrote: Wed Jul 19, 2023 5:05 pm

In this version I am trying to figure out write protect. I think it will write protect D1 and/or D2 based on the OSD.

Thanks for continuing to work on and perfect this awesome core! For the write protect, you should just be able to code in a piece of tape I think. ;-)


Re: Apple II Core

Posted: Sun Jul 23, 2023 12:06 pm
by EeDee
alanswx wrote: Wed Jul 19, 2023 5:05 pm

In this version I am trying to figure out write protect. I think it will write protect D1 and/or D2 based on the OSD.

I have no experience with Apple computers but tested the Wizardry game, which someone mentioned hung after the intro, and it works. Waiting to hear some more informed observations though ;)
Thanks @alanswx. It's details like that which makes a Cores feel more "authenic" and also makes it more usable.


Re: Apple II Core

Posted: Wed Aug 02, 2023 4:51 pm
by badvision

Thanks for this wonderful core! Having grown up and learning to program on the Apple //e, it makes me happy to see that there's project like this that allow the software to remain accessible to folks today.

If it helps, here are some notes on implementing Apple emulation features in no particular order (caveat: I authored a cycle-accurate Apple //e emulator years ago and am in the process of refurbishing it...)

1) 3.5" disks and hard drive support are basically the same thing, only difference is disks are 800kb in size and hard drive images can be up to 32mb. So if you have one, you have the other. Simply implement two controllers and have one in, say, slot 5 that takes the 800kb disk images with the same firmware. Side note: When in doubt, assume prodos-ordering on the sectors. (e.g. 800kb DSK should be treated as a PO file)
2) Supporting two mockingboards for Ultima 3-5 is not a bad idea, but really it's a better idea to use one slot and support Phasor. The way it works is that there are two 6522 chips on it, and the second chip simply responds to a different set of I/O register memory locations. Whereas the first one is at Cx00-Cx0F, I believe the second 6522 is at Cx80-Cx8f. I don't think the second 6522 was capable of sending timer interrupts though, but I'm not 100% sure. At any rate nothing would have used the second 6522's timers more than likely.
3) If you want to really test the cycle accuracy of the emulator, run some French Touch demos on it. :) Crazy Cycles and Crazy Cycles 2 would be a good start.
4) Mouse support is odd, but not impossible. Two ways you can do it are to emulate the card and the mouse at low-level, or implement something which acts like the card and handles the necessary stuff at a high-level. I took the later approach, where I set execution traps on the firmware routines and had high-level emulation do the work of updating screenholes to mimic what the firmware does. I took a similar approach for smartport/hard drive emulation as well. https://github.com/badvision/jace/blob/ ... Mouse.java
5) Overclock CPU is do-able but you need to rectify the fact that I/O and Video run at 1mhz. A simple solution for this is to run X CPU cycles per 1mhz motherboard tick. This should allow you to get at least up to 8mhz which is more than sufficient.
6) //c emulation isn't a simple jump. Though a //c and emulated //e are very similar in many ways, the rom firmware layout of the //c and some of the I/O behavior are very different (especially vertical retrace and floating bus behaviors!) -- and there were 3 or 4 board/rom variations of the //c as well so you have to decide which version of the //c you want to emulate (such as the "Rom 255" aka first version) or the later memory-expandable versions.
7) Z80 support is interesting but realistically you didn't find a lot of software other than business/scientific software that used it. Certainly no games, not even graphics packages.
8) If you use NTSC color emulation logic, then tweaking the YU'V color parameters should be a pretty easy feature to add.
9) Adding Super-serial support might be a neat idea. One way you could do it is emulate the 6522 at a low-level and wire the ports to a host process that listens on, say, port 1977. This would allow people to telnet into the emulation or let the emulator connect out. Another possibility is some other kind of expansion option such as those used by SNAC adapters to connect other controllers. I'm kind of brainstorming here, I'm not sure what is the most feasible option to be honest.

Thanks again and good luck with this core!
-Brendan


Re: Apple II Core

Posted: Sun Aug 06, 2023 2:00 pm
by alanswx
badvision wrote: Wed Aug 02, 2023 4:51 pm

1) 3.5" disks and hard drive support are basically the same thing, only difference is disks are 800kb in size and hard drive images can be up to 32mb. So if you have one, you have the other. Simply implement two controllers and have one in, say, slot 5 that takes the 800kb disk images with the same firmware. Side note: When in doubt, assume prodos-ordering on the sectors. (e.g. 800kb DSK should be treated as a PO file)

Good to know -- I need to try this.

badvision wrote: Wed Aug 02, 2023 4:51 pm

4) Mouse support is odd, but not impossible. Two ways you can do it are to emulate the card and the mouse at low-level, or implement something which acts like the card and handles the necessary stuff at a high-level. I took the later approach, where I set execution traps on the firmware routines and had high-level emulation do the work of updating screenholes to mimic what the firmware does. I took a similar approach for smartport/hard drive emulation as well. https://github.com/badvision/jace/blob/ ... Mouse.java

Gyurco was looking at emulating the original chip/firmware. I was thinking about using your approach. I would love some help. I have the iie running in verilator so we can simulate the whole thing in software.

badvision wrote: Wed Aug 02, 2023 4:51 pm

9) Adding Super-serial support might be a neat idea. One way you could do it is emulate the 6522 at a low-level and wire the ports to a host process that listens on, say, port 1977. This would allow people to telnet into the emulation or let the emulator connect out. Another possibility is some other kind of expansion option such as those used by SNAC adapters to connect other controllers. I'm kind of brainstorming here, I'm not sure what is the most feasible option to be honest.

I already have super serial support with a 6522 chip implemented. I was able to get proterm to run.


Re: Apple II Core

Posted: Sun Aug 06, 2023 8:00 pm
by dakidski

Would it be possible to port this core to the basic MiST? Or is it too big? Not begging for ports, just curious.


Re: Apple II Core

Posted: Mon Aug 07, 2023 3:34 am
by alanswx
dakidski wrote: Sun Aug 06, 2023 8:00 pm

Would it be possible to port this core to the basic MiST? Or is it too big? Not begging for ports, just curious.

Gyruco has a iie core for MiST. My last floppy changes came from that core. It should be in really good shape, possibly still better than MiSTer.


Re: Apple II Core

Posted: Mon Aug 07, 2023 4:19 pm
by dakidski
alanswx wrote: Mon Aug 07, 2023 3:34 am
dakidski wrote: Sun Aug 06, 2023 8:00 pm

Would it be possible to port this core to the basic MiST? Or is it too big? Not begging for ports, just curious.

Gyruco has a iie core for MiST. My last floppy changes came from that core. It should be in really good shape, possibly still better than MiSTer.

Oh okay. From what I read, the MiST A2 core didn't support harddisk images? But this one does? I could be wrong.


Re: Apple II Core

Posted: Mon Aug 07, 2023 5:00 pm
by alanswx
dakidski wrote: Mon Aug 07, 2023 4:19 pm
alanswx wrote: Mon Aug 07, 2023 3:34 am
dakidski wrote: Sun Aug 06, 2023 8:00 pm

Would it be possible to port this core to the basic MiST? Or is it too big? Not begging for ports, just curious.

Gyruco has a iie core for MiST. My last floppy changes came from that core. It should be in really good shape, possibly still better than MiSTer.

Oh okay. From what I read, the MiST A2 core didn't support harddisk images? But this one does? I could be wrong.

That is possible. I don't think Gyruco brought over the clock card, or serial port either. Not sure how serial works on MiST.


Re: Apple II Core

Posted: Fri Aug 18, 2023 5:36 pm
by HerrBerzerk

Can someone tell me how to switch to Joystick on the game Bandits? According to the Boxart, Joystick is supported but I don't get it working.

On Loderunner e.g. you have to press CTRL-J... but I did not find any hint on (Apple)-Bandits.


Re: Apple II Core

Posted: Fri Aug 18, 2023 8:33 pm
by thorr
HerrBerzerk wrote: Fri Aug 18, 2023 5:36 pm

Can someone tell me how to switch to Joystick on the game Bandits? According to the Boxart, Joystick is supported but I don't get it working.

On Loderunner e.g. you have to press CTRL-J... but I did not find any hint on (Apple)-Bandits.

If you have $275 to spare, you can buy this, and it comes with the manual: https://www.ebay.com.my/itm/195027897285

Otherwise, try Control Shift P. I can't try this myself right now, and I have no idea if that is for the emulator or if it will work for the game. I found it here: https://mednafen.github.io/documentation/apple2.html


Re: Apple II Core

Posted: Sat Aug 19, 2023 7:20 am
by HerrBerzerk

[/quote]

If you have $275 to spare, you can buy this, and it comes with the manual: https://www.ebay.com.my/itm/195027897285

Otherwise, try Control Shift P. I can't try this myself right now, and I have no idea if that is for the emulator or if it will work for the game. I found it here: https://mednafen.github.io/documentation/apple2.html
[/quote]

WOW. 275 is a lot :-) I give it a try later, thanks. I did search myself but was not able to find something.


Re: Apple II Core

Posted: Sat Aug 19, 2023 11:30 am
by HerrBerzerk
thorr wrote: Fri Aug 18, 2023 8:33 pm

If you have $275 to spare, you can buy this, and it comes with the manual: https://www.ebay.com.my/itm/195027897285

Otherwise, try Control Shift P. I can't try this myself right now, and I have no idea if that is for the emulator or if it will work for the game. I found it here: https://mednafen.github.io/documentation/apple2.html

WOW. 275 is a lot :-) I tried CTRL-P (CTRL Shift P) and it did switch to joystick but the joystick was always steering to right. Tried every combination, no luck. I guess it's a weird joystick adapter analog to digital adapter thing that I don't figure without manual so I leave it like it is, not worth sinking more time in it :-) Thanks anyway.


Re: Apple II Core

Posted: Sat Aug 19, 2023 1:16 pm
by thorr
HerrBerzerk wrote: Sat Aug 19, 2023 11:30 am

WOW. 275 is a lot :-) I tried CTRL-P (CTRL Shift P) and it did switch to joystick but the joystick was always steering to right. Tried every combination, no luck. I guess it's a weird joystick adapter analog to digital adapter thing that I don't figure without manual so I leave it like it is, not worth sinking more time in it :-) Thanks anyway.

My guess is there is another key combination for the normal joystick.
You can probably just temporarily map the joystick to the keys in the game using the mister menu.