Plombo's to-do list

BeasTie said:
Could/would the video files also contain audio?  Because another big problem with cutscenes in openbor is syncing speech/sfx etc.  So if the video files can contain audio then there should be no issues after converting.

Yeah, that's the idea. :)
 
yea that would be great if we could use video files instead of animated gifs.  Gifs are so limited in the colors and things you could use.  If OpenBor could do video cutscenes made from videos and not gif it could make games looks so much better.
 
Can you guys solve problem with translation.txt , it just doesnt work when you use PAK file, it works only when you use data folder, once you pak the file then engine ignores translation.txt.
Here is whats inside of my translation.txt if you would like to test it:

Code:
msgid 
"This file should be place in data folder"
"msgid : this is original text in code."
"msgstr : this is your translation."
msgstr 
"Leave this blank if you don't want to translate it."
"Lines below this are what you need to modify."

msgid "  Done!"
msgstr "GOTOWE!"
msgid " - Device Not Ready"
msgstr "URZADZENIE NIE GOTOWE"
msgid "%d%% AC Power"
msgstr "ZASILANIE AC"
msgid "%i by Mod"
msgstr ""
msgid "%s - Finish Game %i Times To UnLock"
msgstr "%s - UKONCZ GRE %i RAZY BY ODBLOKOWAC"
msgid "%s - Finish Game To UnLock"
msgstr "%s - UKONCZ GRE BY ODBLOKOWAC"
msgid "%s KBytes"
msgstr ""
msgid "Advanced Options..."
msgstr "ZAAWANSOWANE OPCJE"
msgid "Advanced Sound Options"
msgstr "ZAAWANSOWANE OPCJE DZWIEKU"
msgid "Analog Pad Disabled"
msgstr "ANALOG PAD WYLACZONY"
msgid "Analog Pad Enabled"
msgstr "ANALOG PAD WLACZONY"
msgid "Apply"
msgstr "ZATWIERDZ"
msgid "Automatic"
msgstr "AUTOMATYCZNIE"
msgid "BGM:"
msgstr "MUZYKA"
msgid "Back"
msgstr "WROC"
msgid "Battery:"
msgstr "BATERIA"
msgid "Bilinear"
msgstr ""
msgid "Bits:"
msgstr ""
msgid "Brightness:"
msgstr "JASNOSC"
msgid "CPU Speed:"
msgstr "PREDKOSC KOMPUTERA"
msgid "Calculating..."
msgstr "OBLICZANIE..."
msgid "Cancel"
msgstr "ANULUJ"
msgid "Charging:"
msgstr "LADOWANIE"
msgid "Cheat Options"
msgstr "CHEAT MENU"
msgid "Cheats:"
msgstr "CHEATY"
msgid "Choose Mode"
msgstr "WYBIERZ TRYB"
msgid "Clear Bonus"
msgstr "BONUS CZYSTY"
msgid "Complete"
msgstr "ZAKONCZONE"
msgid "Config Settings"
msgstr "USTAW KONFIGURACJE"
msgid "Configuration Settings"
msgstr "USTAWIENIA KONFIGURACJI"
msgid "Continue"
msgstr "KONTYNUACJA"
msgid "Control Options"
msgstr "OPCJE STEROWANIA"
msgid "Control Options..."
msgstr "OPCJE STEROWANIA..."
msgid "Credit %i"
msgstr "KREDYTY %i"
msgid "Credits:"
msgstr "KREDYTY:"
msgid "Debug Info:"
msgstr "DEBUG INFO:"
msgid "Disabled by Mod"
msgstr "WYLACZONE PRZEZ MOD "
msgid "Disabled"
msgstr "WYLACZONE"
msgid "Discard"
msgstr "OPUSC"
msgid "Display Mode:"
msgstr "TRYB WYSWIETLANIA"
msgid "Display:"
msgstr "WYSWIETLANIE:"
msgid "Enabled by Mod"
msgstr "WLACZONE PRZEZ MOD"
msgid "Enabled"
msgstr "WLACZONE"
msgid "End Game"
msgstr "WYJDZ Z GRY"
msgid "FPS: %03d"
msgstr ""
msgid "File Logging:"
msgstr "LOG"
msgid "Filters:"
msgstr "FILTRY"
msgid "Free Ram: %s KBytes"
msgstr "WOLNY RAM: %s KBytes"
msgid "Frequency:"
msgstr "FREKWENCJA"
msgid "Full"
msgstr "PELNY"
msgid "Fullscreen Type:"
msgstr "RODZAJ PELNEGO EKRANU"
msgid "GAME OVER"
msgstr "KONIEC GRY"
msgid "GFX Filters:"
msgstr "FILTRY GRAFIKI"
msgid "Game Mode"
msgstr "TRYB GRY"
msgid "GamePads Disabled"
msgstr "PADY WYLACZONE"
msgid "GamePads Enabled"
msgstr "PADY WLACZONE"
msgid "Gamma:"
msgstr "GAMMA:"
msgid "Guide R/L Thumbsticks"
msgstr ""
msgid "Hall Of Fame"
msgstr "NAJLEPSZE WYNIKI"
msgid "How To Play"
msgstr "JAK GRAC"
msgid "Infinite Credits Off"
msgstr "NIESKONCZONOSC KREDYTOW TAK"
msgid "Infinite Credits On"
msgstr "NISKONCZONOSC KREDYTOW NIE"
msgid "Infinite Health Off"
msgstr "NIESKONCZONOSC ENERGII NIE"
msgid "Infinite Health On"
msgstr "NIESKONCZONOSC ENERGII TAK"
msgid "Infinite Lives Off"
msgstr "NIESKONCZONOSC ZYC NIE"
msgid "Infinite Lives On"
msgstr "NIESKONCZONOSC ZYC TAK"
msgid "Level:"
msgstr "LEVEL:"
msgid "Life bonus"
msgstr "BONUS ZYCIA"
msgid "Load Game"
msgstr "WCZYTAJ GRE"
msgid "Load Settings From Default.cfg%s"
msgstr "WCZYTAJ USTAWIENIA Z Default.cfg%s"
msgid "Loading..."
msgstr "WCZYTYWANIE..."
msgid "Mode:"
msgstr "TRYB:"
msgid "Music Volume:"
msgstr "GLOSNOSC MUZYKI:"
msgid "New Game"
msgstr "NOWA GRA"
msgid "No"
msgstr "NIE"
msgid "Not Found!"
msgstr "NIE ZNALEZIONO!"
msgid "Nunchuk Analog Disabled"
msgstr "NUNCHUK ANALOG WYLACZONY"
msgid "Nunchuk Analog Enabled"
msgstr "NUNCHUK ANALOG WLACZONY"
msgid "OK"
msgstr "OK"
msgid "Off"
msgstr "WYLACZONE"
msgid "On"
msgstr "WLACZONE"
msgid "OpenGL"
msgstr ""
msgid "Options"
msgstr "OPCJE"
msgid "Overscan:"
msgstr "OVERSCAN"
msgid "PRESS START"
msgstr "ZACZNIJ GRE"
msgid "Pause"
msgstr "PAUZA"
msgid "Player %i"
msgstr "GRACZ %i"
msgid "Player Lives:"
msgstr "GRACZ ZYCIA:"
msgid "Players:"
msgstr "GRACZE:"
msgid "Please Wait"
msgstr "PROSZE CZEKAC"
msgid "Preserve Aspect Ratio"
msgstr "ZACHOWAJ PROPORCJE"
msgid "Press R/L Thumbsticks"
msgstr ""
msgid "Press Start"
msgstr "ZACZNIJ GRE"
msgid "Quit"
msgstr "WYJDZ"
msgid "Ready!"
msgstr "GOTOWY!"
msgid "Restore OpenBoR Defaults%s"
msgstr "WCZYTAJ USTAWIENIA Defaults%s"
msgid "Rush Bonus"
msgstr "SZYBKI BONUS"
msgid "SDL"
msgstr ""
msgid "SFX Volume:"
msgstr "GLOSNOSC GLOSU"
msgid "Save Settings To Default.cfg%s"
msgstr "ZAPISZ USTAWIENIA DO Default.cfg%s"
msgid "Saved File:"
msgstr "ZAPISANY PLIK:"
msgid "Screen Size:"
msgstr "ROZMIAR EKRANU:"
msgid "Screen:"
msgstr "EKRAN:"
msgid "Select Hero"
msgstr "WYBIERZ BOHATERA"
msgid "Setup Player 1..."
msgstr "USTAWIENIA GRACZA 1..."
msgid "Setup Player 2..."
msgstr "USTAWIENIA GRACZA 2..."
msgid "Setup Player 3..."
msgstr "USTAWIENIA GRACZA 3..."
msgid "Setup Player 4..."
msgstr "USTAWIENIA GRACZA 4..."
msgid "Show Titles:"
msgstr "POKAZ TYTULY:"
msgid "Simple"
msgstr "PROSTE"
msgid "Sound Options"
msgstr "OPCJE DZWIEKU"
msgid "Sound Options..."
msgstr "OPCJE DZWIEKU..."
msgid "Sound Volume:"
msgstr "GLOSNOSC DZWIEKU:"
msgid "Stage %i Complete!"
msgstr "POZIOM %i UKONCZONY!"
msgid "Stage"
msgstr "POZIOM"
msgid "Stage:"
msgstr "POZIOM:"
msgid "Start Game"
msgstr "ZACZNIJ GRE"
msgid "Stretch to Screen"
msgstr "ROZCIAGNIJ EKRAN"
msgid "System Options"
msgstr "OPCJE SYSTEMOWE"
msgid "System Options..."
msgstr "OPCJE SYSTEMOWE..."
msgid "TIME OVER"
msgstr "KONIEC CZASU"
msgid "Total RAM:"
msgstr "CALKOWITY RAM:"
msgid "Total Ram: %s KBytes"
msgstr "CALKOWITY RAM: %s KBytes"
msgid "Total Score"
msgstr "WSZYSTKIE PUNKTY"
msgid "Used RAM:"
msgstr "ZUZYTY RAM"
msgid "Used Ram: %s KBytes"
msgstr "ZUZYTY RAM: %s KBytes"
msgid "Versus Damage:"
msgstr "UDERZANIE 2 GRACZA:"
msgid "Video Backend:"
msgstr ""
msgid "Video Options"
msgstr "OPCJE VIDEO"
msgid "Video Options..."
msgstr "OPCJE VIDEO..."
msgid "Window Offset:"
msgstr "WYSOKOSC OKNA:"
msgid "Window"
msgstr "OKNO"
msgid "Yes"
msgstr "TAK"
 
You placed the translation.txt inside data before you pak it right? I'm trying it now, because as I saw it in the source, it does use the pak mechanism to check if the translation.txt is present in data:

Code:
    if(buffer_pakfile("data/translation.txt", &buf, &size) != 1)
    {
        return 0;
    }
 
@bWWd, tried what I said, putting the translation.txt on the data folder before pak-ing, works. Even using your translation.txt.
 
Ok ive got it working too, it didnt work for me before but maybe it was my fault i dont know, anyway im glad it works :) thanks for help
 
So things have been a bit hectic for me since I started a new job last week, but I've somehow found the time to work a bit on WebM decoding. I've been rewriting my hacked-together video player from before, this time with proper multithreading and A/V sync. Hopefully it will all come together nicely and I can work on integrating it into OpenBOR. Multithreading will require platform-specific code, but I've already written (untested) implementations for the SDL and Wii backends.

Actually, having multithreading available on every platform could open up some new possibilities other than video decoding. I'll have to think about that. :)
 
Multithreading will seem pretty useful actually outside of video. Does multithreading also be implemented and/or goes hand and hand with the other OpenBOR components (eg. graphics and script calls)? I know it affects performance and it might improve it (as well as it is untested), but does it have specific hardware requirements for this or does it theoretically work on most if not all platforms that OpenBOR is currently available from?

And also good luck with your OpenBOR video integration
 
CRxTRDude said:
Multithreading will seem pretty useful actually outside of video. Does multithreading also be implemented and/or goes hand and hand with the other OpenBOR components (eg. graphics and script calls)? I know it affects performance and it might improve it (as well as it is untested), but does it have specific hardware requirements for this or does it theoretically work on most if not all platforms that OpenBOR is currently available from?

It's not as useful as it sounds.  There aren't many things in OpenBOR that could be significantly improved by rewriting them to use multiple threads.  The only thing I can think of is that we could support fancier (animated or interactive) loading screens if we offloaded the actual loading to a separate thread.

CRxTRDude said:
Does multithreading also be implemented and/or goes hand and hand with the other OpenBOR components (eg. graphics and script calls)?

Sorry, but I don't understand what this sentence is trying to say.

CRxTRDude said:
I know it affects performance and it might improve it (as well as it is untested), but does it have specific hardware requirements for this or does it theoretically work on most if not all platforms that OpenBOR is currently available from?

Every platform we've ever supported (except for maybe DOS, which was dropped almost a decade ago) has some kind of threading API available.  The thing is, many of those platforms have their own thread APIs, so it's another thing that backends have to handle.  Fortunately, though, it's one of the things abstracted by SDL, so that eliminates the complexity for a lot of platforms including Android and Dreamcast.
 
Plombo said:
Sorry, but I don't understand what this sentence is trying to say.

No worries though, you already answered it in the first part of your reply anyway. What I meant is since multithreading involves putting things into multiple threads does it also improve the performance of graphics and script as well (or maybe helps over these parts of the engine, thereby improving them), but since you said that nothing changes significantly when doing multithreading, this question would then be false.

For the loading screen part, that is still a nice idea and I see some things that you might potentially do as well, such as unloading things that aren't needed by a level or something like that while on loading. (It might take more advanced scripting, but that is something that can be done am I right?)

If that's just what it can do so far, I'm not against it. But if there's something that can be of use on multithreading other than video and loading screens, I'm all ears as well.

Finally, you're right too that multithreading certain aspects of OpenBOR is a lot of work that can even make it worse than better. I imagined it though as being Chrome, but I usually forget that it's separated processes and not threads and it's another string of problems altogether.
 
I made some progress on the video player today.  It now runs with perfect A/V sync in 4 threads - in addition to the main thread (responsible for handling input events and displaying frames) and the audio callback thread, there's one thread each for demuxing and video decoding.  A lot of small things still need doing before I can start to integrate it into OpenBOR, but it's getting there. :)
 
Plombo said:
I made some progress on the video player today.  It now runs with perfect A/V sync in 4 threads - in addition to the main thread (responsible for handling input events and displaying frames) and the audio callback thread, there's one thread each for demuxing and video decoding.  A lot of small things still need doing before I can start to integrate it into OpenBOR, but it's getting there. :)

great news ! so what video formats will be supported ?
 
msmalik681 said:
great news ! so what video formats will be supported ?

Just WebM (VP8 video, Vorbis audio).  Having one format keeps things as simple as they can be.
 
Great, i had some gif animations taking up so much space and it was hard to sync sound, this will help a lot.
 
Video players are hard.  The "perfect" A/V sync I mentioned a few posts up?  It turned out to be not so perfect at 60 frames per second.  It was synchronizing the video to the audio clock, and the audio clock was updating less than 60 times per second, leading to choppy video.  Now I'm synchronizing the video to a high-resolution timer provided by the underlying platform.  The audio will be synced to the same timer, and that should finally be it for A/V sync.

Of course, high-resolution timers are something that every platform has its own way of doing, and SDL 1.2 doesn't support them at all.  Good thing I ported OpenBOR to SDL 2.0 a while back!  Looks like we'll have to flip the switch to actually enable it in builds before video support can land.  It's an overdue change anyway. ;)

On the plus side, software YUV->RGB conversion is working now for both 16-bit and 32-bit RGB color, so that can be checked off the list.
 
I believe it was in the summer of 2013.  Whenever it was, it was after the official release of SDL 2.0, so the code should still work fine with newer versions. :)
 
Back
Top Bottom