Views: 6,857,586 Homepage | Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search 04-19-24 12:06 PM
Guest:

Main - Posts by Arisotura

Pages: 1 2 3 4 5 ... 7 8 9 10 11 12 13 14 15 ... 41 42 43 44 45
Arisotura
Posted on 09-04-18 07:13 PM, in D-Pads help Link | #650
does your joystick have multiple dpads? melonDS is set to use the first one.

____________________
Kuribo64

Arisotura
Posted on 09-07-18 09:39 AM, in D-Pads help Link | #653
that's not how the config works, those entries only take numbers

for reference, here is how they are encoded:

Joy_xxxx=N

button: N = button number from 0

dpad: N = 256 + direction, like

u8 blackhat = SDL_JoystickGetHat(joy, 0);
if (blackhat)
{
if (blackhat & 0x1) blackhat = 0x1;
else if (blackhat & 0x2) blackhat = 0x2;
else if (blackhat & 0x4) blackhat = 0x4;
else blackhat = 0x8;

joymap[id] = 0x100 | blackhat;

...
}



something that'd be helpful here, would be

go in the config panel and open the properties page for your joystick, y'know, where it shows the buttons and axes and all

and take a screenshot of that

so we can see what your dpad is recognized as

____________________
Kuribo64

Arisotura
Posted on 09-07-18 02:05 PM, in D-Pads help Link | #655
yeah that's what I thought-- the dpad is recognized as a 2-axis joystick.

seeing as that's the only one there, you can just leave directional keys unconfigured-- melonDS recognizes a 2-axis joystick automatically and lets you use that for dpad keys.

____________________
Kuribo64

Arisotura
Posted on 09-07-18 02:50 PM, in D-Pads help Link | #657
shiiiiiiiiiiiit

I just realized, my code is flawed in a dumb way

if (Joystick)
{
SDL_JoystickUpdate();

Uint32 hat = SDL_JoystickGetHat(Joystick, 0);
Sint16 axisX = SDL_JoystickGetAxis(Joystick, 0);
Sint16 axisY = SDL_JoystickGetAxis(Joystick, 1);

for (int i = 0; i < 12; i++)
{
int btnid = Config::JoyMapping[i];
if (btnid < 0) continue;

bool pressed;
if (btnid == 0x101) // up
pressed = (hat & SDL_HAT_UP) || (axisY <= -16384);
else if (btnid == 0x104) // down
pressed = (hat & SDL_HAT_DOWN) || (axisY >= 16384);
else if (btnid == 0x102) // right
pressed = (hat & SDL_HAT_RIGHT) || (axisX >= 16384);
else if (btnid == 0x108) // left
pressed = (hat & SDL_HAT_LEFT) || (axisX <= -16384);
else
pressed = SDL_JoystickGetButton(Joystick, btnid);

if (pressed) joymask &= ~(1<<i);
}
}

blarg. joystick axis will only work if an actual dpad has been mapped


anyway, you can fix it by hand-editing the config file, like

Joy_Right=258
Joy_Left=264
Joy_Up=257
Joy_Down=260

let me know if that works

____________________
Kuribo64

Arisotura
Posted on 09-07-18 03:11 PM, in D-Pads help (rev. 2 of 09-07-18 03:12 PM) Link | #659
in the joystick property dialog, see if pressing the dpad directions yields the correct result

'cause otherwise that'd be weird. maybe it's returning values that fall below the thresholds melonDS uses. (the threshold value in the code above is 16384 which is 50% of the range in one direction)

____________________
Kuribo64

Arisotura
Posted on 09-08-18 10:23 AM, in How do I do multiplayer? Link | #662
Posted by Videogamer555
I want to have 2 instances of the emulator running on my PC, and establish a link between them, so that I can play multiplayer games.

that's how it works. just run two instances, the games should find eachother and connect without having to do much more.

that being said, it might or might not work-- not all games work.

____________________
Kuribo64

Arisotura
Posted on 09-09-18 02:08 PM, in How do I do multiplayer? (rev. 3 of 09-10-18 12:08 PM) Link | #664
https://github.com/StapleButter/melonDS/blob/master/src/libui_sdl/Platform.cpp#L181

it's not a hack, the 'all instances using the same port' bit is how it's meant to work. the idea is that all running instances can participate into multiplayer games without requiring emu-side config. that being said, you brought to my attention that the multicast implementation there is flawed. nah, we're doing broadcast and that's fine

that being said, I'm still pretty sure most of the issues with wifi connection are due to the incomplete emulation of the DS wifi device, esp. its multiplayer features. and also the insane rates at which data frames are sent during multiplayer. to give you an idea: this blog post describes well how the shito works.

____________________
Kuribo64

Arisotura
Posted on 09-12-18 08:55 PM, in No Access Point in Range Link | #667
wifi in 0.6b doesn't emulate an access point, it's only for local multiplayer


also, which kind of console is your firmware from? DSi/3DS firmware dumps aren't bootable.

____________________
Kuribo64

Arisotura
Posted on 10-15-18 11:00 AM, in Compilation errors on Windows Link | #676
unfinished shito which I apparently didn't finish or test

try an older revision, for now

____________________
Kuribo64

Arisotura
Posted on 10-15-18 01:44 PM, in Compilation errors on Windows Link | #678
seems to work? I'm not seeing any error within that blob, only warnings.

____________________
Kuribo64

Arisotura
Posted on 10-16-18 11:55 PM, in No Access Point in Range Link | #681
which is unfinished btw

main issue with it is that due to the way it works, it only works over a wired connection

I looked into forwarding/redirecting DHCP frames so it'd work over wireless too, but without great success. the only thing that worked was kind of a hack.

____________________
Kuribo64

Arisotura
Posted on 10-18-18 12:00 PM, in Fix compiling for Windows Link | #682
adding more precision might help


regardless, try the latest revision, there were errors that have been fixed

____________________
Kuribo64

Arisotura
Posted on 10-18-18 12:01 PM, in Pokemon HeartGold (Trade problem) Link | #683
copy your ROM to another folder (or a different filename)

a bit sucky but for now that will do the trick

____________________
Kuribo64

Arisotura
Posted on 10-22-18 03:20 PM, in Compilation errors on Windows (rev. 2 of 10-22-18 03:21 PM) Link | #687
ideally I should apply the same fix to the cmakelists, but dunno -- it appears it includes usp10 but not gdi32, which is odd.

(for reference, the error happened because usp10 needs to be linked before gdi32)

whatever. RicBent is reworking the build system anyway.

____________________
Kuribo64

Arisotura
Posted on 10-25-18 06:31 PM, in Communication Tests Link | #691
Posted by Wifall
Also, one concern I got is: Is it possible for exchanged data to get corrupt( like a trade on Pokémon) due to packet/communication loss?

depends on how well coded the game is.

but generally there's some data loss in the client->host direction. host->client seems to work fine.

____________________
Kuribo64

Arisotura
Posted on 10-25-18 07:04 PM, in Communication Tests Link | #693
one seems to be reading from a DSi I/O port for some reason

the other one seems to be the host. the 'unusual bits C000' happens every once in a while, presumably when there are errors but not always. not quite sure what are the effects hardware wise.

____________________
Kuribo64

Arisotura
Posted on 10-26-18 09:08 PM, in melonDS 0.7 Link | #695
melonDS 0.7 is out!

This release savestates and some other things.

The full changelog is below.


• fix possible crashes when exiting
• wifi: add basic access point melonAP (very beta)
• fix SMULWx/SMLAWx opcodes, fixes Sims 2 music
• add support for loading BIOS/firmware files and config file from AppData or ~/.config/melonds or from the executable directory (hcorion)
• add 32-bit IPCSYNC reads/writes (Dirbaio)
• add savestates
• 3D: (hopefully) fix bug in shadow/AA interaction (visible in the MKDS character select preview, bottom border of the platform thing)


pile of copypasta

[image]

How to use

melonDS requires BIOS/firmware dumps from a DS. You can dump them with the following dumper.

The files must be placed in the same directory as the melonDS executable, as follows:

* bios7.bin -- ARM7 BIOS, 16KB
* bios9.bin -- ARM9 BIOS, 4KB
* firmware.bin -- firmware, 128KB, 256KB or 512KB

Note: the DS-mode firmwares in the 3DS and DSi aren't bootable. They only contain the bare minimum required to run DS games. Be sure to enable direct game boot when using such firmware dumps.

Settings

Emulation: settings related to emulation. For now it lets you enable direct game boot (directly runs the game instead of going through the firmware) and the threaded 3D renderer.

There's also a wifi-related setting (which only ended up there because I'm lazy and I need to redo the UI). You should try toggling it if you have trouble getting multiplayer working.

Input: allows you to configure keyboard and joystick input. You can change a mapping by clicking the corresponding entry, then pressing a keyboard key or joystick button. For now, joystick input uses the first joystick available if multiple joysticks are plugged.

Savestate settings: for now, whether to save to a separate savefile after loading a savestate.

Screen rotation: lets you rotate the screens, for games that ask you to hold your DS sideways.

Screen gap: sets a gap between the screens.

Screen layout: natural (screens always stacked on top of eachother), vertical (screens always laid out vertically), horizontal (always laid out horizontally).

Screen sizing: even (both screens get the same size), emphasize top (bottom screen is kept at native resolution), emphasize bottom, auto (tries to determine which screen to emphasize)

Screen filtering: enables linear filtering when the screens are scaled.

If your game fails to save

Check the size of the savefile. melonDS can, in some circumstances, misdetect the save memory type.

Save memory type detection is done only when no existing savefile is present.

If you provide an existing savefile with the correct size, melonDS will use the correct save memory type and saving should work properly.


Downloads

* Windows 64-bit
* Linux 64-bit


If you feel generous

melonDS Patreon


Have fun! :D

____________________
Kuribo64

Arisotura
Posted on 10-27-18 10:38 AM, in MelonDS speed Link | #697
does your CPU have multiple cores? if so, that's why. melonDS uses two threads at most to do the heavy lifting (CPU/emulator and 3D renderer).

____________________
Kuribo64

Arisotura
Posted on 10-27-18 10:48 AM, in MelonDS speed Link | #699
hard to say without knowing the clock speed.

regardless, melonDS might not be using it fully because there will be one core doing more work than the other. it's inherent to how emulation works.

____________________
Kuribo64

Arisotura
Posted on 10-27-18 11:14 AM, in melonDS 0.7 (rev. 2 of 10-27-18 11:15 AM) Link | #702
it doesn't use the GPU so I doubt that's in cause except for drawing the final screen, but huh, 'd be weird af if that crashed

anyway, that's weird

do older builds still run fine even when downloaded fresh?

____________________
Kuribo64
Pages: 1 2 3 4 5 ... 7 8 9 10 11 12 13 14 15 ... 41 42 43 44 45

Main - Posts by Arisotura

Page rendered in 0.156 seconds. (2048KB of memory used)
MySQL - queries: 22, rows: 109/109, time: 0.021 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.