easyrpg / player Goto Github PK
View Code? Open in Web Editor NEWRPG Maker 2000/2003 and EasyRPG games interpreter
Home Page: https://easyrpg.org/player/
License: GNU General Public License v3.0
RPG Maker 2000/2003 and EasyRPG games interpreter
Home Page: https://easyrpg.org/player/
License: GNU General Public License v3.0
If in rpg maker 2003 exist this in an event in parallel process
Label 1
Call to label 1
The game works fine (maybe is no good to use but don't appear any problem)
If in easyrpg player this appear all freeze and you need close the player
Jenkins build failed:
https://ci.easyrpg.org/job/Player-PSP/42/console
Simple Example script:
Teleport to Map0002
Move Event: EV0001 (on Map0001)
Result:
RPG2k: Error message invalid event
EasyRPG: Crash (should be warning message with information about event)
This happens in the "door selection room" after entering the dream in Yumme Nikki.
It's reported that this also happens in other games like "Dragon Slayer Gaiden"
Possible that its not only related to tilesets, but havnt seen this yet with other graphics.
This is not caused by a "file not found" issue. Player terminates since 0.1 when an image is missing.
Doxygen is not parsing well comments like this:
/////////////////////////////////////////////////////////////////////////////
Because at least /// triggers Doxygen.
RGSS does:
#==============================================================================
# ** Class_Name
#------------------------------------------------------------------------------
# This class does something,
# etc. Refer to "$class_name" for the instance of this class.
#==============================================================================
class Class_Name
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
We should go as we already made for Readers:
/*
* License header
*/
// Non-doxygen comments
/** one line doxygen comments (for vars and enum members) */
/**
* Multi-line doxygen comment
*
* @param foo bar
* @param bar baz
*/
Blathers was so kind to provide a list of the glyphs used in the japanese RPG Maker input dialog:
http://i.imgur.com/LJB4q.png
Katakana:
ア イ ウ エ オ ガ ギ グ ゲ ゴ
カ キ ク ケ コ ザ ジ ズ ゼ ゾ
サ シ ス セ ソ ダ ヂ ヅ デ ド
タ チ ツ テ ト バ ビ ブ ベ ボ
ナ ニ ヌ ネ ノ パ ピ プ ペ ポ
ハ ヒ フ ヘ ホ ァ ィ ゥ ェ ォ
マ ミ ム メ モ ッ ャ ュ ョ ヮ
ヤ ユ ヨ ワ ン ー ~ ・ ゠ ☆
ラ リ ル レ ロ ヴ
Hiragana:
あ い う え お が ぎ ぐ げ ご
か き く け こ ざ じ ず ぜ ぞ
さ し す せ そ だ ぢ づ で ど
た ち つ て と ば び ぶ べ ぼ
な に ぬ ね の ぱ ぴ ぷ ぺ ぽ
は ひ ふ へ ほ ぁ ぃ ぅ ぇ ぉ
ま み む め も っ ゃ ゅ ょ ゎ
や ゆ よ わ ん ー ~ ・ ゠ ☆
ら り る れ ろ ヴ
When you're walking in rpg maker 2003, in every step it show "right frame and center frame" "left frame and center frame" etc, in easy rpg every step show every frame alone,
for example in 2k3
step 1- left frame and center frame
step 2- right frame and center frame
step 3- left frame and center frame
in easy
step 1- left frame
step 2- center frame
step 3- right frame
As the title says.
There is some strange problem in the FileFinder. It crashes the player when Save01.lsd is missing.
The same happens when the database is missing so this seams to be a general problem with the finder?
The player only loads the first font it finds via the file finder.
Maybe it would be useful to load the other fonts too so you can get proper japanese rendering when the first loaded font does not contain any japanese glyphs. ;)
Not sure if Freetype has a fallback already implemented but its likely that it has one...
If you put an event to jump with this
stop animation
don't move direction
move character
start jump
up
up
down
down
stop jump
in 2k3, the event jump and make well the animation.
in easy the event move up 2 tiles, and go down 2 tiles, like if no
"stop animation" "don't move direction" "start jump" existed
The Show Choice command always only detects if the first option was selected.
If another option was select
Bug is in:
Game_Interpreter::ContinuationChoices
Seams to be related to the which-variable.
To test it try just open a choice Dialog and select the 2nd option. The Choice Dialog will reopen...
(assign to me)
Resuming an old scene on the stack causes the Start()-Function not to be called (thats on purpose).
But the Title Scene uses the Start-Function to Reset the Data on a game reset. So the Data is never cleared. Thats bad because switches and variables are not reset e.g.
Two ways to fix this:
Clear the stuff in function resume (but this is called after TransitionIn, is this a problem?) or introduce a new function that is called on a Scene resume before TransitionIn (any suggestion for naming?).
2nd one is better imo. Maybe there are other scenes too that want to do stuff on Resume before fading in. How about "Continue"?
Reported by Blathers, thx.
After creating our first tag (0.1) "git describe" can be used to get a more readable revision number 0.1-### (where ### is the number of commits since 0.1).
The output of "git describe" should be written in some header file and then be included by player and e.g. displayed in the title bar.
This makes it easier for us to figure out which version somebody uses (Maybe also write it in the PNG-tEXT chunk under "Software" if he used our screenshot function and we cant see the title bar). And to detect if somebody made local changes (e.g. by adding an 'M' after the rev number)
You need to have player sprite orientation to the border. It looks like counter flag check gets some unexpected value.
In any case this check should be triggered because there is no events out of the map.
Output:
easyrpg-player: game_map.cpp:348: bool Game_Map::IsCounter(int, int): Assertion `tile_id >= 10000' failed.
1)Create a new game
2)Add a common event starting automaticly or in parallel
3)In this event, place the message “test”.
Expected behavior:
The message “test” should repeat endlessly.
Player.exe behavior:
No message is displayed.
Current documentation is incomplete. There are a lot of undocumented types or partially documented, without "param" or "return" values.
Detected a bug that decrease the FPS a lot:
Map without pictures: 60FPS
Map with a picture with 50 of magnification: 60FPS
Map with a picture with 100 of magnification: 60FPS
Map with a picture with 120 of magnification: 17FPS
Map with a picture with 200 of magnification: 7FPS
Map with a picture with 300 of magnification: 3FPS
Since fadeout is supported we need fadein.
If you remove a shield or a weapon, the item dissapear
http://img145.imageshack.us/img145/5099/63736398.png
The game uses a patched RPG_RT that adds support for MOD files (but with wave ending). SDL_mixer doesnt detect this correctly:
http://www.hellsoft.net/H5/index.php?option=com_remository&Itemid=54&func=fileinfo&id=677
Current design caches images and enables or disables image transparency from image type. However there are commands like show picture that allows to enable or disable this transparency after cache:
Well, the change screen color don't work, atleast in a auto, or parallel process
We already have a battle system by glynnc but it doesnt work well for RPG2k (has many bugs).
There is a report that binary from
Maybe specifying correct PSP_MAIN_THREAD_ATTR may fix.
Problem: in easyrpg player the window appear as transparent in title menu, in messages/menus there is no problem
When using RMG2000.fon (the 2nd font installed by the RPG Maker, RM2000.fon works fine) the Visual Studio Debugger reports a heap corruption.
Edit: This also happens when I move RM2000.fon in the Font folder, loading from C:\Windows\Fonts works fine. Maybe also file finder related?
Call stack:
PlayerD.exe!_CrtIsValidHeapPointer(const void * pUserData) Line 2036
PlayerD.exe!_free_dbg_nolock(void * pUserData, int nBlockUse) Line 1322
PlayerD.exe!_free_dbg(void * pUserData, int nBlockUse) Line 1265
PlayerD.exe!free(void * pUserData) Line 49
PlayerD.exe!pixman_image_unref(RPG::MoveRoute * image, int common, Game_Interpreter *) Line 210
PlayerD.exe!PixmanBitmap::~PixmanBitmap() Line 280
PlayerD.exe!PixmanBitmap::`scalar deleting destructor'(unsigned int)
PlayerD.exe!Text::Draw(Surface * dest, int x, int y, int color, std::basic_string<wchar_t, [...]> wtext, Surface::TextAlignment align) Line 160
PlayerD.exe!Surface::TextDraw(int x, int y, int color, std::basic_string<wchar_t, [...]> wtext, Surface::TextAlignment align) Line 800
PlayerD.exe!Surface::TextDraw(int x, int y, int color, std::basic_string<char, [...]> text, Surface::TextAlignment align) Line 806
PlayerD.exe!Window_Command::DrawItem(int index, Font::SystemColor color) Line 52
PlayerD.exe!Window_Command::Refresh() Line 45
PlayerD.exe!Window_Command::Window_Command(std::vectorstd::basic_string<char,[...]> commands, int width, int max_item) Line 38
PlayerD.exe!Scene_Title::CreateCommandWindow() Line 212
PlayerD.exe!Scene_Title::Start() Line 89
PlayerD.exe!Scene::MainFunction() Line 69
PlayerD.exe!Player::Run() Line 131
PlayerD.exe!SDL_main(int argc, char * * argv) Line 38
SDL_Mixer supports FluidSynth since version 1.2.12.
FluidSynth has better MIDI support than the forked version of Timidity used in SDL_Mixer.
We need it to support some MIDI effects made in RPG Maker, not supported by the basic Timidity:
Furthermore, FluidSynth supports SoundFonts, internal timidity only supports GUS Patches (.pat) and freepats package is incomplete and heavy. We can use a lighter, more complete, SoundFont. There is a enough good free SoundFont on major GNU/Linux distributions: TimGM6mb.sf2, from the musescore-soundfont-gm package, used by the great MuseScore music notation editor. Soundfont is 6 MB only, several times smaller than the incomplete freepats.
Fluidsynth command line parameters for less CPU and RAM usage:
Miscellaneous player tweaks:
Command line example:
fluidsynth \
--audio-bufcount 3 \
--audio-bufsize 8192 \
--audio-driver alsa \
--chorus no \
--reverb no \
-o audio.realtime-prio=0 \
--no-shell \
--no-midi-in \
/usr/share/sounds/sf2/TimGM6mb.sf2 \
Music/Battle1.mid
Results:
Use IF(GTK) instead. There are more platforms with native GTK support (BSD, Solaris...).
Title scene has some issues as seen in several games:
In map 1, create an event that teleport to map2 and then displays the text “priority test”.
RM2K behavior :
EasyRPG behavior :
GTK+ 2 and 3 are compatible with same code.
If there is an NPC with the option of "move without walk" (as the npcs in FF4 for example)
the npcs appear fixed and don't make any move
Like the title says. Is there is an invalid LSD file in the folder the Player crashes.
It compiles fine but when executing it, it crashes on start.
the Row/Colocar option in menu don't move the faceset right or left after be used like in normal rpg maker.
We simulate RPG_RT rendering by drawing glyph by glyph to get monospace for any font. This makes it easier to draw the system gradient and font shadow and you can calculate position of exfont easily.
But this approach is ultra slow.
Not noticable in Release Builds, but debug builds run extreme slow.
Maybe improve this by using a Cache?!
[assign to me]
When player executable is not in a game folder, allow to browse and load different games from the same executable, like ScummVM does.
This is important for systems without easy to edit file browser, like embedded devices.
A GUI design and a cross file system capable file browser implementation will be needed.
Rotation rotates around top left and not center. This looks funny but is wrong.
To proper emulate this key combination behavior used by RPG_RT even in fullscreen mode.
Current behavior:
EasyRPG Player - XX FPS
It should be:
Game Title - EasyRPG Player - XX FPS
Or maybe:
Game Title - XX FPS - EasyRPG Player
Toggle FPS hotkey is F2
Game title could be placed into application bar name if not being used, not only in window manager caption.
Game title is retrieved from GameTitle key from [executable name].ini, title on RPG_RT.lmt root node should be ignored.
When I enter in a map with this music it sound strange and make a big crash
http://dl.dropbox.com/u/22524283/temporal/20_EDMDEATH_.mp3
32kbits 11khz mono, maybe is the reason, in 2k3 works fine
The motivation of this is to stop annoying "press any key to continue" for every missing file.
Use shaded font to be readable on lighter scenes.
This feature should not be applied for error messages (with application exiting), use native message box where available to match RPG_RT behavior. On systems without native message boxes, use some readable text and press key before exit.
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.