It is currently Thu Dec 14, 2017 6:21 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Tue Jun 07, 2016 7:26 pm 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
I've got Verilog to "draft" stage for the following:

20₁₆ (32) irem G-101 (note: Major League submapper not implemented)
41₁₆ (65) irem H3001
21₁₆ (33) Taito TC0190
30₁₆ (48) Taito TC0690 (not in Nintendulator!)
6B₁₆ (107) Magicseries Corp, unknown name, used by "Magic Dragon" just because it had "irem" on the wiki page somewhere. (not in Nintendulator?)

If a mapper doesn't have known specified startup states for registers, would it be better to just let them sit uninitialized, throw in some garbage, or zero/sequentialize them as emulators do occasionally? (Nintendulator and Mednafen and Disch disagree on some points)

ed: Magicseries

ed2: removed while I start scouring out these syntax errors :oops:


Last edited by Myask on Mon Dec 12, 2016 3:58 am, edited 6 times in total.

Top
 Profile  
 
PostPosted: Tue Jun 07, 2016 7:40 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
Happy to test at least mapper $41 later this evening, if someone else hasn't beaten me to it.


Top
 Profile  
 
PostPosted: Tue Jun 07, 2016 8:45 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19342
Location: NE Indiana, USA (NTSC)
I'd recommend throwing in garbage that triggers behaviors that a naive developer wouldn't expect, to make it obvious to homebrew developers that a program has a defect and would not run reliably on original hardware whose power-on state is unspecified. For example, a mapper with 4K CHR banks such as MMC1 or MMC2 might power on with them set to 1 and 9, so that both CHR ROM and CHR RAM users would find something amiss if CHR bank registers are left uninitialized.

This way after the emulator or flash cart fills memory and mapper registers with garbage, the program being emulated correctly clears out the garbage, as it would need to do on original hardware.


Top
 Profile  
 
PostPosted: Tue Jun 07, 2016 9:04 pm 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
The problem with that is that it would make for a consistent state on reset, even if an unusual one, rather than having to change back from whatever else the registers might have been set to while running…

edit: but that doesn't matter because hitting reset brings you to the menu and thus you're only going to get initial-setup and not reset-setup anyway, aren't you…


Top
 Profile  
 
PostPosted: Tue Jun 07, 2016 9:27 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6520
Location: Seattle
Other thoughts:
* you could add a "ever set" bit for each register and make the corresponding regions open bus until initialization
* you could make the power-on state maximally useless (such as powering on with all 4 PRG slices set to (-1) or all 8 CHR slices set to 0)


Also, you can use Icarus Verilog to check for syntax errors and test. (debian/ubuntu packages: iverilog, gtkwave)


Top
 Profile  
 
PostPosted: Wed Jun 08, 2016 1:31 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
koitsu wrote:
Happy to test at least mapper $41 later this evening, if someone else hasn't beaten me to it.

Sorry I won't get to this tonight, too many real life emergencies to deal with. Scheduled for tomorrow. (If any night owls are lurking and wanna do it, please do!!)


Top
 Profile  
 
PostPosted: Wed Jun 08, 2016 1:36 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2982
Location: Tampere, Finland
koitsu wrote:
koitsu wrote:
Happy to test at least mapper $41 later this evening, if someone else hasn't beaten me to it.

Sorry I won't get to this tonight, too many real life emergencies to deal with. Scheduled for tomorrow. (If any night owls are lurking and wanna do it, please do!!)

The archive only contains the Verilog sources anyways, so they can't be tested as is.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
PostPosted: Wed Jun 08, 2016 1:40 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
Ah, yeah, I'd need the generated mapper files for native use on the PowerPak. Cool, okay, no rush for me then.


Top
 Profile  
 
PostPosted: Wed Jun 08, 2016 5:09 pm 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
"Some assembly synthesis required."

Sources updated to where iverilog will actually not throw errors and warnings. :oops:


Attachments:
Myask_MappersWIP.tar.gz [4.08 KiB]
Downloaded 60 times
Top
 Profile  
 
PostPosted: Fri Jun 10, 2016 7:53 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:52 pm
Posts: 361
Location: UT
I suppose somebody should build these :roll:


Attachments:
Myask_ppak_32_33_48_65_107.zip [103.45 KiB]
Downloaded 303 times
Top
 Profile  
 
PostPosted: Fri Jun 10, 2016 2:58 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
loopy wrote:
I suppose somebody should build these :roll:

:P I'll give these a try later tonight, assuming I'm not balls deep in work.


Top
 Profile  
 
PostPosted: Fri Jun 10, 2016 3:21 pm 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
Thanks, Loopy. iverilog seems to have completely dropped synthesis support…

To reduce the number of places people need to look to test, Disch-notes-listed games for each, with their GoodNES names…
  • Mapper 32 (20₁₆)
    • Image Fight (J) …U version seems to be MMC3.
    • Major League (J) Should be broken, because it expects 1-screen mirroring and a disabled register.
    • Kaiketsu Yanchamaru 2 - Karakuri Land (J) (= Kid Niki 2, not localized)
  • Mapper 33 (21₁₆)
    • Akira (J)
    • Bakushou!! Jinsei Gekijou (J)
    • Don Doko Don (J)
    • Insector X (J)
  • Mapper 48 (30₁₆) Disch notes that many are mislabeled as 33…which seems to be the case here…not sure without Bootgod and bootgod's not apparently got any TC0690 games at all according to Google? I'm gonna check these for $C00x (interrupt on 48 not on 33) writes…
    • Don Doko Don 2 (J) (cached bootgod says it's got a TC0190, which suggests it should be 33?? No images cached, though, so can't be absolutely sure…the other three were not on BootGod.)
    • Bubble Bobble 2 (J) …again, U version "Bubble Bobble Part 2" uses MMC3 instead
    • Captain Saver (J)…again, U version "Power Blade 2" uses MMC3 instead
    • Flintstones, The (J)
  • Mapper 65 (41₁₆)
    • Daiku no Gen San 2 - Akage no Dan no Gyakushuu (J) (= Hammerin' Harry 2, not localized)
    • Kaiketsu Yanchamaru 3 - Taiketsu! Zouringen (J) (= Kid Niki 3, not localized) [bootgod-confirmed]
    • Spartan X 2 (J) [bootgod-confirmed]
  • Mapper 107 (6B₁₆)
    • Magic Dragon (Unl)

edit: of alleged mapper 48 games, Bubble Bobble 2 (J) disables interrupts at least for what I can see (and thus is a bad test)
Captain Saver (J) enables interrupts, probably for parallax and status bar
Don Doko Don 2 (J) does not even attempt to disable them, so is probably actually 33
Flintstones, The - The Rescue of Dino & Hoppy (J) enables interrupts, probably uses them for status bar.


Top
 Profile  
 
PostPosted: Fri Jun 10, 2016 5:02 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6520
Location: Seattle
Myask wrote:
bootgod's not apparently got any TC0690 games at all
Correct. Overload has one PCB photo here.


Top
 Profile  
 
PostPosted: Fri Jun 10, 2016 5:35 pm 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
Jetsons, The - Cogswell's Caper! (J) (also mislabeled mapper $21) uses the interrupt…and is a game that does the shaking (Mednafen doesn't delay 4 cycles, evinces shaking status bar as Disch suggests)! A-ha? (One must ask whether the shake-behavior is a bug that is supposed to happen on default hardware, unless we assume/find Disch checked.)


Top
 Profile  
 
PostPosted: Fri Jun 10, 2016 8:54 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
In the process of testing this now, including making video/audio recordings of each game so folks can determine bugs/etc.. Will take me most of the night I think, but fun regardless. :) I can confirm that at least Image Fight (J) works.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 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