[Tool]FemtoIDE

Meanwhile, in the luxurious country home of millionaire socialite Bruce Wayne, Batman is trying to use FemtoIDE, unaware of the devilish schemes of the programming language fanboys…

6 Likes

Must not have to try to hard. The thing is a piece of magic.

5 Likes

Yeah, language discussion aside, I especially like the sound of the integrated image conversion feature. I have spent too much time converting, copying and pasting image data for one of my game projects.

3 Likes

I was going to migrate, but it’s a tough decision when the discussion also contains things pertinent to the IDE.

Should I?

@FManga I still haven’t quite figured the image converter, how can I get the palette to show in the header file as an array?

It doesn’t output a palette, it reads a palette file (like the ones in PokittoCore/PALETTES) and converts the images according to that.
The Java side has support for Jasc PAL files, I could add support for that in C++ as well, if it makes sense.

it’s totally fine as it is, I didn’t look at those palette files yet and didn’t realize they were in human readable rgb format, super easy to make one.

1 Like

Just make sure you use hex for the values, the parser is really simple and that’s all it looks for

This is such a fantastic new tool that I want to contribute also.

So I present a wallpaper for all FemtoIDE users. I took the picture while I was doing my morning yoga. It conveys the calm and composure that FemtoIDE has brought to Pokitto users.

Edit: I seriously hope no one took this for real

5 Likes

I just noticed something weird about the femto image converter:
If my image has a color that refers to color number zero in the palette, the femto image converter will use color number 1 of the palette.
Basically, no images I’ve converted will ever use color number zero.
Maybe this is some sort of transparent pixel hard-coded assumption? right now it seems I’m limited to 15 colors.

Hard-coding transparency to zero is better for blitting.
I could add a check-box to image files, so you can enable/disable transparency on them individually.
Another option would be to put both conversions in the same header, with different variable names.
Any preference?

I guess anyone drawing a bitmap as a background in mode15 would probably want all 16 colors available.
Not sure why it helps to duplicate color number 1 onto color number 0, if there’s a way to avoid that would be ideal. If that’s exactly what does the trick to achieve efficient transparency, then having an option to disable it would be great. A duplicated image sounds very dodgy, but then again, memory aplenty, so no biggie.

Images are declared as const arrays so their contents stay in flash, not in RAM.

Now I’ve got this:
image

I know, otherwise with our precious 32k of ram I wouldn’t have said aplenty :joy:

That option is good for me, but expect any newcomer to come here asking how to turn on or off transparency (yes, even if you write it in a guide or tutorial ; ).
Detecting if a png has a transparent color used anywhere would spare you some future assistance I reckon.

I do that in the Java side, where it has a different blitting routine for solid vs transparent images.
In the PokittoLib there is only transparent, so I can imagine getting newcomers asking why there are holes in their image when they set transparency off.

v0.0.14b released.

  • Implemented a simple oscilloscope for PEX output. Press F5 and then click on Debug->Scope.
  • Improved debugging under Windows (the IDE can now pause the emulator)
  • Support for shell commands in build pipeline, using # prefix.
    Example: "#python ${projectDir}/script.py"
  • Fix game crash due to incorrect garbage collection in Java
  • Fix game crash due to bug when blitting flipped sprites on an odd column while partially overflowing the bottom edge in FemtoLib
  • Use all 16 colors of the palette if the image has no transparency
  • New Splash screen
2 Likes

Excellent! Thanks for finding a fix for the bugs I’ve been having. I’ll try and find time to give this a go soon! Have a busy week coming up but I hope to make time for this.

2 Likes

yes! I can integrate my python map and palette generation script within the ide! It also means shipping projects that are completely self generating, no need to tell the user for extra steps to perform 8 )

2 Likes

Other than “you need to install python to be able to compile.”
Windows doesn’t come with python built-in and OS X will be removing it in the next update.
Linux users won’t mind, though.

2 Likes

Oh, yes, that.
Well, I wouldn’t mind rewriting those scripts in javascript if you get that option for the pipe too.
It’d need a predefined function to be used as entry point, and as long as the current working dir is pointed at the project it should be a no brainer.