Jump to content

stephena's Photo

stephena

Member Since 11 May 2002
ONLINE Last Active Today, 8:48 AM

Topics I've Started

WTB: Commodore 1902/1902a/1084s monitor

Sun Feb 5, 2012 11:18 AM

I no longer need this, as apparently one can make an S-video cable to connect an ordinary S-video monitor or TV, and I already have all the items necessary to do so. Now I just need to build the cable ...

Stella 3.5.5 released

Sat Feb 4, 2012 4:50 PM

OK, this is a quick release before I start on the major surgery of adding Blargg filters and the remaining esoteric controllers for 3.6. Most of the items mentioned in the 3.5 release thread are addressed here. Changelog is as follows:

Quote

* Due to changes in the debugger, old state files will not work with this release.

* Fixed bug in sound restructuring introduced in the last release; in some cases, there could be some sound 'crackling' when starting a ROM after at least one ROM had already been loaded.

* Several significant improvements to the debugger I/O tab:
- added controller input widgets for many of the built-in controllers, allowing to control joysticks, paddles, etc from within the debugger.
- added ability to modify the SWCHB/SWBCNT port B registers.
- added ability to view TIA INPTx and VBLANK latch/dump bits.

* Reworked 'mcontrol' argument, and added ability to map the mouse axes separately for paddles 0-3 or driving controllers 0-1. In such modes, the left mouse button is tied to the x-axis, and the right button is tied to the y-axis.

* Mouse 'specific-axis' mode is now saved per-ROM, meaning that each ROM can have separate settings. For example, this allows one ROM to use paddles 0 and 1, while another can use paddles 0 and 2, etc.

* The key-combo for switching the mouse between controller modes is now 'Control-0' (Control-1,2,3 have been removed). This switches between all possible modes for the current virtual controllers.

* Fixed bug in 'Fixed Debug Colors' mode; under certain circumstances, playfield graphics could be coloured as being player graphics.

* Fixed bug in PAL color-loss setting in Video Settings; changing the settings wouldn't take effect until the ROM was reloaded.

* Fixed bugs with cheatcode handling; loading a ROM with a cheat disabled would sometimes trash the emulation. More work is required in this area, including the ability to create more advanced types of cheats.

* Updated ROM properties database for all Sega Genesis controller compatible ROMs. Also, the mouse can now emulate a Genesis controller, with the left/right buttons mapped to buttons B and C, respectively.

* Added 'FA2' bankswitch scheme, thanks to code from Chris D. Walton. This scheme will be used in an upcoming 'Star Castle' ROM.

* Updated internal ROM properties database to ROM-Hunter version 7 (thanks go to RomHunter for his tireless research in this area).

* Added several PERL tools to help in automation of analyzing RomHunter ROM set releases.

* Fixed compile issues in Irix when using the default compiler instead of gcc. Thanks go to Rainer M. Canavan for this code.

* Updated included PNG library to latest stable version.

As usual, Stella can be downloaded from the Stella webpage. Feedback and bug reports can be done through this thread or by email.

On a slightly related note, the DonationWare option has been good. I've received several gifts, as well as a good price on a nice Commodore 128D, which I've since purchased. Look for a webpage on that one sometime soon, where I'll showcase my systems. Thanks again for all the support!

Stella usage by operating system

Mon Jan 30, 2012 2:55 PM

OK, I'm trying to gauge how Stella is being used across operating systems, since keeping builds available for many systems is getting harder and harder as time goes by. Please complete the poll to let me know how to best focus my efforts in the future.

Upgrades to a Commodore 128D

Wed Jan 25, 2012 10:21 AM

Some of you may have been following my requests for donations to the Stella project, where I mentioned that I'd like to receive a Commodore 128D. Well, thanks to contributions and getting a good deal, it looks like it's going to happen! I'll include more info when I get the machine, but for now I'm looking into expanding it a little.

Can anyone provide info on the expansion options available? I've heard you can get an SD card interface that lets you store disk images. Where can I get that??

I'm looking for any info you can provide, but in particular from C128 users who have actually done upgrades. Let me know of any gotcha's to avoid.

Thanks in advance for your help,
Steve A. (Stella maintainer)

How to detect NTSC vs. PAL (for improvements in Stella)

Sun Jan 15, 2012 10:38 AM

So, I've been working on this issue on and off for a year or two. Basically, I need a way to reliably determine whether a ROM is NTSC or PAL format. I'll briefly outline what Stella currently does, and how the current approach isn't optimal:
  • when the Console is first created, run the TIA for 60 frames
  • each time a frame contains more than 285 scanlines, increment a counter
  • at the end of 60 frames, if the count is at least 20 then the format is PAL, otherwise NTSC
There are several problems with this:
  • I don't like magic numbers; that is, why '60', '285', '20', etc? What if a ROM had 284 scanlines most of the time? Should it be PAL or NTSC??
  • auto-running the TIA makes other parts of the code more complicated. Specifically, 'smart' controllers like AtariVox and SaveKey have to know that they're not really being run; it's a test.
  • What about ROMs that start out with a low scanline count, then switch to a higher one once the game starts? Currently it's detected as NTSC when it should probably be PAL.
I guess the real problem is that on a real system, the ROM isn't NTSC or PAL, the console is. The console has certain properties, and the ROM runs according to those properties. But in emulation it's the other way around; it's the ROM that determines what type of console you have. This is causing me all sorts of problems. For example, certain aspects of the emulation must be decided very soon. The maximum number of scanlines to produce (in the TIA) and the palette to use are two such aspects. Put another way, these things can't be dynamic. A decision needs to be made at the beginning of emulation, and the ROM must adhere to them from that point on. If they were dynamic, it would slow things down and give strange results. One scenario would be switching scanline counts constantly bouncing between NTSC and PAL palettes, but there are other similar issues.

Overall, the problem is that the console determines display format. That's the way a real system works, and it's the way the current code works (after the auto-detect has run for a short time). I'm at a loss how to work around this fact.

EDIT: I should add that any approach I use must still be automatic. Editing the ROM properties database to specifically indicate a ROM is PAL is out of the question. This is the way older versions of Stella worked, and it's a maintenance nightmare (not to mention it completely breaks any new homebrew PAL ROMs that are developed).