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
We need to be able to generate a generic emscripten version of PX8 to be able to load cartridges with python + lua support.
Would love to see it on 3DS. =]
It can be interesting to support a led matrix as a renderer:
https://github.com/hzeller/rpi-rgb-led-matrix
We need to have the possibility to assign easily a new configuration for each player and to switch from joystick/keyboard etc
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 seems a good feature to add a text editor directly in PX8.
Let's start to work on it.
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?
where can we find .deb packages?
Many things need to be improve:
Let's move from glium to gfx-rs to have another renderer.
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 communicate with PX8 remotely, to send packets.
A good solution is to use tokio.rs for that.
Right now the editor is in Python, it could be a good idea to move it in Rust.
Please describe solution how to build for iOS & sim.
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
Add tests to be sure to not have any regression:
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
.
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!
We need to add the icon when we run the binary.
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
.
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:
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.
I need to improve few things:
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.
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. :)
We have many warnings display with the rust compiler, let's fix them
Would love to see it on android
$ ./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
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
I get this error whenever i try to load anything.
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
We need to have the possibility to save user's data
Hi, I do not see examples in rust or lua, could you write some examples? Thank you.
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 :-)
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 !
Some circles are not filled correctly, let's fix that
Add an interactive mode when the binary is run without arguments:
We need a way to automatic provide build for:
Windows
OSX
Linux
any hints ?
Currently we don't have any audio support, let's add one !
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
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:
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
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!
It has been deprecated: announcement.
Is there any functionality you would require from Serde or another library before this would be possible?
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.