ProjectABE (ArduBoy Emulator)

I partially implemented timers 1 and 3, so now there’s more interrupts/code running. It’s expected to be a bit slower on some devices… especially iOS, since I can’t optimize for it.

Is the sketch that crashes the browser available anywhere?

I’m using the examples for ATMlib, PlayTune and Tones I also have a sketch that uses Beep.

Only Tones seems to produce audio.

The original EVADE will produce the same crash.

I’m guessing the other libs use Timer4. I haven’t done that one yet.

Ah, good, I’ll do some testing on Evade. :slight_smile:

My back to the jungle game now crashes the browser :confused: with the sound (starting a level)

I just tested here and the emulator freezes, but the browser seems OK. What browser are you using?

And a handy quote from an earlier discussion in another topic…

Using Chrome Version 63.0.3239.132 (Official Build) (64-bit) sometimes I can just close the tab others I have to close the browser.

I am using Google Chrome Version 64.0.3282.119 (Official Build) (64-bit) / Windows 10

Hah, I saw that.
Now that Tones is working, getting the other libs to work is going to be a whole lot easier.
Before I had a mostly broken timer3, then a pin that went high and low and somehow was supposed to emit sound.
Now all I have to do is emulate hardware PWM on timers 1/3, and all of timer 4. :persevere:

Patch for games that use channel 2 (Back to the Jungle) uploaded… you might want to clear your browser cache to force it to update and not crash.

1 Like

I am unable to upload to the custom bootloader with the v0.0.78 windows build.

It triggers the bootloader but gives “Unsupported device: ARDUBOY”.

Works fine with both my clone and stock bootloader though.

1 Like

That’s a precaution, it only works with CATERIN at the moment as the maximum hex size is hardcoded. Is there any way to find out how much space the bootloader leaves available?

You can checkout the custom bootloader Here
i’ll leave it for @Mr.Blinky to explain exactly what’s been changed.

I think I’ve been missing out too much of this thread :hushed:

Does the emulator support uploading now?

The most important thing about Cathy3K for Arduboy is that there is 1K more space in the application area.
the custom bootloader can be identified in bootloader mode by:

  • avr109 software identify command returns ‘ARDUBOY’ instead of ‘CATERIN’
  • avr109 software version command returnd 1.1 instead of ‘1.0’

application size can be 29696 bytes instead of 28672

A cheap trick to identify if the custom bootloader is in memory is testing the last two bytes of flash
0xFB,0xDC Cathy3K (Arduboy) version

1 Like

Yup. :slight_smile:

I worry this will result in a bunch of hardcoded sizes and hoped for something more flexible, like if the identify command returned “RDBOY##” where ## would be the size. :frowning:

1 Like

To be fair I don’t think it’s a good idea to have oversized hex files floating around unless the custom bootloader became a common standard and anyone capable of flashing the bootloader should be “IDE literate”.

It would be nice though if I could use ProjectABE to upload standard hex to a Arduboy with the custom bootloader though.

Edit*
I should add I am able to flash with @crait’s Arduboy Manger

1 Like

Awesome!

if software ID is ‘ARDUBOY’ overwriting isn’t an issue because regardless of any fuse settings. the bootloader protects itself from overwriting. When software ID is ‘CATARIN’ caution should be taken with sketches > 28K

Ah, OK then! I’ll put this in the next release.

2 Likes

I noticed flashlight mode doesn’t produce a white screen, I know it’s not really a big issue but it depends how close you wish to replicate.

1 Like

The white screen is produced by sending an “all pixels on” command to the display, not by sending data to the display’s buffer. I suspect the SSD1306 display emulator doesn’t support this command.

Thanks! Fixed! :smiley: