Jump to content
IGNORED

Testing the new Stella TIA core


stephena

Recommended Posts

  • 2 weeks later...

Confirmed intermittent and unable to determine a particular pattern. For example, I've experienced twice in a row PAL, as well as 4 times in a row NTSC detection (Not in that particular order). Doesn't matter if I start a 'session' cold or continuously load the ROM.

 

Tested with the attached ROM containing the following properties:

CRC32: 0098E428
MD5: F825C538481F9A7A46D1E9BC06200AAF
SHA-1: ABA25089D87CD6FEE8D206B880BAA5D938AAE255

 

Maze Craze (1978) (Atari).bin

 

 

Link to comment
Share on other sites

Maze Craze auto-detects as PAL. FPS appear to be off too. I suspect both are related to the VSYNC-less random maze generation when the game initializes.

 

I noticed it's intermittent 50% PAL detect, 50% NTSC detect. This in Windows build.

 

Confirmed intermittent and unable to determine a particular pattern. For example, I've experienced twice in a row PAL, as well as 4 times in a row NTSC detection (Not in that particular order). Doesn't matter if I start a 'session' cold or continuously load the ROM.

I still need to sit down and take a close look at what's going on there, but if a ROM takes a long time to settle onto a proper frame pattern, autodetection is fragile. The variance between different runs is a consequence of the randomness injected into the initial state (timers, registers etc.).

 

I am afraid that this may well be a corner case for which adding ROM properties and moving on is the best option. Imho, autodetecting TV mode is not really in the domain of emulation, and as such I think it is best to find a sweet spot between accuracy and complexity instead of trying to cover all corner cases ;)

  • Like 2
Link to comment
Share on other sites

How should we handle games which are switchable between PAL and NTSC? A configuration will not help here.

Autodetecting mode changes at runtime would be a possibility, but I have a vague feeling that leaving both TV mode and frame start open for autodetect at runtime will prove to be too fragile to work well for all ROMs. I used to be more enthusastic about that, but after analyzing and fixing the the edge cases we have identified so far, I am afraid there'll be too many variables in the game.

 

I think the current situation is not too bad: such ROMs runs in the mode that was preselected at startup, and if you want to run the other mode, you have to modify the configuration accordingly ,either via the launcher or via the command line. You can either adjust the console switches to immediately select the desired mode on startup, or you can set a fixed TV mode. That's arguably more hassle than dynamic autodetection, but still more comfortable than switching consoles and TV sets ;)

Edited by DirtyHairy
Link to comment
Share on other sites

I think the current situation is not too bad: such ROMs runs in the mode that was preselected at startup, and if you want to run the other mode, you have to modify the configuration accordingly ,either via the launcher or via the command line. You can either adjust the console switches to immediately select the desired mode on startup, or you can set a fixed TV mode. That's arguably more hassle than dynamic autodetection, but still more comfortable than switching consoles and TV sets ;)

 

Could a command line option (I.E. -tv.region or -tv.mode <ntsc|pal|secam>) be added? Looking through the current options, such a selection does not appear to be available.

Link to comment
Share on other sites

The Display.Format ROM property (accessible from the commandline with '-format') will do this. In fact, when I say we should make something use a specific format in ROM properties, I simply change "Display.Format" from 'Auto' to whatever type we want (NTSC, NTSC50, PAL, PAL60, SECAM, SECAM60).

  • Like 2
Link to comment
Share on other sites

It is internal initially, but if you make any changes to a ROM properties in the GUI it saves the properties to a file called stella.pro. So anything that is set internally can always be overridden by the user.

 

EDIT: You can see the (very large) file used internally here.

  • Like 1
Link to comment
Share on other sites

On my lunch break I was taking a look at atari2600land's latest issue in Celery and had trouble getting started because the paddle detection code no longer works in 5.0. Celery supports both joystick and paddle, which controller is plugged in is detected when the console's powered up.

 

The detection code is this:

Reset
        CLEAN_START      
 
        lda     INPT0       ; DGS
        sta     Controller  ; DGS paddle if D7 = 1
after which a simple bit Controller is used to run joystick or paddle specific code. This works on hardware as well as in the prior version of Stella.
Link to comment
Share on other sites

Absence of testers.. unless reports come flooding in that say I've tested! I've tested!

 

I myself have run about 40 or so randomly chosen games in casual play. I have nothing to report.

 

---

 

I really hate to say it but the novelty of emulation like we had in the 1990's, the magic of running your old games on the PC, has toned down these past years. Or so it would seem if you listen to the vocal minority. And yet, today, we have some of the best efforts and results to date. Many of today's emu's are viable console replacements - and them some - with all their side tricks and amenities.

 

PC emulators picked up a stigma along the way of being hard to configure, not accurate, not fully compatible, "just off", frustrating, and in general not a nostalgic experience. And just "because PC." But that hasn't been true of the better ones for a long time.

 

Yet, emulation is actually becoming a premier way to play the classics today. The tide is turning. In a sleeper kind of way. The advantages that emulation offers both consumer and corporation *are* becoming evident. But enough of this for now. It'll all be in a book I just started called Principia Emulata.

Lol nice! The next step will be FPGA simulation. Funny I saw the thread title and thought Kevtis realeased a new core for Zimba NT Mini! :grin:
Link to comment
Share on other sites

The current state of FPGA emulation isn't that far enough along to equal Stella yet.

 

Too bad the current devs aren't using the FPGA + CPU all-in-one combos. It will be interesting to see if FPGA can surpass software emulation. Especially in versatility. But this isn't the thread to discuss such a topic.

Edited by Keatah
Link to comment
Share on other sites

 

On my lunch break I was taking a look at atari2600land's latest issue in Celery and had trouble getting started because the paddle detection code no longer works in 5.0. Celery supports both joystick and paddle, which controller is plugged in is detected when the console's powered up.

 

The detection code is this:

Reset
        CLEAN_START      
 
        lda     INPT0       ; DGS
        sta     Controller  ; DGS paddle if D7 = 1
after which a simple bit Controller is used to run joystick or paddle specific code. This works on hardware as well as in the prior version of Stella.

 

 

How were you able to test this in prior versions of Stella (where it worked), and now (where it doesn't)?

Link to comment
Share on other sites

How were you able to test this in prior versions of Stella (where it worked), and now (where it doesn't)?

Load the ROM, use the in-game menus to switch controllers to Paddles, then reload the ROM.

 

Controller variable's in $9C. In 5.0 bit 7's off

post-3056-0-43509700-1487895811_thumb.png

 

Bit 7's on in when run under the older versions. This is the one I still have on my system as my work on BUS Stuffing's in it.

post-3056-0-31456400-1487895799_thumb.png

 

I don't recall what version of Stella I had installed when I wrote the detect code last July, but it was definitely older than 4.8_pre as I fetched that source on September 27th per the date stamp of the folder I created to hold the source.

 

hmm... :ponder:

 

based on a hexdump of this screenshot, from a few days before the detect code, I was most likely using Stella 4.7.1

post-3056-0-66088500-1487896639_thumb.png

Link to comment
Share on other sites

The current state of FPGA emulation isn't that far enough along to equal Stella yet.

 

Too bad the current devs aren't using the FPGA + CPU all-in-one combos. It will be interesting to see if FPGA can surpass software emulation. Especially in versatility. But this isn't the thread to discuss such a topic.

The ARM on the melody boards is too modern, but it can emulate good old cart bus. Don't toss your Harmony carts yet; you might still need them... ;-)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

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