Jump to content
IGNORED

CDF Support in 6502.ts / Stellerator


DirtyHairy

Recommended Posts

iPhone 7 and greater is capable of running 100%

 

Javatari has on-screen touch controls, but doesn't do DPC+ or CDF.

 

This new version (and the StelleratorDev) starts as "paused", and touching "resume" doesn't start things on iPhone.

 

Please consider adding touch screen controls as I use my iOS devices to develop 2600 games.

Link to comment
Share on other sites

iPhone 7 and greater is capable of running 100%

 

 

Interesting. I do not own an iOS device, so I have never tested on iOS before. However, I have yet to see an android device that is capable of running the emulator flawlessly. If iOS is indeed capable of running 6502.ts full speed, than that's great news :D

 

This new version (and the StelleratorDev) starts as "paused", and touching "resume" doesn't start things on iPhone.

 

Are you saying that the starting a ROM the emulation starts up in "paused" mode? This definitely shouldn't happen, the emulator starts up running and only enters "paused" if paused manually. Was there a version that worked? I'll have a look at this at work next week --- we've got several iOS testing devices there. I gave it a brief spin in the iOS simulator, but couldn't get a ROM uploaded there.

 

Please consider adding touch screen controls as I use my iOS devices to develop 2600 games.

 

I had considered this before, but I was under the impression that mobile devices were not powerful enough to run the emulator, so I didn't think it wort the trouble. If modern iPhones can run it full speed, then I've got a reason to reevaluate :) My next target is to provide an embeddable version of the emulator, but I promise to look at touch controls after that.

 

Edited by DirtyHairy
Link to comment
Share on other sites

Interesting. I do not own an iOS device, so I have never tested on iOS before. However, I have yet to see an android device that is capable of running the emulator flawlessly. If iOS is indeed capable of running 6502.ts full speed, than that's great news :D

 

Yes, iOS at 1Ghz like iPad 3 can't get full speed, put iPhone 7 with throttle off is way too fast. I could only launch programs that started immediately like song demos.

This worked fine until the addition of CDF just recently.

Are you saying that the starting a ROM the emulation starts up in "paused" mode? This definitely shouldn't happen, the emulator starts up running and only enters "paused" if paused manually. Was there a version that worked? I'll have a look at this at work next week --- we've got several iOS testing devices there. I gave it a brief spin in the iOS simulator, but couldn't get a ROM uploaded there.

Trying CDF, or any normal .bin, now starts saying "paused", and nothing will un-pause.

I had considered this before, but I was under the impression that mobile devices were not powerful enough to run the emulator, so I didn't think it wort the trouble. If modern iPhones can run it full speed, then I've got a reason to reevaluate :) My next target is to provide an embeddable version of the emulator, but I promise to look at touch controls after that.

 

Downloading ROMs from Dropbox, MEGA, or iCloud Drive was working great.
Link to comment
Share on other sites

Trying CDF, or any normal .bin, now starts saying "paused", and nothing will un-pause.

Downloading ROMs from Dropbox, MEGA, or iCloud Drive was working great.

 

 

I managed to get a ROM into the emulator using the iOS simulator with some hackery and can reproduce the issue. The break must have occurred when I implemented PCM audio a couple of weeks ago; there is something fishy with the way iOS handles audio suspend and resume. I have committed a workaround that should be live now. However, I couldn't get any audio from the emulator in the simulator, but this may be different on a real device.

 

EDIT: Just found this buried in Apple's docs:

 

"Note: On iOS, the Web Audio API requires sounds to be triggered from an explicit user action, such as a tap. Calling noteOn() from an onload event will not play sound."

 

I'll have to play with this a bit once I get my hands on a real device, but I guess this is the root of the issue.

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

I don't like the blurry look, so I turn smooth scaling off. After doing that things like the stars will change thicknesses as you fly up/down, which looks odd.

 

 

This is an aliasing artifact. The TIA outputs 220 or so lines, which get scaled up to 360 pixels (that's the height of the canvas). So, without interpolation, the height of individual TIA lines will vary between one and two pixels after scaling. The only way to avoid this would be to adjust the height of the canvas element dynamically based on the video mode, but I am not sure whether I want to do this :) (not that there is any beautiful design to break, though). It should work fine in fullscreen, though.

Edited by DirtyHairy
Link to comment
Share on other sites

I managed to get a ROM into the emulator using the iOS simulator with some hackery and can reproduce the issue. The break must have occurred when I implemented PCM audio a couple of weeks ago; there is something fishy with the way iOS handles audio suspend and resume. I have committed a workaround that should be live now. However, I couldn't get any audio from the emulator in the simulator, but this may be different on a real device.

 

EDIT: Just found this buried in Apple's docs:

 

"Note:[/size] On iOS, the Web Audio API requires sounds to be triggered from an explicit user action, such as a tap. Calling [/size]noteOn() from an [/size]onload event will not play sound."[/size]

 

I'll have to play with this a bit once I get my hands on a real device, but I guess this is the root of the issue.

Now it is working like before.

 

Oh, if it starts without sound, switch to help then switch to emulation. Then the sound is there.

My favorite TIA music:

MusicSalvotheme.bin

Link to comment
Share on other sites

Yeah, looks OK fullscreen at 4K :)

 

 

*envy* I snatched a 2017 MacBook Pro from a colleague who left, but, unfortunately, her 4k display was already pilfered :P One of these days, I have to get one, too --- it is weird to look at that beautiful retina screen and then gaze at the killer pixels from hell on my external display.

Edited by DirtyHairy
Link to comment
Share on other sites

Now it is working like before.

 

Oh, if it starts without sound, switch to help then switch to emulation. Then the sound is there.

My favorite TIA music:

 

Great it worked :) Yeah, that sounds like what I would expect from Apple's cryptic note --- I have to start audio from an interaction event handler. I'll try to find a proper fix. Electronic stuff and 8 bit are not really my cup of tea, so it is a bit hard for me to tell, but the ROM you linked is pretty cool. My favorite samples of TIA music are propably the Toystore Trouble and the Doctor demo soundtracks, though.

 

It's really great news that the latest iStuff can run 6502.ts at full speed. I'll see what can be done about touch controls. Maybe I can even package the emu as a hybrid app at some point.

Edited by DirtyHairy
Link to comment
Share on other sites

Yeah, 4K is quite nice - I'm running 2 of them :D

 

 

Before I got the MBP, I had been working on Thinkpads with rather low resolution displays for >10 years and always sneered at those Macbook people that claimed that retina type pixel densities made a hell of a difference :evil: I stand humbly corrected.

Edited by DirtyHairy
Link to comment
Share on other sites

Bad part for me is I have to run them at 1080 for work as Windows doesn't handle higher DPIs very well. Main problem is I have to remote from my Win10 machine (which does HiDPI fairly well, though not as well as the Mac) to a Win7 machine. If the Win10 set for 4K with 200%, the Win7 using 4K at 100% resulting in extremely tiny text.

Link to comment
Share on other sites

I connected a Bluetooth keyboard to my iPhone7 Plus.

It is a Mattias professional keyboard (for Mac).

 

P does pause. Shift-R does reset.

 

It has a Return, not an Enter key.

Shift-Space does nothing.

Shift-Return does nothing.

WASD VB and Space does nothing.

The arrow keys move the browser window up and down a small bit.

 

I couldn't select or start Draconian after the game plays the "Have you played Atari today?" music.

 

That's great to hear you like my Dr. Who music.

Got that whole piece with a bit of value tweaking in the SID2TIA converter. I did a Frogger example that sounds real good at the start music thru Yankee Doodle and the next tune, then it gets real bad.

Link to comment
Share on other sites

I connected a Bluetooth keyboard to my iPhone7 Plus.

It is a Mattias professional keyboard (for Mac).

 

P does pause. Shift-R does reset.

 

It has a Return, not an Enter key.

Shift-Space does nothing.

Shift-Return does nothing.

WASD VB and Space does nothing.

The arrow keys move the browser window up and down a small bit.

 

I couldn't select or start Draconian after the game plays the "Have you played Atari today?" music.

 

I did a bit of research on this one. it seems that keyup events in iOS are currently broken and do not return a valid keycode. That's a pity. I'll take a look at adding touch controls after finishing the embedded build.

 

I should add that Stellerator also supports gamepads (although the mapping cannot be configured, so your mileage may vary depending on the quality of browser support). If you have a gamepad connected, you will have to press a button (not all may work) to get it registered. Once it is, you'll see it displayed in the navbar to the right:

 

post-47984-0-21731400-1512342988_thumb.png

 

I just committed a fix for Safari, and caniuse.com suggests that it should work on iOS Safari, too.

 

Frogger TIA.

I was showing the Froggie 7800 creator that the TIA music can be done without off-notes.

I assume he's just converting the Pokey tune to the TIA pure tone Channel, because the Pokey tune is perfect.

 

Now that's a tune that didn't benefit from precise audio emulation :) I have not tried real hardware (daughter sleeping next door), but there is considerable distortion that goes away when I switch to the old, not-so-accurate audio implementation (that's the PCM vs. Waveform toggle on the first page).

Link to comment
Share on other sites

Bad part for me is I have to run them at 1080 for work as Windows doesn't handle higher DPIs very well. Main problem is I have to remote from my Win10 machine (which does HiDPI fairly well, though not as well as the Mac) to a Win7 machine. If the Win10 set for 4K with 200%, the Win7 using 4K at 100% resulting in extremely tiny text.

 

 

:) That's one thing I am extremely happy about: I don't have to use windows on my job. After more than a decade of linux, sitting in front of a non-unix system without a bash makes me feel like someone cut my arms off.

Link to comment
Share on other sites

I skimmed through CartridgeCDF.ts and the "call for testing"; CDF seems awesome. Having the extra datastreams would make things a lot easier. Do I understand correctly that they use X.Y fixed point increment now? Does the music driver still require to manually copy the Amplitude to AUDV0 every scanline? I found Spiceware's introductory VCS and DPC+ tutorials very helpful, would love to see one for CDF if he ever has the time.

Link to comment
Share on other sites

I have a Nimbus SteelSeries paired with my iPad Pro. It's recognized, but none of the buttons nor direction controls do anything. I confirmed it works with DuckTales.

 

Too bad, but thanks for trying. Before we used to have IE8, and now we have Safari for iOS :) Could you checkout http://html5gamepad.com and see if you get any readings from your controller? The mappings should look somewhat like https://w3c.github.io/gamepad/#remapping

Edited by DirtyHairy
Link to comment
Share on other sites

I paired a Bluetooth stick to my iPhone 7 Plus.

It can pair as an iCade stick, or in other ways.

 

It is a Gen Game S3.

Link: https://www.gearbest.com/blog/how-to/how-to-connect-gen-game-s3-gamepad-to-android-ios-and-pc-1419

 

I tried all modes.

The most I could get out of Mobile Safari is Pause / Unpause works.

Also twice I had the menu screen selector moving up, but it was stuck in the up, and nothing would stop or change direction.

One time I had it up in the level selection, and it registered right, but again it was stuck on right, and nothing would stop or change it.

 

Also each mode has 2 selections. The other selection has the top / bottom buttons change volume, the right shoulder button start / stop iTunes music playback :), and the bottom start / select button exits the application.

Link to comment
Share on other sites

Do I understand correctly that they use X.Y fixed point increment now?

Correct, all 32 datastreams use x.y increments. Having all datastreams work the same way makes for smaller code, as a single function in the driver handles all 32 of them.

 

Does the music driver still require to manually copy the Amplitude to AUDV0 every scanline?

Yep, that's the only way to get digital audio(samples or 3 voice music) out of the 2600.

 

I found Spiceware's introductory VCS and DPC+ tutorials very helpful, would love to see one for CDF if he ever has the time.

Sometime next year. I'm mostly taking a break from 2600 development after spending a lot of time this year working on CDF and finishing Draconian. I'm working on converting the music driver from Stay Frosty 2 though, so John can use it in Mappy (and even that's going slower than I expected due to RL).

 

In the mean time these 2 Draconian blog entries give a rundown of the features in CDF:

Link to comment
Share on other sites

Too bad, but thanks for trying. Before we used to have IE8, and now we have Safari for iOS :) Could you checkout http://html5gamepad.com and see if you get any readings from your controller? The mappings should look somewhat like https://w3c.github.io/gamepad/#remapping

The 2 analog sticks, fire buttons, and shoulder buttons all match the Standard Gamepad image, though on the analog sticks up is positive and down is negative.

 

The D-Pad shows up as axis 4 (left=negative, right=positive) and axis 5(down=negative, up=postive) instead of buttons 12-15. The Nimbus' sole Menu button isn't detected.

 

post-3056-0-80135700-1512398573_thumb.png

Link to comment
Share on other sites

I have a Nimbus SteelSeries paired with my iPad Pro. It's recognized, but none of the buttons nor direction controls do anything. I confirmed it works with DuckTales.

 

Again, weird :) Thanks alot for testing though. I have made some experimental changes to work around potential issues; if you like (and are not tired of testing), I'd be curious whether you get better results now. For reference, my mappings are

  • up / down / left / right: 12 / 13 / 14 / 15
  • fire: 0, 1, 2, 3, 10, 11
  • select: 8
  • start: 9
  • axis 0 / 2: left / right
  • axis 1 / 3: up / down

So, in principle, you should get some results from the analog sticks and the buttons, though up and down should be inverted.

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...