Re: Williams (Defender, Stargate, Joust, ...)

LOL!  Funny!  smile

Re: Williams (Defender, Stargate, Joust, ...)

Why is your enemy in second place? Shouldn't him be first?

My software: [url]https://github.com/m6502[/url]
My music: [url]https://soundcloud.com/m6502[/url]
My work: [url]http://www.linkedin.com/in/manuelmontoto[/url]

28

Re: Williams (Defender, Stargate, Joust, ...)

The idea is: the first time you are too careful (and too slow), the second time too sloppy (and too fast) and the third time you know how to do - and you do it the right (and efficient) way...

/WoS

Re: Williams (Defender, Stargate, Joust, ...)

wolfgang wrote:

Have the generic sound board running - piece of cake. ;-)

Now the "but":
I figured out that the 6802/08 (and the 6809) core from open cores is off any cycle accuracy. A lot of instructions are running too fast, so sound cannot be 100% correct.  sad

I do not want an emulated system running stuff as fast as possible as several of these system projects on opencores aim and "mend" the timing on higher level again (which may make sense for computing systems which usually do not care about the last clock cycle), I want the real thing with all flaws included and perfect timing from the ground up. wink

The cpu68 core I am using is not really set up that way (I tried already to fix some instructions), so it would be an endless story trying to get the missing bits and pieces in this existing code. Some things I would really need to set back even to an older state of the core when checking out the history (changes to make it even faster). And I don't want to go the way using an external processor, when there are plenty of ressources on the board to run the real thing there...

I could not find any 68xx micro-core which is "closer" to an real implementation, so next step is (unfortunately) to implement the 6802/8 again for the replay lib, this time by looking at (and honoring) the datasheet in every aspect and debug it also in the real system using our FDIL board. In a second step, I'll extend it for the 6809 used on the CPU board. I am sure this will come in handy for other games as well... smile

So enough to do here...


I noticed you said the 6802/08 core on open cores are not cycle accurate. I could only find a 6800 core and 6809 core listed on the opencores website.  Where is the 6802 core at? I was also wondering how the project is going?

30

Re: Williams (Defender, Stargate, Joust, ...)

Yes, there is nothing really useful out there which can be used. The 6802 core is a fresh implementation I started myself, as the correct CPU timing is mandatory to produce correct sound. It is developed using a FDIL board in a real Williams sound board (as shown above) and works fine already. Although not all opcodes are fully implemented yet (I have a error output LED on the FDIL showing me if a yet not implemented opcode is executed, then I can explicitly trigger on this event to get out what is missing).

The re-implementation for the Replay stopped at a so far functional sound board implementation before I went over to the C64 core. I'd like to tweak the c64 a little more (especially improving the CIA required for many games/demos), then I'll be back on the Williams. Next step would be to extend my CPU for the larger 6808 variant used on the main PCB.

/WoS

Re: Williams (Defender, Stargate, Joust, ...)

Isnt the 6808 the exact same as the 6802 core minus the onboard ram?

Re: Williams (Defender, Stargate, Joust, ...)

Have you released the code? If so will it run on a spartan 3e?

33 (edited by WoS 2014-07-01 06:32:24)

Re: Williams (Defender, Stargate, Joust, ...)

Sorry, you are totally right. I meant the the successor of the 6800, the 6809.

I always write "FPGA-primitives-clean" VHDL code which should run on any FPGA (e.g. the Replay is Spartan 3e, the FDIL Spartan II). It is not released yet, still working on it (as mentioned, still some missing opcodes which will probably make troubles on any other platform than the Williams sound PCB).

Edit: added my "internal" status sheet, green blocks with questionmark seem to work, but no full "dedicated" stand-alone test yet (just running on Williams so far)...

Post's attachments

680x_Status.PNG
680x_Status.PNG 46.33 kb, 2 downloads since 2014-07-01 

You don't have the permssions to download the attachments of this post.
/WoS

Re: Williams (Defender, Stargate, Joust, ...)

If you are short on time and need help with developing the missing opcodes I would love to help. However, I am no where near the same level as you are, but I will help where possible.

35

Re: Williams (Defender, Stargate, Joust, ...)

Thanks for your offer. But coding is not at all my problem for now, most work and time goes into exhaustive testing. That's also what most of the stuff on open cores etc. is missing (for me it is not tested just because some software is running on it, and I am really not happy with this code as it usually costs a lot of time for debugging at the end to find the flaws in the code - especially when you have all implemented first and start testing afterwards).

Thus, I want to test the real thing stand-alone against the FPGA in any possible corner also on HW side, this requires some lab equipment as well for all the debugging work (FDIL-board or similar 5V capable FPGA setup, prototyping environment, DSO, LA, ...) - see pictures above wink . And I want to do it step by step and opcode by opcode (with most adressing modes) to keep the overview what is done and what is missing.

/WoS

Re: Williams (Defender, Stargate, Joust, ...)

I broke down last week and bought a couple of arcade cabinets off eBay.  One had Defender, Joust, Robotron, Stargate and a couple of other games on it, and the other had 60 games including Phoenix, Galaxians, 1942, 1943, Pacman, Mrs Pacman, Scramble, Space Invaders...

My arms are sore from all of the joystick waggling and button thumping.  smile

Re: Williams (Defender, Stargate, Joust, ...)

I'd love to buy one, but the wife would kill me.  She thinks arcade cabs are unsightly.  :-(

Re: Williams (Defender, Stargate, Joust, ...)

I managed to get away with it by:

A.  Buying them without asking her first.
B.  Having them delivered while she was at work.
C.  Pointing out that last month she said she loved Galaxians and I'd bought that one just for her.  wink
D:  Putting them out of sight in my Man Cave.

If you're on Facebook then look up the group "The Lanchbury Arms" and there's a pic of them in position with my son playing them.  I told him that if he was bad then I'd deactivate the "free play" and make him shove coins in to play.  big_smile

Re: Williams (Defender, Stargate, Joust, ...)

Haha :-)  I recently satisfied my retro gaming pleasures by buying an N64, EverDrive 64, N64 expansion pak and scart cabling, so that will have to do for now.  However, I see an arcade cabinet in my lounge, so dagnabbit, there'll be one!

Re: Williams (Defender, Stargate, Joust, ...)

That's the spirit!  I can recommend a good divorce lawyer should you need one.  Just make sure she doesn't get the cabinet!  big_smile

Re: Williams (Defender, Stargate, Joust, ...)

Hi Wolfgang,

Just checking in to see how the MC6802 project is progressing.

42

Re: Williams (Defender, Stargate, Joust, ...)

currently on hold to beat the bugs out of the t65 core for the c64 wink

will work on the arcade stuff during my x-mas vacation...

/WoS

Re: Williams (Defender, Stargate, Joust, ...)

Where can I download the vhdl code for 6802. I dont see it in CVS. The CVSD ic on Bally/Williams board requires precise clocking inorder to render speech on the sound board I'm playing with, Williams Jungle lord. Its basically the video sound board with an aux board attached. Can I use this core?

thanks

Re: Williams (Defender, Stargate, Joust, ...)

Hi,
by CVS you mean the public SVN repository? A lot of code has not been transferred yet, we are working on it.
Can we have a look at your code - in fact if you wish we can host your project as well?
Thanks,
Mike

Re: Williams (Defender, Stargate, Joust, ...)

rite now Im using the open core 6800 core. Its not ready for prime time. PM me if u like to look.

46

Re: Williams (Defender, Stargate, Joust, ...)

680x core is still WIP, I didn't upload even to the private developer SVN yet, as I don't think it makes sense to distribute or use it half-ready in any setup. I also have a preliminary code for the whole sound board running on the Replay - but without the rest of the game also quite useless yet (as long as you like a game where you can press any key and you will get one of the sound samples smile ).

I did continue on it meanwhile, about 90% of opcodes/addressing modes are in, about 60% is currently tested and should work. Coding is the simple part, checking the behaviour of a real CPU using test cases and then setting up a verification testbenches is most of the work (as it has to be 100% functional and timing accurate).

It will run some specific ROMs already (like Defender and some others) I have for the Williams sound board (tested with the FDIL replacing the CPU in a real board - and as mentioned it runs on the Replay as well), but I can't be sure it will run any others - and I have not at all tested it with any of the speech-enabled versions using this add-on board...

I have a simple strategy, basically from my experience on the C64 core, where I did early releases: didn't get a lot of feedback which was the idea (to ensure broader testing on functional level during development - not just to use it to play something), but just read elsewhere that people (where I am not sure if they even have a board yet) mentioned there is no core or at least the implementation is imature - which is now burned in the head of several peoples. And such posts usually do not disappear and are rarely corrected - as they are meanwhile simply wrong. So I am not sure if my approach was worth it.

So to release the Williams stuff, it has to work properly on the Replay (because that is the board I have and can use to test) - I won't release anything incomplete or untested.

This is the actual implementation status of the CPU:

Post's attachments

680x_Status_jun2015.PNG
680x_Status_jun2015.PNG 23.24 kb, 1 downloads since 2015-06-20 

You don't have the permssions to download the attachments of this post.
/WoS

Re: Williams (Defender, Stargate, Joust, ...)

Maddthad, I've sent you an email.
/MikeJ

Re: Williams (Defender, Stargate, Joust, ...)

Glad to see you are making good progress on this project. Can't wait to see this become fully functional.

Re: Williams (Defender, Stargate, Joust, ...)

Was there ever any more progress with this? I did a number of arcade and pinball sound boards in VHDL a year or two ago and ran into the same issue with the 6800 core. It sounded ok but when I compared it side by side with the sound from my real Robotron cabinet it was clear that the speed was off.

A cycle accurate 6809 would be great, it would enable an FPGA recreation of the Vectrex. All of the major components already exist in HDL but the Vectrex relies on precise timing to draw the vectors.