Jump to content

Search the Community

Showing results for tags 'stella'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Atari Systems
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Gaming General
    • Classic Gaming General
    • Classic Computing
    • Modern Gaming
    • Prototypes
    • Arcade and Pinball
    • Emulation
    • Hardware
    • Gaming Publications and Websites
    • International
  • Marketplace
  • Community
  • Game Programming
  • Site
  • Classic Gaming News
  • The Club of Clubs's Discussion
  • I Hate Sauron's Topics
  • 1088 XEL/XLD Owners and Builders's Topics
  • Atari BBS Gurus's Community Chat
  • Atari BBS Gurus's BBS Callers
  • Atari BBS Gurus's BBS SysOps
  • Atari BBS Gurus's Resources
  • Atari Lynx Programmer Club's CC65
  • Atari Lynx Programmer Club's ASM
  • Atari Lynx Programmer Club's Lynx Programming
  • Atari Lynx Programmer Club's Music/Sound
  • Atari Lynx Programmer Club's Graphics
  • The Official AtariAge Shitpost Club's Shitty meme repository
  • The Official AtariAge Shitpost Club's Read this before you enter too deep
  • Arcade Gaming's Discussion
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • Harmony/Melody's CDFJ
  • Harmony/Melody's DPC+
  • Harmony/Melody's BUS
  • Harmony/Melody's General
  • ZeroPage Homebrew's Discussion
  • Furry Club's Chat/RP
  • PSPMinis.com's General PSP Minis Discussion and Questions
  • PSPMinis.com's Reviews
  • Atari Lynx 30th Birthday's 30th Birthday Programming Competition Games
  • 3D Printing Club's Chat
  • Drivers' Club's Members' Vehicles
  • Drivers' Club's Drives & Events
  • Drivers' Club's Wrenching
  • Drivers' Club's Found in the Wild
  • Drivers' Club's General Discussion
  • Dirtarians's General Discussion
  • Dirtarians's Members' Rigs
  • Dirtarians's Trail Runs & Reports
  • Dirtarians's Wrenching
  • The Green Herb's Discussions
  • Robin Gravel's new blog's My blog
  • Atari Video Club's Harmony Games
  • Atari Video Club's The Atari Gamer
  • Atari Video Club's Video Game Summit
  • Atari Video Club's Discsuuions
  • Star Wars - The Original Trilogy's Star Wars Talk
  • DMGD Club's Incoming!
  • DASM's General
  • AtariVox's Topics

Blogs

There are no results to display.

There are no results to display.

Calendars

  • AtariAge Calendar
  • The Club of Clubs's Events
  • Atari BBS Gurus's Calendar
  • ZeroPage Homebrew's Schedule

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website


Facebook


Twitter


Instagram


YouTube


eBay


GitHub


Custom Status


Location


Interests


Currently Playing


Playing Next

Found 59 results

  1. I use a mouse for 2600 games that normally use a paddle (Warlords, Kaboom,etc). but the direction is reversed....left is right and right is left. I have the full Stella users manual but don’t see where I could reverse that so left=left and right=right. I’ve tested a bunch of setting changes with no luck! any suggestions? Bob
  2. OK, it's finally here, the "Corona" edition of Stella, to keep you all busy during your extended isolation First of all, this release was over 1 year in the making, and I want to single out the other members of the team that have put in more work than me: @DirtyHairy and @Thomas Jentzsch. Due to some personal, real-life issues, I wasn't able to dedicate as much time to this release as I'd have liked, and that's partly the reason why it's so late. Hopefully this can improve for the future. Now, where to begin? There are major improvements all across the board here, with some subsystems being completely rewritten. So here's the changelog: * IMPORTANT NOTES: - Because of major event remapping changes, all remappings will be reset to defaults; if you had custom mappings, they will need to be re-entered again. - Because of major internal changes, all state files are now invalid. - Support for Windows XP has been discontinued as of this version. WinXP is now completely out of support from Microsoft, so we are doing the same. * Major improvements to display mode handling in NTSC vs. PAL. The window is now the same size for both modes, and scaling is applied to simulate the height of scanlines (in PAL mode, there are more scanlines and hence each is narrower). This more properly emulates how the display would look on a real TV. * Removed the 'Display_Height' property, changing it to 'Display_VCenter'. This new feature, along with the display mode changes above, almost completely eliminate having to manually tweak each ROM so that it will not have part of the image cut off. * Removed the 'Display_YStart' property and all automatic detection of ystart. It caused problems on some ROMs, and was not the way a real console would work anyway. Related to this, ROMs now load much faster. * Major improvements to event remapping: - Allow mapping of modifier-key and button-direction combinations - Physical controllers can map the same action to different events on different virtual controllers - Many more events can be remapped - Events can be filtered by type in UI * Paths have been simplified: - The following file/directory locations are no longer configurable (statedir, nvramdir, cheatfile, palettefile, propsfile); they are now all under the base directory - Removed cfgdir; Distella config files are now placed with their associated ROMs - Added 'basedir' commandline argument, which allows to change the base directory where almost all config-related items are stored; related to this, discontinued the 'basedir.txt' functionality - Added 'baseinappdir' commandline argument, which sets the base directory to the application folder (Windows only for now); this replaces the functionality of 'basedir.txt' * Added automatic controller detection. * Controllers can be changed during emulation (no ROM reload required anymore). * Added support for Light Gun controller. * Added limited KidVid support (8, 9 and 0 start the games). * Removed superfluous controller option 'PADDLES_IDIR'. * Added configurable paddle dejittering. * Key-repeat mode improved; entering Time Machine by holding down a key combo continues to send events (previously, you had to release and then press the combo again). * Certain buttons in the UI can now be activated repeatedly by holding down the mouse button (Time Machine, debugger step/trace/frame advance, etc.) * Added option to configure mouse double click speed. * Added option to configure controller input repeat speed. * Added high quality scaling. * Made scanlines better aligned to scaling. * Added 'HiDPI' mode, which scales the UI by 2x when enabled. This is meant for 4k and above monitors, but can actually be used at any lower resolution that is large enough to display the scaled UI. * Fixed TIA 'Center' option, Stella now remembers the last windowed position. * Added fractional (25% increments) TIA zooms. * Removed 'tia.fsfill' option, replacing it with 'tia.fs_stretch'. This new option allows to preserve TIA image aspect ratio in fullscreen mode, or stretch to fill the entire screen. * Added configurable 'Overscan' option for fullscreen modes. * Fullscreen TIA modes no longer assume that desktop taskbars, etc are present, hence they are scaled to the proper fullscreen size. * Added option to display dialogs in screen corners. * Added hotkey for sound on/off. * Enhanced 'Command' menu to display current state and more commands. * Added option to save and load all TimeMachine states at once. * Added option to automatically load/save states when entering/exiting emulation. * Added option to change pitch of Pitfall II music. * ROM Info Viewer size is not limited to fixed zoom steps anymore. * ROM Info Viewer can now display multiple lines per property and the bank switching type. * In file listings, you can now select directories by holding 'Shift' on the first character entered. Entering characters in lowercase still selects files, as before. * Fixed bug when starting ROMs via MacOS finder. * Added various developer options for oddball TIAs: - stuffed player, missiles and ball move - delayed playfield bits and color - delayed players and ball VDEL swap * Disabled some developer options for 'Player settings'. * Writes to RAM read ports are ignored now. * Added Developer setting, which breaks on writes to read ports. * Improved breakpoints to now consider the banks. * Improved debugger's TIA display and zoom windows. * Improved hotkeys, now many emulation keys work in debugger too. * Fixed display of negative values in debugger; sometimes they were shown as positive. * Reworked ROM properties database, making it load faster in certain cases. * Updated internal ROM properties database to ROM-Hunter version 16 (thanks go to RomHunter for his tireless research in this area). Related to this, updated the snapshot collection. * Fixed 'Dancing Plate (Unknown) (PAL)' to use joystick. * Fixed cheatcode handling in 2K and 4K ROMs. * Fixed bug where ROMs smaller than 64 bytes were not recognized. * Fixed bug where frying one ROM was continued with the next ROM. * Fixed not working 7800 pause key. * Enhanced UA bankswitching to support certain Brazilian carts. * Fixed WD bankswitching. * Added FC bankswitching for Amiga's Power Play Arcade Video Game Album. * Added auto-detection of display format based on filename. * Auto-detection of bankswitch scheme by file extension now includes more human-readable formats (not restricted to DOS 3-char length). See the documentation for the new names. * Fixed bug in DPC+ scheme; 'fast fetch mode' was enabled at startup, when it should be disabled by default. * Some more work on DPC+ playfield 'jitter' effect for certain older DPC+ driver versions; more ROMs are now detected properly. Special thanks to SpiceWare for his research in this area. * Added proper Retron77 port. * Added proper libretro port, and fixed display for OpenGLES renderers. * PNG/ZIP image support is now conditionally compiled into Stella. All major ports (Linux/macOS/Windows) have it enabled by default. * SDL/GUI support is now conditionally compiled into Stella. All major ports (Linux/macOS/Windows) have it enabled by default. This is currently needed by the libretro port. * Updated included PNG library to latest stable version. * Updated UNIX configure script to work with the gcc version 10 and above. As usual, Stella is available to download at https://stella-emu.github.io, and donations are accepted at https://stella-emu.github.io/donations.html. Feel free to respond here with any issues you find. You can also PM, but feedback here is better, so everyone can see it (and to eliminate duplicate reports). Enjoy
  3. After an extremely long time since the last release, we now have a new release candidate for what will become Stella 6.1! I'm not going to go into the entire (huge) changelog here; that will come when we do the final release. For now, I will stress the most important new additions that need some testing. That's the main goal of this release: test, test test. So what do we need tested? Here are the highlights: Video mode handling in NTSC and PAL modes has been completely reworked, 'ystart' setting has been removed, etc. The window is now the same size in both NTSC and PAL modes (simulating a real TV), and in PAL mode the scanlines are vertically shorter, since there are more of them. What we need tested here is to play as many games as possible and make sure the image is correctly displayed. If possible, confirm it on real hardware too. The event remapping subsystem has been completely reworked. You can now map the same action on a controller/keyboard/etc to different virtual controllers. So for example, joystick button 0 could mean 'Fire' when using a virtual joystick, but mean something completely different when using another type of virtual controller. So play a bunch of different games (using different controller types), remap them, and make sure it all works. There is now a 'first-class' port for the Retron77. That means that going forward, when we do a new release, it will (hopefully) included a build for the R77 as well. Please test this if you have an R77. There is now a 'first-class' port for libretro. This one still needs some extra work, but it's already working quite well. If you use RetroArch, please download the latest core and try it out. Note that since we don't control when RetroArch does a release, there may be some lag in when we release and when they pick it up. Of course there are many other changes (dozens), and you should try everything out and report any problems. But the stuff above contains the major changes and has had the least testing, so that's where we want feedback the most. The release candidates aren't on the Stella main webpage, but on Github. The addresses are https://github.com/stella-emu/stella/releases/tag/6.1.0-rc1 and https://github.com/DirtyHairy/r77-firmware-ng/releases/tag/stella-6.1.0-rc1. As usual, feel free to respond here. You can also PM, but feedback here is better, so everyone can see it (and to eliminate duplicate reports). So go forth and test Just a reminder that state files, event remapping and many other settings are not compatible with Stella 6.0, so when you do testing here, it will overwrite your old settings, and you won't be able to go back (unless you backup your settings first).
  4. Exactly ten years ago, I made my first Thrust post to the [stella] mailing list. Thrust_v0_1.bin
  5. So, it's that time of year again. And for a special gift, there is a new release of Stella! This one has been almost 6 months in the making, and is obviously a jump to a new major version. There are huge changes all across the board, but the major new feature is cycle-exact TIA audio emulation. For the first time, cycle-exact audio emulation allows several ROMs to work correctly that have never worked before. E.T. and Ms. PacMan are the most obvious; they now sound exactly like they do on a real console. Most other emulators (and Stella too, previous to 6.0) use an idealized emulation of sound, which in some cases results in better sounding, but incorrect, output. The new code is based on FPGA work by Chris Brenner (crispy), and as a result AFAICT, this is the first time that E.T. has sounded correct in an emulator. And for the first time in a long time, Stella gets a new coat of paint! The themes have been modernized a little, which new schemes, titlebars on windows, etc. Definitely makes the app look a little more modern. We don't want to look too modern, though. After all, we are emulating a 40+ year old system There are many other sound changes too, and bugfixes/improvements/new features all over the place. Complete changelog as follows: Note: because of major TIA sound changes, the state file format has changed, and old state files will not work with this release. New cycle exact audio core based on work by Chris Brenner (crispy); greatly improved audio emulation accuracy (i.e. E.T., Ms. Pacman). Full rewrite of the audio subsystem; resample TIA output to target sample rate directly in Stella. Added option to force stereo sound for all ROMs, or to use the setting on a per-ROM basis. Threading: decouple emulation from frame rendering. Main loop rewritten; emulating speed and timing is now much more faithful (i.e. speed in Pick'n'Pile). Added preliminary support for 'CTY' bankswitching scheme and recently released 'Chetiry' ROMs. Special thanks to SpiceWare for adding music support to this scheme. UI modernization (new widget look, dialog titles added, dialogs refactored). The bankswitch scheme can now be forced by naming the ROM with a specific extension (ie: .f8s for F8SC, .fe for FE, etc). The supported extensions are the same as the ones from HarmonyCart and UnoCart. Audio settings replaced with new 'audio.xxx' settings. FPS setting replaced with speed setting for adjusting emulation speed. Extra functionality for Time Machine dialog (start/stop recording; minor fixes). When logging messages to the System Logger, condense similar messages that arrive in batches into fewer messages (including timestamps). Fixes for collision corner cases (during HBlank). Fixed excessive CPU usage while in UI modes (ROM launcher, debugger, etc). The 'launcherexts' option has been replaced by a true/false option named 'launcherroms', which specifies to show only ROMs or all files in the ROM launcher. Changes in 'Game Properties' dialog - 'Default' button now affects only current tab like in all other dialogs. - 'Display' and 'Console' tab changes are now immediate. - Fixed bug when selecting 'Auto-detect' format for 50Hz ROMs Fixed bug in autodetecting Genesis controllers. Fixed bug with 'thumb.trapfatal' commandline argument; sometimes Stella would lock up when encountering a fatal error instead of entering the debugger and displaying a message. Fixed bug in reading from settings file with entries that were empty; the parsing was failing. This affected the 'cpurandom' argument; when all options in it were turned off, they were all turned on again during the next program run. Fixed bug with 'hold' events; they are now released a short time after starting a ROM. When starting Stella for the first time, the first ROM selected will determine which path to use by default for subsequent runs. Fixed emulator crash when starting SaveKey ROMs from commandline with SaveKey messages enabled. Fixed missing TV format update in frame stats dialog when switching display type. Fixed missing debug color update when switching display type. 'Fill to scanline' now works for scanlines above current scanline too. The debugger 'uhex' command is now honoured in CDF and BUS schemes. When switching screenmodes, the sound is now paused and later resumed. This fixes popping and cracking sounds apparent on some systems, notably macOS when toggling windowed/fullscreen mode. State file format has been optimized to be smaller, and faster loading and saving. This affects both the files saved to your computer as well as Time Machine functionality. The ROM name saved in a PNG tEXt chunk now honours the 'snapname' setting. Improved snapshots when phosphor is enabled. Updated PAL palette. Added 'Cartridge.StartBank' ROM property, to force a ROM to use a specific bank for its reset vector. Added Developer setting, which breaks on reads from write ports. It now detects such conditions in many more cases. This new way of detecting RWP errors obsoletes the old '_rwport' debugger command, which has now been removed. Added recently released 'Arkyology' prototype ROM to the database. Added 'Amoeba Jump' and 'Flappy' ROMs (from the Retron77) to the database. Fixed 'Street Racer' and 'Video Olympics' ROMs to use paddles in both ports. If using SDL 2.0.5 or above, the calculated desktop size now takes the taskbar/dock into account (so windows should no longer overlap those areas). For UNIX systems: in the ROM launcher, when using symlinks use the symlink pathname instead of the underlying filesystem pathname. The UNIX builds now use the system-installed PNG and ZLIB libraries by default. The Macintosh builds are now named 'macOS' throughout the codebase to reflect the new naming from Apple. For better compatibility, the Windows 32-bit version does not require SSE2 anymore. Updated included PNG library to latest stable version. As always, Stella can be downloaded from the usual place. And as a shameless plug, please consider a donation if you like; I plan to build a new development workstation in 2019 Special thanks to Christian Speckner and Thomas Jentzsch for work on this release; their work formed a large part of what became version 6.0. Bug reports can be posted here, or by creating an issue on the Github page. Merry Christmas, and enjoy this latest release of Stella
  6. Stella 4.1 is now available; it contains a few nice improvements over the last release. Unfortunately, I'm still trying to track down the 'joystick not found' issues, so that hasn't been addressed in this release. Changes are as follows: As usual, Stella can be downloaded from the Stella webpage, and donations are always welcome.
  7. Trebor

    Stella 4.0

    Go get it folks Don't forget to thank Stephena - A donation would be an ideal way.
  8. Hi I'm working on a project needs Display_Phosphor = YES. Is there some way to have Stella automagically pick up on that? I tried adding a file named pal.pro next to my pal.bin file, with this contents: "Cartridge.MD5" "324f559ec4e6da7392371400e9b73111" "Cartridge.Name" "pal" "Display.Phosphor" "YES" "" That didn't work, unfortunately. Digging through the code I can't find a way to do this. I can ship .bat and .sh files for users, but I'd rather not have to. Am I missing something? If this functionality is indeed missing then perhaps I'll write a patch for it.
  9. until
    WHAT: 12 Hour Gaming Marathon Fundraiser for Stella Development WHEN: Friday July 12, 2019 (Noon to Midnight PT!) STARTS: 12PM PT | 3PM ET | 7PM GMT ENDS: 12AM PT | 3AM ET | 7AM GMT WHERE: ZeroPage Homebrew Twitch Stream ZeroPage Homebrew will be streaming a 12 HOUR homebrew gaming marathon fundraiser on July 12, 2019 for the continued development of the amazing Atari 2600 emulator Stella. Stella development began in 1996, is maintained by Stephen Anthony (stephena), and many contributors have put in the their time, equipment and dollars over the years towards its continued success. 100% of all funds raised through auctions and donations will go to the Stella project! Over the twelve hours of the marathon the crew at ZeroPage will be playing all your favourite homebrews, talking with game developers and community members via live video, taking gaming challenges from the chat, trying for new highscores and generally having a ton of fun. We'll also be auctioning off a whole bunch of generously donated items to help raise funds for the incredible work that's being done on Stella. Supporting the development of Stella not only provides you with an amazing Atari 2600 emulator to play all your favourite old school and new homebrew games, it's also and incredibly important tool in the development of new games for your VCS! Stella has a large number of helpful utilities under the hood to help troubleshoot and analyze issues during the process of making a game. By supporting Stella, you're helping accelerate the development of games and push games to further and further heights! CLICK HERE FOR MORE INFO!!
  10. Hey everyone, I'm very new to programming with assembly. Anyways, from the tutorial in this section of the forums I played around with the first kernel that is presented in Session 8. I made the lines alternate their colors with it. I ran it with SECAM60 after being satisfied, and wow is it an eyesore. I attached an image of the screen when I ran it. Challenge: look at the SECAM60 screenshot for 30 seconds and then turn away. pantomchap_test_game_5-17-2017-2.27PM.bin
  11. And now for something completely different: a shameless plug. There is a Stella fundraiser (dubbed 'Stella-thon') happening tomorrow, July 12. Info is available at Please consider a donation or making a bid on an item.
  12. I feel ridiculous for asking such a noob question, but nothing is working. I just got a new Windows 10 laptop, so maybe it is is Windows 10 learning pains? I installed 64-bit Stella. Made a shortcut and attached a cute 2600 icon to the shortcut. Pin the shortcut to the Start menu. Icon is the default Stella Atari symbol. Unpin the icon and delete the icon cache. Restart. The shortcut shows the proper icon, so pin it to the Start menu. Icon in the start menu is the default Stella Atari symbol. Any ideas what is going on?
  13. So it's time for a new release of Stella. I've been sick over the past few months, and didn't get to work on Stella as much as I'd have liked. Anyway, here it is: A number of bugs from the '4.6.5 release thread' have been fixed, but there's still a few more to go. As usual, Stella can be downloaded here, and donations are welcome here. Feedback can be in this thread or by PM.
  14. Here's another release of Stella, fixing/adding a few things I missed in the last release. Changes are as follows: As usual, bug reports can be reported by PM or here in this thread. Download the latest Stella here, and donations are greatly appreciated.
  15. So, it's time for a new release of Stella. I'm still working on the improved paddle emulation as well as a new phosphor mode that looks much nicer than the current implementation. Those changes are taking a little longer than expected, so I decide to do an interim release now. Changes are as follows: As usual, Stella can be downloaded from Stella webpage; any donations are greatly appreciated. Issues, comments, bug reports, etc can be posted in this thread or by PM.
  16. I'm looking to improve emulation of Stella wrt INTIM/TIMINT. Almost all the test ROMs I have are working correctly, but a few cases do not. As well, all the test ROMs only cover a small portion of the values. What I'd like is to have someone provide test ROMs (Batari Basic preferred) that cycle through all combinations of reading and writing these registers, to see where Stella can be improved. Can someone offer some advice and/or help in this area?
  17. I'm looking for help in modernizing the Stella manual, making it look nicer as well as improving the layout, readability, etc. I know documentation is not something a lot people like to work on, but I'm hoping there's at least a few aspiring tech writers here. The main issue is that the current document is a single HTML file that's over 140KB! Ideally I'd like some of the following: break the document up into multiple files (chapters per topic, etc) improve the look with CSS, better fonts, etc improve the readability, looking at it from a users POV and see if it actually explains things improve the layout, again from a users POV, to make sure the more advanced topics aren't being presented when they aren't needed any other issues/problems that might need to be fixed I understand that this is a fairly big undertaking, and I appreciate any help anyone can provide. My only absolute condition is that the manual has to be static (no PHP, etc), as it will be viewed on client systems that don't have a web server installed. I can't offer any payment for this. I can only consider this as a Stella donation, and credit you in the Credits list. Please let me know if you're willing to take a stab at this.
  18. I am currently living in a small apartment, and my girlfriend will be moving in soon. In the interests of maximizing space, I am considering putting my numberous systems into storage and getting a nice emulation setup hooked up to my new TV. How anyone here ever done this, and did it work out for you? Now, what kind of a computer is needed for good emulation? I know next to nothing about hardware, and won't be building a machine. I'll just go to Best Buy when my tax refund comes back and buy a PC. Ideally, I would like to run stuff up to the Dreamcast era smoothly, if that can be done. If not, I'll settle for a machine that runs the classics. Any recommendations on an out-of-the-box machine that does the job? Also, any suggestions for controllers? Also, has anyone here had experience with a first-gen hacked Xbox? Thanks!
  19. Ok, it's time for another Stella release. I'm glad to say that Blargg TV filtering is finally available There are also some other nice changes, and a few bug fixes. Perhaps the biggest change other than Blargg is that this release marks the retirement of the Win98/2000 port. Unfortunately, this decision is final, and that port won't be coming back. As for the Blargg TV effects, please keep the suggestions constructive. There is more work to do in this area, and there are definitely improvements to be made, particularly with respect to the scanline emulation. Anyway, here's the changelog: As usual, Stella can be downloaded from the Stella homepage. Please consider a donation if you find Stella useful. Bug reports can be reported directly to me or in this thread.
  20. Hello, I'm trying to trigger HMOVE without RSYNC, still at the right time. I suppose there is a way to trap a write only after the first color clock cycles. But right how I'm stuck at breakif { (_ccycle > 3) && WRITEAT(HMOVE) } How can I tell Stella what to do at WRITEAT(HMOVE)? Or can I somehow combine trapwrite with a function? Or maybe something like thiis? function strobeccycle { (_ccycle > 3) ? HMOVE : $7F } trapwrite strobeccycle Ideas anyone?
  21. I'm requesting help with completing the final remaining bugs in the TIA emulation in Stella. First of all, a little background and the reason I'm asking for help. I've been working on the project for many years (over a decade, in fact), and while I've made improvements to the TIA emulation, I've reached my level of understanding of the code. I can easily understand what the code is doing, just not always why. And without the why, I have no hope of making further improvements. This request was prompted by my situation as described in another thread. Basically, I'm on the verge of burnout in this area, and would like to finally complete this part of the emulation so I can move on to other parts of the code. The alternative from my POV is to walk away from the project entirely before I burn out completely. Please help me avoid that path. Anyway, I suspect this will be a long, ongoing thread, and that I will have to add info to it quite often, as I'm very familiar with the codebase and probably not many other people really are. So, where to begin? Current issues with the TIA emulation The biggest issue is changes to NUSIZx registers after drawing has already began. The core needs to track when drawing started, and then when NUSIZx is changed, update what is drawn from that point on (keeping in mind that sometimes the NUSIZx write will change the output and sometimes it won't; it depends on the timing). There are related issues with RESPx, and I suspect for very similar reasons. How can the code be viewed The ideal way (and what I personally request) is to download the code from the Stella repository, set up a compile environment, and compile/run/test it. The repo (latest version) is located at https://stella.svn.sourceforge.net, and can be checked out at https://stella.svn.s...stella/trunk. The relevant files are TIA.hxx, TIA.cxx, TIATables.hxx, and TIATables.cxx. How does the current TIA emulation work The TIA code makes extensive use of tables, where (as much as possible) conditions are precomputed once, upon TIA creation. These tables essentially create 'masks' that define, for the given conditions, how the graphics should be drawn. For example, take the following example of the BALL mask for the current conditions: myBLMask = &TIATables::BLMask[myPOSBL & 0x03] [(myCTRLPF & 0x30) >> 4] [160 - (myPOSBL & 0xFC)]; This looks complicated, but is basically determining how the ball will look given the current position (myPOSBL) and playfield control register (myCTRLPF). Since the behaviour of the ball is deterministic based on position and playfield register, the state can be precomputed. Another example of setting the player0 mask: myP0Mask = &TIATables::PxMask[myPOSP0 & 0x03] [mySuppressP0][myNUSIZ0 & 0x07] [160 - (myPOSP0 & 0xFC)]; Here, the player0 object state is a combination of 3 things: current position, suppression, and NUSIZx. Suppression in this sense is (I believe) whether the first copy of the player should be suppressed. Since this depends on other factors, it must be decided at runtime. In fact, I believe this is part of the issue; the mySuppressP0 and mySuppressP1 booleans aren't being updated when they should. I suspect this because of the following comment on line 1151: // See if we're at the end of a scanline if(myClocksToEndOfScanLine == 228) { // TODO - 01-21-99: These should be reset right after the first copy // of the player has passed. However, for now we'll just reset at the // end of the scanline since the other way would be too slow. mySuppressP0 = mySuppressP1 = 0; } Similarly, the following is from the update of NUSIZ0: case NUSIZ0: // Number-size of player-missle 0 { // TODO - 08-11-2009: determine correct delay instead of always // using '8' in TIATables::PokeDelay updateFrame(clock + ; myNUSIZ0 = value; mySuppressP0 = 0; break; } The '8' in this case seems to be a delay that corresponds with the majority of ROMs. However, it doesn't work for all of them. If I play with the number, some of the ROMs that don't display correctly suddenly start working. While this doesn't definitely confirm that this is the issue, it lends to the conclusion that this shouldn't be a hard-coded value, and instead should be calculated at runtime based on current state. Anyway, that's probably enough info for now. I would like someone knowledgeable in C/C++ to look at the TIA.cxx class and help me understand what's going on. The class is 2000+ lines of code, but I think the issues are localized to perhaps 100 lines or so. And I can point them all out. But before I do that, I welcome feedback/questions, etc. Thanks in advance for any help you can provide. EDIT: I've added more detailed instructions for checking out code, compiling it, etc on the Stella Development webpage.
  22. Ok, a bug has been reported in Stella with ROM "Pick & Pile". This is a PAL ROM, and as such I'm unable to test it. If someone with a PAL machine and a Harmony could test it and let me know, it would be great. Otherwise I'll have to work from the code itself. The problem is, there's horrible flickering on the startup screen (once you get into the game, it's a steady 312 scanlines). In Stella, the startup screen alternates between frames with 314 lines and 4 lines. The flickering is because a 4 scanline frame is essentially blank, so every second frame is black, and hence everything flickers (sort of like 30Hz flicker). However, I'm not convinced the blanking is the issue. I feel that a 4 scanline frame should be blank, and this ROM shouldn't be generating such a frame at all. Other emulators I've tested display a consistent 315 lines on this screen, so I'm thinking there's an error in Stella emulation. I've traced it to VSYNC handling (or at least I think I have). I ran the ROM and set a breakpoint at $75A7. This results in the following section of code: The code is as follows, with a printout of Stella state after each line has executed. You can try running it yourself to confirm: 75A7: LDA #$02 ;2 // scan=311 75A9: STA VSYNC ;3 // vsync set @ 311 75AB: STA WSYNC ;3 // scan=312 75AD: STA VSYNC ;3 // vsync set @ 312 75AF: STA WSYNC ;3 // scan=313 75B1: STA VSYNC ;3 // vsync set @ 313 75B3: STA WSYNC ;3 // scan=314 75B5: STA VBLANK ;3 // ... 75B7: LDA #$00 ;2 // ... 75B9: STA VSYNC ;3 // CPU stopped @ 314 75BB: RTS ;6 // scan=0 !!! After this point, it goes on to do 4 more scanlines, then starts over again. So I'm thinking the CPU shouldn't have stopped and went to scanline 0, but proceeded to process a few more scanlines in this frame. Can anyone explain what really should be happening here?
  23. I have an ebay auction with the following Supercharger related stuff: Arcadia (Starpath) Supercharger (tested works) Original Stella Gets a New Brain CD that is Numbered 154 (Excellent Condition) Original Booklet (Some minor wear on binding - the glare in the image makes it look worse than it is) Original Jewelbox with Artwork Starpath Tapes: 2 copies Phaser Patrol, 2 copies Suicide Mission, 1 copy Escape from Mindmaster, 1 copy of Fireball Manuals for Communist Mutants from Space, Phaser Patrol, Killer Satellites and Escape from Mindmaster I also will include an adapter that I've been using to connect the Supercharger to my iPod. http://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=4&pub=5574883395&toolid=10001&campid=5336500554&customid=&mpre=http%3A%2F%2Fwww.ebay.com%2Fitm%2F161114297321%3FssPageName%3DSTRK%3AMESELX%3AIT%26_trksid%3Dp3984.m1555.l2649 Thanks for Reading!
  24. user9733

    question

    >no option to 1x mode in any release of stella >no option to drag window edges in any release of stella >black borders appear in dragonstomper on stella 3.8.1 >black borders dont appear in dragonstomper on 2.2 >no option to snapshot in 1x mode on stella 2.2 >option to snapshot in 1x mode on stella 3.8.1 is there anything that can take 1x screenshots and not have black borders? screenshot with stella 2.2 screenshot with stella 3.8.1
  25. I am assuming the 2600-dapter II makes joysticks appear as normal game controllers to Windows. Will the dapter II allow my paddles to work like paddles in Atari800WinPlus? Stella? http://www.2600-daptor.com Thanks I suppose a better question is: does Atari800winplus support real paddles? I find that Stella does, but can't find any info about Atari800winplus.
×
×
  • Create New...