JetSetIlly Posted April 8, 2022 Author Share Posted April 8, 2022 2 hours ago, johnnywc said: That is correct. INPT0 and INPT1 should be high when a gamepad is connected to the left port and INPT2 and INPT3 should be high when a gamepad is connected to the right port. (same as paddles) At least that how it works on my 4-switch and the Sega gamepads I have tested with. I may be wrong, but I believe the issue is what Gopher2600 sets INPT0 bit 7 to high on startup when a gamepad is connected. (at least this is what Stella does) You're right. I'm using the Qix demo you released last year to test. I see the Quadtari message when the gamepad is attached. So I've changed the code so that INPT0 is high in addition to INPT1 and Qix says it detects the Gamepad. I wonder why INPT0 is high though? Is that because there's a third button that can be used? 2 hours ago, johnnywc said: Right now all there is the FAQ unfortunately, but I do have a controller tester app that can detect what controller is connected to each port, including JOYSTICK, GAMEPAD, QUADTARI and SAVEKEY. It shows basically how to switch between reading controller 1 and 2 and controllers 3 and 4. (it uses the DUMP_PORTS bit 7 of VBLANK to enable a multiplexer on the QT to determine which controllers to read). I had a technical discussion with Thomas J. when he developed the support for Stella; I'll dig it up and send it your way if you think it's something you'll want to add to Gopher some time in the future. I'll take a look at the Quadtari this weekend. Could you send me the tester app? That would be useful. Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted April 8, 2022 Share Posted April 8, 2022 24 minutes ago, JetSetIlly said: You're right. I'm using the Qix demo you released last year to test. I see the Quadtari message when the gamepad is attached. So I've changed the code so that INPT0 is high in addition to INPT1 and Qix says it detects the Gamepad. Thanks! 24 minutes ago, JetSetIlly said: I wonder why INPT0 is high though? Is that because there's a third button that can be used? It's because of how the Genesis is wired up (INPT0 is wired to VCC, along with pin 7), so unfortunately a 3rd button cannot be used. 24 minutes ago, JetSetIlly said: I'll take a look at the Quadtari this weekend. Could you send me the tester app? That would be useful. Will do, thanks! PS Is there an official place where I can post suggestions or is better to do it here in this thread or through PMs? I don't want to inundate you with a barrage of feature requests! Also, I used the profiler today and was able to optimized my text and draw routines and Qyx can now run without MAM set to full (still partial of course) so thanks for that! 1 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted April 8, 2022 Author Share Posted April 8, 2022 Just now, johnnywc said: PS Is there an official place where I can post suggestions or is better to do it here in this thread or through PMs? I don't want to inundate you with a barrage of feature requests! The personal message system here on AtariAge is good for discussion I've found. Just now, johnnywc said: Also, I used the profiler today and was able to optimized my text and draw routines and Qyx can now run without MAM set to full (still partial of course) so thanks for that! Wow! That's very encouraging news! 1 Quote Link to comment Share on other sites More sharing options...
Scott Savage Posted May 11, 2022 Share Posted May 11, 2022 On 3/9/2022 at 4:31 PM, JetSetIlly said: I've also added the Speed SpeakJet command but I'm not sure how it's measured. There isn't really a "measurment" for the speed command. Between each phoneme there is a transition where all the vocal parameters are shifted to their new destinations. The speed command regulates how fast that happens. But since some phonemes are further apart in values, then it really depends on which phoneme is being transitioned to which. Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted May 12, 2022 Author Share Posted May 12, 2022 15 hours ago, Scott Savage said: There isn't really a "measurment" for the speed command. Between each phoneme there is a transition where all the vocal parameters are shifted to their new destinations. The speed command regulates how fast that happens. But since some phonemes are further apart in values, then it really depends on which phoneme is being transitioned to which. Interesting. Thanks. The Speakjet manual indicates that "speed" ranges from 0 to 127 with a default of 114. I'm not even sure whether higher numbers indicate "faster" - the manual isn't clear on that but I've assumed it is. In Festival fixed prosody, the duration value (of a phoneme) is defined in milliseconds, so I've naively assumed that whatever value is given by the Speakjet speed command is a duration in milliseconds. Undoubtedly wrong, but it seems to give reasonable results. Quote Link to comment Share on other sites More sharing options...
Scott Savage Posted May 18, 2022 Share Posted May 18, 2022 On 5/12/2022 at 4:49 AM, JetSetIlly said: Interesting. Thanks. The Speakjet manual indicates that "speed" ranges from 0 to 127 with a default of 114. I'm not even sure whether higher numbers indicate "faster" - the manual isn't clear on that but I've assumed it is. In Festival fixed prosody, the duration value (of a phoneme) is defined in milliseconds, so I've naively assumed that whatever value is given by the Speakjet speed command is a duration in milliseconds. Undoubtedly wrong, but it seems to give reasonable results. If it works out to be close to milliseconds, it is entirely coincidental. I am fairly certain that if it was in ms then the I would have noted that in the manual. However ... I am also working on 16/18 year old memories. I might be wrong. Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted May 19, 2022 Author Share Posted May 19, 2022 6 hours ago, Scott Savage said: If it works out to be close to milliseconds, it is entirely coincidental. I am fairly certain that if it was in ms then the I would have noted that in the manual. However ... I am also working on 16/18 year old memories. I might be wrong. I agree, it would have been noted in the Speakjet manual. It seemed odd to me that a unit of time was not specified, but your explanation makes sense. Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted May 21, 2022 Author Share Posted May 21, 2022 v0.18.0 https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.18.0 This release has focused on additional functionality for ARM developers. The performance window has been improved with the ability to focus on a specific kernel. That is ARM execution during the VBLANK, the visible screen, or the Overscan. This can usefully remove code not pertinent to that kernel from the performance list. Additional figures include an overall performance rating with respect to the selected kernel (or to the entire frame if no kernel is focused upon). Statistics can also be viewed as ARM cycle counts, as opposed to percentile figures. Gopher2600 can now track global variables. It understands all basic types, as well as arrays, structs, unions, pointers and typedefs. For CDF type cartridges (including CDFJ and CDFJ+) a stream visualiser is included. The visualiser will work even when no source is available. cdf_streams.mp4 Finally, the ARM illegal memory access monitor will notify the developer of null pointer dereferencing and stack collisions. Away from the ARM development features, the VCS RAM window now includes annotation of any symbol names. The yellow tabs indicate that that memory location has been named. Additionally, the red squares (as seen in the image) indicate the extent of the 6507 stack. Tooltips provide the additional detail on a memory location. The other feature worth highlighting is the TV screen scaler. In the very early days of Gopher2600, the window could be set to any size and the TV screen would scale. However, this resulted in uneven scanlines. Consequently, I changed the resizing policy so that the TV image would scale only to whole integers (ie. 1x, 2x, 3x, etc.) For this version, I've added a scaling shader which successfully irons out uneven scanlines. Moreover, a bug in the Windows and Mac versions has been fixed so that the user can see the scaling in "real-time". demo_video.mp4 Thanks to @Andrew Davie and @johnnywc for ideas and testing. 7 1 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted May 30, 2022 Author Share Posted May 30, 2022 (edited) I've spent the last week looking for optimisation opportunities in the emulator. I thought I'd found them all but I've managed to squeeze a 16% to 18% improvement in uncapped frame rate for normal ROMs, and a 13% to 16% for ARM ROMs. Still nowhere near as performant as Stella but I think it's a big enough improvement for another binary release. https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.19.0 Edited May 30, 2022 by JetSetIlly 9 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted May 30, 2022 Author Share Posted May 30, 2022 Playing around with an old idea this evening. I wasn't happy with the UI controls I had come up with previously, so I parked the code and forgot about it. But looking at it again this evening and I think there's potential here. A paintbox type window that allows you to recolour the screen by drag-and-drop. It works by searching for and changing values in the ROM. Playfield and background only for now but something to build on. Fun! No CRT effects in this video because the MPEG compression wrecks it. demo_video-(2).mp4 6 1 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted June 1, 2022 Author Share Posted June 1, 2022 A little more work on the painting concept. The new fill tool now makes as many searches and writes necessary to fill in a visual block of colour. The previous method was fine for a game like Pitfall but for games with more sophisticated player drawing routine the results were unsatisfactory. In the following video, I am re-colouring some elements in Real Sports Boxing. We can see the slower process required to fully change the shorts and boots of the boxer and also the scoreboard background at the bottom of the screen. Finally, to prove that the changes are persistent, I save the ROM and load it into Stella. demo_video-(3).mp4 A practical use for this would be an easy way of recolouring NTSC ROMs to PAL-60. 4 Quote Link to comment Share on other sites More sharing options...
polyex Posted June 3, 2022 Share Posted June 3, 2022 Like the TV effect better than the one in Stella! Thanks! 1 Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted July 31, 2022 Share Posted July 31, 2022 I'm finishing up development on Gorf Arcade with Atarivox / voice support and would like to debug using Festival but I'm on Windows. Has anyone successfully compiled Festival for Windows and configured it through Gopher? I tried to also connect a real AtariVox to my PC for Stella but I can't seem to get it to work (it was working before but I had a system crash and needed to reinstall the OS) so I thought this would be a quicker/non-hardware way to test the speech commands, etc. Any help is appreciated! Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted July 31, 2022 Author Share Posted July 31, 2022 7 minutes ago, johnnywc said: I'm finishing up development on Gorf Arcade with Atarivox / voice support and would like to debug using Festival but I'm on Windows. Has anyone successfully compiled Festival for Windows and configured it through Gopher? I tried to also connect a real AtariVox to my PC for Stella but I can't seem to get it to work (it was working before but I had a system crash and needed to reinstall the OS) so I thought this would be a quicker/non-hardware way to test the speech commands, etc. Any help is appreciated! I'm not aware of anyone successfully using Festival on windows. How far have you got with it? Do you have a copy of Festival for Windows or are you still at the compilation stage? 1 Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted July 31, 2022 Share Posted July 31, 2022 Just now, JetSetIlly said: I'm not aware of anyone successfully using Festival on windows. How far have you got with it? Do you have a copy of Festival for Windows or are you still at the compilation stage? I'm still at the 'lazy' stage . I just downloaded the source and before I spend too much time trying to compile (I guess I need cygwin too, a gcc compiler, etc.) I was hoping someone else had already done it and could provide a binary. I'll spend some time on this later and see if I can get it compiled first and post my findings here. Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted July 31, 2022 Author Share Posted July 31, 2022 Just now, johnnywc said: I'm still at the 'lazy' stage . I just downloaded the source and before I spend too much time trying to compile (I guess I need cygwin too, a gcc compiler, etc.) I was hoping someone else had already done it and could provide a binary. I'll spend some time on this later and see if I can get it compiled first and post my findings here. Heh. I'll be interested to hear how you get on with this. A small request: could you keep a log of the steps you take? If you do get it working it would be good to post them on the project wiki. Cheers! 1 Quote Link to comment Share on other sites More sharing options...
+johnnywc Posted July 31, 2022 Share Posted July 31, 2022 11 minutes ago, JetSetIlly said: Heh. I'll be interested to hear how you get on with this. A small request: could you keep a log of the steps you take? If you do get it working it would be good to post them on the project wiki. Cheers! Will do! 1 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted August 25, 2022 Author Share Posted August 25, 2022 I've decided to bundle some small changes and bug fixes from the current development branch. There are some major improvements coming and I'm not sure when they'll be ready for general consumption, so an interim release seems like a good idea. https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.19.1 There's a possibility of performance improvement on some systems (there was on mine) courtesy of improved interaction between the FPS cap and monitor synchronization. I hadn't noticed the problem but a recent OS change on my system revealed the issue. If you've tried the emulator before and been left disappointed this might have been the reason. Three bug fixes related to rewind: (1) Reset Missile To Player wasn't been "plumbed" correctly after a rewind. Not many games use this feature of the hardware but the bug caused havoc with Starpath's Frogger, for example. (2) Joysticks and gamepads are correctly put into a neutral state after a rewind event. (3) ARM statistics are more carefully collated during rewinding to avoid "spikes". I've also added a rounded corners effect to the CRT options (disabled by default). This is a work in progress but I think it can look quite effective in some situations. The problem it has is that the corners aren't always clearly visible when the VCS is displaying black in the corners of the screen. There is a "black level" option in the preferences which allows you to alter the value of "video black". That helps but it really needs a bevel surrounding the screen for the effect to be complete. Here's a WIP showing the potential. 1 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted August 28, 2022 Author Share Posted August 28, 2022 (edited) I've implemented the bevel option and also a screen shine option. The shine effect is subtle but I think it works. https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.19.2 It's most noticeable with screen with a black background. But is also effective (but less noticeable) for more colourful backgrounds: It makes the Activision style HMOVE border more noticeable in any case. I'll add more control over both options in a future version. edit: Both options are disabled by default. To activate them press F10 to open the prefs window and click the "CRT" tab. Both options are in the bottom right. Edited August 28, 2022 by JetSetIlly 3 Quote Link to comment Share on other sites More sharing options...
+Stephen Posted August 28, 2022 Share Posted August 28, 2022 This is really shaping up nicely. Not sure if I've said so in the past, but I'm enjoying watching this progress. 1 Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted October 5, 2022 Author Share Posted October 5, 2022 Another small release. Full change log on release page https://github.com/JetSetIlly/Gopher2600/releases/tag/v0.19.3 This implements the CommaVid cartridge mapper, as recently used by @SvOlli in his new 512 byte demo I've not written a cartridge fingerprinter because I have a feeling anything I come up with will have many false positives. So, the mapper needs to be selected either on the command line or by changing the file extension to .cv The Gar Nix Supercharger MP3 file doesn't work. I'm not sure why. The real Supercharger BIOS that the emulator relies on (which you must supply yourself https://github.com/JetSetIlly/Gopher2600-Docs/wiki/Supercharger) handles the decoding of the PCM stream so there must be an issue with converting the MP3 to PCM in this instance. Also fixed in this version is the handling of the PA7 bit and a bug that caused the address bus information in the 6507 Pinout window to be useless. 5 Quote Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted October 5, 2022 Share Posted October 5, 2022 1 hour ago, JetSetIlly said: This implements the CommaVid cartridge mapper, as recently used by @SvOlli in his new 512 byte demo I've not written a cartridge fingerprinter because I have a feeling anything I come up with will have many false positives. So, the mapper needs to be selected either on the command line or by changing the file extension to .cv Stella is using this CV detection: https://github.com/stella-emu/stella/blob/master/src/emucore/CartDetector.cxx#L493 for 2K and 4K files. 2 Quote Link to comment Share on other sites More sharing options...
r_chase Posted December 30, 2022 Share Posted December 30, 2022 Hello. Sorry to bother you during this holiday season, but I was wondering if you could implement Joy2B+ support sometime. I could help test it using my USB NES-type gamepad and stuff. ❤️ Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted December 30, 2022 Author Share Posted December 30, 2022 7 hours ago, r_chase said: Hello. Sorry to bother you during this holiday season, but I was wondering if you could implement Joy2B+ support sometime. I could help test it using my USB NES-type gamepad and stuff. ❤️ I've not thought about Joy2B+ before but it should be easy enough to add. I'll take a closer look at it in the new year. Thanks for the idea! 1 Quote Link to comment Share on other sites More sharing options...
r_chase Posted December 31, 2022 Share Posted December 31, 2022 15 hours ago, JetSetIlly said: I've not thought about Joy2B+ before but it should be easy enough to add. I'll take a closer look at it in the new year. Thanks for the idea! No problem. I would also add armhf and arm64 versions of the emulator itself for Raspberry Pi desktop users and stuff. Because why not, eh? ❤️ 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.