NEW OR UPDATED ARCADE CORES

https://github.com/mist-devel/mist-board/wiki

Moderators: Mug UK, Zorro 2, Greenious, spiny, Moderator Team

Darfpga
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 106
Joined: Thu Feb 02, 2017 10:07 pm

Re: NEW OR UPDATED ARCADE CORES

Postby Darfpga » Sat Jan 04, 2020 12:11 pm

slingshot wrote:I've added a z80ctc_top to keep the arcade board cleaner, and to encapsulate the RETI detector.
Now only Power Drive doesn't work.


As far as I can understand from ctc datasheet RETI detector is only usefull when priority management between several separated devices in needed (cascaded priorities). More over this mechanism shouldn't prevent CTC to latch its own interrupt even when any other interrupt is currently in service.

One question remains : does CTC allow for nested interrupt ? That is when a new interrupt occurs during service routine of previous one, should int_n be inserted before end of service routine (reti) or immediately after ?

slingshot
Atari God
Atari God
Posts: 1398
Joined: Mon Aug 06, 2018 3:05 pm

Re: NEW OR UPDATED ARCADE CORES

Postby slingshot » Sat Jan 04, 2020 1:11 pm

Darfpga wrote:
As far as I can understand from ctc datasheet RETI detector is only usefull when priority management between several separated devices in needed (cascaded priorities). More over this mechanism shouldn't prevent CTC to latch its own interrupt even when any other interrupt is currently in service.

This was my first thought also.
But at the end, the datasheet is clear:
If a device or channel is being serviced in an with an interrupt routine, it cannot be interrupted by a device or channel until service is complete.

That's why Journey is a good test case (otherwise a stupid game): it enables interrupts in the int3 handler, and it doesn't expect that int3 will happen during that (until RETI). Otherwise it will crash. So that's why the in-service bits are needed. I've cross-checked this in MAME debugger, too.

One question remains : does CTC allow for nested interrupt ? That is when a new interrupt occurs during service routine of previous one, should int_n be inserted before end of service routine (reti) or immediately after ?

Currently the lower or equal priorty interrupt is lost. Maybe it should be executed after the higher or same priority is serviced, need to test (the 68009 MFP stores pending interrupts for example). At least in Journey, the CTC behaves correctly. Maybe debugging Power Drive will give the answer.

Upd: Power Drive works also. The monoboard connects VBLANK to CTC input trigger 2, this way it doesn't has to use it as a timer. This should trigger once/half frame (60Hz).
Last edited by slingshot on Sat Jan 04, 2020 3:23 pm, edited 1 time in total.

slingshot
Atari God
Atari God
Posts: 1398
Joined: Mon Aug 06, 2018 3:05 pm

Re: NEW OR UPDATED ARCADE CORES

Postby slingshot » Sat Jan 04, 2020 1:15 pm

Darfpga wrote:
- then, following the idea of a 30Hz rate for ctc_trg3 which launch interrupt 3, I set this trigger every other frame to get the expected 30Hz from the 60Hz VGA line scanner and I found the game to be much too slow (eg. it takes around 16s for the balloons to reach the top of the screen in attrack mode, instead of 8s with MAME). I check schematics and MAME machine/mcr.c everything leads to the value that you tell : 30Hz rate. I have no explanation about why the game is too slow with this rate.

Maybe it's because the counter mistake (not the prescaler one, as it's irrelevant in counter mode): it should trigger the interrupt when it's about to be 0, not after 0. So setting to '1' should fire timer3 in every frame (30Hz), but it did it in every second (15Hz). Raising the interrupt rate to 60Hz corrected this (two bugs worked against each other).

Darfpga
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 106
Joined: Thu Feb 02, 2017 10:07 pm

Re: NEW OR UPDATED ARCADE CORES

Postby Darfpga » Sat Jan 04, 2020 5:21 pm

slingshot wrote:This was my first thought also.
But at the end, the datasheet is clear:
If a device or channel is being serviced in an with an interrupt routine, it cannot be interrupted by a device or channel until service is complete.



I agree.

slingshot wrote:That's why Journey is a good test case (otherwise a stupid game): it enables interrupts in the int3 handler, and it doesn't expect that int3 will happen during that (until RETI). Otherwise it will crash. So that's why the in-service bits are needed. I've cross-checked this in MAME debugger, too.


I agree with both (in-service bits are needed and Journey seems to be a stupid game)

slingshot wrote:Currently the lower or equal priorty interrupt is lost. Maybe it should be executed after the higher or same priority is serviced,


I really think it shouldn't be lost.

Darfpga
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 106
Joined: Thu Feb 02, 2017 10:07 pm

Re: NEW OR UPDATED ARCADE CORES

Postby Darfpga » Sat Jan 04, 2020 5:37 pm

slingshot wrote:Maybe it's because the counter mistake (not the prescaler one, as it's irrelevant in counter mode): it should trigger the interrupt when it's about to be 0, not after 0. So setting to '1' should fire timer3 in every frame (30Hz), but it did it in every second (15Hz). Raising the interrupt rate to 60Hz corrected this (two bugs worked against each other).


Good point. I agree. With a time constant value equal to 1 the interrupt is expected to occur at each trigger condition. So I was wrong when loading the counter with the time constant value and decreasing it down to 0. Which creates a divider by 2. So one should choose either to load the counter with time constant -1 or to decrease it only down to 1. This is also clear from the timer equation which is given in datasheet as CLK x P x T and not CLK x P x (T+1).

slingshot
Atari God
Atari God
Posts: 1398
Joined: Mon Aug 06, 2018 3:05 pm

Re: NEW OR UPDATED ARCADE CORES

Postby slingshot » Sat Jan 04, 2020 5:55 pm

Darfpga wrote:
slingshot wrote:Currently the lower or equal priorty interrupt is lost. Maybe it should be executed after the higher or same priority is serviced,


I really think it shouldn't be lost.

Debugging in MAME doesn't show any sign of preserving it. Just think about what if a new same-level irq happens more than once? It's surely doesn't count interrupt occurrences. But can be experimented with a pending flag, however everything seems to be happy with my current version.

So one should choose either to load the counter with time constant -1 or to decrease it only down to 1.

The simplest solution is to check it to 1, not 0. And don't need a special case for 0, this way 0 means 256, which is correct.

Gehstock
Captain Atari
Captain Atari
Posts: 424
Joined: Wed Dec 21, 2016 7:18 pm
Location: EastGermany

Re: NEW OR UPDATED ARCADE CORES

Postby Gehstock » Sun Jan 05, 2020 12:24 am

4 new Arcade Cores released Today done by Slingshot

Journey
Power Drive
Rampage
Sarge

User avatar
DrOG
Atari Super Hero
Atari Super Hero
Posts: 682
Joined: Sun Jul 31, 2016 8:23 pm
Location: Gyula, Hungary

Re: NEW OR UPDATED ARCADE CORES

Postby DrOG » Sun Jan 05, 2020 5:42 am

Thanks to all involved! :cheers:

Darfpga
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 106
Joined: Thu Feb 02, 2017 10:07 pm

Re: NEW OR UPDATED ARCADE CORES

Postby Darfpga » Sun Jan 05, 2020 9:06 am

Gehstock wrote:4 new Arcade Cores released Today done by Slingshot

Journey
Power Drive
Rampage
Sarge


Many thanks to Slingshot for its accurate analysis. All mcr cores would take advantage to be updated with its CTC fixe.

User avatar
vebxenon
Atari Super Hero
Atari Super Hero
Posts: 877
Joined: Fri Apr 24, 2015 12:10 pm

Re: NEW OR UPDATED ARCADE CORES

Postby vebxenon » Sun Jan 05, 2020 5:05 pm

Gehstock wrote:4 new Arcade Cores released Today done by Slingshot

Journey
Power Drive
Rampage
Sarge


Wow :cheers: thanks very much!
Just a computer and videogame lover :)

- Atari Jr 2600 clone
- Atari 7800 Peritel
- Atari XEGS
- Atari Lynx II
- Atari Jaguar
- MiST Board

slingshot
Atari God
Atari God
Posts: 1398
Joined: Mon Aug 06, 2018 3:05 pm

Re: NEW OR UPDATED ARCADE CORES

Postby slingshot » Sun Jan 05, 2020 8:53 pm

Darfpga wrote:Many thanks to Slingshot for its accurate analysis. All mcr cores would take advantage to be updated with its CTC fixe.

But first you wrote these cores, so there was something to update :) I've just realised how the lamp text in Spy Hunter realized, and I'm amazed that how the built-in tiledata were re-used inside the core. Very clever.
Btw, Kickman with both the CTC and the interrupt generation update has the correct speed. CTC update only doesn't slow it down, but speed it up as expected.

Darfpga
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 106
Joined: Thu Feb 02, 2017 10:07 pm

Re: NEW OR UPDATED ARCADE CORES

Postby Darfpga » Sun Jan 05, 2020 9:51 pm

slingshot wrote: :) I've just realised how the lamp text in Spy Hunter realized, and I'm amazed that how the built-in tiledata were re-used inside the core. Very clever.


Thanks, I found it very funny to do it this way. I hesitate a bit because of one can think that the game is modified that's why I add an option to hide them.

Slingshot wrote:Btw, Kickman with both the CTC and the interrupt generation update has the correct speed. CTC update only doesn't slow it down, but speed it up as expected.


Yes, I also try it on Discs of Tron. Behaviour is ok. But platforms are not moving up and down in attrack screen as with Mame. I was hoping it can change that in some way. But it don't.

slingshot
Atari God
Atari God
Posts: 1398
Joined: Mon Aug 06, 2018 3:05 pm

Re: NEW OR UPDATED ARCADE CORES

Postby slingshot » Mon Jan 06, 2020 8:32 am

Darfpga wrote:Yes, I also try it on Discs of Tron. Behaviour is ok. But platforms are not moving up and down in attrack screen as with Mame. I was hoping it can change that in some way. But it don't.

Seems the attract mode is really purist now. Then the next thing to debug was found.

Upd.: everything you want to know (and you don't want to) about the CTC: http://smithsonianchips.si.edu/ice/OCR_ScanPE125/PE125(10379-K).pdf

Upd2: DoT sets timer2 to counter mode -> needs vblank connected (similar to monoboard). Now attract mode is full of action (but the sprites are shifted to the left a bit - which can be corrected by a + x"0C" displacement instead of - x"04").

Darfpga
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 106
Joined: Thu Feb 02, 2017 10:07 pm

Re: NEW OR UPDATED ARCADE CORES

Postby Darfpga » Tue Jan 07, 2020 8:34 pm

slingshot wrote:DoT sets timer2 to counter mode -> needs vblank connected (similar to monoboard). Now attract mode is full of action (but the sprites are shifted to the left a bit - which can be corrected by a + x"0C" displacement instead of - x"04").


Perfect now. (x"0C" was already there since first release of Discs of Tron ! other value should come from another game).

User avatar
vebxenon
Atari Super Hero
Atari Super Hero
Posts: 877
Joined: Fri Apr 24, 2015 12:10 pm

Re: NEW OR UPDATED ARCADE CORES

Postby vebxenon » Thu Jan 09, 2020 10:14 pm

Just a computer and videogame lover :)

- Atari Jr 2600 clone
- Atari 7800 Peritel
- Atari XEGS
- Atari Lynx II
- Atari Jaguar
- MiST Board

User avatar
vebxenon
Atari Super Hero
Atari Super Hero
Posts: 877
Joined: Fri Apr 24, 2015 12:10 pm

Re: NEW OR UPDATED ARCADE CORES

Postby vebxenon » Sat Jan 11, 2020 10:52 am

Double Dragon II Beta by Jotego :cheers:

https://www.patreon.com/posts/33054126

Public release soon :D
Just a computer and videogame lover :)

- Atari Jr 2600 clone
- Atari 7800 Peritel
- Atari XEGS
- Atari Lynx II
- Atari Jaguar
- MiST Board

User avatar
vebxenon
Atari Super Hero
Atari Super Hero
Posts: 877
Joined: Fri Apr 24, 2015 12:10 pm

Re: NEW OR UPDATED ARCADE CORES

Postby vebxenon » Sat Jan 11, 2020 11:42 am

*Deleted* Duplicate.
Just a computer and videogame lover :)

- Atari Jr 2600 clone
- Atari 7800 Peritel
- Atari XEGS
- Atari Lynx II
- Atari Jaguar
- MiST Board

User avatar
vebxenon
Atari Super Hero
Atari Super Hero
Posts: 877
Joined: Fri Apr 24, 2015 12:10 pm

Re: NEW OR UPDATED ARCADE CORES

Postby vebxenon » Sun Jan 12, 2020 4:07 pm

Hi. I'm the only who has garbage graphics on bottom and left sides on Dig Dug? :shrug:
Just a computer and videogame lover :)

- Atari Jr 2600 clone
- Atari 7800 Peritel
- Atari XEGS
- Atari Lynx II
- Atari Jaguar
- MiST Board

Gehstock
Captain Atari
Captain Atari
Posts: 424
Joined: Wed Dec 21, 2016 7:18 pm
Location: EastGermany

Re: NEW OR UPDATED ARCADE CORES

Postby Gehstock » Sun Jan 12, 2020 9:38 pm

Try new Build

User avatar
vebxenon
Atari Super Hero
Atari Super Hero
Posts: 877
Joined: Fri Apr 24, 2015 12:10 pm

Re: NEW OR UPDATED ARCADE CORES

Postby vebxenon » Mon Jan 13, 2020 7:49 am

Gehstock wrote:Try new Build


Thanks :cheers: I'll try it at the evening.
Just a computer and videogame lover :)

- Atari Jr 2600 clone
- Atari 7800 Peritel
- Atari XEGS
- Atari Lynx II
- Atari Jaguar
- MiST Board

User avatar
vebxenon
Atari Super Hero
Atari Super Hero
Posts: 877
Joined: Fri Apr 24, 2015 12:10 pm

Re: NEW OR UPDATED ARCADE CORES

Postby vebxenon » Tue Jan 14, 2020 4:23 pm

Sky Skipper (early Nintendo and unkown Nintendo arcade game), Max RPM and Tropical Angel have been released recently on Gehstock's repo :D :cheers:

Thanks very much!!

https://github.com/Gehstock/Mist_FPGA_Cores

I've found some graphical problems on Sky Skipper when scrolling, hope it will be fixed soon :)
Just a computer and videogame lover :)

- Atari Jr 2600 clone
- Atari 7800 Peritel
- Atari XEGS
- Atari Lynx II
- Atari Jaguar
- MiST Board

User avatar
DrOG
Atari Super Hero
Atari Super Hero
Posts: 682
Joined: Sun Jul 31, 2016 8:23 pm
Location: Gyula, Hungary

Re: NEW OR UPDATED ARCADE CORES

Postby DrOG » Tue Jan 14, 2020 5:09 pm

Thank You!!!

Gehstock
Captain Atari
Captain Atari
Posts: 424
Joined: Wed Dec 21, 2016 7:18 pm
Location: EastGermany

Re: NEW OR UPDATED ARCADE CORES

Postby Gehstock » Tue Jan 14, 2020 10:59 pm

Dar help me with this.

squid4
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 101
Joined: Tue Oct 25, 2016 8:12 pm

Re: NEW OR UPDATED ARCADE CORES

Postby squid4 » Thu Jan 16, 2020 10:56 am

Thanks for Rampage and the other roms, another of my favourite arcades! Noticed Rampage has some stuttering, you see it when the ape is moving left or right - some timing issue?

slingshot
Atari God
Atari God
Posts: 1398
Joined: Mon Aug 06, 2018 3:05 pm

Re: NEW OR UPDATED ARCADE CORES

Postby slingshot » Thu Jan 16, 2020 12:05 pm

Didn't notice. But the git source has some changes since the last binary release, maybe you can try to compile yourself.


Return to “MiST”

Who is online

Users browsing this forum: No registered users and 11 guests