Working on a 3DS Port

hum, it does, unless I uploaded the wrong one. I’ll check.
EDIT: Just tested, yes it works.

[quote=“gnmmarechal”][quote=“Ghabry”]@Rinnegatamante
does jenkins offer direct links? Because I made a script for LPP-3DS to update the 3dsx directly on the 3DS, and it gets it from my server. It’d be awesome if the file had a static link. Or, I could keep updating the file on my server myself even after it’s merged (?). If it had a static link I’d be able to just point the updater to the 3DSX file.[/quote][/quote]

Yes, it allows hotlinking of files. I’ll tell you the URL when everything is set up.
It also provides an API to request build information, so you can detect when the version was published.

The main URL is easy-rpg.org/jenkins/ . So you should make sure first that the 3DS can handle the encrypted https connection.

[quote=“Ghabry”][quote=“gnmmarechal”][quote=“Ghabry”]@Rinnegatamante
does jenkins offer direct links? Because I made a script for LPP-3DS to update the 3dsx directly on the 3DS, and it gets it from my server. It’d be awesome if the file had a static link. Or, I could keep updating the file on my server myself even after it’s merged (?). If it had a static link I’d be able to just point the updater to the 3DSX file.[/quote][/quote]

Yes, it allows hotlinking of files. I’ll tell you the URL when everything is set up.
It also provides an API to request build information, so you can detect when the version was published.

The main URL is easy-rpg.org/jenkins/ . So you should make sure first that the 3DS can handle the encrypted https connection.[/quote]

I’ve recently added SSL support to lpp-3ds:
github.com/Rinnegatamante/lpp-3 … 89bc5e9138
github.com/Rinnegatamante/lpp-3 … d238652c10

Tested again,Link’s Awakening loads, but this is the only one I tested that works,
yumenikki, Grimm Advanture, ruina,nocturne,Princess heart ,all these freeze when loading,
And I can’t seem to find what happened, because the debug information is now covered by the keyboard.

Edit:Well,I think I find the reason now,it is the RTP file,now FullPackageFlag=1 is required.

The debug output is also written to easyrpg_log.txt

[quote=“Rinnegatamante”][quote=“Ghabry”][quote=“gnmmarechal”][quote=“Ghabry”]@Rinnegatamante
does jenkins offer direct links? Because I made a script for LPP-3DS to update the 3dsx directly on the 3DS, and it gets it from my server. It’d be awesome if the file had a static link. Or, I could keep updating the file on my server myself even after it’s merged (?). If it had a static link I’d be able to just point the updater to the 3DSX file.[/quote][/quote]

Yes, it allows hotlinking of files. I’ll tell you the URL when everything is set up.
It also provides an API to request build information, so you can detect when the version was published.

The main URL is easy-rpg.org/jenkins/ . So you should make sure first that the 3DS can handle the encrypted https connection.[/quote]

I’ve recently added SSL support to lpp-3ds:
github.com/Rinnegatamante/lpp-3 … 89bc5e9138
github.com/Rinnegatamante/lpp-3 … d238652c10[/quote]
Alright, I’ll update the Lua Player Plus used by the updater as soon as possible.

Alright, the 1.4.2 updater has LPP with SSL support. It also has autoupdates for itself, so it should update should any mandatory update be uploaded (aka critical updates with changes to URLs and stuff)

rinnegatamante.it/board/showthr … n=lastpost

BGMs are still buggy to me with pitch test using DSP (even when it’s called first time that it’s supposed to call BGM_Play.) :confused: Needs some checks, seems something got broken in dsp wrapper.

Already tried increasing secondary thread stack size to arbitrary values (64KB,512KB,1MB,5MB) but nothing changed.
I’ve also tried to increase arbitrary sleep time and it also doesn’t change the problem.
I’m currently out of ideas :confused:

@Rinnegatamente : I finally got a N3DS so I can do much more tests. :slight_smile:
BGM through csnd works?

[quote=“UltiNaruto”]@Rinnegatamente : I finally got a N3DS so I can do much more tests. :slight_smile:
BGM through csnd works?[/quote]

As i said before, there are also some problems with csnd too, looks like when a BGM is highpitched (like samplerate became > 44100), audio thread is not fast enough to update bgm buffer, resulting in broke audio.

Also calling BGM_Pitch seems to mess up with pause/resume on csnd (on dsp it works fine).

Seems like romfs support is not working. If i try to store a game in romFs i get this fatal error from the player:

"Error:
romfs:/ is not a valid path

EasyRPG Player will close now.
Press [ENTER] KEY TO EXIT…"

@Ghabry , any info on why this happens?

That’s the change i made weeks ago about this: github.com/Rinnegatamante/easyr … dfd78f540a

Log:

[2011-03-14 22:18:34] Debug: csnd:SND has been selected as audio service. [2011-03-14 22:18:34] Debug: EasyRPG Player 0.4.1 started [2011-03-14 22:18:34] Debug: ============================ [2011-03-14 22:18:34] Debug: CLI: [2011-03-14 22:18:34] Debug: Detected a project on romFs filesystem... [2011-03-14 22:18:34] Error: romfs:/ is not a valid path

I noticed it could be caused by some problem in FileFinder not correctly getting directory tree. This is romFs support for stdio:

EDIT: I’ve also tried to update libctru but now i get this error during compilation:

c:/Users/Alessio/Desktop/Repositories/easyrpg-player-3ds/src/filefinder.cpp:626:50: error: request for member 'attributes' in 'sdmc_dir->sdmc_dir_t::entry_data', which is of non-class type 'FS_DirectoryEntry [32]' bool is_directory = sdmc_dir->entry_data.attributes & FS_ATTRIBUTE_DIRECTORY;

The only ways to get this error is when Exists or IsDirectory fail. One of them calls “stat” the other uses “opendir”.
Assuming that stat and opendir return the correct results this should work.

About the compile error: Remove the #ifdef _3DS cases. The normal Code will work in GetDirectoryMembers (tested this)

Still same error. Maybe i messed something with the FileFinder code: pastebin.com/hTMmmPbf
romFs sould be able to correctly list directories so :confused:

Finder looks okay. Could you make two simple tests in a simple homebrew?

Try calling opendir(“romfs:/”) and check if it returns a handle.
And also “::access(filename.c_str(), F_OK) != -1;” if this is true.

[quote=“Ghabry”]Finder looks okay. Could you make two simple tests in a simple homebrew?

Try calling opendir(“romfs:/”) and check if it returns a handle.
And also “::access(filename.c_str(), F_OK) != -1;” if this is true.[/quote]

How should i test the second thing? O.o

For opendir, this code resulted in success! being printed:

[code]int main()
{
gfxInitDefault();
consoleInit(GFX_TOP, NULL);

Result rc = romfsInit();
if (rc)
	printf("romfsInit: %08lX\n", rc);
else
{
	printf("romfs Init Successful!\n");
	DIR* a = opendir("romfs:/");
	if (a != NULL) printf("success!\n");
	else printf("failure...\n");
}

// Main loop
while (aptMainLoop())
{
	gspWaitForVBlank();
	hidScanInput();

	u32 kDown = hidKeysDown();
	if (kDown & KEY_START)
		break; // break in order to return to hbmenu
}

romfsExit();
gfxExit();
return 0;

}[/code]

Oh sorry. My fault, was a quick copy-paste and I didn’t think it through…

#include <unistd.h>

printf("%d", access("romfs:/", F_OK) != -1);

[quote=“Ghabry”]Oh sorry. My fault, was a quick copy-paste and I didn’t think it through…

[code]
#include <unistd.h>

printf("%d", access(“romfs:/”, F_OK) != -1);
[/code][/quote]

resulted in 0 being printed.

This means the access function is not reliable on the 3DS. It should return true.

Try the GEKKO codepath in “Exists”: github.com/Rinnegatamante/easyr … r.cpp#L548 which uses stat

Already tried and i got the same error. I’ve uploaded on the repository a buildscript to generate a CIA file with game in romFs if you want to give it a try: github.com/Rinnegatamante/easyr … uildscript

I managed to temporary solve the Fatal error with a pretty bad workaround but that works good and produces no slowdowns on 3dsx but now CIA just autoexits instantly without giving me any error (log is clear also). :confused:

Does EasyRPG Player try to write/modify files on Project Path? (Since romFs is a read-only filesystem).