clockworkpi

The 4th Clockwork Game Jam Event (2019Q4)

Thanks for all your works! Now it’s time to play! :star_struck:, and vote!

the games added into warehouse now

be sure get the gs online and press Y to update the clockworkpi’s warehouse then you can see GameJam 19q4

and still , love2d games are not yet very stable on GS

5 Likes

Hi GameShellers,
The 2019Q4 Game Jam is ready for voting now!
Please go to https://itch.io/jam/gameshell-19q4 to vote for the game you like.
For 17 days, it’ll be open for you guys.
Also, since we have the Warehouse now, we’ve put the Jam works into it.
You can download and play these games easily through the Warehouse.
Play on the GameShell, vote on itch.io, back up your winner!

4 Likes

Are there ever going to be plans for a partnership with Lexaloffle to potentially have a gameshell edition free to download? Ala the pocket chip.
https://www.lexaloffle.com/bbs/?tid=34009
Even if it is somehow a time limited version, just for the purposes of game jams. There are enough precedent game jam events to show that this can be a great way to promote pico-8 as a platform, and would no doubt be mutually beneficial.
A few of the game jam entries require Pico-8, so possibly there could be a bias if not all users have Pico-8 installed?
That’s the next question. How many people have purchased Pico-8, either for the gameshell, or I’m the past?

I doubt Lexaloffle is going to do that again to be honest.

If what you want is to play the game, just ask the people to export their game as rPi binary

Open a game in PICO-8 and on the console command line run

EXPORT  "FILENAME.BIN"

and it will generate executable for: Windows, Linux, Mac OS X, and the Raspberry Pi.

You will then have 3 files, a data.pod, an executable here named filename and the png file (here filename.png) of the game cart, and this can be distributed officially by the game designer.
There is no need for a PICO-8 License or a “player” for the GS for these.

4 Likes

An alternative is to play it on the browser. Pico-8 games can be exported as html games. Though we should be able to play all submissions on GameShell since it is a GameShell jam.

1 Like

That’s good to know. I didn’t know that is possible!

2 Likes

Definitely would be in the interests of those who entered the game jam to consider this!
The less work people have to do to play it, the more likely it will get votes!
As it stands now, using the garage system to play Pico-8 games requires you to have it installed.
Thanks for getting back. :slight_smile:

1 Like

Oops! Good point; I didn’t even think of that.

Just uploaded binaries of my game – anyone know how we get them added to the Garage?

btw, I do recommend pico-8 to everyone. I got it free because I bought the Humble Voxatron Bundle like a million years ago – speaking of which, you should probably look into that if you buy a lot of Humble Bundles… there’s a chance you already have a license and just haven’t claimed it yet lol. If you own Voxatron from that, then afaik you should also have a pico-8 license.

Anyway, since then I’ve purchased multiple licenses for friends and students. And gotten hundreds of hours of use from it. So I definitely think it’s worth it to get a copy.

@Veronica @yong hey GameShell folks – If you reach out to zep @ lexaloffle, I actually think he would be amenable to working out some licensing deal. He’s a pretty cool guy. And in the pico-8 community it’s a common opinion that the GameShell is one of the most ideal playing experiences for pico-8 games.

2 Likes

great, good to know
I’ve tested your way
pico8 exported the raspi binary which I believe is the only way to run on GS

but GS is missing the libbcm_host.so, even I downloaded the libbcm_host.so, the exported binary still reporting that libbcm_host.so is missing…

don’t know how to fix that

1 Like

If you ever find a way to fix the libbcm_host issue, please share! This is a problem the plagues some other Raspberry Pi binaries and as far as I know, no one has solved it. It means the custom builds of Gamemaker games that Yoyo released for the Pi don’t run on Gameshell (or other non Pi devices with similar hardware), as well as Minecraft, etc.

There is (or was) a dummy version of that lib somewhere. I even made one at some point, but probably lost it.

If I find it I will share

3 Likes

Here is a dummy libbcm_host that was made for Minecraft Pi:

Not sure if it will export all the needed function for Pico-8, but that’s a start at least.

4 Likes

great, it works very well

1 Like

Could you post a binary? I had trouble building it since it couldn’t find GLES/gl.h. Did you have to change anything to get it to compile? Maybe I’m missing a needed package but I wasn’t sure which one.

I tried just removing that header include line entirely and it built, but then when I copied it to /usr/local/lib a Pi game I was testing acted like it couldn’t find the file, so I’m not sure what’s going on. :frowning:

sure
first change GLES/gl.h to GL/gl.h

then rename the libbcm_host.so.1.0 to libbcm_host.so

then copy the libbcm_host.so to /usr/local/lib

2 Likes

If there anything else I need to do besides copying the file to /usr/local/lib?
-rwxr-xr-x 1 root root 13884 Jan 16 23:58 /usr/local/lib/libbcm_host.so

I tried to run a Raspberry Pi binary that gave the error about that library, but it still claims it can’t find it! It even gives this error when I copy the file into the same directory as the executable. I’m not sure what’s going on…

./TheyNeedToBeFed: error while loading shared libraries: libbcm_host.so: cannot open shared object file: No such file or directory

you are on os v0.4 or v0.5 right?

here is the whole command I try to run an exported pico8 games on GameShell

cpi@clockworkpi:~/Scratch$ ls
data.pod  libbcm_host.so  scratch
LD_LIBRARY_PATH=.  DISPLAY=:0 ./scratch -splore -draw_rect 32,0,256,240

I put the libbcm_host.so and the exported binary (scratch) together in the same folder

but I also tested that if I put libbcm_host.so into /usr/local/lib, it works too

and I use pico8 osx to export games

here is the link to the testing game above

https://github.com/cuu/warehouse/raw/master/GameJam%2019q4/Scratch/file/Scratch.tar.gz

if you download the tar.gz and try to run it manually
just add DISPLAY=:0 before Scratch.sh

cpi@clockworkpi:~/Scratch$ DISPLAY=:0 ./Scratch.sh
1 Like

Your example works for me, and scratch runs whether the lib file is there or moved to /usr/local/lib.

However, it still doesn’t work for the Raspberry Pi games I’ve been trying:
https://www.yoyogames.com/download/pi/tntbf
https://www.yoyogames.com/download/pi/crate
https://www.yoyogames.com/download/pi/castilla

I haven’t gotten the first game running under the Gameshell at all. The other two mostly work using box86 (and using x86 Linux versions of the game), but I was hoping these Pi builds might be faster and more stable.

for these particular ones it miss SDL binding, using this libbcm fork https://github.com/XECDesign/mcrpi-wrapper add the missing bind,
on second point they need particular libcurl

finally it still fail (with today compiled mesa)

$ LD_PRELOAD=/usr/lib/libcurl.so.3 ~/games/SuperCrateBox/SuperCrateBox

/home/gs/games/SuperCrateBox/SuperCrateBox: /usr/lib/libcurl.so.3: no version information available (required by /home/gs/games/SuperCrateBox/SuperCrateBox)

***************************************
*     YoYo Games Raspberry Pi Runner V0.1    *
***************************************	 
Couldn't grab exclusive keyboard access
couldn't find keyboard event file
RaspberyyPi Model : Beta Board
RaspberyyPi RAM   : 0
can't open /dev/mem  -  GPIO functions disabled
Init OpenGL ES
Screen size (2560,1700)
EGL
  Vendor: Mesa Project
  Version: 1.4
  Client APIs: OpenGL OpenGL_ES 
  Extensions: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_CHROMIUM_sync_control EGL_EXT_buffer_age EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_partial_update EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_NOK_texture_from_pixmap 
OpenGL ES
  Vendor: lima
  Renderer: Mali400
  Version: OpenGL ES 2.0 Mesa 20.0.0-devel (git-d55573aac6)
  GLSL version: OpenGL ES GLSL ES 1.0.16
  Extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_EXT_occlusion_query_boolean GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_separate_shader_objects GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex GL_OES_texture_border_clamp GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_KHR_parallel_shader_compile 
  Implementation limits:
    GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 16
    GL_MAX_CUBE_MAP_TEXTURE_SIZE = 4096
    GL_MAX_FRAGMENT_UNIFORM_VECTORS = 4096
    GL_MAX_RENDERBUFFER_SIZE = 4096
    GL_MAX_TEXTURE_IMAGE_UNITS = 16
    GL_MAX_TEXTURE_SIZE = 4096
    GL_MAX_VARYING_VECTORS = 8
    GL_MAX_VERTEX_ATTRIBS = 16
    GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0
    GL_MAX_VERTEX_UNIFORM_VECTORS = 4096
    GL_MAX_VIEWPORT_DIMS = 4096, 4096
CommandLine: -game game.unx
ExeName= /home/gs/games/SuperCrateBox/SuperCrateBox
MemoryManager allocated: 17920

***************************************
*     YoYo Games Runner v1.0(999)[r32908]    *
***************************************	 
RunnerLoadGame: game.unx
RunnerLoadGame() - assets/game.unx
Checking if INIFile assets/options.ini Exists
SavePrePend /home/gs/.config// 
!!!!No INI File assets/options.ini
Reading File assets/game.unx
Loaded File assets/game.unx(23514454)
IFF wad found
Get Resolution
Get Header Information
InitGMLFunctions
HighScore..Game..Math..Graphic..Action..File..Resource..Interaction..3D..Particle..Misc..DS..Sound..Physics..Gamepad..GAMEPAD: Initialising Ubuntu support
GAMEPAD: 4 axis values (last) at 0xb5f38660
GAMEPAD: 4 axis values (last) at 0xb5f38640
GAMEPAD: 4 axis values (last) at 0xb5f38620
GAMEPAD: 4 axis values (last) at 0xb5f38600
Buffers..Networking..Shaders..InitPushFunctions...YoYo..Fini
Code_Load()
VARI_Load()
got 2 global variables
got 139 instance variables
got 5 local variables
ID_STRG
Create Window
Init Graphics
GR_D3D_Init()
OpenGL Error Check: GLError  #1: 0x0506
File: (586) Files/Graphics_API/CommonOpenGL/Graphics_DisplayM.cpp

OpenGL: version string OpenGL ES 2.0 Mesa 20.0.0-devel (git-d55573aac6)
OpenGL: vendor string lima
OpenGL GLSL: version string OpenGL ES GLSL ES 1.0.16
OpenGL: VBOs supported
OpenGL: Non-power-of-two textures supported
OpenGL: 24bit depth supported
OpenGL: packed 24bit depth/8bit stencil supported
OpenGL: seperate 8bit stencil supported
/home/gs/games/SuperCrateBox/SuperCrateBox: symbol lookup error: /home/gs/games/SuperCrateBox/SuperCrateBox: undefined symbol: glGenFramebuffersOES
2 Likes