Thomas Jentzsch Posted January 18 Share Posted January 18 3 hours ago, johnnywc said: Thanks TJ! For some reason, in @coach41's case on his system, it seems that when Stella detects a QT, Galagon (and possibly WoW Arcade) are not detecting a QT on startup. So Stella thinks there is a QT but the game does not. Isn't the problem here, that Stella analyzes the ROM, while the ROM analyzes the input? Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted January 18 Author Share Posted January 18 1 minute ago, Thomas Jentzsch said: Isn't the problem here, that Stella analyzes the ROM, while the ROM analyzes the input? Yes, it would appear that this is the issue. If Stella recognizes QuadTari support and sets that as the controller in the left port, does it emulate INPT1 so the high bit is high and INPT0 so the high bit is low? If so, then the Galagon ROM should recognize that there is a QT connected. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted January 18 Share Posted January 18 3 minutes ago, johnnywc said: If Stella recognizes QuadTari support and sets that as the controller in the left port, does it emulate INPT1 so the high bit is high and INPT0 so the high bit is low? I think so: // QuadTari auto detection setting setPin(AnalogPin::Five, AnalogReadout::connectToVcc()); setPin(AnalogPin::Nine, AnalogReadout::connectToGround()); Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted January 18 Author Share Posted January 18 9 minutes ago, Thomas Jentzsch said: I think so: // QuadTari auto detection setting setPin(AnalogPin::Five, AnalogReadout::connectToVcc()); setPin(AnalogPin::Nine, AnalogReadout::connectToGround()); Looks good to me! Here's my detection code that works on a real console and Stella not running on the emulation machine: ; auto detect ; INPT0 INPT1 ; 0 0 regular joystick connected ; 1 x Genesis pad (or paddles) connected ; 0 1 multi-tap connected ; if INPT0 = 1, we have a Genesis pad connected and no multitap bit INPT0 bmi noMultiTap ; if INPT0 = 0 and INPT1 = 1, we have a multitap connected bit INPT1 bpl noMultiTap lda flags ora #FLAG_MULTITAP|#FLAG_CONTROLLERS sta flags I use the same logic in RobotWar (which seems to work on the emulator console), but one difference is that I added this loop at the start (provided by TJ some time ago) that clears the VBLANK high bit (DUMP PORTS). ;--------------------------------------- .loopWaitQ sta WSYNC ;--------------------------------------- sta VBLANK ; disable bit 7, A = 0! dex bne .loopWaitQ dey bmi .loopWaitQ That may be causing the QuadTari detection in the game to fail (not sure how). I'll see if I can free up some bytes in Galagon to add this code in and see if it makes a difference. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted January 18 Share Posted January 18 Dumping ports can make a difference, yes. Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted January 18 Author Share Posted January 18 5 minutes ago, Thomas Jentzsch said: Dumping ports can make a difference, yes. Great! I'm off to find 12 16 bytes then.. 👀 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted January 18 Share Posted January 18 16 minutes ago, johnnywc said: Great! I'm off to find 12 16 bytes then.. 👀 Let me know if you are running out of ideas. Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted January 18 Author Share Posted January 18 3 hours ago, Thomas Jentzsch said: Let me know if you are running out of ideas. Thanks! Good news: I found the bytes. Bad news: @coach41 tested and the game still doesn't detect the QuadTari, so the joystick is non-responsive. Oh well, back to the drawing board! 1 Quote Link to comment Share on other sites More sharing options...
MissCommand Posted February 7 Share Posted February 7 Just to muddy the waters 😜 I use emulation with Stella and two 2600daptors, one for AtariVox and the other for a classic CX40 joystick (what can I say, I love the original joysticks!). Wizard Of War (final) comes up with with SaveKey and Quadtari detected. I don't have a Quadtari, but everything works fine. I did try Gorf (final) this morning, and no messages for detection, but everything works fine. 1 Quote Link to comment Share on other sites More sharing options...
marlowe221 Posted March 28 Share Posted March 28 I'm having an issue trying to play this game in Stella via Retroarch on the Steam Deck (via EmuDeck). All other 2600 ROMs I have work just fine with the default controls. I have not been able to find any setting in Retroarch that seems to affect the controls in this way... Do I need to figure out how to access the settings of Stella itself? Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 28 Share Posted March 28 34 minutes ago, marlowe221 said: I'm having an issue trying to play this game in Stella via Retroarch on the Steam Deck (via EmuDeck). WOWA uses the CDFJ bankswitch/coprocessor. Looking at the Stella Changelog: Quote June 6, 2019 Stella release 6.0.1 for Linux, macOS and Windows is now available. Added support for CDFJ bankswitching type (Galaga, Wizard of War, etc). Allow the DPC+ scheme to not enable playfield 'jitter' effect for certain older DPC+ driver versions; this allows 'Epic Adventure' ROM to finally work in Stella. So you need at least Stella 6.0.1 from 2019. Looks like Retroarch has 2 Stella core options: stella2014 - does not have the routines for CDFJ (skips from CartBFSC to CartCM) stella - does have CDFJ routines. Do note: the CDFJ routines in the stella core are from 2019, while the stand-alone version of Stella has seen numerous CDFJ updates since then. As such it's possible the Retroarch core has some CDFJ bugs that have already been fixed in Stella. 1 Quote Link to comment Share on other sites More sharing options...
marlowe221 Posted March 28 Share Posted March 28 Thanks! I thought Retroarch was using stella (and not stella2014) but.... maybe not? I'll check! Quote Link to comment Share on other sites More sharing options...
marlowe221 Posted March 28 Share Posted March 28 48 minutes ago, SpiceWare said: WOWA uses the CDFJ bankswitch/coprocessor. Looking at the Stella Changelog: So you need at least Stella 6.0.1 from 2019. Looks like Retroarch has 2 Stella core options: stella2014 - does not have the routines for CDFJ (skips from CartBFSC to CartCM) stella - does have CDFJ routines. Do note: the CDFJ routines in the stella core are from 2019, while the stand-alone version of Stella has seen numerous CDFJ updates since then. As such it's possible the Retroarch core has some CDFJ bugs that have already been fixed in Stella. According to Retroarch, I'm using Stella 7.0 The game boots and loads just fine. The start button starts a game... the rest of the controls are just totally unresponsive after that. Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 28 Share Posted March 28 Hmm... Since the game launches but the controls don't work correctly then it might be an issue with Retroarch and WOWA's support for the QuadTari. Quote Link to comment Share on other sites More sharing options...
marlowe221 Posted March 28 Share Posted March 28 24 minutes ago, SpiceWare said: Hmm... Since the game launches but the controls don't work correctly then it might be an issue with Retroarch and WOWA's support for the QuadTari. I think that's what is happening. Unfortunately, I can't seem to get to the menu you've screenshotted there in Retroarch via EmulationStation/Steam Deck. Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted March 28 Author Share Posted March 28 13 minutes ago, marlowe221 said: I think that's what is happening. Unfortunately, I can't seem to get to the menu you've screenshotted there in Retroarch via EmulationStation/Steam Deck. I've seen this before; unfortunately Stella will automatically select QuadTari/SaveKey to support 2 player + Savekey since it detects the word "QuadTari" in the binary. Normally this is fine but in this instance I think RetroArch has an issue emulating the QuadTari perhaps. Someone who purchased the full ROM from our website was having the same issue and the only way it seemed that we could fix it was by disabling QuadTari support using a patched binary. Actually, if you look above the previous issue is part of this thread. It was actually NOT detecting the QuadTari in the game but Stella is setting the controller to QuadTari. So, the solution would be to disable the Stella automatic detection of controllers by overriding them with the settings. If you don't have access to the settings, I can post an updated demo that disables QuadTari support all together (I assume you're running the demo?). Hopefully at some point the issue can be resolved with Stella or my code as it isn't clear where the issue is. Stella sets the two pins to high and low that are needed for the startup code to enable a QuadTari so I'm not sure what else is could be. Hope that helps! John Quote Link to comment Share on other sites More sharing options...
marlowe221 Posted March 28 Share Posted March 28 15 minutes ago, johnnywc said: I've seen this before; unfortunately Stella will automatically select QuadTari/SaveKey to support 2 player + Savekey since it detects the word "QuadTari" in the binary. Normally this is fine but in this instance I think RetroArch has an issue emulating the QuadTari perhaps. Someone who purchased the full ROM from our website was having the same issue and the only way it seemed that we could fix it was by disabling QuadTari support using a patched binary. Actually, if you look above the previous issue is part of this thread. It was actually NOT detecting the QuadTari in the game but Stella is setting the controller to QuadTari. So, the solution would be to disable the Stella automatic detection of controllers by overriding them with the settings. If you don't have access to the settings, I can post an updated demo that disables QuadTari support all together (I assume you're running the demo?). Hopefully at some point the issue can be resolved with Stella or my code as it isn't clear where the issue is. Stella sets the two pins to high and low that are needed for the startup code to enable a QuadTari so I'm not sure what else is could be. Hope that helps! John I purchased the cartridge at PRGE and later the ROM via your website. I'll have to play around with the settings more in Retroarch on the Steam Deck to see if I can get to the right options. I've played the game quite a bit on my Retron77 flashed with Stella though. I've really been enjoying it! I never played the actual arcade cabinet but I had the 2600 port as a kid and this version is a great upgrade. Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted March 28 Author Share Posted March 28 Just now, marlowe221 said: I purchased the cartridge at PRGE and later the ROM via your website. I'll have to play around with the settings more in Retroarch on the Steam Deck to see if I can get to the right options. Thanks for the support! If you're still having issues, feel free to send me an email at champdotgames@gmail.com and I can get you a patched full version. Just now, marlowe221 said: I've played the game quite a bit on my Retron77 flashed with Stella though. I've really been enjoying it! I never played the actual arcade cabinet but I had the 2600 port as a kid and this version is a great upgrade. Thanks for the kind words and I'm glad you're having fun with all the new features. Do you have an AtariVox for the voice on real hardware? Quote Link to comment Share on other sites More sharing options...
marlowe221 Posted March 29 Share Posted March 29 9 hours ago, johnnywc said: Thanks for the support! If you're still having issues, feel free to send me an email at champdotgames@gmail.com and I can get you a patched full version. Thanks for the kind words and I'm glad you're having fun with all the new features. Do you have an AtariVox for the voice on real hardware? I think I will send you that email. I haven't been able to find a way to get to the right menu in the EmuDeck/Retroarch implementation on the Steam Deck. As far as the AtariVox goes, I'm afraid I don't have any real hardware any more. I'm all emulation at this point when it comes to retro gaming. I bought the physical cartridge of Wizard of Wor Arcade just to... have it! 1 Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted March 29 Author Share Posted March 29 10 hours ago, marlowe221 said: I think I will send you that email. I haven't been able to find a way to get to the right menu in the EmuDeck/Retroarch implementation on the Steam Deck. Got your email and will send over the modified ROM soon! 10 hours ago, marlowe221 said: As far as the AtariVox goes, I'm afraid I don't have any real hardware any more. I'm all emulation at this point when it comes to retro gaming. I bought the physical cartridge of Wizard of Wor Arcade just to... have it! Wow - thanks for the support and buying the cart version even though you don't have a system! Hopefully someday a physical system makes it's way back into your hands and you can put the cart to good use. there are ways to use an AtariVox with an emulator via a serial connector (Stella allows you to configure a COM port). I'm not sure if it works with the EmuDeck/Retroarch. For Windows, I have a USB 9-pin serial adapter that I connect the AtariVox to and it shows up as a COMx port. You then can configure Stella to use that port for the AtariVox and override the settings to detect an AtariVox in the 2nd controller port. It does require an AtariVox, that USB serial adapter, and some configuration but it's worth it if you want the voice. I managed to get it to work on my RetroN 77 so there is hope! Quote Link to comment Share on other sites More sharing options...
Dionoid Posted June 11 Share Posted June 11 WoW Arcade is such an excellent 2-player game! I tested the WoW demo ROM on the latest version of Stella, with two controllers connected to my PC. However, I found that only the first controller is mapped correctly by Stella (i.e., first controller is correctly mapped to the "Left Joystick"). Looking into Stella's Game properties, I can see that Stella correctly auto-detects the QuadTari and SaveKey, but in Stella's Input settings, I can see that my second controller is mapped to the "Right Joystick", while I would expect it to be mapped to "QuadTari Joystick 3" to support auto-mapping my two controllers without having to do that manually. I think in case Stella has detected a QuadTari on a single port (which is basically a DuoTari?), then it would be helpful for "plug and play" if the second controller (C1) would be auto-mapped to "QuadTari Joystick 3" instead of "Right Joystick". Or am I overlooking an easy workaround? Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted June 12 Share Posted June 12 (edited) 7 hours ago, Dionoid said: Or am I overlooking an easy workaround? No. That seems like a good enhancement. I will create an issue for this. Edited June 12 by Thomas Jentzsch 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted June 12 Share Posted June 12 @Dionoid I turned out that this is really complicated. The code structure doesn't allow temporarily moving events from one emulated controller to another. I might be able to hack something really ugly into the code, but that would make the code less maintainable and the chance of breaking something is pretty high. Maybe I will have a better idea later on. But as of now, I don't think your request is feasible. Sorry. I think (can't test, I have only 2) using a 3rd controller should work. That would become C2 and could be mapped to the QT3 events. Quote Link to comment Share on other sites More sharing options...
Dionoid Posted June 12 Share Posted June 12 (edited) @Thomas Jentzsch That's too bad, but I understand the code needs to stay maintainable. Why do the controller events need to be moved temporarily? Is that because the user can select another type of controller in each of the ports? And could the usage of the magic string "QUADL" help here? Or as a workaround for Atari devs, is there a way to get a SaveKey auto-detected as connected to a QuadTari on ports 3 or 4 (using VBLANK with dump ports enabled)? Edited June 12 by Dionoid Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted June 12 Share Posted June 12 @Dionoid The mapping is a bit hard to explain, so please ask if anything stays unclear. Every input (e.g. left joystick up, cursor up, ESC pressed, ...) in Stella creates an event. The mappings between the computer keyboard and the attached physical controllers are stored in two hash maps. These maps are the center of the event mapping. The mappings get loaded from and stored to Stella's database. And these mappings are used to create the correct events from user input. Besides the user input, the state of the emulator is considered. E.g. during emulation other events are created than while navigating a menu or during debugging. Based on that, each computer keyboard or physical controller input creates a single event. There can be multiple inputs per event defined, but not vice versa (obviously). In our example, e.g. 2nd physical controller (C1) up creates a right port joystick up event. To create the same event via QT3 joystick up, one of the central hash maps would have to be modified. But this new mapping would automatically be stored in the database. Then right port up wouldn't work anymore. So before storing the hash maps back to the database, the map modifications would have to be undone. The mapping code is pretty abstract and tailored to its current needs. Therefore changing the mappings forth and back is error prone. And then there are side effects (e.g. controller visualization in debugger, input mapping dialog) which make things even more complicated. Hope that makes some sense. Regarding the Savekey, who should auto-detect it? Stella or the 6507 code? In Stella this works by using standard code (from i2c.h). Or you can provide a command line parameter. In 6507 it works like you describe and that's how WoW does it. There was some discussion here. 1 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.