Jump to content
IGNORED

Propoasal for alternate implementation of "emulation exit"


Andrew Davie

Recommended Posts

That is very interesting for me. Personally, I do not have original Thunderground cart, even that ROM is some unknown PAL hack, that I have dumped from one of my Atari clones, but I like it. So I have no chance to try it on the same console. When I run it from my clone consoles, it looks like in Stella. I sure may file a bug, if it is OK.

 

I also noticed some issue when playing some "Oink" game version, when I try to push the brick, I have to go down at the base. When playing in Stella or on my clone consoles, I can push the brick just when I take it from the top. It is quite hard for me to explain, maybe I can record some video :)

Link to comment
Share on other sites

  • 1 month later...

I just got my QuadTari today and while testing my VROOM! game on the PlusCart, the game suddenly returned to the PlusCart menu when pressing RESET to start a race.

 

As it turned out this is due to the SaveKey attached to the right port. Other controllers seem to play no role here. I only have to read from the SaveKey and press RESET afterwards to trigger the problem.

 

Any ideas? Also, can I disable the exit function somehow?

Link to comment
Share on other sites

21 minutes ago, Thomas Jentzsch said:

I just got my QuadTari today and while testing my VROOM! game on the PlusCart, the game suddenly returned to the PlusCart menu when pressing RESET to start a race.

 

did it exit with the "Emulation exited" message?

 

21 minutes ago, Thomas Jentzsch said:

As it turned out this is due to the SaveKey attached to the right port. Other controllers seem to play no role here.

?

The right port should not be involved at the exit function.

23 minutes ago, Thomas Jentzsch said:

I only have to read from the SaveKey and press RESET afterwards to trigger the problem.

does reading from SaveKey affects SWCHA bit 7 ?

 

26 minutes ago, Thomas Jentzsch said:

 Also, can I disable the exit function somehow?

not yet..

Link to comment
Share on other sites

18 minutes ago, Al_Nafuur said:

did it exit with the "Emulation exited" message?

Yes.

18 minutes ago, Al_Nafuur said:

does reading from SaveKey affects SWCHA bit 7 ?

It reads from and writes to SWCHA. Only the bits 2 and 3 are relevant, but the writes obviously always affect all bits, thus affect the left port too.

 

Not sure if that would help, but does the exit code consider the state of SWACNT? 

 

I suppose the current code only checks bit 7 to become 0. I think it would help if you check bits 4..6 for being 1 too.

 

Note: Probably the problem occurs now, because VROOM! is the first Paddles game which supports the SaveKey.  I did a test with another homebrew (Three.s) which uses Joystick and SaveKey. There I can not reproduce the problem.

Edited by Thomas Jentzsch
Link to comment
Share on other sites

Given the number of different controllers which act different with SWCHA, I don't think using SWCHA to detect an exit is a good idea. 

 

Therefore I would suggest using SWCHB only. E.g. while pressing RESET, switch Color/B&W. Not sure if detecting a change is feasible though.

Edited by Thomas Jentzsch
Link to comment
Share on other sites

The Sears Video Arcade II & Atari 2800 don't have a color/BW switch, and on the 7800 it changes state only briefly when pushed in and out.

 

I still really like just simply holding reset for 2 seconds. People could still randomize a game like Maze Craze by cycling reset for brief periods of time until they get a maze they like. I feel like that learning curve to figure that out is pretty low.

 

What I like about this solution is that it makes logical sense for that switches function. Reset either resets the game, or resets to the menu with a longer hold.

 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, Omegamatrix said:

The Sears Video Arcade II & Atari 2800 don't have a color/BW switch, and on the 7800 it changes state only briefly when pushed in and out.

There are two more switches we can use.

 

Long pressed Reset alone is IMO not working as it is used in some games e.g. to circle fast through the game variations.

Link to comment
Share on other sites

9 minutes ago, Thomas Jentzsch said:

Long pressed Reset alone is IMO not working as it is used in some games e.g. to circle fast through the game variations.

Thomas, I respectfully disagree with this. Game variation cycling is usually driven by holding down the select switch, not the reset switch. And again, if reset is being used to do a randomized start up (like maze creation in Maze Craze) then cycling the reset for short bursts would also be acceptable.

 

 

Link to comment
Share on other sites

21 minutes ago, Omegamatrix said:

Game variation cycling is usually driven by holding down the select switch, not the reset switch.

Usually you are right. But please check e.g. Space Invaders or Asteroids and press SELECT and RESET simultaneously.

 

We need at least RESET && !SELECT.

Edited by Thomas Jentzsch
Link to comment
Share on other sites

2 hours ago, Omegamatrix said:

The Sears Video Arcade II & Atari 2800 don't have a color/BW switch

Technically they have it, although you have to flip over the console to reach it, so it is basically unusable...?

 

sva2_tvtype.thumb.jpg.d25d15dfb829b73aa143ab81b99271dd.jpg

 

 

Whatever switch combination is decided, I think a way to disable the exit function should also be added.

There's always the possibility that some rom interferes with it, no matter what.

Ideally, a way to disable it per-rom would be great (e.g. using a special extension in the filename), but I don't know if this is feasible.

 

  • Like 3
Link to comment
Share on other sites

21 minutes ago, Thomas Jentzsch said:

Usually you are right. But please check e.g. Space Invaders or Asteroids and press SELECT and RESET simultaneously.

 

We need at least RESET && !SELECT.

Good example, but here I would say we already have a solution in that both Asteroids and Space Invaders got menus added for ease of use, and the functionally of these are far better then holding reset for a quick scroll.

 

 

  • Like 1
Link to comment
Share on other sites

1 minute ago, Omegamatrix said:

but here I would say we already have a solution in that both Asteroids and Space Invaders got menus added for ease of use, and the functionally of these are far better then holding reset for a quick scroll.

Do you promise to immediately create menus for all game which use that feature? :) 

Link to comment
Share on other sites

11 minutes ago, alex_79 said:

Technically they have it, although you have to flip over the console to reach it, so it is basically unusable...?

 

sva2_tvtype.thumb.jpg.d25d15dfb829b73aa143ab81b99271dd.jpg

 

 

Whatever switch combination is decided, I think a way to disable the exit function should also be added.

There's always the possibility that some rom interferes with it, no matter what.

Ideally, a way to disable it per-rom would be great (e.g. using a special extension in the filename), but I don't know if this is feasible.

 

I did not know it was on the bottom. That is good to know.

 

I like the idea of disabling fast exit function if necessary, but I'm hoping that it would be very limited in use.

Link to comment
Share on other sites

31 minutes ago, alex_79 said:

Ideally, a way to disable it per-rom would be great (e.g. using a special extension in the filename), but I don't know if this is feasible.

I thought about a way to disable the exit function and also about using the filename (extension). I think this is the most feasible way, because we wouldn't have to change the ROMs and users can disable the exit function on their ROMs if they like.

 

  • Like 2
Link to comment
Share on other sites

5 minutes ago, Omegamatrix said:

What other games do this?

I haven't done extensive testing. IIRC Maze Craze does it too. I suppose a lot of game with many variations and no select screen will do so.

 

Also my own games/hacks (Jammed/Pitfall!x256) use that combination. For random selects.

Link to comment
Share on other sites

On 11/7/2020 at 9:10 PM, Andrew Davie said:

I believe that nearly all (not all, but 99.9%) of games will use INTIM for timing frames.

That is, each frame there will be at least one wait loop that will look something like this....

 


wait   lda INTIM
       bne wait

 

Well, as we now know... the correct way to do this is to check TIMINT for negative (not INTIM for zero).

Although they both work, mostly, if your timer expires before you start the loop in the above version, you may end up waiting an extra (up to) 255 loops (give or take). The reason being, INTIM starts counting down in 1-cycle increments when it reaches 0, whereas the TIMINT negative flag is set when it reaches 0 and remains set (at least until INTIM is accessed again).

Lots of programs use either, so any code injection would need to account for both usages.

 

Link to comment
Share on other sites

  • 2 months later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...