Emulator availability

It probably would, since Atom’s based on Electron and the old ProjectABE used to run on that for its offline version. But wouldn’t it be better if it stays outside? Everyone has their favourite IDE.

Thanks! :smiley:

1 Like

@FManga could you explain to us mere mortals what ProjectABE actually is and what did you do with regards to Pokitto to make it work?

@FManga
I swear we get more Arduboy people joining by the day.

I bet you’ve already got the Gamebuino version planned.
Also shouldn’t this technically be ProjectPE? :P

1 Like

Sorry, I was a bit succinct, wasn’t I? ProjectABE is a low-level emulator written in Javascript. It emulates the AT328P (Gamebuino Classic), AT32u4 (Arduboy), and now, thanks to the plentiful documentation in your wiki, I’m almost done implementing the LPC11U6 for the Pokitto.

Since it’s a low-level emulator, it translates blocks of ARM instructions into WebAssembly for execution, implements CPU features like the MMU, SysTick, EEPROM and GPIO. The screen and buttons are hooked up to the GPIO just like on hardware:

{
    "CPU":{ "part": "CortexM0" },

    "A":{     "part":"Button", "NO":"CPU.PIN1_9", "listen":["ControlLeft", "KeyZ"] },
    "B":{     "part":"Button", "NO":"CPU.PIN1_4", "listen":["AltLeft", "KeyX"] },
    "C":{     "part":"Button", "NO":"CPU.PIN1_10", "listen":["ShiftLeft", "KeyC"] },
    "Up":{    "part":"Button", "NO":"CPU.PIN1_13" },
    "Down":{  "part":"Button", "NO":"CPU.PIN1_3"},
    "Left":{  "part":"Button", "NO":"CPU.PIN1_25" },
    "Right":{ "part":"Button", "NO":"CPU.PIN1_7"},
    
    "Screen":{
	"part": "ST7775",
	"CD":   "CPU.PORT0_2",
	"WR":   "CPU.PORT1_12",
	"RD":   "CPU.PORT1_24",
	"RES":  "CPU.PORT1_0",
	"D_0":  "CPU.PORT2_3",
	"D_1":  "CPU.PORT2_4",
	"D_2":  "CPU.PORT2_5",
	"D_3":  "CPU.PORT2_6",
	"D_4":  "CPU.PORT2_7",
	"D_5":  "CPU.PORT2_8",
	"D_6":  "CPU.PORT2_9",
	"D_7":  "CPU.PORT2_10",
	"D_8":  "CPU.PORT2_11",
	"D_9":  "CPU.PORT2_12",
	"D_A":  "CPU.PORT2_13",
	"D_B":  "CPU.PORT2_14",
	"D_C":  "CPU.PORT2_15",
	"D_D":  "CPU.PORT2_16",
	"D_E":  "CPU.PORT2_17",
	"D_F":  "CPU.PORT2_18"
    }
}

I intend to implement the PEX header at some point, and most of the ST7775 commands are still missing. Haven’t looked into sound yet, though I suspect I can use the speakers implementation from the Arduboy.
EDIT: Also, still have to do the SD card. I keep forgetting that. It’s going to be a pain. :stuck_out_tongue:

3 Likes

Succint? With an entry like that, it was:

1 Like

Haha, Gamebuino classic is pretty much done (Makerbuino repo tab). :stuck_out_tongue:
Might do the META, dunno, they already have an emulator. Not sure what to call it anymore, since it emulates 4 different systems so far.

4 posts were merged into an existing topic: Potential alternative offline IDEs

Sooo close!

5 Likes

This is amazing! For one, emulator makes possible to play any Pokitto game on the web browser :slight_smile:

3 Likes

Still haven’t figured out why some things are in the wrong position.
Some more progress, after hours of debugging softfloat code:



7 Likes

Fixed the problem with the lower part of the screen being cropped off due to a typo and got another game to work (has a bug rendering the score/hiscore):

If anybody wants to test one of their own games, just open the emulator and drag-and-drop a bin file into it.

You can also add your game to the emulator’s URL (https://felipemanga.github.io/ProjectABE/preview/?pokitto=https://your-game-here) but that won’t work with forum attachments. It would be nice if the Pokitto had a repo like @eried’s.

I noticed Sensitive supports rumble motors… if the pin used for that is considered standard, I’ll look into supporting joystick force feedback. Are there any plans for making and selling a rumble hat?

3 Likes

do you emulate the sd card?

2 Likes

Not yet, it’s in the to-do list… I need to get the processor running well first. Its easier to make the peripherals when I’m sure the CPU is doing what its supposed to.

fair enugh, im not sure but that highscore is posibly saved in eeprom

1 Like

Oh, now I see what you mean. I haven’t checked the eeprom yet, but I suspect it’s OK. Here the problem is simply with displaying the number. From 09 it doesn’t go to 10. I think it goes to the next letter in the font, then gibberish. :stuck_out_tongue:

Please elaborate and we will make it so

1 Like

While the forums are good enough for users to download games, they’re harder to use for third-party software. @eried’s repo makes it easy to make tools that can browse and download games.

Granted, each community’s needs are going to be different and a repo might not make sense here. I was just speaking from the perspective of what would be convenient for the emulator.

1 Like

That’s magic!
But not working with my bin

Keep working @FManga this is really awesome

2 Likes

As far as I know, nobody else has done rumble, so if by standard you mean 100% of rumble games using those pins, I guess so. However, I should change it to use 1 pin and GND, rather than 2 pins.

I think it need some discussion though, I personally thing a rumble hat is a good idea.

1 Like

In a word (or rather, url):
http://ried.cl/arduboy/

1 Like