4dsdev
Views: 613,450 Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search 11-19-17 02:46 PM
Guest:

0 users reading blargSnes -- SNES emulator for the 3DS | 1 bot

Main - Homebrew projects - blargSnes -- SNES emulator for the 3DS New reply

Pages: 1 2 3 4 5 ... 7 8 9 10 11 12 13 14 15 16
O-bake
Posted on 10-28-15 05:05 PM Link | #590
Posted by StapleButter
What does Retroarch's policy say regarding usage of ASM or non-portable things in emulator cores?

Honestly, I don't know. But retroarch gets optimized system-specific. It is running on a several systems with quite different hardware (Mac/PC, PS3, Wii, iOS, PSP, 3DS...)
So there have to be very specific optimizations. However, I am not involved in the project. I am just an enthusiastic user.

For progress regarding the 3DS port I follow this thread:
https://gbatemp.net/threads/retroarch-emulation-thread-nightly-builds-included.400913/

As far as I know, the user 'aliaspider' is doing the main work for the 3DS port right now and asks for feedback a lot in this thread. (n.b.: the thread was restarted a few days ago and there is a 200+ page older thread in the forums).

StapleButter
Posted on 10-28-15 10:30 PM Link | #596
zerp, there's actually concurrency to blargSNES now, gotta catch up :P

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

Bitzkrieg
Posted on 10-28-15 11:45 PM (rev. 2 of 10-28-15 11:45 PM) Link | #597
Posted by StapleButter
zerp, there's actually concurrency to blargSNES now, gotta catch up :P

Is good to see that you're back! also regarding retroarch, is being ported to the 3DS in general so, snes cores only runs good on N3DS, in O3DS runs like shit lmao but perhaps that those emus are very good (also, snes cores has special chips implemented)

aliaspider
Posted on 10-29-15 12:16 AM (rev. 2 of 10-29-15 12:18 AM) Link | #598
Posted by StapleButter
What does Retroarch's policy say regarding usage of ASM or non-portable things in emulator cores?

keeping the cores platform independent is certainly the highest priority, but there is nothing preventing ASM or non-portable code from being added for specific platforms or cpu architectures, by keeping it inside preprocessor directives and/or seperate files.
it is in fact encouraged to do so when it brings a noticeable gain in performance, especially for weak platforms like the 3DS or PSP.

ideally, asm code should also be accompanied by the equivalent C code, and gpu accelerated renderers should also have a software renderer variant.

this isn't a rule however, just a goal, a lot of core, like pcsx-reARMed for example, started as platform specific and only later became usable on a wider range of platforms.
there is even a core currenlty that is only usable on the PSP, which can hopefully be made more portable at some point.

StapleButter
Posted on 10-29-15 07:38 PM Link | #614
The hardware renderer in blargSNES does have its software equivalent, although they aren't really equivalent (hardware got features that software still lacks, and on the other hand hardware fails at things like midframe palette changes, etc).

The ASM parts however, well, only exist in ASM. The emulator was originally written for the DS so it was important to get it fast (and on the 3DS, it still counts).

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

aliaspider
Posted on 10-30-15 06:03 AM Link | #618
it is perfectly fine to make an ARM only core, and there is no obligation whatsoever to make it portable later.
there is already a wide range of devices that could benefit a lot from this, like cellphones, arm boards and the ps-vita for example.

StapleButter
Posted on 10-30-15 10:39 AM Link | #622
Indeed.

Now, most of these devices are powerful enough to run a Snes9x port, so... dunno.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

AliTheAce
Posted on 10-30-15 03:10 PM Link | #624
Posted by StapleButter
Okay. blargSNES may see an upgrade, depending on my motivation and... things. fincs has been doing a lot of reverse-engineering, enabling many new fun things.


It will be adapted to the great-refactor branch of ctrulib. (anyone remember 1.0->1.1 and the ctrulib branch switch it involved? living the old times again~)

The blargGL layer will need to be rewritten accordingly. The new GPU API is basically the minimum you need to use the GPU. blargGL will come on the top of that. Better understanding of the GPU also means it will be more performant.

I also want to rewrite the hardware renderer for better performance (and more manageable code). There are also new ideas from Discostew and me that are waiting to be implemented.


There will also be other changes unrelated to graphics.

New ctrulib features an API for using the DSP (along with an official binary), and the DSP is much better fitted to do proper sound streaming than CSND. Needed precisions will be given about which situations require obtaining a DSP binary yourself, and how to do it.

Oh and I hope to finally fix the SPC700 timing. If I manage to get it right, that will fix many issues, especially the "game works in version X but not Y" shit.




Before all that, there'll be a new build with minor fixes (fixed APT, and setting for New3DS overclock).


Would the new GPU API, DSP service, and the SPC700 timing fix get rid of some problems, like blackscreens after fading away? Eg: In FF3 (US), the game black screens when I go to sleep in a bed. I'm unable to wake up. (I have a save file played up to a certain point). Similarly, in Chrono Trigger, certain cutscenes cause blackscreens when they fade away, eg the Courtroom scene, and the screen does not wake up. The emulator is responsive, but the game does not respond.

If it matters, I'm using an O3DS on 9.9.0-26U, with Ironhax 2.1

javito
Posted on 10-30-15 09:10 PM Link | #627
the 1.3b posted on the oficial blargSNES download page does not have a cia to install it, can someone provide me with a link? cause the 1.3b that is in one on the previous pages everytime i install it and run it, doesnt work cause my 3ds hangs, iv tried to uninstall it and install it again but still the same, does anyone have any solution for this?

aliaspider
Posted on 11-01-15 01:05 AM Link | #636
Posted by StapleButter
Indeed.

Now, most of these devices are powerful enough to run a Snes9x port, so... dunno.

the ARM optimized code, and the fact that it has a fully working hardware accelerated renderer, even if it is limited to the 3DS currently, makes it quite competitive imho.

StapleButter
Posted on 11-03-15 09:50 PM Link | #673
Well, feel free to try making a libretro port if you want, I don't really have interest into that atm though.



In other news, trying to address the timing issues for release 1.4. I'm getting there, but not quite yet. I got Soul Blazer to run, and DKC2 seems stable too. FF games are still giving me trouble, though.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

Spacechipbeta
Posted on 11-03-15 10:24 PM Link | #675
Posted by StapleButter
Well, feel free to try making a libretro port if you want, I don't really have interest into that atm though.



In other news, trying to address the timing issues for release 1.4. I'm getting there, but not quite yet. I got Soul Blazer to run, and DKC2 seems stable too. FF games are still giving me trouble, though.


Hello man,

First of all, thanks for your amazing work.

Now, can you please could test with Super Bomberman? It is all good?

Thanks again, man! Keep the great work.

AliTheAce
Posted on 11-03-15 10:28 PM Link | #676
Posted by StapleButter
Well, feel free to try making a libretro port if you want, I don't really have interest into that atm though.



In other news, trying to address the timing issues for release 1.4. I'm getting there, but not quite yet. I got Soul Blazer to run, and DKC2 seems stable too. FF games are still giving me trouble, though.

I see. Thank you for your hard work.

May I ask which FF games are giving you trouble? So far, only FFIII/FFVI are giving me trouble, with the fading black screens, and minor slowdown when a battle starts.

What is the part which prevents the emulator from drawing the textures and sprites after going to sleep in FFVI/III? Does it have something to do with the GpuFlush code, or is it SPC700 timing?

StapleButter
Posted on 11-04-15 08:52 PM (rev. 3 of 11-04-15 10:44 PM) Link | #684
dunno about others, I'm working on FF6

there's that timing issue with SPC data upload that causes garbled sound, but it's unrelated to the freeze


on the plus side, I found why it freezes: there's a tight loop polling $4210, waiting for a NMI. The trick is that the NMI flag there is reset as soon as you read it. The game also has a NMI handler that also reads that register.

In blargSNES, the NMI handler is executed before the loop code has a chance to catch the NMI bit in $4210, because the NMI is instant. Thus the loop never ends.

This clearly means there should be a delay between the time where the NMI flag is set, and the actual NMI. Fullsnes is unclear about it though.


Edit- yep. Quick test, delaying the NMI by one instrction, a really ugly hack. FF6 doesn't freeze. The sound is all earrape garbage though. (and the same little hack breaks DKC2)

I need to write a proper scheduler, I guess.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

coto
Posted on 11-05-15 10:01 PM Link | #690
Nice find. Some blackscreens are by unimplemented banked interrupts of some nature (external chip latching the source counter) which happen synchronously/asynchronously by the time the CPU access that register.

ie the source interrupt latch happens once the CPU access the register once, against the source interrupt latch regardless CPU access. (effectively causing the CPU to enter IRQ/NMI mode when desired)

StapleButter
Posted on 11-10-15 12:09 PM Link | #707
The proper scheduler will be the big thing for 1.4. Any hardware renderer improvements are going to be postponed for a while, giving time to think about good improvements for it.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

JulianDN
Posted on 11-12-15 10:32 AM Link | #712
Hello, I don't understand where to put the files from the 1.3b version. Could anyone explain this to me?

vernacular
Posted on 11-15-15 08:23 AM Link | #725
Posted by JulianDN
Hello, I don't understand where to put the files from the 1.3b version. Could anyone explain this to me?

As far as I know, the .3dsx file in the 1.3b zip only works with Ninjhax. So if you aren't using Ninjhax you cannot use 1.3b.

Which brings me to this thread. Please add a .cia to the zip for 1.3b.
Regardless, keep up the great work. Although the sound becomes sluggish at times, it looks really good with 1:1 ratio & a custom border.

TecXero
Posted on 11-16-15 12:57 AM (rev. 5 of 11-18-15 04:12 AM) Link | #727
Posted by vernacular
Please add a .cia to the zip for 1.3b.

From my understanding, 1.3b is just a minor fix for the newer versions of Ninjhax, since 1.3 didn't work properly under newer Ninjhax versions. Nothing else has been changed as far as I know.

vernacular
Posted on 11-17-15 10:20 AM Link | #739
Posted by TecXero
From my understanding, 1.3b is just a minor fix for the newer versions of Ninjhax, since 1.3 didn't work properly under newer Ninjhax versions. Nothing else has been changed as far as I know.

If that's the case, my mistake. I thought there were more changes than just a fix relating to NinjHax.
Pages: 1 2 3 4 5 ... 7 8 9 10 11 12 13 14 15 16

Main - Homebrew projects - blargSnes -- SNES emulator for the 3DS New reply

Page rendered in 0.053 seconds. (2048KB of memory used)
MySQL - queries: 28, rows: 103/103, time: 0.033 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2015-10-07)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.