Jump to content
IGNORED

FPGA Based Videogame System


kevtris

Interest in an FPGA Videogame System  

682 members have voted

  1. 1. I would pay....

  2. 2. I Would Like Support for...

  3. 3. Games Should Run From...

    • SD Card / USB Memory Sticks
    • Original Cartridges
    • Hopes and Dreams
  4. 4. The Video Inteface Should be...


  • Please sign in to vote in this poll.

Recommended Posts

 

Answers :

 

1. Open up the shell and look at the chips or play a game like Elite that works correctly in PAL consoles but is obviously unplayable with NTSC consoles.

 

2. You cannot use composite and HDMI at the same time. Unplug the HDMI cable to get your composite back. In HDMI mode, the system is slowed down to a pure 60Hz or 50Hz, but when HDMI mode is disabled as indicated in the previous sentence, the composite will use the official 60.0988Hz or 50.0070Hz. It will be as if the system was not modded at all.

 

Ofcourse I know what chip I',m using, but I thought it was somewhere in the menus that showed what kind of chips are installed.

 

 

I suppose the HiDef NES kit just goes like a... passthru when HDMI are DC and the console are using the external clock instead..

 

Would be nice if there was a OC default settings for PAL-users to get correct speed. NTSC games like Castlevania, Mega Man 2, Contra works fine on PAL consoles if they ran at the correct speed. PAL versions of the mentioned games run exactly as slow (bad convertings).

If I could crank up the PAL-speed to "official" speed with a button combination would be cool.

 

Growing up I did not know any better, but when I was playing emulator years later I could not belive how slow some PAL games where, they sound and behave SLOOOW and are unplayable now.

Link to comment
Share on other sites

A non-chair and non-16-bit question for kevtris: Assuming that you're still working on developing cartridge and controller adapters for the NT Mini, how would the mapping of the switches that were originally mounted on the Atari 2600 console (difficulty, game select, and game reset) work in the event that a controller adapter for original Atari joystick and paddle buttons work is released? Currently, when playing the 2600 core in the jailbroken firmware with an NES controller, some of these functions are mapped to the extra buttons on the NES controller (select and B), with the d-pad taking the place of the joystick and the A button taking the place of the joystick's action button. However, the original Atari controllers have fewer buttons (only the joystick and action button). The solution that seems most practical to me would be to map these functions to an NES controller that would be plugged into controller port 3 or 4 on the NT Mini. I'd love to hear thoughts/plans regarding this.

Link to comment
Share on other sites

 

Ofcourse I know what chip I',m using, but I thought it was somewhere in the menus that showed what kind of chips are installed.

 

 

I suppose the HiDef NES kit just goes like a... passthru when HDMI are DC and the console are using the external clock instead..

 

Would be nice if there was a OC default settings for PAL-users to get correct speed. NTSC games like Castlevania, Mega Man 2, Contra works fine on PAL consoles if they ran at the correct speed. PAL versions of the mentioned games run exactly as slow (bad convertings).

If I could crank up the PAL-speed to "official" speed with a button combination would be cool.

 

Growing up I did not know any better, but when I was playing emulator years later I could not belive how slow some PAL games where, they sound and behave SLOOOW and are unplayable now.

 

Overclocking might help PAL system-users to play NTSC games more than it would help PAL games run at the proper speed. Many PAL games will run at a proper speed using an NTSC speed setting, but the music will often be higher pitched than the canonical NTSC music. The earlier Konami games were particularly lazy because they did not adjust the tempo of the music to match the slower speed. Capcom tried to but mostly failed, so Capcom's PAL game music will sound either too high or too low.

  • Like 1
Link to comment
Share on other sites

 

Ofcourse I know what chip I',m using, but I thought it was somewhere in the menus that showed what kind of chips are installed.

 

 

I suppose the HiDef NES kit just goes like a... passthru when HDMI are DC and the console are using the external clock instead..

 

Would be nice if there was a OC default settings for PAL-users to get correct speed. NTSC games like Castlevania, Mega Man 2, Contra works fine on PAL consoles if they ran at the correct speed. PAL versions of the mentioned games run exactly as slow (bad convertings).

If I could crank up the PAL-speed to "official" speed with a button combination would be cool.

 

Growing up I did not know any better, but when I was playing emulator years later I could not belive how slow some PAL games where, they sound and behave SLOOOW and are unplayable now.

The main screen shows 50Hz/60Hz, which is the clue to whether it's PAL or NTSC, respectively.

 

The hi def is more than a passthrough. It "lies" to the PPU when the CPU writes to it to program in new palette values, and sets the slave bit. The FPGA also monitors the bus activity to siphon off the button press info as the game reads the controllers, and responds to writes to various parts of memory to do the sound emulation, etc.

 

PAL games cannot get "correct speed" because the PPU is stuck at 50Hz. The CPU can be overclocked, but all games (well 99.9% of them) base all their timing off the vertical black interrupt. This is generated by the PPU, once per frame. So to speed the games up to 60Hz, you'd need to modify the PPU somehow or vastly overclock it, which will totally screw the timing anyways. There's no solution for the problem. The overclocking is mainly to reduce slowdown in games with a lot of sprites/action going on. Though honestly I don't use it ever. But I put it in there because people wanted it.

 

The hi def detects PAL and NTSC by counting how many input clocks to the CPU occur for each M2 clock coming out. An NTSC system has 12, a PAL system as 16. I split the difference and anything over 13 is PAL, anything 13 and under is NTSC. If you drop a PAL CPU with an NTSC PPU on there (or vice versa) it will really really end badly. It won't hurt anything and it will "work" but the video will be totally glitched out and pretty much unplayable.

  • Like 1
Link to comment
Share on other sites

A non-chair and non-16-bit question for kevtris: Assuming that you're still working on developing cartridge and controller adapters for the NT Mini, how would the mapping of the switches that were originally mounted on the Atari 2600 console (difficulty, game select, and game reset) work in the event that a controller adapter for original Atari joystick and paddle buttons work is released? Currently, when playing the 2600 core in the jailbroken firmware with an NES controller, some of these functions are mapped to the extra buttons on the NES controller (select and B), with the d-pad taking the place of the joystick and the A button taking the place of the joystick's action button. However, the original Atari controllers have fewer buttons (only the joystick and action button). The solution that seems most practical to me would be to map these functions to an NES controller that would be plugged into controller port 3 or 4 on the NT Mini. I'd love to hear thoughts/plans regarding this.

I was hoping to have a controller adapter that plugged into the port on the back of the system. I had a design for that mostly done but had to back burner it. This adapter would accept DB-9 controllers of all types (2600, sms, genesis, etc). Paddles and keyboard controllers would be supported along with theoretically most things you could plug into a 2600 like an atarivox.

 

I can't easily use player 3/4 for extra inputs because the ports are missing several signals (they are designed only for NES pretty much).

 

I have not given up on the cart adapters; I just have zero time to mess with it. I am hoping to finish those eventually. The hardware part is done, I just need to hook it into the FPGA code.

  • Like 2
Link to comment
Share on other sites

I will just leave these two links here, so that you will get a taste of what kevtris has to deal with:

 

"Holy Grail" Bugs in Emulation, Part 1

 

"Holy Grail" Bugs in Emulation, Part 2

 

On a related note, I wonder whether we will ever get to the bottom of the Pinball Fantasies emulation problems...

 

It will probably be figured out eventually. The problem seems to be that the game uses a timer interrupt and the frame interrupt, and both are almost the same frequency. So they "heterodyne" with each other; i.e. one slightly changes alignment frame to frame with the other over time. The failure mode is it gets interrupt bound and then blows up the stack, causing it to crash in various ways. I did some testing by slightly changing the length of the interrupt by adding instructions and could get it to work. So the end problem is most likely one of those interrupts getting masked periodically by the other and never occurring so the stack doesn't explode and the game continues to run. Kind of a shame, too since the game seemed pretty fun when I could play it.

  • Like 2
Link to comment
Share on other sites

The main screen shows 50Hz/60Hz, which is the clue to whether it's PAL or NTSC, respectively.

 

The hi def is more than a passthrough. It "lies" to the PPU when the CPU writes to it to program in new palette values, and sets the slave bit. The FPGA also monitors the bus activity to siphon off the button press info as the game reads the controllers, and responds to writes to various parts of memory to do the sound emulation, etc.

 

PAL games cannot get "correct speed" because the PPU is stuck at 50Hz. The CPU can be overclocked, but all games (well 99.9% of them) base all their timing off the vertical black interrupt. This is generated by the PPU, once per frame. So to speed the games up to 60Hz, you'd need to modify the PPU somehow or vastly overclock it, which will totally screw the timing anyways. There's no solution for the problem. The overclocking is mainly to reduce slowdown in games with a lot of sprites/action going on. Though honestly I don't use it ever. But I put it in there because people wanted it.

 

The hi def detects PAL and NTSC by counting how many input clocks to the CPU occur for each M2 clock coming out. An NTSC system has 12, a PAL system as 16. I split the difference and anything over 13 is PAL, anything 13 and under is NTSC. If you drop a PAL CPU with an NTSC PPU on there (or vice versa) it will really really end badly. It won't hurt anything and it will "work" but the video will be totally glitched out and pretty much unplayable.

 

Thanks for the clearification. Really intresting how all this comes to life around the FPGA.

 

The "issue" I have is that I have a bunch of games (PAL), BUT I would really like to be able to play NTSC ones in correct speed since its my preferred speed since some titles conversion are butched. I did not understand until now why people wanted to OC their NES.

Should it be possible to use 2 sets of CPU/PPU, sandwich them on top on the interposers and switch between them with the +5V? Then use some FETs to prevent the switch to be operating while system is turned on.

Link to comment
Share on other sites

 

Thanks for the clearification. Really intresting how all this comes to life around the FPGA.

 

The "issue" I have is that I have a bunch of games (PAL), BUT I would really like to be able to play NTSC ones in correct speed since its my preferred speed since some titles conversion are butched. I did not understand until now why people wanted to OC their NES.

Should it be possible to use 2 sets of CPU/PPU, sandwich them on top on the interposers and switch between them with the +5V? Then use some FETs to prevent the switch to be operating while system is turned on.

no that doesn't work. You can't stack chips. you pretty much have to modify a second NTSC system instead.

  • Like 1
Link to comment
Share on other sites

Darn. :) thought I was in to something since the HiDef autodetects the clock speed on the CPU and creates that internally.

Or swap between a set of ntsc and pal cpu/ppu chips in your console, no need to mess with the crystal if you aren't using composite video output and only hdmi since the hi-def nes kit supplies the necessary clock signal to the cpu/ppu.

Link to comment
Share on other sites

Or swap between a set of ntsc and pal cpu/ppu chips in your console, no need to mess with the crystal if you aren't using composite video output and only hdmi since the hi-def nes kit supplies the necessary clock signal to the cpu/ppu.

Ye, suppose that's gonna be the solution. Still its bugging me not to be able to use true changable regions.

I wonder. Does the signal gets noisy if the PAL and NTSC chips are bond together? I mean chip2 will be disconnected on GND and 5V, rest of the pins will stay "connected". The other chip just.. laying there resting so to speak. :)

Link to comment
Share on other sites

I will just leave these two links here, so that you will get a taste of what kevtris has to deal with:

 

"Holy Grail" Bugs in Emulation, Part 1

 

"Holy Grail" Bugs in Emulation, Part 2

 

On a related note, I wonder whether we will ever get to the bottom of the Pinball Fantasies emulation problems...

 

 

Errata that eventually became "features" of certain consoles (rather than bugs) are always super-fascinating to me. Thanks for linking them; I hadn't seen these posts before.

 

Is it that these games are poorly programmed, or were these games written with decisions based on static hardware that could speed up execution? I have a feeling the answer, generally, is "yes" - that some people did cool "tricks" and other people just got lucky that their code worked at all. LOL

Link to comment
Share on other sites

I will just leave these two links here, so that you will get a taste of what kevtris has to deal with:

 

"Holy Grail" Bugs in Emulation, Part 1

 

"Holy Grail" Bugs in Emulation, Part 2

 

On a related note, I wonder whether we will ever get to the bottom of the Pinball Fantasies emulation problems...

 

I'm surprised the author did not mention Road Rash for the Game Boy in Part 1, which crashes when trying to start a race on a Game Boy Color or Advance for the same reason as the Japanese Legend of Zerd game.

 

It will probably be figured out eventually. The problem seems to be that the game uses a timer interrupt and the frame interrupt, and both are almost the same frequency. So they "heterodyne" with each other; i.e. one slightly changes alignment frame to frame with the other over time. The failure mode is it gets interrupt bound and then blows up the stack, causing it to crash in various ways. I did some testing by slightly changing the length of the interrupt by adding instructions and could get it to work. So the end problem is most likely one of those interrupts getting masked periodically by the other and never occurring so the stack doesn't explode and the game continues to run. Kind of a shame, too since the game seemed pretty fun when I could play it.

These games originally were programmed for a PAL Amiga, so what we see on the Game Boy (or on the SNES for that matter) is but a pale shadow of the originals. Given that these games would run on inaccurate emulators, I am surprised that emulator authors don't leave a hack in for them. I would note that Pinball Dreams works fine on the latest BGB, but Pinball Fantasies crashed on starting a table or soon thereafter. Pinball Fantasies works on my GBA, so I guess Nintendo was consistent with whatever timing issue allows the game to run.

Link to comment
Share on other sites

Hey Kevtris, I picked up one of those Super Famicom NTT Data controllers to use with Colecovision etc. with my 4Play but was wondering for the NT Mini did you post anywhere how you wired yours up by chance?

I made a pins converter using an NES and SNES extender cable, spliced together with a 5 pin DIN connector in the middle. the pinout of the DIN isn't critical, just so long as the NES and SNES pins connect properly. I think searching for "SNES mouse onNES" will bring up the right pinning.

  • Like 1
Link to comment
Share on other sites

I made a pins converter using an NES and SNES extender cable, spliced together with a 5 pin DIN connector in the middle. the pinout of the DIN isn't critical, just so long as the NES and SNES pins connect properly. I think searching for "SNES mouse onNES" will bring up the right pinning.

This can also be made by splicing two retrobit extension cables together.
Link to comment
Share on other sites

This can also be made by splicing two retrobit extension cables together.

true. I simply used DINs so I could add other things later if I wanted without having to make unique cable for it. Back in the day I made a similar adapter so I could use SNES pads on the NES, around 93 or so. I had a broken SNES and traced the controller out and figured out the thing had the same button layout as the NES (with some extras) and determined that it should work. Made the adapter, and sure enough it did! I used that thing forever. It was the front connector part of the SNES with a NES cable spliced on. I probably still have that somewhere.

  • Like 2
Link to comment
Share on other sites

Is there any reason to keep the NT Mini when the SNES version comes out? I assume it would do the NES and jailbreaks too??

Nobody has any idea if or when such a system would be released or what features it would include, but we can speculate:

 

It would definitely be capable of running all the cores the NT Mini currently runs. I don't know if a SNES NT Mini would include a microphone port to support famicom microphone games or a Famicom expansion port for FDS and other accessories. It certainly wouldn't have NES or Famicom cartridge ports, for people that is important to. The NES/Famicom Everdrive N8 has a save state feature that is not included in the NT Mini NES/Famicom core, so that would be missing from a SNES NT Mini. A SNES NT Mini wouldn't have 4 NES controller ports, if that's important to you.

 

Basically if you're really into the NES/Famicom platform, the NT Mini is as fully completely compatible a system that can exist, that works out of the box with all games, accessories, controllers, real cartridges etc. Most of these issues with could be resolved with cartridge and controller adapters. If you're okay with using SNES controllers to play (without an adapter) NES games and only playing NES ROMs off the SD card with the NES core, you'd probably be fine just getting whatever the theoretical SNES NT Mini is.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...