It is currently Mon Feb 20, 2017 1:33 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: Mon Jan 09, 2017 12:43 am 
Offline
User avatar

Joined: Sat Apr 18, 2009 4:36 am
Posts: 249
Location: Russia
Hi, nesdev.
I want ask for help with minor nestopia issues.

Originally, nestopia-win32 (by Martin Freij) has 2 regions: NTSC and PAL,
with subsystems (favored systems), as you can see on this table:
Code:
|------------------------------|
| Region: |   NTSC   |   PAL   |
|------------------------------|
| Favored | NES NTSC | NES PAL |
| system: | Famicom  | Dendy   |
|------------------------------|

On the last nestopiaue multiplatform build, provided by Rdanbrook,
it GUI has simplified to:
Code:
|---------|
| system: |
|---------|
| Auto    |
| NTSC    |
| Famicom |
| PAL     |
| Dendy   |
|---------|

Which is more user-friendly.
But since core logic still old, both multiplatform / libretro (by Rdanbrook) and win32 (by Martin) ports have issues:

Problem 1:

You cannot switch between systems on the fly, if the system belongs
to one region. For example you can switch between PAL and Famicom, but
if you need switch between PAL and Dendy (or NTSC and Famicom) - you need
to RELOAD rom (libretro). Or close and run emulator again (multiplatform and win32 builds).
Hard-reset cannot help.

Problem 2:

FDS games ignore Dendy mode, and switch to PAL instead
I found this issue because "Arumana no Kiseki" and "Castlevania" both have broken background on PAL.

I tried to fix it myself, but i'm not programmer and don't know C/C++ at all:
https://github.com/rdanbrook/nestopia/b ... NstFds.cpp (see line 261)

before:
Code:
System Fds::GetDesiredSystem(Region region,CpuModel* cpu,PpuModel* ppu) const
      {
         if (region == REGION_NTSC)
         {
            if (cpu)
               *cpu = CPU_RP2A03;

            if (ppu)
               *ppu = PPU_RP2C02;

            return SYSTEM_FAMICOM;
         }
         else
         {
            return Image::GetDesiredSystem( region, cpu, ppu );
         }
      }

after:
Code:
System Fds::GetDesiredSystem(Region region,CpuModel* cpu,PpuModel* ppu) const
      {
         if (region == REGION_NTSC)
         {
            if (cpu)
               *cpu = CPU_RP2A03; // "NTSC CPU"

            if (ppu)
               *ppu = PPU_RP2C02; // "NTSC PPU"

            return SYSTEM_FAMICOM;
         }
         if (region == REGION_PAL)
         {
            if (cpu)
               *cpu = CPU_DENDY; // "Hybrid CPU"

            if (ppu)
               *ppu = PPU_DENDY; // "Hybrid PPU"

            return SYSTEM_DENDY;
         
            if (cpu)
               *cpu = CPU_RP2A07;  // "PAL CPU"

            if (ppu)
               *ppu = PPU_RP2C07;  // "PAL PPU"

            return SYSTEM_NES_PAL;
         }
         else
         {
            return Image::GetDesiredSystem( region, cpu, ppu );
         }
      }

This fix is INCORRECT, now FDS games ignore PAL mode, and switch to Dendy instead.

Problem 3:
NSF-player ignore Dendy mode, and switch to PAL instead.


Last edited by Eugene.S on Mon Jan 09, 2017 5:16 am, edited 3 times in total.

Top
 Profile  
 
PostPosted: Mon Jan 09, 2017 3:09 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
Is/was there a GitHub Issues filed for this? https://github.com/rdanbrook/nestopia/issues/new


Top
 Profile  
 
PostPosted: Mon Jan 09, 2017 5:05 am 
Offline
User avatar

Joined: Sat Apr 18, 2009 4:36 am
Posts: 249
Location: Russia
Eugene.S wrote:
Hi, nesdev.
I want ask for help with minor nestopia issues.

It was created same time as this topic.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group