Coder Social home page Coder Social logo

gigoteur / unicornconsole Goto Github PK

View Code? Open in Web Editor NEW
907.0 28.0 47.0 1.21 GB

Unicorn Console: create quick fantasy game in Rust/Python/Lua/Rhai/Wasm !

License: MIT License

Python 1.40% Rust 43.08% Lua 55.52% RenderScript 0.01%
rust python lua fantasy-console game-engine rhai wasm

unicornconsole's People

Contributors

hallucino avatar johnbatty avatar l0kod avatar tcyrus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unicornconsole's Issues

Improve emscripten support

We need to be able to generate a generic emscripten version of PX8 to be able to load cartridges with python + lua support.

Chiptune error linking with cc

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

Text editor support

It seems a good feature to add a text editor directly in PX8.

Let's start to work on it.

Add runtime dynamic resolution selection

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?

Editor mode

Many things need to be improve:

  • Display the map section
  • zoom in/out for map edition
  • save map modification
  • Copy/Paste a sprite
  • zoom in/out for sprite edition
  • edit sprite's flags
  • save sprite modification

Panic upon running the demos

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

Server

We need to have the possibility to communicate with PX8 remotely, to send packets.

A good solution is to use tokio.rs for that.

build for iOS

Please describe solution how to build for iOS & sim.

Improve glium renderer support

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

Add tests to be sure to not have any regression:

  • gfx
  • cartridge
  • plugins

Ubuntu compile error " relocation R_X86_64_32S against `_Py_NotImplementedStruct' "

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.

Loading Celeste (pico-8)

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!

error: proc-macro derive panicked

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.

Add a network game

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:

  • a simple PONG example
  • a more complex one

Move the gif creation in a thread

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.

Fix font part

I need to improve few things:

  • fix non valid characters in the current font
  • add a way to change the font dynamically

Lua

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.

fatal runtime error: stack overflow on OSX 10.10.5

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. :)

Fix Rust syntax

We have many warnings display with the rust compiler, let's fix them

Android

Would love to see it on android

Support Python 3.6 on macOS

$ ./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

There are some build errors in Win 10?

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

Add gfx functions

We need new GFX functions, e.g:

  • rounded rectangle (+ filled)
  • arc
  • ellipse (+ filled)
  • polygon
  • polygon filled
  • trigon
  • trigon filled

32-bit x86 version?

This is the kind I currently have at hand so you must trans-pile the code into an x86 version.

Fix display depth to maximum of 8bpp?

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 :-)

Add PICO-8 mod

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 !

Interactive mode

Add an interactive mode when the binary is run without arguments:

  • add a new state for this new mode
  • list all px8/p8 files in the current directory
  • handle correctly multiples cartridges
  • add a new menu to display the current cartridges

Audio support

Currently we don't have any audio support, let's add one !

SdlError

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 anErrvalue: SdlError("Couldn\'t find matching render driver")', /checkout/src/libcore/result.rs:859 note: Run withRUST_BACKTRACE=1for a backtrace.
Thanks for help I would like to use this wonderful tool

Add javascript support (duktape)

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:

  • create duktape binding for rust (existing implementation seems out of date)
  • add the existing API for Javascript
  • Populate the examples directory

True keyboard mode

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!

Build Instructions

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,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.