It is currently Tue Dec 12, 2017 3:40 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Tue Aug 05, 2014 6:09 am 
Offline

Joined: Mon Dec 12, 2011 8:15 pm
Posts: 362
File: Chuugoku Taitei (Sachen).nes
Directory:
Soft-patched: No
CRC: 037006F7
SHA-1: C0BABB7AA3D15F3FC66E017CD923C34EEDA22C33
System: NES-NTSC
Board: mapper 4?? mm3?
PRG-ROM: 256k
CHR-ROM: 128k

Attachment:
Chuugoku Taitei (Sachen)_001.png
Chuugoku Taitei (Sachen)_001.png [ 8.25 KiB | Viewed 2736 times ]


Top
 Profile  
 
PostPosted: Tue Aug 05, 2014 11:12 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6509
Location: Seattle
In GoodNES, the board is marked as Mapper 116 (Huang-1), but in emulation, the game seems to rely on
1- having RAM, unlike what http://wiki.nesdev.com/w/index.php/INES_Mapper_116 says, and
2- the register at $4100 mapping 0 to MMC3-like behavior, and
3- switching between mapper modes during runtime.

I think it's more likely bad emulation, due to insufficient documentation.


Top
 Profile  
 
PostPosted: Tue Aug 05, 2014 1:49 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
Agreed with lidnariq -- this looks more like incorrect emulation of a mapper. especially since the CHR data shown that's garbled happens at a specific scanline.

Reverse-engineering of the ROM, and/or having the actual cart/board, would be needed here.


Top
 Profile  
 
PostPosted: Tue Aug 05, 2014 4:34 pm 
Offline

Joined: Mon Dec 12, 2011 8:15 pm
Posts: 362
Thank you lidnariq and koitsu!


Top
 Profile  
 
PostPosted: Fri May 19, 2017 1:53 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 322
Results from debugging:
  • Extended register at $4100
  • Battery-backed WRAM at $6000
  • MMC3 at $8000-$FFFF
  • At least 4K of CHR-RAM in addition to CHR-ROM, used for Chinese text
  • Four pages of additional nametable RAM, used for the playboard but not the status bar

Extended register bits:
Code:
.... ..CN
C: CHR data source for PPU $0000-$0FFF
    0: CHR-ROM from MMC3
    1: CHR-RAM
N: Nametable data source
    0: Console CIRAM, two pages, MMC3 mirroring
    1: Cartridge RAM, four pages
When C=1, N seems to be ignored, i.e. register values 2 and 3 seem to behave identically.

I suppose no mapper number has been assigned for this yet.


Top
 Profile  
 
PostPosted: Fri May 19, 2017 2:53 am 
Offline

Joined: Mon Dec 12, 2011 8:15 pm
Posts: 362
NewRisingSun wrote:
Results from debugging:
  • Extended register at $4100
  • Battery-backed WRAM at $6000
  • MMC3 at $8000-$FFFF
  • At least 4K of CHR-RAM in addition to CHR-ROM, used for Chinese text
  • Four pages of additional nametable RAM, used for the playboard but not the status bar

Extended register bits:
Code:
.... ..CN
C: CHR data source for PPU $0000-$0FFF
    0: CHR-ROM from MMC3
    1: CHR-RAM
N: Nametable data source
    0: Console CIRAM, two pages, MMC3 mirroring
    1: Cartridge RAM, four pages
When C=1, N seems to be ignored, i.e. register values 2 and 3 seem to behave identically.

I suppose no mapper number has been assigned for this yet.



this mapper irq It may not seem like standard MMC3

Your proposal and I code as before

status bar is bug!


Attachments:
Chuugoku Taitei (Sachen)_001.png
Chuugoku Taitei (Sachen)_001.png [ 12.7 KiB | Viewed 1746 times ]
Top
 Profile  
 
PostPosted: Fri May 19, 2017 3:00 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 322
The status bar will become corrupt as the playboard scrolls if you don't keep the console CIRAM and the four additional nametable pages separate. Attached is my WIP Nintendulator source, which does not show a corrupt status bar. (I temporarily reused mapper number 243.)


Attachments:
mapper243.cpp [2.1 KiB]
Downloaded 38 times
Top
 Profile  
 
PostPosted: Fri May 19, 2017 5:12 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1393
NewRisingSun wrote:
The status bar will become corrupt as the playboard scrolls if you don't keep the console CIRAM and the four additional nametable pages separate. Attached is my WIP Nintendulator source, which does not show a corrupt status bar. (I temporarily reused mapper number 243.)

Remark: you aren't saving ExNameTable, which will cause Problems once you start using savestates. A much better option is to simply use SetCHR_RAM - version 0.975 provides 256KB, and even 0.970 provides 32KB.
Also, modes 2 and 3 leave PPU $1000-$1FFF uninitialized, which probably isn't what you want.

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
PostPosted: Fri May 19, 2017 6:18 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 322
Like this? I'm not that familiar with the save/load interface. From where does it know how much CHR RAM to save, in particular in the absence of a NES 2.0 header?


Attachments:
mapper243.cpp [1.66 KiB]
Downloaded 37 times
Top
 Profile  
 
PostPosted: Fri May 19, 2017 6:39 am 
Offline

Joined: Mon Dec 12, 2011 8:15 pm
Posts: 362
NewRisingSun wrote:
Like this? I'm not that familiar with the save/load interface. From where does it know how much CHR RAM to save, in particular in the absence of a NES 2.0 header?


thank you! case 1 exnmt.working in nestopia.

CHRRAM save,but ines 2.0 emu not woking save.

Attachment:
Chuugoku Taitei (Sachen)_001.png
Chuugoku Taitei (Sachen)_001.png [ 11.58 KiB | Viewed 1702 times ]


Top
 Profile  
 
PostPosted: Fri May 19, 2017 3:48 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1393
NewRisingSun wrote:
Like this? I'm not that familiar with the save/load interface. From where does it know how much CHR RAM to save, in particular in the absence of a NES 2.0 header?

Savestates will automatically detect how much RAM to include - they stop once they encounter uninitialized data.

The logic you currently have is mapping the first 4KB of CHR RAM to both $0000-$0FFF and $1000-$1FFF for modes 2 and 3, and the second 4KB to the nametables in mode 1. It wasn't fully clear from the prior description if that's how it's supposed to work.

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
PostPosted: Fri May 19, 2017 4:16 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 322
Quietust wrote:
Savestates will automatically detect how much RAM to include - they stop once they encounter uninitialized data.
Okay. So does the CHR RAM field of the NES 2.0 header get used outside the mapper DLL?
Quietust wrote:
The logic you currently have is mapping the first 4KB of CHR RAM to both $0000-$0FFF and $1000-$1FFF for modes 2 and 3, and the second 4KB to the nametables in mode 1. It wasn't fully clear from the prior description if that's how it's supposed to work.
Remember that this is all based on debugging the game and tweaking the mapper emulation code until no more glitches are observable. I don't have the cartridge itself, so I cannot say how the cartridge hardware works internally. As a result, because it seems to make no difference for the game what PPU $1000-$1FFF maps to in modes 2 and 3, my description was necessarily lacking on this aspect.


Top
 Profile  
 
PostPosted: Fri May 19, 2017 4:49 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1393
NewRisingSun wrote:
So does the CHR RAM field of the NES 2.0 header get used outside the mapper DLL?

Yes - it restricts the number of CHR RAM banks you can map (for NES 1.0 headers, the limit is set to 32KB).

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
PostPosted: Mon May 22, 2017 6:54 pm 
Offline

Joined: Thu Feb 23, 2017 2:27 pm
Posts: 34
This looks A LOT like a heavy extension of the Street Heroes board. It even has the same extended register.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 5 guests


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