Jump to content
IGNORED

New Javatari web-based Atari 2600 emulator, now on Android and iOS devices!


Paulo Peccin

Recommended Posts

Hi guys.

We have released a very big update do the web-based emulator Javatari.

 

http://javatari.org

 

It now has a new interface designed for mobile devices with touch-screen controls.

Finally run Atari 2600 games on your iPhone/iPad! :-)

 

Also, it can be installed on the device as a WebApp, then you can launch it directly through the app icon.

In this mode it also works when offline!

 

Several advancements were brought from the WebMSX project (http://webmsx.org).

You can very easily put games on your own page, or show games running in the web with a single link to the Javatari page. Just pass the ROM URL address...

Please refer to the project homepage for the docs and examples: https://github.com/ppeccin/javatari.js

 

Some images on an iPhone6:

 

post-32683-0-01300200-1490403599_thumb.png post-32683-0-84120300-1490403345_thumb.png post-32683-0-02109200-1490403338_thumb.png

 

Enjoy!

Paulo

  • Like 7
Link to comment
Share on other sites

Wow this is fantastic - an exellent emu with an awesome API able to load link and embed Atari 2600 games and demo's on the web like they were youtube videos!! :)

 

I imagine for embedding I could use an iframe with the URL tags; is there also another method?

 

Did some testing -

 

Here are some Atari games and demos that push the VCS with either 30 FPS or 60 FPS of full screen animation.

 

There is a bit of slowdown in the Defender III beta, but Javatari can render it correctly just like the consoles and the handheld do - the outer space sequence in the beginning is intact:

 

http://javatari.org?ROM=http://relationalframework.com/DefenderIII_Beta5.bin

 

Defender III and the trainer both work without slowdown and render perfectly but the controls are sluggish and seem to queue phantom keypresses (Edge browser, IE didn't work):

 

http://javatari.org?ROM=http://relationalframework.com/Defender_III_Trainer_v1.bin

http://javatari.org?ROM=http://relationalframework.com/Defender_III_v1.bin

 

WARPDRIVE renders perfectly at either 30 FPS or at 60 FPS (bw/color switch during play), but is unplayable because of the controls. Toggling the bw/color switch during full screen messaging output will also switch between 30 FPS at 60 HZ and 30 FPS at 30 HZ, a third nonstandard video signal which Javatari also handles fine.

 

http://javatari.org?ROM=http://relationalframework.com/WARPDRIVE_AFP.rom

 

And the Flashback BASIC Display List demo also renders perfectly:

 

http://javatari.org?ROM=http://relationalframework.com/Flashback_BASIC_DLI_Demo.bin

 

KC Muchkin Monochrome Dreams displays excellently as well and runs in demo mode but if I touch the keys KC goes into a corner and stays there; this game has a unique control scheme where the computer AI instantly takes over and makes decisions for you if you don't tightly control KC, like the Google AI when you try to type.

 

http://javatari.org/?ROM=http://relationalframework.com/KC_Monochrome_Dreams_NTSC.bin

 

Link to comment
Share on other sites

Please use it in Google Chrome or Safari. Also works in Firefox, but the preferred browser is Chrome by far. Much better speeds.

I did not test it in any other browsers...

Also, on phones and tablets, its best to use it as an installed webapp (Add to Home Screen). Then you get real full screen and better speeds.

 

You don't need an iframe to embed Javatari in you website. Just put a <div> with the correct id where you want it to appear and import the script file (just one file).

Follow the example on https://github.com/ppeccin/javatari.js/tree/master/release/stable/4.0/embedded

 

What is an MFi controller? Are you having any problems with the controls on your iPhone?

 

Paulo

  • Like 1
Link to comment
Share on other sites

Javatari works with any Joysticks your browser can see on any platform.

 

BUT, I'm sorry... Unfortunately Apple, and therefore any browser on iOS, does not support the Web Gamepad API, so its impossible to read Joysticks from inside the browser.

 

Apple does not like WebApps because they are out of their control.

Javatari is only possible on iPhone precisely because it runs outside of the AppStore, but they make our lives difficult by not supporting many web standards.

 

You may help asking Apple to support the latest Web APIs on their products! ;-)

But I doubt they'll listen...

 

Paulo

Link to comment
Share on other sites

  • 2 weeks later...

post-30777-0-32916800-1491781752_thumb.jpg

 

Javatari's API's work great! :)

 

I've put some of my games online and they run in Javatari like a youtube webservice for Atari games :)

 

The emulation is also top notch - Javatari is rendering 60 FPS like Stella compared to 30 FPS in 6502.ts

 

To see the difference play a game of WARPDRIVE in Chrome, and turn on the warpdrive (BW switch) during play; the game should then render 60 FPS of animation. Without the warp engines engaged the game renders 30 FPS of animation like an NTSC broadcast, the warp engines push a classic CRT to display 60 FPS because the signal is not interlaced (240p).

 

Link to comment
Share on other sites

The emulation is also top notch - Javatari is rendering 60 FPS like Stella compared to 30 FPS in 6502.ts

 

What issue do you observe in 6502.ts? The game seems to run fine for me with both settings. The only caveat is the decimal flag that you don't clear on powerup --- that's the reason that the game does not start reliably on every run (runs for RND seed 0, fails for seed 1, etc.). Stella by default (and Javatari I guess) clear it on reset, and the harmony cart takes care of that on real hardware.

Edited by DirtyHairy
  • Like 1
Link to comment
Share on other sites

 

What issue do you observe in 6502.ts? The game seems to run fine for me with both settings. The only caveat is the decimal flag that you don't clear on powerup --- that's the reason that the game does not start reliably on every run (runs for RND seed 0, fails for seed 1, etc.). Stella by default (and Javatari I guess) clear it on reset, and the harmony cart takes care of that on real hardware.

Don't pay too much attention to posts from that user.

He NEVER bothered verifying his statements in the past (you can search for his old posts to see that, if you have time to waste) and always ignored anyone contradicting him with evidences in a discussion.

 

He has no idea of how a TV works, and still keeps making ridiculous statements about how his games "overclock" the video signal...

 

The 2600, like basically ALL computers and consoles of the '70s - '80s outputs a 60Hz progressive signal thanks to a small change in the timing of the vertical sync that allows to draw each field over the previous one, instead that shifting it down/up half a scanline and that happened to be within the tolerance of TV sets of the era.

Since the only way to have the VCS display something useful is to change the TIA registers as the screen is scanned, there isn't anything special in updating the screen every frame. Almost every one of the hundreds of 2600 games released over the years do that, starting with "Combat" up to the most recent homebrew.

And of course EVERY 2600 emulator generates and displays all the frames. It's ridicoulus even only thinking that someone would code an emulator displaying only half of the frames, which will break every single game using flicker, that is a large part of the 2600 library.

 

Also, the content of the visible area of the display is irrelevant in terms of the video signal. The number of "frame of animation" per second doesn't alter the video signal's frequency, and flicker doesn't as well. Inserting a black display every other frame doesn't produce a 30Hz video signal. It's still a 60Hz signal, with an annoying, seizure inducing 30Hz full screen flicker.

 

And Broadcast NTSC is specifically designed to display 60 distinct images (frames of animation if you prefer) per second, one per each field. It has been that way since 1941. Specifications of TV signals are freely available on-line.

Having a deinterlacing filter built into every single modern TV (which are progressive by design) wouldn't have any sense if both fields would carry information from the same picture. What would you need to deinterlace?

If the source material was something different than native NTSC video (e.g. a movie on film at 24 fps), some of the frames of the film would have to be repeated for 2 or 3 fields of the video signal.

Still, that didn't change the signal frequency; it continued to be 60Hz as that was the only kind of signal a TV could display.

PAL is the same, but at 50Hz and with more lines per field/frame.

 

 

Edited by alex_79
  • Like 3
Link to comment
Share on other sites

I should add that I just fixed a regression in WebGL rendering; so if you observed flickering issues during the last few days, they are fixed now.

Cool, I will check it out :)

 

Interesting about the decimal flag. If it needs to be initialized SuperCharger BIOS also takes care of this since these games can be recompiled for the SuperCharger.

 

Alex,

why not offer something constructive to the conversation instead of making angry crybaby posts?

 

 

WARPDRIVE renders at 30 FPS and 60 FPS and it's not the same thing as HZ. You didn't write commercial video games in the 80's but you keep posing like an experts expert; I've been doing this for a long time. If you had written programming languages or designed emulators you would probably have a deeper understanding of concept and wouldn't need to throw insults.

 

If you want to have an interesting discussion you have to either come up with an interesting argument of your own or provide a programmatic example.

 

Here's mine:

post-30777-0-00834700-1491819339_thumb.jpg

 

The camera object can be panned about the virtual world, creating animation.

 

Programming and designing a soft blitter chip is alot of fun! :)

Link to comment
Share on other sites

Interesting about the decimal flag. If it needs to be initialized SuperCharger BIOS also takes care of this since these games can be recompiled for the SuperCharger.

 

I am pretty sure it does. The flag is undefined on poweron, and code running on uninitialized hardware has to put into a defined state.

 

WARPDRIVE renders at 30 FPS and 60 FPS and it's not the same thing as HZ. You didn't write commercial video games in the 80's but you keep posing like an experts expert; I've been doing this for a long time. If you had written programming languages or designed emulators you would probably have a deeper understanding of concept and wouldn't need to throw insults.

 

Alex is spot on. Every VCS game pumps out 60FPS, these is nothing special about this. What is special about your stuff (apart from the dizzling flicker you get by blanking each odd other frame) is the fast scrolling effect you get by blitting from CBS or supercharger RAM and which is an achievement imho. You would propably get more acknowledgement for that if you would stop making false claims about special properties of the video signal you generate and / or hypothetical "flaws" this uncovers in emulators: it doesn't, it just gives more opportunity to see beating effects between VCS framerate and vsync.

  • Like 3
Link to comment
Share on other sites

Alex,

why not offer something constructive to the conversation instead of making angry crybaby posts?

You've repeatedly proved unable to have a constructive conversation.

 

Posting things like "...Javatari is rendering 60 FPS like Stella compared to 30 FPS in 6502.ts " is not constructive conversation. It's just trolling.

Anyone with a bit of common sense, would first verify that the issue isn't caused by his own setup. It isn't that difficult, just open a thread describing what issue you have and if anyone else is experimenting the same behaviour and make aware the author who can fix it, if it turns out being an emulator bug.

The only problem would be that most people that tried to discuss anything with you in the past already put you in their ignore list, so you won't have much response in any case. You're the only one to blame for that.

 

WARPDRIVE renders at 30 FPS and 60 FPS and it's not the same thing as HZ.

Nonsense. Hz is a SI unit of measure for frequency, so it can be used to measure any periodical phenomenon, including framerate. As I repeatedly said, you clearly have no clue what you're talking about.

 

Toggling the bw/color switch during full screen messaging output will also switch between 30 FPS at 60 HZ and 30 FPS at 30 HZ, a third nonstandard video signal which Javatari also handles fine.

There's no change in the video signal when toggling the BW switch in that rom, as you can also see in Javatari using the "ALT-I" combo that shows the number of scanlines. The signals is exactly the same used by every single NTSC atari game released since 1977. This is not a "special case" for any emulator.

Flicker doesn't alter the video signal.

 

You didn't write commercial video games in the 80's ....

In no way that changes how TV signals work.

 

The camera object can be panned about the virtual world, creating animation.

 

Programming and designing a soft blitter chip is alot of fun! :)

As DirtyHairy said, that's cool BUT totally unrelated to the video signal.

A rendered frame is not the same as a frame in a video signal.

If a game just renders a static image, for example in a title screen, that obviously doesn't make the signal 0Hz or 0FPS or any other nonsense like that. The signal has to be 60Hz or the TV won't sync to it. 60Hz is the vertical refresh frequency, that is the fieldrate in broadcast NTSC, or the framerate in the progressive Atari output.

And while it's true that broadcast NTSC has a 30Hz framerate, (30 fps), those are interlaced frames, which are NOT the same thing as progressive frames, and not even close to what your game is displaying with any setting of the console switches. Also, as you could easily see if you just would take the time to study a little bit this subject, motion in Broadcast NTSC is at 60Hz (the same as the fieldrate).

 

P.S.

I don't expect you to do any research to have a reasoned discussion about it. Countless people tried explaining you this very same matter in the past pointing you to technical docs without results. I just replied because of your continuos annoying bashing of other people's work like you did here with 6502.ts and elsewhere with Stella but I will come back ignoring you from now on.

So you can save yourself the hassle to reply twisting my words (or just ignoring them) like you always do.

 

I also apologize to Paulo Peccin for derailing this thread.

 

  • Like 3
Link to comment
Share on other sites

Alex,

I think the soft blitter chip is actually a great way to illustrate and discuss the differences you talked about; let's see if I can explain what I'm seeing, and I'll invite you, and the emulator authors to see if you can duplicate my results or have alternate reasons to explain them.

 

I just Ran WARPDRIVE in Chrome on Javatari and on 6502.ts, here's what I observed:

 

On the title screen, the BW switch toggles between 30 FPS of animation at 60 HZ (doubled frames) and 30 FPS of animation at 30 HZ (single frames, you eye doesn't percieve the blank frame because there is nothing there). The difference is that the text is clearer and easier to read when the frames are not doubled - you can see this difference with your eyes in Javatari but not in 6502.ts because it combines frames and can only render 30 FPS of animation clearly.

 

During the game this is more apparent because the BW switch toggles between 60 FPS of animation at 60 HZ and 30 FPS of animation at 60 HZ -

with 60 FPS of animation the playfield is a mess of pixels. Turning on phosphor in Stella will cause a similar mess because it cannot be emulated on 60 FPS animiation games.

 

I think there is some confusion that some of the games run at 30 HZ and some at 60 HZ and weather it's a true 30 HZ signal on a CRT (black is black) and close enough to one on LCD (fools my eyes in Stella and in Javatari).

 

Give it a try and see if you have different explanations for these differences. imo it would be cool if 6502.ts could render 60 distinct frames like Stella (with phosphor off) and Javatari are doing when the WARPDRIVE is engaged.

 

Edit: claified the three different signals being produced - 30 FPS of animation at 60 HZ (optical illusion effect from doubled frames) , 30 FPS of animation at 30 HZ (clear signal), and 60 FPS of animation at 60 HZ (clear signal). It seems the FPS must match the HZ for the signal to be clear with a moving image.

 

Edited by Mr SQL
Link to comment
Share on other sites

Give it a try and see if you have different explanations for these differences. imo it would be cool if 6502.ts could render 60 distinct frames like Stella (with phosphor off) and Javatari are doing when the WARPDRIVE is engaged

 

Oh, if that's the issue, it can: just head to the settings and turn of WebGL (without enabling the frame merging options below) --- that'll give you plain canvas rendering without the prostprocessing shaders that perform frame merging.

Edited by DirtyHairy
  • Like 1
Link to comment
Share on other sites

Trying it on my phone and the first time, after inserting the cartridge, it didn't insert, and the second time, it inserted, but the game won't start. Does it support controllers, I wonder.

 

Edit: it seems like it depends on the rom. Like if I try to insert Juno First then it won't insert, and if I try Joust then it just won't start. Tried the zipped Centipede file and it won't work. Says no valid rom files found.

Edited by Tangentg
Link to comment
Share on other sites

Trying it on my phone and the first time, after inserting the cartridge, it didn't insert, and the second time, it inserted, but the game won't start. Does it support controllers, I wonder.

 

Edit: it seems like it depends on the rom. Like if I try to insert Juno First then it won't insert, and if I try Joust then it just won't start. Tried the zipped Centipede file and it won't work. Says no valid rom files found.

 

Very strange... What phone are you using? What browser?

Javatari runs best in the latest versions of Chrome and Safari.

 

Some Browsers and some versions of Android may not be supported.

 

Paulo

Link to comment
Share on other sites

Hi,

 

Does anybody know how I can contact the guys from Atarimania?

 

They need to update the emulator on their site. They still have the very old and outdated Java Applet version that is blocked on most browser nowadays.

 

Paulo

Paulo,

 

We will work on updating your emulator on our site.

 

There's are zillion things still to be added, but know it's on our to do list.

 

I'll keep you informed.

 

8)

Link to comment
Share on other sites

I'm hosting a Tron Light Cycle competition in Javatari here:

 

http://atariage.com/forums/topic/264470-trononeplayer-lightcycle-contest/

 

Anyone wants to compete can use Windows+G on Windows 10 to bring up the recorder and create a clip of your gameplay in Javatari! :)

 

I've also expanded my live Atari box to include a few SuperCharger games and a proto I haven't converted to the Flashback yet - they play great in Javatari as well!

 

 

  • Like 1
Link to comment
Share on other sites

 

Very strange... What phone are you using? What browser?

Javatari runs best in the latest versions of Chrome and Safari.

 

Some Browsers and some versions of Android may not be supported.

 

Paulo

It was the default Android browser. Haven't tried it with Chrome or Opera, the other browsers I have on it.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...