JOric

Comments, problems, suggestions about Oric emulators (Euphoric, Mess, Amoric, etc...) it's the right place to ask. And don't hesitate to give your tips and tricks that help using these emulations in the best possible way on your favorite operating system.
User avatar
ibisum
Wing Commander
Posts: 1643
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: JOric

Post by ibisum »

>Makes me want to write some games.


Hell yeah! :)
ThomH
Flying Officer
Posts: 238
Joined: Thu Oct 13, 2016 9:55 pm

Re: JOric

Post by ThomH »

dreamseal wrote: Sun Mar 25, 2018 11:22 pm I'm going to be busy playing these games now rather than working on the emulator. :D
That's how you know you're doing a good job!
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: JOric

Post by Dbug »

Be careful if you start looking at games from Twilighte and Chema, you risk to be disappointed when you go back to the earlier Oric games :)

Saying there's a generation bump would be an understatement, Stormlord is a very impressive technical challenge, there are not many people out these who could achieve the same thing... all by themselves!
User avatar
dreamseal
Officer Cadet
Posts: 62
Joined: Sat Mar 17, 2018 6:14 pm

Re: JOric

Post by dreamseal »

Dbug wrote: Tue Mar 27, 2018 7:46 am Be careful if you start looking at games from Twilighte and Chema, you risk to be disappointed when you go back to the earlier Oric games :)
I know what you mean. Those recent games look amazing. I'm really excited to play Space 1999 and Blake's 7 (graphic adventures are another one of my hobby interests), but I'll either need to wait until my Cumulus arrives (which will hopefully not be too far away), or I'll need to add disk support to JOric, or use another emulator. If I can play the game and test my emulator at the same time, then I'd be multitasking. I haven't yet looked at what is required to get something up and running for loading disks in JOric. I'm currently looking at the sound emulation. But if there is a quick load option for loading disks, I'd be keen to hear about it.

With regards to newer games being more advanced, something similar is happening in the VIC 20 community as well. A game called Cheese and Onion by Misfit for the VIC 20 is an amazing platform game given the limitations of the VIC 20 video system. Prior to that Misfit released an isometric game for the VIC 20 a lot like Space 1999. Not sure if Misfit frequents this forum, but I know his next game is targeting the Oric amongst many other 8-bit platforms. Will be interesting to see how it turns out. The screenshots look a lot like pacman. Perhaps he has gone a bit simpler given the number of platforms he's trying to target in one go.
Dbug wrote: Tue Mar 27, 2018 7:46 amSaying there's a generation bump would be an understatement, Stormlord is a very impressive technical challenge, there are not many people out these who could achieve the same thing... all by themselves!
I'm very impressed with Stormlord.

What are some good games and demos with regards to testing sound emulation? Stormlord seems to have decent background music. What would be the best example of a musical composition for the Oric?
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: JOric

Post by Dbug »

dreamseal wrote: Wed Mar 28, 2018 9:31 pmWhat are some good games and demos with regards to testing sound emulation? Stormlord seems to have decent background music. What would be the best example of a musical composition for the Oric?
Well, depends.
In term of "Musical composition for the Oric", most of that would be Twilighte games.
If what you want is to test how good your sound emulation works, it could just be one of the many sound demos using sample sound, or imported Atari ST musics :)

That one has about 40 minutes of Atari ST music by different authors using very different features of the soundchip: http://www.defence-force.org/index.php? ... ngenvelope

For sample sound, the Rambo sound demo by the Tivoli Pirat is not bad.

You can also play with Twilighte's sound tracker: https://www.oric.org/software/sound_tracker-1678.html

http://twilighte.oric.org/twinew/start.htm
User avatar
Symoon
Archivist
Posts: 2301
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France

Re: JOric

Post by Symoon »

IIRC, Zip And Zap from Twilighte exists in TAP format and (for sure) plays a music with samples.
ThomH
Flying Officer
Posts: 238
Joined: Thu Oct 13, 2016 9:55 pm

Re: JOric

Post by ThomH »

Unfortunately I don't think there's a quick shortcut to test disk titles because many of them, if not most, talk to the controller directly. I would dare imagine you can implement your WD to jump directly to any requested sector and stream its bytes exactly as the CPU reads them but the Oric disk file format is a bit of an odd one* so you're going to have to do some work before you can even achieve that.

On the plus side, Western Digital provided the best data sheets I've seen. As well as the usual descriptive stuff they just put in flow charts to explain exactly the sequence of decisions. I found implementing the WD a lot easier than, for other machines, I did the Intel 8272 or even the C-1540. Though in the latter case I think most of the time was spent on looking at ROM disassemblies on both sides of the interface to try to figure out who is inverting serial bus signals and who isn't.

* it's not actually going to tell you where the sync marks are, or anything like that; clock bits are implicit across the entire track. So you get to try to infer from context. So to compare to the Vic-20 world as you implemented it previously, it neither enforces a certain structure ala d64, nor broadens itself to a 95%-good-enough model of the actual disk surface ala g64.
User avatar
dreamseal
Officer Cadet
Posts: 62
Joined: Sat Mar 17, 2018 6:14 pm

Re: JOric

Post by dreamseal »

Symoon wrote: Thu Mar 29, 2018 10:56 am IIRC, Zip And Zap from Twilighte exists in TAP format and (for sure) plays a music with samples.
Wow, that Zip N Zap has a really great souding title tune, and since I don't have disk support yet, then this one and Stormlord are looking like my best sound testing games.
Dbug wrote: Thu Mar 29, 2018 7:10 am That one has about 40 minutes of Atari ST music by different authors using very different features of the soundchip: http://www.defence-force.org/index.php? ... ngenvelope

For sample sound, the Rambo sound demo by the Tivoli Pirat is not bad.

You can also play with Twilighte's sound tracker: https://www.oric.org/software/sound_tracker-1678.html

http://twilighte.oric.org/twinew/start.htm
The sound tracker and Atari ST music would be perfect. Sounds like I need to get started on disk emulation fairly soon then, since it appears that both of those are on disk.
ThomH wrote: Thu Mar 29, 2018 6:50 pm Unfortunately I don't think there's a quick shortcut to test disk titles because many of them, if not most, talk to the controller directly. I would dare imagine you can implement your WD to jump directly to any requested sector and stream its bytes exactly as the CPU reads them but the Oric disk file format is a bit of an odd one* so you're going to have to do some work before you can even achieve that.
Oh well, I guess I'll have my work cut out for me. The simpler tasks are behind me it would seem. :)
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: JOric

Post by Dbug »

Even if your plan is just to reach the moon, target the stars :)
User avatar
dreamseal
Officer Cadet
Posts: 62
Joined: Sat Mar 17, 2018 6:14 pm

Re: JOric

Post by dreamseal »

I'm really finding it extremely interesting reading up on the AY-3-8912. I didn't know a lot about it until about a week ago, although I've realised now that some of my favourite arcade games used this chip, e.g. Gyruss, an all time favourite of mine. Amazing how many home computers and arcade machines used this chip.
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: JOric

Post by Dbug »

I believe many computers used this chip mostly because that gave an easy way to interface things such as printers or joystick ports, the fact it could do bleeps and bloops was mostly a side benefit :)
User avatar
dreamseal
Officer Cadet
Posts: 62
Joined: Sat Mar 17, 2018 6:14 pm

Re: JOric

Post by dreamseal »

I've been assuming it was the other way around, i.e. that the I/O port was the side benefit. My first impression of the chip was that it seemed strange the way in which a register value is set. I'm so used to the way in which the 6522 registers are set, simply through being memory mapped, that it seems unusual that the AY-3-8912 in the Oric isn't memory mapped and that you have to set the address first. I understand why, because it isn't designed to be memory mapped. A version of the same chip that has a full set of address pins rather than the I/O ports, so that it could be memory mapped, would have been useful I think. I was trying to see if such a thing exists, because a chip like this that supports being memory mapped like the 6522 is would be quite attractive for a home brew 8-bit machine.
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: JOric

Post by Dbug »

On the Atari ST it is mapped directly in memory at addresses $ffff8800 and $ffff8802, which makes it possible to do things like sample replay at a fraction of the cpu time of what it takes on the Oric.
ThomH
Flying Officer
Posts: 238
Joined: Thu Oct 13, 2016 9:55 pm

Re: JOric

Post by ThomH »

I think most fairly, it is designed to be memory mapped, but to a CP1610, which has a multiplexed bus. So the extra level of indirection on most machines is implemented just because it's the easiest way of dealing with that.
User avatar
dreamseal
Officer Cadet
Posts: 62
Joined: Sat Mar 17, 2018 6:14 pm

Re: JOric

Post by dreamseal »

Although I have been silent, I have by no means been idle with this project. It started out mainly as a way for me to learn about the Oric, and perhaps that is still the ultimate goal. I don't think I'll ever bring it up to the same level as Oricutron, CLK, or Euphoric. But the one thing going for it is that it does run on Android as its primary target. That was the point of using libgdx. At some point I'll drop a link to an apk that people can try. It also runs on desktop, so Linux, Mac, Windows, whatever, but looks and behaves like a mobile app. - Incidentally, it still has a VIC 20 keyboard for the graphical popup keyboard. I really must create an Oric one for it.

I now have sound and disk emulation working. Although I spent time reading the specs and getting a reasonable understanding of the AY38912 and the WD1793, I ended up taking a few short cuts by borrowing some code. I will have to make sure I properly credit the two people concerned (thank you Richard Wilson and Peter Gordon).

Firstly, for AY38912, I managed to find (would you believe it) no less than 10 different emulations of the AY38912 chip (or variant) written in Java. Yeah, that's only Java. There are many more written in other languages. I went through a process of trying out 7 of the 10 implementations in my emulator, and one of them shone far above the others, in fact it was the only implementation that the sample music from things like Zip N Zap worked on. For all the others, Zip N Zap was pretty much silence (hmm, hope I had the volume turned up). So the winner, after trialling those various implementations, was JEMU: http://jemu.emuunlim.com/downloads.html. As you can see, the author Richard Wilson made the Java source code freely available for anyone to use in whatever way they see fit, which I am very grateful for. The implementation sounds good enough to me, but it isn't perfect. Probably much better than I would have come up with myself though.

So on to the disk emulation. For this I did find a Java implementation of the WD1793 that was quite low level, and I did consider attempting to use it, but in the end I decided that the Oricutron disk emulation was so well written (in terms of being able to understand it), and so concise, that it would be trivial to convert the C code to Java. So that's what I did, and it pretty much worked first time. I made it more object oriented along the way though. I may end up keeping this, or I might try the other Java implementation at some point. I was just focused on trying to get the demos for disk images loading.

Having these two features allowed me to load and play demos such as Pushing The Envelope. I also spent some time playing Blake's 7 (being both a fan of animated graphic adventure games and the TV series). Interestingly, Space 1999 doesn't run properly. It gets to the first logo screen and then hangs. Any ideas on that one?

In the case of Pushing The Envelope, I noticed some slows downs in the music when the LOADING text comes up in the bottom right corner. Oricutron doesn't appear to slow down as much, although it also does seem to slow down a bit. Is the slow down expected? I haven't tried it on the original machine yet, although my Cumulus has arrived now, so I will hopefully give it a go this weekend to see how Pushing The Envelope performs (and sounds) on the real thing.
Post Reply