Asmusr Posted May 18, 2014 Author Share Posted May 18, 2014 Ok, got your 1.5 version , and I installed Firefox. I can't hear any sound - I've checked if it is my machine, my machine is fine. Don't know why? Does it say "Web Audio API detected. AudioContext: sample rate is 44100" at the beginning of the log? Quote Link to comment Share on other sites More sharing options...
Retrospect Posted May 19, 2014 Share Posted May 19, 2014 (edited) Does it say "Web Audio API detected. AudioContext: sample rate is 44100" at the beginning of the log? Yes, it does. I fired it up just now ...... it did a broken beep to start with, and then no sound at all. I'm starting to think it's my Realtek sound drivers to be honest. Unless anyone else can report a similar problem? (This is in Firefox browser.) ps. I'm getting an average of 28 fps. The computer is definately destined for the dustbin. Edited May 19, 2014 by Retrospect Quote Link to comment Share on other sites More sharing options...
RXB Posted May 20, 2014 Share Posted May 20, 2014 Yes, it does. I fired it up just now ...... it did a broken beep to start with, and then no sound at all. I'm starting to think it's my Realtek sound drivers to be honest. Unless anyone else can report a similar problem? (This is in Firefox browser.) ps. I'm getting an average of 28 fps. The computer is definately destined for the dustbin. I think the driver for Realtek may be so old as to be incompatible with this app. 1 Quote Link to comment Share on other sites More sharing options...
+Torrax Posted May 23, 2014 Share Posted May 23, 2014 (edited) I'm getting the same results on my various Windows machines. Some times a beep and then nothing. All are using Firefox to run the emulator -- tried all versions from 25 to the lastest with the same results. When minimized sometimes a garbled choppy sound happens. Is there a web page to test the JavaScript Web Audio functionality of browsers?? Great work there!!! Just need to try it out on my android JB tablet. Full Tower - i7-980X 3.6GHz 6C / 24G / Win7Pro64 / SB-XFi (2010) [Main System] Mid Tower - i7-??? 3.2Ghz 1C-HT / 2G / WinXPPro32 / SB-Audigy 2 (2004) [Retiring] Asus N56V Series Laptop - i7-3610QM 4C / 2.3GHz / 6G / W7Pro64 / Realtek (2014) [New - 2012/13 Demo Refurb] Acer Aspire 5745 Laptop - i3-350M 2.26GHz 2C / 4G / Win7HP64 / Realtek (2010) [Retiring] Edited May 23, 2014 by Torrax Quote Link to comment Share on other sites More sharing options...
Asmusr Posted May 23, 2014 Author Share Posted May 23, 2014 I'm getting the same results on my various Windows machines. Some times a beep and then nothing. All are using Firefox to run the emulator -- tried all versions from 25 to the lastest with the same results. When minimized sometimes a garbled choppy sound happens. Is there a web page to test the JavaScript Web Audio functionality of browsers?? Great work there!!! Just need to try it out on my android JB tablet. Full Tower - i7-980X 3.6GHz 6C / 24G / Win7Pro64 / SB-XFi (2010) [Main System] Mid Tower - i7-??? 3.2Ghz 1C-HT / 2G / WinXPPro32 / SB-Audigy 2 (2004) [Retiring] Asus N56V Series Laptop - i7-3610QM 4C / 2.3GHz / 6G / W7Pro64 / Realtek (2014) [New - 2012/13 Demo Refurb] Acer Aspire 5745 Laptop - i3-350M 2.26GHz 2C / 4G / Win7HP64 / Realtek (2010) [Retiring] You can try https://webaudiodemos.appspot.com/ - Rasmus Quote Link to comment Share on other sites More sharing options...
Asmusr Posted May 23, 2014 Author Share Posted May 23, 2014 Probably a long shot, but would anyone be interested in writing a speech module for js99'er? Quote Link to comment Share on other sites More sharing options...
Asmusr Posted May 30, 2014 Author Share Posted May 30, 2014 I have started to add support for the F18A. Try enabling the F18A on the options tab, then try out the Dungeon demo and the F18A scrolling demo from the Preloads menu. https://googledrive.com/host/0B68J8LwEkfDyTUdTQWlVN0VPaEU/index.html After you're done you may want to disable F18A support again, because it's pretty CPU intensive and probably buggy. Edit: The two demos are based on emulation of a yet unreleased F18A firmware version, so you cannot run them on real hardware yet. 2 Quote Link to comment Share on other sites More sharing options...
TheMole Posted June 1, 2014 Share Posted June 1, 2014 I have started to add support for the F18A. Try enabling the F18A on the options tab, then try out the Dungeon demo and the F18A scrolling demo from the Preloads menu. https://googledrive.com/host/0B68J8LwEkfDyTUdTQWlVN0VPaEU/index.html After you're done you may want to disable F18A support again, because it's pretty CPU intensive and probably buggy. Edit: The two demos are based on emulation of a yet unreleased F18A firmware version, so you cannot run them on real hardware yet. Excellent, great to see the F18 supported by an emulator! Thanks. I also like your feature prioritization: scrolling and ECM (and to a lesser extent bitmap support) are in my humble opinion the most pertinent for games. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 1, 2014 Author Share Posted June 1, 2014 Excellent, great to see the F18 supported by an emulator! Thanks. I also like your feature prioritization: scrolling and ECM (and to a lesser extent bitmap support) are in my humble opinion the most pertinent for games. Thanks, you have probably noticed there is also a bitmap demo now. To make it really useful for development it should be easier to load and run your current project, perhaps by implementing the Google drive device I mentioned in an earlier post. 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 4, 2014 Author Share Posted June 4, 2014 I have now added support for the F18A GPU. There are some demos in the Preloads menu you can try. You will notice that the timing is all wrong. The single threaded nature of JavaScript and the low performance compared to compiled languages makes it very difficult to accurately emulate a 100MHz CPU, so this should be seen primarily as a tool for developers. In this implementation the GPU and the CPU never run together, the CPU waits for the GPU to become idle before continuing. js99er-1.9.zip 4 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted June 9, 2014 Share Posted June 9, 2014 Been a while since I tried this one out. It's come a long way (in a short time) and I enjoyed it a lot. Thanks. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 12, 2014 Author Share Posted June 12, 2014 The latest version has better support for mobile devices, and you can turn off sound if it doesn't work. There are buttons to control the joystick, and you can select an item from a TI menu by clicking or tapping on the number next to the item. F18A support is almost complete. https://googledrive.com/host/0B68J8LwEkfDyTUdTQWlVN0VPaEU/index.html 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted June 12, 2014 Share Posted June 12, 2014 Very nice! Any chance you could make the screen magnification adjustable via the GUI ? That would allow me to see the screen at a bigger size. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 12, 2014 Author Share Posted June 12, 2014 Very nice! Any chance you could make the screen magnification adjustable via the GUI ? That would allow me to see the screen at a bigger size. I'm thinking about stowing away the log/registers on a tab, that would enable a bigger TI screen. But on my laptop the TI screen could not be much wider without becoming too tall. What is your screen resolution? You may wonder why I have the big borders. This is for the F18A 30 row mode. Try the 'F18 scroll v 1.6' and hold down Fire/Tab to see this mode in action. Quote Link to comment Share on other sites More sharing options...
RXB Posted June 12, 2014 Share Posted June 12, 2014 Just tried it out. Works great and impressive. I do dislike the keyboard emulation of the TI Keyboard as my Mac/PC keyboard does not have the key map on it. Rather a pain in butt to pull out a TI and sit it beside me to type. Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted June 13, 2014 Share Posted June 13, 2014 I'm thinking about stowing away the log/registers on a tab, that would enable a bigger TI screen. But on my laptop the TI screen could not be much wider without becoming too tall. What is your screen resolution? You may wonder why I have the big borders. This is for the F18A 30 row mode. Try the 'F18 scroll v 1.6' and hold down Fire/Tab to see this mode in action. This is nice stuff! I'm using js99er on a desktop i7 pc with high-resolution 27" monitor. Also use it on my laptop from time to time, that is why a configurable setting would be nice. On a big monitor it is pretty cool to have the registers on the same page as the TI screen. Here are some ideas, perhaps worth thinking about: * possibilty to specify TI screen magnification level * run TI screen in full-screen mode hiding most gui controls, think youtube here. * Option to see the registers/debugger in an own window. That way you could put the window on a second monitor * Communication between debugger and emulator based on JSON / javascript API. that way folks could write their own debugger Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 13, 2014 Author Share Posted June 13, 2014 Just tried it out. Works great and impressive. I do dislike the keyboard emulation of the TI Keyboard as my Mac/PC keyboard does not have the key map on it. Rather a pain in butt to pull out a TI and sit it beside me to type. Yeah I know. The current keyboard mapping is based on physical keys (onkeydown, onkeyup events) rather than the characters produced by pressing the keys (onkeypress events). I'm considering switching to the latter, but there are also problems with that approach. I have remapped a few keys, e.g. it should be easier for those of you with US/UK keyboards to find the double quote, and the arrow keys should work in text editing now. Let me know if there are any particular keys you want remapped. 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 13, 2014 Author Share Posted June 13, 2014 This is nice stuff! I'm using js99er on a desktop i7 pc with high-resolution 27" monitor. Also use it on my laptop from time to time, that is why a configurable setting would be nice. On a big monitor it is pretty cool to have the registers on the same page as the TI screen. Here are some ideas, perhaps worth thinking about: * possibilty to specify TI screen magnification level * run TI screen in full-screen mode hiding most gui controls, think youtube here. * Option to see the registers/debugger in an own window. That way you could put the window on a second monitor * Communication between debugger and emulator based on JSON / javascript API. that way folks could write their own debugger I can definitely make some kind of customization of the magnification level possible. You probably know that canvas magnification is specified in CSS styles while the base pixel size is specified in the width and height attributes of the canvas. The problem is that I have been using the Bootstrap library in order to make the UI responsive, and this disagrees somewhat with the idea of specifying your own size. But I will think of something... Seeing the log and registers in a separate window would be possible, but the idea of multiple browser windows is like so last decade. There is actually no real debugger. The register display is just a period polling of the status. I don't know how much impact it would have on performance to add a real debugger, but so far I have been trying to avoid anything that could affect performance. It's like my game programming in TMS9900 assembler: you have to make sure your code fits within a 60Hz window. But I'm pretty sure that a debugger based on AJAX calls would be way too slow. Perhaps a web worker could be used, provided that the code in the base emulator could be reduced to a minimum? Do you think having F18A emulation could revive some of your old game projects? I would love to see Time Pilot developed further. Rasmus 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted June 13, 2014 Share Posted June 13, 2014 (edited) Yeah, agree on the ajax calls. It is mighty impressive seeing how far you got with js99er. It also shows how far browsers have evolved (javascript engines, etc). I haven't done any TI programming in a long time, so I don't think Tutankham will be the next game I finish first. It somehow, does not have the same drive as Pitfall had. The major problem I see with Time Pilot is that it won't run without extra memory. But I have done some graphics, I'd like to try how they look in the game. I have been thinking about a new maze game. Something along the lines of jr. pacman. Baby Munchman :-) The F18A emulation would serve me well there :-) Edited June 13, 2014 by retroclouds Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 20, 2014 Author Share Posted June 20, 2014 If you have a Google account you can now access files on your Google Drive directly from Js99er. Before you can use the new feature you need to go to the Options tab and enable Google drives. You now have 3 devices available: GDR1, GDR2, GDR3 that map to the folders Js99erDrives/GDR1-3 on your Google Drive. Files inside those folder are expected to be in TIFILES format, but there is also limited support for reading V9T9 files and PC files (assumed to be WinAsm99 object files). Try to go to Basic and write a simple program, e.g. 10 PRINT "HELLO WORLD". Then save it to Google Drive device 1: SAVE GDR1.TEST. The first time you access a Google Drive device it will create the corresponding folder on your Google Drive. In order for Js99er to access your drive it needs your permission. A popup window should appear that asks you to log in and give your permission for the App to manage files on your drive. If you don't see the popup and Js99er hangs a popup blocker might prevent the window from showing (in Chrome, look for a message in the top, right corner of the screen). Authorization is handled via the OAuth 2.0 protocol and is a matter between you, your browser and Google. Js99er will never see your login or password, and Js99er is still running 100% locally in your browser. All the server is doing is to serve the static JavaScript files. Note that even if you have the Google Drive client installed on your computer the file still needs to take a round-trip to Google's servers before ending on your local drive. That explains why the drive is slow compared to other emulated drives. If saving seems to work on the TI side, try checking that the file has been created on your Google Drive as Js99erDrives/GDR1/TEST. To complete the test type NEW and OLD GDR1.TEST to load the file again. The 'DSR' for the Google Drives is still very basic, only the SAVE, LOAD, OPEN, READ, WRITE and CLOSE op-codes are implemented. You cannot catalog drives or use sector functions. Error handling could also be improved, but it should work for basic saving and loading is most programs. Rasmus 2 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted July 17, 2014 Author Share Posted July 17, 2014 I haven't worked much on Js99'er lately, but still a few features have been added: An option to use your PC keyboard mapping on the TI. If you have a keyboard that is mapped differently from an English keyboard this makes a huge difference when typing in programs etc. In this mode the PC function keys are mapped to the TI Fctn+number key combinations. This is disabling F5 to reload the page, so you have to do this from the menu. I discovered that Chrome has now implemented a speech API that can turn text into speech, so I mapped this to the resident vocabulary on the TI. It's far from a real emulation, but quite funny to hear the TI speak in a 2014 tech female voice. Try it in TI Scramble or in XB, e.g. CALL SAY("I WANT TO KNOW YOU"). It doesn't work with Parsec or anything that uses direct speech. The screen is scaling better to the size of the host screen. Light-year demo added. Js99'er website. I'm no longer recommending running this emulator from local files because some features may be blocked by security restrictions, but if you're interested in the source code it's available from the first post in this thread. For my development work I run it in node.js using the http-server plugin, which is a very easy way to set up a web sever compared to Apache etc. Rasmus 1 Quote Link to comment Share on other sites More sharing options...
TheMole Posted July 18, 2014 Share Posted July 18, 2014 I gotta say, this has become a very nice, full-featured emulator, and I often use it when I want to run something ad-hoc on a PC where I don't have MESS or Classic99 installed. I'll probably be doing the development of the F18A version of Alex Kidd on it. I have a couple of questions about the accuracy of the emulator though: Apart from the lack of threading and the (likely) slower GPU, is the F18A fully implemented? Is your VDP implementation pixel, scanline or screen based? I notice when running my Alex Kidd project in js99'er that oddly enough the jump physics seem to be a bit off compared to MESS or classic99. Admittedly I haven't tested it on real hardware yet, so it might be entirely my program. Is there a way to run the emulation itself in full screen? Again, very impressive work in such a short amount of time, I hope you keep working on it! Quote Link to comment Share on other sites More sharing options...
Asmusr Posted July 18, 2014 Author Share Posted July 18, 2014 Apart from the lack of threading and the (likely) slower GPU, is the F18A fully implemented? Is your VDP implementation pixel, scanline or screen based? I notice when running my Alex Kidd project in js99'er that oddly enough the jump physics seem to be a bit off compared to MESS or classic99. Admittedly I haven't tested it on real hardware yet, so it might be entirely my program. Is there a way to run the emulation itself in full screen? Hi Mole, it's great to know that my emulator is being used. I'm thinking of getting a proper website for it where I could add a download counter - as it is I haven't got a clue about how many people are using it. The F18A is perhaps 90% implemented. It is running all the sample code I have found, but the implementation is based on how I think it's working (based on the relatively little documentation that exists) and has not been thoroughly tested. Multi colored tiles and sprites as well as the bitmap layer should work OK with all attributes implemented. [Edit: 30 row mode, and 80 column mode also work]. Scrolling also works fine but is based on a yet unreleased update to the F18A firmware where the fixed panels (left, right, top, bottom) are replaced with a second top layer of tiles. This is a great improvement and I hope Matthew will have time to finish this update soon. Special things like updating the F18A flash RAM are not implemented. The VDP implementation is actually pixel/scanline based, so in theory it could draw the image in parallel with the CPU if JavaScript provided a mechanism for doing so. Even if I alternated between drawing a scanline and running the CPU the update to the display would not be visible to the end user. As it is now, the main loop is running the CPU for 50000 clock cycles, then the VDP is drawing the full image and so on. When the GPU is active it's simply taking over from the main CPU. The scanline interrupt is not implemented, and I have not bothered to implement sprite flickering or the 5th sprite bits in the status reg. And the counters/random number generators are not implemented either because Matthew is going to remove them. If you have any code that is not working as expected I'm happy to take a look at it. I don't think you have posted any of your Alex Kidd code yet. About running the emulator in full screen, this is not an option right now, but I could easily create an alternative html file that did not display the log panels. Is it for your own use or for embedding the emulator in a web site? Rasmus Quote Link to comment Share on other sites More sharing options...
majestyx Posted July 22, 2014 Share Posted July 22, 2014 It really amazes me how lucky we are as TI-99 fans, users, and hobbyists to have so many emulators from which to choose. I've been using a combination of PC99 through DOXBOX, the Java based V9T9, Classic99, and Win994A, and have tried Ti994W. I have been avoiding MESS mainly due to the fact that it supports so many other platforms, but I know I should bite the bullet and dive in, especially since I think it also supports the Geneve and has some features not available on all the others. Now with Js99'er, we have yet another choice, one that can be used within a web browser, much like I've seen with the Apple ][. Those multi-carts are really cool! Thanks RasmusM for giving us yet another option to enjoy what to many of us is more than just another classic computer platform. I know it's more a novelty than a necessity for most of us, but any chance of more support for the speech synthesizer? I've found that the quality of speech on the different emulators varies, sometimes even from program to program. 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted July 22, 2014 Author Share Posted July 22, 2014 Now with Js99'er, we have yet another choice, one that can be used within a web browser, much like I've seen with the Apple ][. Those multi-carts are really cool! Thanks RasmusM for giving us yet another option to enjoy what to many of us is more than just another classic computer platform. I know it's more a novelty than a necessity for most of us, but any chance of more support for the speech synthesizer? I've found that the quality of speech on the different emulators varies, sometimes even from program to program. Thanks. Unfortunately I don't know the first thing about how to the speech synthesis works, so I would have to borrow the code form MESS or somewhere else. It seems to be quite a big job with relatively little reward. 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.