Skip to content

notnotme/osp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OSP - Old School Player

Yet another chiptune player but for your Nintendo Switch.

Supported formats:

snd, sndh, sc68, sid, psid, rsid, mus, ay, gbs, gym, hes, kss, nsf, nsfe, sap, spc, vgm, vgz, mptm, mod, s3m, xm, it, 669, amf, ams, c67, dbm, digi, dmf, dsm, dtm, far, imf, ice, j2b, m15, mdl, med, mms, mt2, mtm, nst, okt, plm, psm, pt36, ptm, sfx, sfx2, st26, stk, stm, stp, ult, wow, gdm, mo3, oxm, umx, xpk, ppm, mmcmp

Controls:

  • With mouse emulation:

    • Left joystick: move cursor
    • Right joystick: scroll up/down in area allowed to scroll
    • A: Left click
    • X: Right click (display some popup menus according on the hovered item)
    • L shoulder: Speed down mouse and scroll (keep button down)
    • R shoulder: Speed up mouse and scroll (keep button down)
  • Touch controls can be enabled/disabled (it work as a "mouse right click", no more)

  • Nintendo switch usb mouse support (please disable manually mouse emulation in this case)

  • Obviously, don't try to disable mouse emulation AND touch controls if you do not have an USB mouse compatible with your Switch hehe.

Build

To be able to compile the project you need the following libraries installed in your system:

  • libsdl2, libsdl2-image, libjansson, libfmt, libconfig++ wich can be found is usually your package manager.
  • libgme, libsidplayfp, libsc68 and libopenmpt wich can be optained by following the links above in case they are not available on your system.
  • Glad loader installed with 3.3 Core capabilities (your video card must support OpenGL 3.3 Core)

Currently this code can be build for Nintendo Switch and Linux but you may need to tweak the Makefile.sdl to fit your Linux needs. I essentially target the switch and the other build help me for debug purpose.

This source code is bundled with a version of ImGui (1.79 tables branch) and ECS and some fonts (Atari ST 8x16, Material Design Icons, and Roboto)

Todos:

  • Add some tooltips and missing translation
  • Open .m3u files ?
  • modland ftp support ?

Some ideas:

  • Implement the ability to browse modland ftp
  • Create some custom controls using the ImGui framework
  • Vu meter around the player controls (left and right)
  • When the worspace is not visible, add options to show something (minigames, song information, shaders...)
  • Battery save mode (black screen, stop refreshing or do it at low fps ?)
  • Add a better touch support

Screenshots