gigoteur / unicornconsole Goto Github PK
View Code? Open in Web Editor NEWUnicorn Console: create quick fantasy game in Rust/Python/Lua/Rhai/Wasm !
License: MIT License
Unicorn Console: create quick fantasy game in Rust/Python/Lua/Rhai/Wasm !
License: MIT License
Right now it is possible with the SDL renderer to switch the palette or to add dynamic RGB value for the pixels.
We need to change the shader for glium to support this feature
Just gave the current master branch a try on Fedora 25 using rust 1.16.0.
I get a panic in src/sound/mod.rs
$ ./target/release/px8 -s 4./demos/ski.py
[2017-04-22][23:38:06][INFO] Frontend: SDL2 init
[2017-04-22][23:38:06][INFO] Frontend: SDL2 Video init
[2017-04-22][23:38:06][INFO] Frontend: SDL2 event pump
[2017-04-22][23:38:06][INFO] Frontend: creating renderer
[2017-04-22][23:38:06][INFO] [SDL] Creating window fullscreen=false opengl=true
[2017-04-22][23:38:06][INFO] [SDL] Creating renderer
[2017-04-22][23:38:06][INFO] [SDL] Creating texture
[2017-04-22][23:38:06][INFO] Frontend: SDL2 audio
thread '<unnamed>' panicked at 'index out of bounds: the len is 256 but the index is 256', src/sound/mod.rs:74
We need to have the possibility to assign easily a new configuration for each player and to switch from joystick/keyboard etc
I get this error whenever i try to load anything.
Hello, I compiled with this command :
PX8_SCREEN_WIDTH=256 PX8_SCREEN_HEIGHT=256 cargo build --features="lua" --release
and I have this error. I have rust 1.17 on osx 10.10.5.
Thanks.
error: proc-macro derive panicked
--> src/cartridge/mod.rs:905:21
|
905 | #[derive(Serialize, Deserialize)]
| ^^^^^^^^^^^
|
= help: message: proc_macro::__internal::with_parse_sess() called before set_parse_sess()!
error: Could not compile px8
.
From Ubuntu 16.04.2
I installed Rust to have cargo
I installed the 3 requirements described.
Launch of command "cargo build --features="cpython lua" --release" ended with the following error =>
error code below:
= note: /usr/bin/ld: /home/thierry/projects/PX8/target/release/deps/libpython3_sys-c505fcaadb1041e8.rlib(abstract.o): relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC
/home/thierry/projects/PX8/target/release/deps/libpython3_sys-c505fcaadb1041e8.rlib: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: Could not compile px8
.
Currently the screen resolution configurable, but is defined at compile time.
I think it would be interesting to allow it to be configured at runtime - i.e. switch between different modes. In particular, it would be nice to be able to use a higher resolution mode when editing code (in some future version that includes a text editor!) than when running the game.
What do you think?
Right now the editor is in Python, it could be a good idea to move it in Rust.
Hi, Gigoteur!
I have found that PX8 is, with a LARGE difference, the best fantasy-console available on the Raspberry PI 3 in terms of performance: picolove is slooooow and buggy, for example, and your implementation is perfectly synchronized with the screen: smooth scrolls are smooth!
So I would REALLY love to use it to load Pico-8 games, too. However, Celeste, one of the first classics I tried from the Pico-8 (https://www.lexaloffle.com/bbs/?tid=2145), does not load ("Failed to load the cartidge").
Is there any possibility to run that game? I tried the "-m pico8" parameter with no luck...
Thanks!
Currently we don't have any audio support, let's add one !
Let's move from glium to gfx-rs to have another renderer.
Right now I removed all supports to pico-8 to avoid bad issue experience, but if someone wants to add it it is the bug to use !
Please describe solution how to build for iOS & sim.
Would love to see it on 3DS. =]
We need a way to automatic provide build for:
Windows
OSX
Linux
any hints ?
It will be easier to have directly the physics library in PX8, it will save us a lot of time :)
https://github.com/sebcrozet/nphysics
When trying to build from source I am getting a long list of errors saying there are multiple definitions in chiptune.
I am running Arch Linux with python3.6.3, sdl2 and sdl2_mixer installed. and am running cargo build --features="cpython px8_plugin_lua" --release
Here is the relevant log output:
error: linking with 'cc' failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "~/PX8/target/release/deps/chiptune.0.o" "-o" "~/PX8/target/release/deps/libchiptune.so" "-Wl,--version-script=/tmp/rustc.AuGjf6qdrAh5/list" "~/PX8/target/release/deps/chiptune.crate.allocator.o" "-Wl,--gc-sections" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-L" "~/PX8/target/release/deps" "-L" "~/PX8/src/chiptune/libksnd-source/src" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "chiptune" "-Wl,--no-whole-archive" "~/PX8/target/release/deps/liblazy_static-c10dd4f9178931b1.rlib" "~/PX8/target/release/deps/liblibc-043bcec74ab9b3f4.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-f7c4b6522ec5af9e.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-5c3db1423b91616a.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-c81546f616bee1cb.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-5b1e62694efc0852.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-99d160586f71fd24.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-01818c88b0095d9d.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-8fd871d342558b7c.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_unicode-24d077784ff294bb.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-a607da81e1566936.rlib" "/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-48849975bde268ae.rlib" "-Wl,-Bdynamic" "-l" "util" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "pthread" "-l" "gcc_s" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util" "-shared"
= note: ~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function '<chiptune::ChiptuneError as core::fmt::Debug>::fmt':
chiptune.cgu-0.rs:(.text._ZN60_$LT$chiptune..ChiptuneError$u20$as$u20$core..fmt..Debug$GT$3fmt17hef3377e0808c2218E+0x0): multiple definition of '<chiptune::ChiptuneError as core::fmt::Debug>::fmt'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN60_$LT$chiptune..ChiptuneError$u20$as$u20$core..fmt..Debug$GT$3fmt17hef3377e0808c2218E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function '<chiptune::NOTENAME as core::ops::deref::Deref>::deref':
chiptune.cgu-0.rs:(.text._ZN62_$LT$chiptune..NOTENAME$u20$as$u20$core..ops..deref..Deref$GT$5deref17h4a3e7dfd057b2e19E+0x0): multiple definition of '<chiptune::NOTENAME as core::ops::deref::Deref>::deref'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN62_$LT$chiptune..NOTENAME$u20$as$u20$core..ops..deref..Deref$GT$5deref17h4a3e7dfd057b2e19E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function '<chiptune::NOTENAME as lazy_static::LazyStatic>::initialize':
chiptune.cgu-0.rs:(.text._ZN62_$LT$chiptune..NOTENAME$u20$as$u20$lazy_static..LazyStatic$GT$10initialize17hccdbb4ffd427bf7cE+0x0): multiple definition of '<chiptune::NOTENAME as lazy_static::LazyStatic>::initialize'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN62_$LT$chiptune..NOTENAME$u20$as$u20$lazy_static..LazyStatic$GT$10initialize17hccdbb4ffd427bf7cE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function '<chiptune::ChiptuneInstruction as core::fmt::Debug>::fmt':
chiptune.cgu-0.rs:(.text._ZN66_$LT$chiptune..ChiptuneInstruction$u20$as$u20$core..fmt..Debug$GT$3fmt17ha514dd5d7ea02a82E+0x0): multiple definition of '<chiptune::ChiptuneInstruction as core::fmt::Debug>::fmt'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN66_$LT$chiptune..ChiptuneInstruction$u20$as$u20$core..fmt..Debug$GT$3fmt17ha514dd5d7ea02a82E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function '<chiptune::INSTRUCTION_DESC as core::ops::deref::Deref>::deref':
chiptune.cgu-0.rs:(.text._ZN70_$LT$chiptune..INSTRUCTION_DESC$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1822fc37a09c7da5E+0x0): multiple definition of '<chiptune::INSTRUCTION_DESC as core::ops::deref::Deref>::deref'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN70_$LT$chiptune..INSTRUCTION_DESC$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1822fc37a09c7da5E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function '<chiptune::INSTRUCTION_DESC as lazy_static::LazyStatic>::initialize':
chiptune.cgu-0.rs:(.text._ZN70_$LT$chiptune..INSTRUCTION_DESC$u20$as$u20$lazy_static..LazyStatic$GT$10initialize17h401de503ebcb4bcfE+0x0): multiple definition of '<chiptune::INSTRUCTION_DESC as lazy_static::LazyStatic>::initialize'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN70_$LT$chiptune..INSTRUCTION_DESC$u20$as$u20$lazy_static..LazyStatic$GT$10initialize17h401de503ebcb4bcfE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::base_note_name':
chiptune.cgu-0.rs:(.text._ZN8chiptune14base_note_name17h69dd9d8b105b9b6aE+0x0): multiple definition of 'chiptune::base_note_name'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune14base_note_name17h69dd9d8b105b9b6aE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::get_instruction':
chiptune.cgu-0.rs:(.text._ZN8chiptune15get_instruction17h5401bb8b00644b07E+0x0): multiple definition of 'chiptune::get_instruction'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune15get_instruction17h5401bb8b00644b07E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::ChiptuneInstruction::new':
chiptune.cgu-0.rs:(.text._ZN8chiptune19ChiptuneInstruction3new17h94c4cab29017d817E+0x0): multiple definition of 'chiptune::ChiptuneInstruction::new'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune19ChiptuneInstruction3new17h94c4cab29017d817E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_attack':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10get_attack17h78b085e0550afebfE+0x0): multiple definition of 'chiptune::Chiptune::get_attack'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10get_attack17h78b085e0550afebfE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::load_music':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10load_music17h4e4f7ae4eec1ca6dE+0x0): multiple definition of 'chiptune::Chiptune::load_music'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10load_music17h4e4f7ae4eec1ca6dE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::load_sound':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10load_sound17hb00d08654c99dd5cE+0x0): multiple definition of 'chiptune::Chiptune::load_sound'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10load_sound17hb00d08654c99dd5cE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::play_music':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10play_music17he3e51b63854b68e2E+0x0): multiple definition of 'chiptune::Chiptune::play_music'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10play_music17he3e51b63854b68e2E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::play_sound':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10play_sound17h89180e229d1a31b3E+0x0): multiple definition of 'chiptune::Chiptune::play_sound'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10play_sound17h89180e229d1a31b3E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_attack':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10set_attack17hab8e786883a500b3E+0x0): multiple definition of 'chiptune::Chiptune::set_attack'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10set_attack17hab8e786883a500b3E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_volume':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10set_volume17h55dac36db74a7ecaE+0x0): multiple definition of 'chiptune::Chiptune::set_volume'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune10set_volume17h55dac36db74a7ecaE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_looping':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune11set_looping17h725c38b1ae230a3cE+0x0): multiple definition of 'chiptune::Chiptune::set_looping'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune11set_looping17h725c38b1ae230a3cE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_base_note':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune13get_base_note17heb8d09bb9c60899eE+0x0): multiple definition of 'chiptune::Chiptune::get_base_note'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune13get_base_note17heb8d09bb9c60899eE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_base_note':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune13set_base_note17h91324f8bf55d672dE+0x0): multiple definition of 'chiptune::Chiptune::set_base_note'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune13set_base_note17h91324f8bf55d672dE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_sound_program':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune17get_sound_program17h03aefbaeee646a11E+0x0): multiple definition of 'chiptune::Chiptune::get_sound_program'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune17get_sound_program17h03aefbaeee646a11E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_sound_program':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune17set_sound_program17h7abd41f167fc18f7E+0x0): multiple definition of 'chiptune::Chiptune::set_sound_program'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune17set_sound_program17h7abd41f167fc18f7E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_music_position':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune18get_music_position17hd220ac1130b7be44E+0x0): multiple definition of 'chiptune::Chiptune::get_music_position'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune18get_music_position17hd220ac1130b7be44E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_sound_position':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune18get_sound_position17hc9e3cfbfd82c93a1E+0x0): multiple definition of 'chiptune::Chiptune::get_sound_position'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune18get_sound_position17hc9e3cfbfd82c93a1E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_player_quality':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune18set_player_quality17hbccf0d97efdb8af4E+0x0): multiple definition of 'chiptune::Chiptune::set_player_quality'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune18set_player_quality17hbccf0d97efdb8af4E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::load_music_from_memory':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune22load_music_from_memory17h926e66f2031b21a8E+0x0): multiple definition of 'chiptune::Chiptune::load_music_from_memory'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune22load_music_from_memory17h926e66f2031b21a8E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::load_sound_from_memory':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune22load_sound_from_memory17hb366dd7d204c6c66E+0x0): multiple definition of 'chiptune::Chiptune::load_sound_from_memory'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune22load_sound_from_memory17hb366dd7d204c6c66E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_sound_program_direct':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune24set_sound_program_direct17h49e20938c3b49a6cE+0x0): multiple definition of 'chiptune::Chiptune::set_sound_program_direct'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune24set_sound_program_direct17h49e20938c3b49a6cE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::new':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune3new17hbe93d21f306c33b5E+0x0): multiple definition of 'chiptune::Chiptune::new'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune3new17hbe93d21f306c33b5E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::stop':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune4stop17h63962358b1833fe1E+0x0): multiple definition of 'chiptune::Chiptune::stop'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune4stop17h63962358b1833fe1E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::pause':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune5pause17hff26c68e1f98b55dE+0x0): multiple definition of 'chiptune::Chiptune::pause'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune5pause17hff26c68e1f98b55dE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_saw':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7get_saw17he3cc9e51cd9d8acaE+0x0): multiple definition of 'chiptune::Chiptune::get_saw'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7get_saw17he3cc9e51cd9d8acaE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_tri':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7get_tri17hf763b6f732d942eeE+0x0): multiple definition of 'chiptune::Chiptune::get_tri'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7get_tri17hf763b6f732d942eeE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_vib':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7get_vib17h0465ba4044073f02E+0x0): multiple definition of 'chiptune::Chiptune::get_vib'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7get_vib17h0465ba4044073f02E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_saw':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7set_saw17ha33e3cb2b10fd7f8E+0x0): multiple definition of 'chiptune::Chiptune::set_saw'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7set_saw17ha33e3cb2b10fd7f8E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_tri':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7set_tri17h1ee78228bc5042abE+0x0): multiple definition of 'chiptune::Chiptune::set_tri'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7set_tri17h1ee78228bc5042abE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_vib':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7set_vib17hfedb6810532f0e67E+0x0): multiple definition of 'chiptune::Chiptune::set_vib'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune7set_vib17hfedb6810532f0e67E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_drum':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune8get_drum17h44816495b3fe2c44E+0x0): multiple definition of 'chiptune::Chiptune::get_drum'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune8get_drum17h44816495b3fe2c44E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_drum':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune8set_drum17h1bbd64fad86a6975E+0x0): multiple definition of 'chiptune::Chiptune::set_drum'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune8set_drum17h1bbd64fad86a6975E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_decay':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_decay17hd488d44fd850e269E+0x0): multiple definition of 'chiptune::Chiptune::get_decay'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_decay17hd488d44fd850e269E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_metal':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_metal17h2093227ed041da7aE+0x0): multiple definition of 'chiptune::Chiptune::get_metal'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_metal17h2093227ed041da7aE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_noise':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_noise17hef7f16529b78509eE+0x0): multiple definition of 'chiptune::Chiptune::get_noise'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_noise17hef7f16529b78509eE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::get_pulse':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_pulse17hb40bcd3e0f8fb4f2E+0x0): multiple definition of 'chiptune::Chiptune::get_pulse'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9get_pulse17hb40bcd3e0f8fb4f2E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_decay':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_decay17h2f6c87b7baa0a950E+0x0): multiple definition of 'chiptune::Chiptune::set_decay'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_decay17h2f6c87b7baa0a950E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_metal':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_metal17hc08df7111e261734E+0x0): multiple definition of 'chiptune::Chiptune::set_metal'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_metal17hc08df7111e261734E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_noise':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_noise17h681a391d0c2f1d8bE+0x0): multiple definition of 'chiptune::Chiptune::set_noise'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_noise17h681a391d0c2f1d8bE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::set_pulse':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_pulse17h8920995dcb5b64cdE+0x0): multiple definition of 'chiptune::Chiptune::set_pulse'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9set_pulse17h8920995dcb5b64cdE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::Chiptune::stop_chan':
chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9stop_chan17h8a725be1b21c1cd8E+0x0): multiple definition of 'chiptune::Chiptune::stop_chan'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8Chiptune9stop_chan17h8a725be1b21c1cd8E+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.0.o): In function 'chiptune::notename':
chiptune.cgu-0.rs:(.text._ZN8chiptune8notename17hb75e0c13b19c560cE+0x0): multiple definition of 'chiptune::notename'
~/PX8/target/release/deps/chiptune.0.o:chiptune.cgu-0.rs:(.text._ZN8chiptune8notename17hb75e0c13b19c560cE+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_alloc':
allocator:(.text.__rust_alloc+0x0): multiple definition of '__rust_alloc'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_alloc+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_alloc_excess':
allocator:(.text.__rust_alloc_excess+0x0): multiple definition of '__rust_alloc_excess'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_alloc_excess+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_alloc_zeroed':
allocator:(.text.__rust_alloc_zeroed+0x0): multiple definition of '__rust_alloc_zeroed'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_alloc_zeroed+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_dealloc':
allocator:(.text.__rust_dealloc+0x0): multiple definition of '__rust_dealloc'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_dealloc+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_grow_in_place':
allocator:(.text.__rust_grow_in_place+0x0): multiple definition of '__rust_grow_in_place'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_grow_in_place+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_oom':
allocator:(.text.__rust_oom+0x0): multiple definition of '__rust_oom'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_oom+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_realloc':
allocator:(.text.__rust_realloc+0x0): multiple definition of '__rust_realloc'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_realloc+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_realloc_excess':
allocator:(.text.__rust_realloc_excess+0x0): multiple definition of '__rust_realloc_excess'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_realloc_excess+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_shrink_in_place':
allocator:(.text.__rust_shrink_in_place+0x0): multiple definition of '__rust_shrink_in_place'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_shrink_in_place+0x0): first defined here
~/PX8/target/release/deps/libchiptune.a(chiptune.crate.allocator.o): In function '__rust_usable_size':
allocator:(.text.__rust_usable_size+0x0): multiple definition of '__rust_usable_size'
~/PX8/target/release/deps/chiptune.crate.allocator.o:allocator:(.text.__rust_usable_size+0x0): first defined here
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: Could not compile 'chiptune'.
warning: build failed, waiting for other jobs to finish...
error: build failed
It can be interesting to support a led matrix as a renderer:
https://github.com/hzeller/rpi-rgb-led-matrix
Add a good support with the Joystick or game controller
Right now I used opensimplex from Python, but let's add a native one via https://github.com/brendanzab/noise-rs
It seems a good feature to add a text editor directly in PX8.
Let's start to work on it.
We need to be able to generate a generic emscripten version of PX8 to be able to load cartridges with python + lua support.
Add the API to get information about the dynamic size for:
Something I felt terribly missing from the original Pico8 was the lack of true keyboard support. I had tons of ideas that I could just not implement because there was no real keyboard input (create a tiny terminal, text adventure, an OS etc.)
Could it be possible to have a true keyboard mode, either activated programatically or with an environment variable?
That would effectively extend PX8 to be a Fantasy Microcomputer in addition to a Fantasy Console!
We need to add the icon when we run the binary.
We need to have the possibility to communicate with PX8 remotely, to send packets.
A good solution is to use tokio.rs for that.
Would love to see it on android
Right now during the creation of the GIF for the video, the main thread is busy so the game is stopped, let's move that in a thread in the background.
The idea is to do what we have currently for Python/Lua but with Javascript. A good candidate seems http://duktape.org/.
The plan is the following:
I need to improve few things:
We have many warnings display with the rust compiler, let's fix them
It seems easy to do a simple demo of a network game with PX8 due to the no restriction of the network for the cartridge.
Let's add:
Add tests to be sure to not have any regression:
Add an interactive mode when the binary is run without arguments:
where can we find .deb packages?
Hi, I do not see examples in rust or lua, could you write some examples? Thank you.
It has been deprecated: announcement.
Is there any functionality you would require from Serde or another library before this would be possible?
Dear all:
After I install MS BUILD TOOLS 2015,
I ran "cargo build --features="cpython px8_plugin_lua" --release "
It shows message as follows:
Compiling px8_plugin_lua v0.0.11 (file:///C:/Users/synct/git/PX8/src/plugins/lua)
error: failed to run custom build command for px8_plugin_lua v0.0.11 (file:///C:/Users/synct/git/PX8/src/plugins/lua)
process didn't exit successfully: C:\Users\synct\git\PX8\target\release\build\px8_plugin_lua-d758b5acbc73c5ad\build-script-build
(exit code: 101)
--- stdout
cargo:rustc-link-lib=static=lua
--- stderr
thread 'main' panicked at 'cl.exe and lib.exe must be on your %PATH% to compile Lua for MSVC.
Please install this crate through the Visual Studio Native Tools Command Line.', src\plugins\lua\build.rs:80
note: Run with RUST_BACKTRACE=1
for a backtrace.
Build failed, waiting for other jobs to finish...
error: build failed
any help?
Best Regards, Tim
We need to have the possibility to save user's data
Many things need to be improve:
Hi, I'm trying to use PX8 on UbuntuStudio 17.04.
I've got problem with libpython3.4m.so.1.0 but with this script it's ok https://gist.github.com/puentesarrin/8290754
Now I've got this error : [2017-07-15][17:51:58][INFO] [SDL] Creating renderer thread 'main' panicked at 'called
Result::unwrap()on an
Errvalue: SdlError("Couldn\'t find matching render driver")', /checkout/src/libcore/result.rs:859 note: Run with
RUST_BACKTRACE=1for a backtrace.
Thanks for help I would like to use this wonderful tool
Some circles are not filled correctly, let's fix that
$ ./px8
dyld: Library not loaded: libpython3.5m.dylib
Referenced from: /Users/username/Downloads/PX8-0.0.1-OSX/./px8
Reason: image not found
Abort trap: 6
Hi, I compiled PX8 with this features :
PX8_SCREEN_WIDTH=256 PX8_SCREEN_HEIGHT=256 cargo build --features="cpython lua" --release
, on ubuntu and osx. In ubuntu i can run the samples, but on osx I have this error :
thread 'main' has overflowed its stack
fatal runtime error: stack overflow
Abort trap: 6.
With this examples : ./target/release/px8 -s 4 ./demos/demos.py
it's ok, but with this : ./target/release/px8 -s 4 ./demos/pong/pong.px8
it's not.
Thanks, and sorry for my english. :)
Hi, on Ubuntu I try to build with lua plugin, but I have this error:
'does not have these features: lua'. I need to install something? Thanks.
We need new GFX functions, e.g:
See:
https://www.patreon.com/posts/12232698
@johnbatty do you think it is possible ?
This is the kind I currently have at hand so you must trans-pile the code into an x86 version.
The current code supports an 8bpp (and 4bpp, if you only use the first 16 colour values!), with a color translation on drawing (palt()), and a mapping to RGB on display (via a configurable 256 entry palette). This fits with retro games consoles capabilities, and given the default low resolution and retro palettes provided this seems to be the main target for PX8.
However, internally the code currently stores pixels as 32bpp, and some functions seem to be written to support either color indexes or RGB values.
Do you have any strong desire to support more than 8bpp (i.e. 24bpp) in PX8?
I think that if you took the decision to only support up to 8bpp (at least for now) then the code could be simplified and I know could have some good performance improvements (I've already made them!). As PICO-8 demonstrates, sometimes limitations are a good thing :-)
If you follow the README.md it says to:
cd unicorn-devkit
cargo build --release
Yet when you run that you are greeted with this:
error: failed to parse manifest at
C:\Users\melon\Documents\GitHub\UnicornConsole\unicorn-devkit\Cargo.toml
Caused by:
no targets specified in the manifest
either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present
So I do not know if I am missing something or the build instructions just need updated,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.