+stephena Posted March 8, 2017 Author Share Posted March 8, 2017 Yes, take a look at the Cart4A50.cxx file. In its install method, you will see it take control of the entire address space, including responsibility for the TIA and RIOT. This was required for the 4A50 scheme, since there were so many hotspots and gotchas, it was easier for the cart class to handle everything in its own peek/poke methods. EDIT: It may not even be necessary to change the code very much. Just do installDelegate() on the TIA and RIOT, and you will get their peeks/pokes forwarded to you to do with as you please. 2 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 8, 2017 Share Posted March 8, 2017 EDIT: It may not even be necessary to change the code very much. Just do installDelegate() on the TIA and RIOT, and you will get their peeks/pokes forwarded to you to do with as you please. Thanks for the suggestion, over lunch I removed the changes to System.cxx and Cart.hxx and updated BUS to use the delegate. 5 Quote Link to comment Share on other sites More sharing options...
DirtyHairy Posted March 8, 2017 Share Posted March 8, 2017 These look pretty amazing, a real pity that my Jr. does not play well with bus stuffing Looking forward to the pull request, maybe I'll make an attempt to port BUS to 6502.ts Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 Pick'n'Pile flashes like crazy on startup in pre-5, but settles down once you press 'fire' button. works ok in 4.7.3 Dunno if that's useful info.Pick 'n' Pile (1990) (Salu) (PAL).zip Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 Ski Hunt if broken. Won't start. Pre-4 is ok. Ski Hunt (1983) (Home Vision) (PAL).zip Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 These may be all minor things.. Vong has this annoying background tone. Zoo Fun doesn't start. Canyon Bomber sometimes has a flashing blue or grey or pink scanline at the bottom. Sometimes it's full width, sometimes half, or smaller. The 2 DPC arm demos don't run. Test.bin outputs differently on pre-5 vs 4.7.3 vs 3.9.3roms for this post.zip Quote Link to comment Share on other sites More sharing options...
DirtyHairy Posted March 9, 2017 Share Posted March 9, 2017 Keatah, could you check the failing ROMs with pre4, too? There is an experimental RIOT change in pre5 that I guess is responsible for at least some of those. Quote Link to comment Share on other sites More sharing options...
DirtyHairy Posted March 9, 2017 Share Posted March 9, 2017 (edited) Regarding test.bin: we have a closed bug for this one: https://github.com/stella-emu/stella/issues/58 . I did not test myself, but it seems that this now displays correctly. Edited March 9, 2017 by DirtyHairy Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 CanyonBomber behaves the same way in pre4 and pre5. It does not have the random/stray line in 3.9.3 or 4.7.3 Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 In 3.9.3 and 4.7.3 ZooFun starts with the title page, and then you can start the game. the game has a greenish backdrop. detects as 291 @ 53.61 PAL In pre4 ZooFun starts with the title page, and then you can start the game. the game has a pinkish/violet colored backdrop. detects as 291 @ 54.02 NTSC In pre5, ZooFun starts with the title page, and then trying to start the game gives a black screen. detects as 291 @54.02 NTSC, but then pressing 'fire' changes the info to 292 @ 53.84 and the black screen. Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 Vong still makes the continuous tone sound in pre5, pre4 and 4.7.3. The tone is NOT there in 3.9.3. Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 Not sure what dpc+ arm demo.bin is supposed to do. In pre4 and pre5 dragging and dropping the rom into the emulator results in no window coming up, no emulator screen showing. just STELLA or STELLA5 in the task manager. in 4.7.3 I get two hex numbers at the bottom of the screen. The dpc+ arm music demo works in 3.9.3. I get a waveform and music. In 4.7.3, pre4, and pre5 I get a partly garbled debug screen as soon as I start the rom. Then I do <CTRL-Q> to exit to desktop. I'm testing on my 4:3 screen at 1024x768. Clicking just a little below the AL in HALT (on the scrambled text) lets me do other things in the debugger. Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 Pick 'n' Pile (1990) (Salu) (PAL).BIN Flashes in both pre4 and pre5. No flashing in 3.9.3 or 4.7.3. Quote Link to comment Share on other sites More sharing options...
Keatah Posted March 9, 2017 Share Posted March 9, 2017 (edited) Ski Hunt (1983) (Home Vision) (PAL).BIN Works in 3.9.3, 4.7.3, and pre4. Game seems playable with music and all graphics like it's supposed to. detects as 296 @ 52.70 PAL. Holding the reset button makes the info flash 342 @ 45.61 PAL, and it makes the game reset over and over, till you release the reset button. The screen seems to scroll up half-way during this. This seems to be normal operation. I guess. But the game does not work in pre5. I get a black screen. it detects as 296 @ 52.70 PAL. When I hit reset or 'fire' to start, the screen goes all black and the info changes to 342 @ 45.61 PAL and stays like that till I exit with <ESC> or <CTRL-Q>. Regarding the test.bin from https://github.com/stella-emu/stella/issues/58 Everything seems to be ok. pre4 = pre5. My bad, kinda got carried away and forgot this was regression testing for pre4 & pre5. The differences I noted were in 3.9.3 and 4.7.3, compared against pre4 & pre5. I s'pose we don't care too much about those older versions in this case. Love the work that's being done. That's all for a little while. Edited March 9, 2017 by Keatah Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted March 9, 2017 Share Posted March 9, 2017 Ski Hunt has the same problems as Acid Drop or Panda Chase. They have a timer loop with an even cycle count. So when the timer underflows and reaches the loop with an odd value, it never returns 0 when checked by the code. The old cores had a hack for fixing this, but the new core should work without hacks. Obviously there is some extra timer logic, which is not documented. 1 Quote Link to comment Share on other sites More sharing options...
+stephena Posted March 11, 2017 Author Share Posted March 11, 2017 Ski Hunt, Acid Drop, Panda Chase, Zoo Fun, Pumukl, etc all have an issue with the changes in the RIOT timer behaviour. It's now known what is causing this, and a fix is underway. Issue is https://github.com/stella-emu/stella/issues/97. The DPC+ demos are from an old version of the DPC+ spec, while it was still being finalized. Stella only contains the most recent revision of the DPC+ bankswitching specification, so unfortunately those ROMs are now considered broken and won't work in Stella going forward (similarly, newly developed DPC+ ROMs won't work in Stella 3.9.3). As for the Vong ROMs, only the first one "Vong (2008)" has a background sound, and only during the startup screen. Once into the playfield and moving the paddle, there is no sound at all on my system(s). Canyon Bomber is a bug, issue https://github.com/stella-emu/stella/issues/103. 2 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted March 11, 2017 Share Posted March 11, 2017 As for the Vong ROMs, only the first one "Vong (2008)" has a background sound, and only during the startup screen. Once into the playfield and moving the paddle, there is no sound at all on my system(s). In Stella that background sound continues. It is resulting from repeatedly writing 0 to AUDF0 while AUDV0 and AUDC0 are 0 too. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted March 11, 2017 Share Posted March 11, 2017 Obviously there is some extra timer logic, which is not documented. It turned out, that the extra timer logic was documented, but unfortunately not in all docs. Thanks to alex_79 for pointing at the right documentation. 1 Quote Link to comment Share on other sites More sharing options...
+stephena Posted March 11, 2017 Author Share Posted March 11, 2017 In Stella that background sound continues. It is resulting from repeatedly writing 0 to AUDF0 while AUDV0 and AUDC0 are 0 too. I'm unable to duplicate this in Stella in Linux. I will try in OSX and Windows soon. EDIT: Confirmed, but only on Windows, not Linux or OSX I really hate the bugs that pop up only on certain platforms; it makes them much harder to track down. To be clear, Thomas, the correct behaviour should be no sound at all? Because writing 0 to AUDF0 shouldn't matter when AUDV0 is 0 anyway?? Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted March 11, 2017 Share Posted March 11, 2017 I suppose so, but I have to check on real hardware. Quote Link to comment Share on other sites More sharing options...
+stephena Posted March 11, 2017 Author Share Posted March 11, 2017 I already checked on real hardware, and there is no sound (on my console at least). Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted March 12, 2017 Share Posted March 12, 2017 I already checked on real hardware, and there is no sound (on my console at least). Confirmed. Quote Link to comment Share on other sites More sharing options...
+stephena Posted March 12, 2017 Author Share Posted March 12, 2017 Vong sound issues reported in issue https://github.com/stella-emu/stella/issues/104. Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 13, 2017 Share Posted March 13, 2017 We now have a way to detect NTSC vs PAL! I think I'll be able to use mySystem->cycles() and myDisplayFormat (console) or tvMode(TIA) to simulate a timer in the Thumbulator to return appropriate values. Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 15, 2017 Share Posted March 15, 2017 I'm pretty close - I've implemented the timer in the thumbulator. It requires the run() from the cartridge class to pass the elapsed 6507 cycles since last run, and true/false for NTSC/PAL. void Thumbulator::updateTimer(uInt32 cycles, bool ntsc) { const double NTSC = 58.6664323021; const double PAL = 59.2061068702; double increment; if (T1TCR & 1) // bit 0 controls timer on/off { if (ntsc) increment = cycles * NTSC; else increment = cycles * PAL; T1TC += uInt32(increment); } } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - string Thumbulator::run(uInt32 cycles, bool ntsc) { updateTimer(cycles, ntsc); return this->run(); } in my CDF cartridge class if I execute the ARM code like this: myThumbEmulator->run(myARMCycles, true); the timer runs at the right speed for NTSC: if I change it to this for PAL: myThumbEmulator->run(myARMCycles, false); the timer runs at the right speed for PAL: What I've not been able to figure out is how, in the CDF cartridge class, to get access to tia->tvMode() or equivalent so I could do this: myThumbEmulator->run(myARMCycles, myTIA->tvMode() == TvMode::ntsc); Any suggestions on what to do? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.