Giter VIP home page Giter VIP logo

bongocat-osu's Introduction

Description

An osu! Bongo Cat overlay with smooth paw movement and simple skinning ability, written in C++. Originally created by HamishDuncanson.

You can find how to configure the application in our wiki.

Download the program here.

Hugs and kisses to CSaratakij for creating the Linux port for this project!

Any suggestion and/or collaboration, especially that relating to sprites, is welcomed! Thank you!

Original post by Kuvster.

Further information

In order to play with fullscreen on Windows 10, run both osu! and this application in Windows 7 compability mode.

Press Ctrl + R to reload configuration and images (will only reload configurations when the window is focused).

Supported operating system:

  • Windows
  • Linux (tested with Arch Linux with WINE Staging 5). Note: You must use WINE Staging, because for whatever reason on stable WINE bongocat-osu doesn't register keyboard input from other windows.

Notice: If you're using WINE on Linux, make sure that osu! and this application run in the same WINEPREFIX.

For developers

This project uses SFML and JsonCpp. JsonCpp libraries are directly included in the source using the provided amalgamation.py from the developers.

Libraries and dependency

Windows and MinGW

To build the source, download the SFML libraries here, copy Makefile.windows to Makefile, then replace <SFML-folder> in Makefile with the desired folder.

Linux

You need to have these dependencies installed. Check with your package manager for the exact name of these dependencies on your distro:

  • g++
  • libxdo
  • sdl2
  • sfml
  • x11
  • xrandr

Then, copy Makefile.linux to Makefile.

Building and testing

To build, run this command from the base directory:

make

To test the program, run this from the base directory:

make test

Alternatively, you can copy the newly-compiled bin/bongo.exe or bin/bongo into the base directory and execute it.

If you have troubles compiling, it can be due to version mismatch between your compiler and SFML. See #43 for more information.

bongocat-osu's People

Contributors

csaratakij avatar konaeakira avatar kuroni avatar odarthur avatar peeteer1245 avatar queenbeelive avatar shirone01 avatar tomaae 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

bongocat-osu's Issues

Value type error in config.json

I get value type error in config.json when opening bongo.exe
How do I fix it?

Contents of config.json:

{
"mode": 1,
"resolution": {
"letterboxing": true,
"width": 1920,
"height": 1080,
"horizontalPosition": 10,
"verticalPosition": -100
},
"decoration": {
"leftHanded": false,
"rgb": [255, 255, 255],
"offsetX": 10,
"offsetY": -65,
"scalar": [1, 1]
},
"osu": {
"mouse": false,
"key1": [83],
"key2": [68],
"smoke": [70]
}
}

Value type error in config.json

what I did : because the mouse is a bit big for my bongo cat, I set 0.5 as scalar value.
version : Version 1.4.0 final (x64)
I get value type error in config.json when opening bongo.exe
would you mind helping me?
////////////////////////////(config.json)////////////////////////////
{
"mode": 1,
"decoration": {
"leftHanded": false,
"rgb": [255, 255, 255],
"offsetX": [20, 11],
"offsetY": [20, -65],
"scalar": [0.5, 1]
}
}
////////////////////////////

// here is my (old) setting for bongo_cat_cam_v2
mouse.png x offset: 20
mouse.png y offset: 20
mouse.png scalar: 0.5

tablet.png x offset: 11
tablet.png y offset: -65
tablet.png scalar: 1
////////////////////////////

sorry for my poor english >_<

How to change moving hand?

I wanted to create my own skin of this and was able to skin over the other parts but i wanted to make the moving hand multi-color. Would there be any way to do that? Also apologies if skins are out of the question.

Compatibility Not Showing

So I tried putting minecraft into compatibility mode, but I was never able to so I could record and have the overlay. Is there any way to fix this problem? TY!

Help on running makefile

Im trying to run makefile using gnuwin32, but the console responds like this: g++ -c -o obj/ctb.o src/ctb.cpp -DSFML_STATIC -I<C:\Users\Artixs\Desktop\bongocat-osu-1.4.3>/include -Iinclude -L<C:\Users\Artixs\Desktop\bongocat-osu-1.4.3>/lib -std=c++17 -s -O2 -mwindows -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lopengl32 -lfreetype -lwinmm -lgdi32 -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic
Access is denied.
make: *** [obj/ctb.o] Error 1.

I'm a complete beginner in programming and I've spent a lot of time trying to make this work, any advice?

All keys?

This is more of a request than an issue

I'd love to livestream other games besides Osu! and I think it would be great to be able to add more than 2 keys

I would do it myself but I'm not familiar with c++

Can't find the settings text file

I don't know if it's me but I downloaded the .rar, extracted, and the config.json file is just not there in the folder. I didn't move it or anything. (windows 10)

can t seem to open your bongo.exe file

I read your wiki but still can not figure out how to open it. Bongo.exe can not open and it let me to choose the program to open that file. Did i miss some programing software to open it? thank since i really need bongo taigo version so much.

Help changing load order

Hello! I am using the osu cat for other games, and i was wondering if it was possible to change the load order for smoke and up, so that up isnt on top of smoke? its causing a double image the way i have it set up,,
image

Feature : Linux native

I manage to port bongocat-osu to native linux.
Check this out :D
more info : https://github.com/CSaratakij/bongocat-osu/tree/feature-linux-native-port

Actually, I want this to be merge, make a single code base and seperate platform dependent code with a compiler preprocessor. But I don't have Windows right now. So I'm not confident in putting those flag.

If anyone interest in combine this into one single code base, feels free to use my fork as a working linux implementaion :D

How does this set it?

I touched it for the first time some time ago in BongoCat-osu!, but seem to have a dream because I wanted to do it much more.
But I thought to play in a pen tab, and to change the key setting to be different, but because .txt file enters when it is a past thing, I was able to set it, but it is difficult to change this because there is not it.
I am glad when you can tell how you change it.

Because English is not possible in Japanese, is translation; I'm sorry.

stops working when game is in fullscreen

the OBS overlay freezes when you have a game in fullscreen. Tried changing process priority, etc nothing fixes. Can't find a solution on google either

EDIT: forgot to mention, I'm running everything in Windows 7 Compability mode

Cant find config.json

I just download lastest bongoh cat osu! and I can't find config.json in same folder as bongo.exe how can I find or download this file? Thank you

No bongo.exe

So I opened the files in visual studio c++ and found no bongo.exe. If you didnt guess already I'm new to coding and wanted to make it so bongo cat was able to tap the keyboard when I pressed more than 2 buttons. I would love it if someone taught me or made one for me. Thanks!

Suggestion: Third key while playing osu! Standard

I tried adding a third key to have as another picture (like x and z) but for smoke.
Since i thought it would add a lot for my stream seeing how i draw a lot with smoke and me and my chat thought it would be funny if we could make the cat smoke while i drew with smoke (hence i need a third key used for a third image).
This might not be something you see as important, if so i understand you and i will try harder to fix it myself but it's quite hard seeing how i only know c and java 😛
And if this is something you don't want in the main code i wouldn't mind if you had time and sent me it privately or something (i dont know how github works)

Making new Binds

Sorry to bother you again, but how do you add more than two keybinds?

Fullscreen osu!

the cat doesn't move when i have osu! on fullscreen and i cannot find a solution online please help

config.json Won't do anything on bongocat

I had tried this (blue background) but nothing happened when i did win + r. I'm trying to change the hand color for the mouse. But i'm just testing things, Nothing works. Help.
{
"mode": 2,
"decoration": {
"rgb": [0, 0, 255]
}
}

Cursor issues on pen display

Hello, I'm using a cintiq 16 pro pen display and the cursor tracking doesn't seem to work correctly.
The cat mainly stays on once place when I move the mouse and goes all over the place otherwise.
It works normally when the mouse is in my main monitor.

Is there a way to fix this?
My config is:
`{
"mode": 1,
"osu": {
"mouse": false,
"paw": [255, 255, 255],
"key1": [90],
"key2": [88],
"smoke": [67],
"wave": [86]
},
"decoration": {
"rgb": [0, 255, 0]
},
"resolution": {
"letterboxing": true,
"width": 3840,
"height": 2160,
"horizontalPosition": 0,
"verticalPosition": 0
}

}`

Support for other games

It would be cool to be able to use the application to stream games such as Valorant. Please consider adding the ability to add other inputs to trigger the keyboard animations! :)

ico.res missing

Hi,

Make is failing with "[Makefile:24: ico/ico.res] Error 127" when using the given makefile.

ico.res appears to be missing from the ico directory.

Request for arcade stick mode

Was wondering if it would be possible to have an arcade stick mode for fighting games.
8 directions on one paw and 8 buttons on the other
image

Help with ld.exe not finding the SFML static libraries

I've gone and replaced the correct part in the Makefile with the path to my SFML folder. However I get the following output

PS C:\Users\me\Documents\MEGA\Coding\bongocat-osu> make
g++ -o bin/bongo.exe obj/osu.o obj/main.o obj/taiko.o obj/ctb.o obj/jsoncpp.o obj/mania.o obj/data.o ico/ico.res -DSFML_STATIC -I/C:/Users/me/Documents/MEGA/Coding/SFML/include/ -Iinclude -L/C:/Users/me/Documents/MEGA/Coding/SFML/lib/ -std=c++17 -s -O2 -mwindows -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lopengl32 -lfreetype -lwinmm -lgdi32 -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic
C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsfml-graphics-s
C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsfml-window-s
C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lsfml-system-s
C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lfreetype
collect2.exe: error: ld returned 1 exit status

I can't seem to find any help on this elsewhere

Solved!

Solved sorry about that I'm a noob!

Thank you for your help

{
“ mode ”:3,
“ resolution ”:{
“ letterboxing ”:false,
“ width ”:615,
“ height ”:375,
“ horizo​​ntalPosition ”:0,
“ verticalPosition ”:0
},
“装饰”:{
“左旋”:假,
“ RGB ”:[ 255, 255, 255 ],
“ OFFSETX ”:[ 0, 11 ],
“ OFFSETY ”:[ 0, -65 ],
“标量”:[ 0.5, 1.0 ]
},
“ osu ”:{
“ mouse ”: true,
“ key1 ”:[ 90 ],
“ key2 ”:[ 88 ],
“ smoke ”:[ 67 ]
},
“太鼓”:{
“ leftCentre ”:[ 88, 70, 87, 82 ],
“ rightCentre ”:[ 67, 18 , 9, 77 ],
“ leftRim ”:[ 90 , 68, 81, 69, 32 ],
“ rightRim ”:[ 86, 16 , 65, 83, 66 ]
},
“ catch ”:{
“ left ”:[ 37 ],
“ right ”:[ 39 ],
“ dash ”:[ 16 ]
},
“躁狂症”:{
“ 4K ”:真,
“ key4K ”:[ 68, 70, 74, 75 ],
“ key7K ”:[ 83, 68, 70, 32, 74, 75, 76 ]
}
}
image

About Config.json

emmm After downloading the file, there are only “img” and “bongocat.exe” in my laptop, and nothing happened after “ctrl + R”,so I don’t know how to set the configuration without finding the “config.json”...could you please tell me the details about how to alter the configuration 😅😅
Please forgive my poor English XD ..Thanks a lot!!

Hardcoding Mouse/Pen Paw Color?

Hello, so I've been fiddling around with the source code for a while trying to figure out how to hardcode in a new paw color. So far, I've been able to modify the color of the edge, but not the fill color itself (so I end up with a different color outline but a white inside). What line(s) should I modify to do so?

I'm assuming that it has to do with the osu.cpp file as that is the only gamemode that actually draws a mouse/pen arm, but I've changed every line referencing "color" without luck. I'm new to C++ and SFML so I'm not familiar with the code.

Thanks for the help!

Undefined Reference during build.

On trying to build I get many "undefined reference" errors. I've been trying for a few hours and can't figure out why. I have not yet edited the code in any way from the release version.

c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x36): undefined reference to `vtable for sf::Sprite'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x45): undefined reference to `vtable for sf::Sprite'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x56): undefined reference to `vtable for sf::Sprite'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x65): undefined reference to `vtable for sf::Sprite'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x76): undefined reference to `vtable for sf::Sprite'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x85): more undefined references to `vtable for sf::Sprite' follow
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x370): undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x414): undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x4bd): undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x56a): undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x613): undefined reference to `sf::Sprite::setTexture(sf::Texture const&, bool)'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: obj/ctb.o:ctb.cpp:(.text+0x6b3): more undefined references to `sf::Sprite::setTexture(sf::Texture const&, bool)' follow

My Makefile:

SRCDIR := src
OBJDIR := obj
ICODIR := ico
SRC := $(wildcard $(SRCDIR)/*.cpp)
OBJ := $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(SRC))
ICO := $(ICODIR)/ico.res
CXXFLAGS := -std=c++17 -s -O2 -mwindows
LDFLAGS := -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lopengl32 -lfreetype -lwinmm -lgdi32 -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic
INCFLAGS := -IC:\Users\Simon\Desktop\SFML-2.5.1\include -Iinclude
LIBFLAGS := -LC:\Users\Simon\Desktop\SFML-2.5.1\lib
DEFINES := -DSFML_STATIC

.PHONY: test clean

bin/bongo.exe: $(OBJ) $(ICO)
	$(CXX) -o $@ $^ $(DEFINES) $(INCFLAGS) $(LIBFLAGS) $(CXXFLAGS) $(LDFLAGS)

$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
	$(CXX) -c -o $@ $^ $(DEFINES) $(INCFLAGS) $(LIBFLAGS) $(CXXFLAGS) $(LDFLAGS)

$(ICODIR)/ico.res: $(ICODIR)/ico.rc
	windres -O coff -o $@ $^

test:
	bin/bongo.exe

clean:
	rm $(OBJ)

Release: bongocat-osu-1.4.3.4
OS: Windows 10
Compiler: g++ (MinGW.org GCC Build-20200227-1) 9.2.0
SFML: 2.5.1, GCC 7.3.0 MinGW (SEH) - 64-bit

can not change the size of the screen

"letterboxing": false,
"width": 1920,
"height": 1920,

No matter how many time i try modify in config.jason the screen window still same length did i do something wrong?

Have smoke be on "toggle", instead of "push"

Hi!

I want the smoke to be on "toggle", instead of "push"

What I mean by that is whenever I press C, the smoke image shows up, until I press C again, instead of me having to keep the C key pushed down for the image to show up.

Also, ty for making the program, I love it!

Suggestion: Support games that center the cursor

Support games that center the cursor every time, i.e. every 3D shooter ever. When mouse reaches the edge of cat's mouse mat the mouse is placed in the center. The mouse should also reset its position after 1 second of inactivity.

It'd also be nice to be able to bind more than 2 keys. There's no need to change the animation - just make 2 config options, one with keys that will trigger the "left click" button animation and other with keys that will trigger the "right click" animation.

Suggestion: Making cat wave

I thought the addition of the smoke key. It got me thinking what I was missing, then it hit me. Making the cat would be rad, so i implemented it the same way you did for left and right. but using a picture that was like up but a little tilted. I coded it and all but when it came to compiling i was totally lost.
Would be nice to have and easy to implement it, I copied the things you did with left/right and just change it to wave. Only failed to do it since I don't know how to compile it.
P.S Thanks for all the work it's awesome.

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.