Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

716 Excellent


About DirtyHairy

  • Rank
  • Birthday 08/19/1980

Profile Information

  • Gender
  • Location
  • Interests
    Music, Guitar, Coding, Retrocomputing & Emulation, Computers & Technology in general, Books, Food, Family

Recent Profile Visitors

8,422 profile views
  1. Nope, you're not. The Uno definitely runs SC games. On an actual supercharger, the BIOS is a piece of code that is stored on the ROM inside the supercharger and that takes care of loading the game code into RAM from tape. The supercharger emulation on the Uno contains a stub BIOS that replaces the the supercharger BIOS (as does any other emulator) --- there is no need to download anything else. If you have issues running supercharger games, please post to the firmware thread below with an exact description of the issue and the failing cartridge.
  2. Not much need for speculation 😏 The Uno runs about everything, apart from DPC+ and CDF. Those two run game code on the ARM in the Harmony cartridge, and some heavy lifting would be required to get them running on the Uno. Your list ist about correct, but not exhaustive, and Boulder Dash (the demo) should run fine.
  3. Thanks for your report! Yes, this sounds like frame skipping --- I have ran into that several times during firmware development, but I thought we had been able to resolve this for good. I'll investigate... 😏
  4. That‘s definitely shouldn‘t happen, I use it in dev mode most of the time. The only difference between dev and non-dev is that dev mode brings up network + ssh and writes the log. Booting takes a bit longer (and much longer on first boot), but nothing changes w.r.t. Stella or the configuration.
  5. Thanks alot for the log. There's nothing peculiar on a first glance, but I'll have to compare it to my own R77 later that weekend to be sure. If this doesn't shed any light on what happens, I have a few more ideas to get more diagnostics.
  6. Interesting. I have a latent desire to look at 7800 emulation one day, so I have stumbled over the possibility of a phase shift between CPU and TIA before. If I ever find time to actually work on this, I may very well come back with a few questions 😏
  7. Yes, that's correct. For every frame, Stella cycles the CPU until a frame is generated or a predefined maximum of instructions has been emulated. On every memory access, the system clock is incremented. Whenever a TIA register is read (or one of several other conditions is met), the TIA emulation runs and propagates the hardware state to the present. The same holds true for the RIOT. 6502.ts works differently, too, it has an inner loop that spins at the color clock and ticks the hardware on every iteration. I think the approach taken in Stella has the potential for better performance (there's less dispatch overhead, and cache locality should be better), and it makes emulating the exact access sequence of the CPU much simpler --- the code basically flows linearly through the steps taken by the CPU for a given instruction, while I have a rather complicated state machine in 6502.ts that tracks the execution state of each individual instruction and advances by one step every three ticks. On the other hand, it needs some care to make sure the hardware is always up to date when necessary, and we have tripped over this more than once since I joined the project a few years ago. Especially the interaction with the debugger is a little tricky.
  8. The long explanation that I just gave via PM: The reason for the presence of "subClock" is mostly historical. 6502.ts (from which I ported the TIA core) works differently from Stella in that it has a loop at its center that runs once per color clocks and sends "tick" events to all emulated hardware on each iteration. Stella works differently: the CPU runs for a bunch of cycles (usually until a new frame is generated), increments the system clock counter on every memory access and at certain "barriers", the emulated hardware catches up. This synchronization is not correlated with scanlines --- it is triggered before a register is accessed, and at various other points. I implemented this "catching up" by spinning the new TIA core for the necessary number of cycles in a loop. As the granularity of the system clock is more coarse than that of the color clock, I added "subClock" in order to track any remainder. I suspected that there were no legal ways to actually enter or leave Tia::update with a nonzero subClock, but I was not sure. Now, I know that (at least with the current emulation), this is impossible, and I know no indication that it is possible to alter this "phase" between TIA and CPU on hardware. So, to answer your question, yes, in principle subClock could be removed. However, its presence keeps onHalt clear from any assumption from where in the emulation it is called, that's why I didn't remove it. If we were to remove it, I'd like to leave an assertion that this quantity is indeed zero.
  9. Just to be sure: can you try a different HDMI cable? If that doesn't help, please create a file called "developer" at the root of the SD card. The content of the file is irrelevant. This will put the firmware in developer mode, and it will write a log next time you turn on the R77. Give it five minutes or so time as the firmware will generate a SSH key when booted in dev mode for the first time. After that, you should find a file /sys/diagnostics.log on the SD card. Please post the file.
  10. Do you mean this? https://github.com/stella-emu/stella/issues/58
  11. In addition, there are aspects of the state that are not represented in RAM at all. In particular, the horizontal positions of the hardware sprites are stored implicitly by the offset of various internal counters of the TIA. Depending on the way the game is implemented, they may also be represented by a number in RAM, but there are games where the position of a sprite is not made explicit as a number anywhere --- the game just performs relative movements after initial positioning.
  12. Awesome, thanks alot! I'll PM you... 😏
  13. Stella 6.1.0-rc1 has been released, together with a new version for the R77. Please check the first post on this thread and the corresponding thread in the emulation forum for details. Enjoy!
  14. You can get a Harmony cartridge or UnoCart for running your code; both are cartridge emulators that run ROMs off a SD card.
  • Create New...