It is currently Wed Sep 18, 2019 6:31 am

All times are UTC - 7 hours



Forum rules





Post new topic Reply to topic  [ 44 posts ]  Go to page 1, 2, 3  Next
Author Message
PostPosted: Mon Sep 22, 2008 4:00 am 
Offline

Joined: Mon Jul 14, 2008 4:02 pm
Posts: 88
I've released a tiny multiplayer beat em up for SNES earlier this week.
Took around 4 weeks to program.
You can check it out here: http://gra.dforce3000.de/ , (slightly outdated) videos can be found here http://www.youtube.com/watch?v=Yx2wFwIrces and here: http://www.youtube.com/watch?v=jp9jVMa6XR0


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 22, 2008 5:06 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7741
Location: Chexbres, VD, Switzerland
My god, this is for the SNES ?!? It looks like at least a playstation/NDS game.

_________________
Life is complex: it has both real and imaginary components.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 22, 2008 7:05 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21591
Location: NE Indiana, USA (NTSC)
If the SNES can do this, it can do Smash Bros.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 22, 2008 7:54 am 
Offline
User avatar

Joined: Wed Aug 03, 2005 3:15 pm
Posts: 399
My god man, that is awesome! That whole intro was really really cool. By the way, I read the stuff you said in the video description on YouTube; I don't think the voices are cheesy. They seem to fit in absolutely perfect : )

Great job, that really is awesome!


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 22, 2008 12:15 pm 
Offline
User avatar

Joined: Sun Jun 05, 2005 2:04 pm
Posts: 2157
Location: Minneapolis, Minnesota, United States
tepples wrote:
If the SNES can do this, it can do Smash Bros.


I've always wanted an SNES Smash Bros.! But it'd have to be where every character has the same model as they did in their game.

But anyways, yes, this is very impressive for the SNES!


Top
 Profile  
 
 Post subject:
PostPosted: Mon Sep 22, 2008 2:24 pm 
Offline

Joined: Mon Jul 14, 2008 4:02 pm
Posts: 88
Thanks for your kind comments, always appreciated. =)

I'm not exactly pushing the system to its limits with this game, but I tried to depart a bit from the usual SNES look.
In general, my engine is geared towards maximum data throughput to vram and audio ram.
I don't care one bit about ROM-size, because it's virtually unlimited nowadays.

I guess most people dislike hearing recordings of their own voice, I'm no different in that regard. ;)

As for Smash Bros on SNES:
I think the >Entertainment guys are working on a similar project.

I'd also love to work on a group project, but it would have to be something original with original characters.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 23, 2008 10:59 am 
Offline

Joined: Mon Mar 27, 2006 5:23 pm
Posts: 1524
Quote:
In general, my engine is geared towards maximum data throughput to vram and audio ram.
I don't care one bit about ROM-size, because it's virtually unlimited nowadays.


If you run into any issues with that, please don't hesitate to get in touch.
I'd be happy to work with you to add some special features like expanded S-DD1 / SPC7110 mapping capabilities to support >48mbit games.

In particular, I'd really like to see an animated video running on the SNES. We definitely have the bandwidth to pull it off. The trick would be to use Mode3 + a tilemap to center the image, so all the tiledata is linear. Create a palette that is RGB332 (direct color mode sucks, low bits always clear, so whites look light gray.) Then use force blank and NBA swapping to toggle where the image data goes between the top half and bottom of half of RAM. That lets you span the transfer over two frames instead of one, which obviously halves the refresh rate. NTSC video runs at 30fps usually anyway.

There's even left-over RAM for subtitles, and the active display region can be used to spool voiced audio to the S-SMP.

I imagine it'll look roughly as good as the pre-MPEG Saturn movies. But on a much older, much slower system; where it's said to be "impossible."

Example:
@ 192x144
192*144=27648 bytes/frame
262-144=118 scanlines/vblank+forceblank period
118*(1364-40)=156232 cycles/frame
156232/8=19529 bytes/frame throughput
60->30fps conversion -> 19529*2 = 39058 bytes/frame

@ 208x156
208*156=32448
262-156=106
106*1324=140344
140344/8=17543
17543*2=35086

So let's say in the former case, we need 27648*30=829kbytes/second of ROM storage. If we throw in S-DD1 or SPC7110 real-time decompression, we can drop that by ~30% or so to ~600kb or less/second. Yeah, I know it's really painful. But with a custom bank swapping mapper, I don't see a reason we can't make a 64MB proof-of-concept video.

I've wanted to do this for a while, but I don't have the audio expertise. I was hoping someone would find the SNES CD player add-on for that one "Let's Learn English"-like game. Then I could emulate redbook through it. But I've never so much as seen a picture of one, not entirely sure it even exists, though it's technically pretty trivial. Connect to expansion bus, and stream the audio through the S-DSP mixer pins ...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 23, 2008 2:01 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21591
Location: NE Indiana, USA (NTSC)
800 kB per second? That's near DVD-Video's maximum bitrate.

I'd wager that 112x96 at 12 fps, scaled up by 2 using mode 7, might be more reasonable. Wolfenstein got away with such a low res, and so did FaceBall (except FaceBall wasn't scaled up). Now we're down to 128 KB per second.

Is the CPU too slow for even basic motion compensation (straight copy of 8x8px blocks, no sum/diff, only whole pixel displacements)? The Sega Genesis's MC68000 CPU had the advantage here; it could run a slimmed-down version of Cinepak. But if you're serious about video, it might be a better choice to decode the video using some sort of ASIC on the cart.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 23, 2008 4:32 pm 
Offline

Joined: Mon Jul 14, 2008 4:02 pm
Posts: 88
I'm sure it's doable.
The small videoplayer that's used in a part of the intro of nwarp daisakusen was merely an afterthought slapped together in a couple of minutes without any optimization.
It's capable of 60fps playback (no buffering of frames) and each frame is around 7kb in size(tiles+tilemap).
That's around 400kb per second already.
I just play the video back at 30fps because i feel that's fluid enough (and manually cleaning and optimizing each frames picture to fit into the 7kb limit was painful enough. )
Sound is streamed via HDMA at 8000hz and uses around 10 scanlines of cpu time every other frame, absolutely neglectable.

If someone would code a proper and optimized video player, 30fps with 256 color frames would surely be possible as long as you leave enough forced blank at the bottom and top for vram transfers, as byuu said.

To be honest, just coding a player as a proof of concept is not something I'd like to do, but including it in a nice game would be nice. I hope I can try that some day.

Thanks for the offer regarding bankswitching emulation. I think I'd probably try to whip up my own tiny mapper in hardware first, but that would make debugging hard. At the moment, I wouldn't even know how to fill more than 64Mbits. I tried to went all out with N-warp Daisakusen, but didn't even exceed 16 megs.

I have never heard of that CD-player add-on. Do you have any details? Sounds interesting.

Also, I'd be happy to run tests on my satellaview to help improve emulation. I've posted it before, but it seems to have gone unnoticed so far.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 23, 2008 5:07 pm 
Offline

Joined: Mon Mar 27, 2006 5:23 pm
Posts: 1524
Quote:
But if you're serious about video, it might be a better choice to decode the video using some sort of ASIC on the cart.


A real cart would pretty much have to exist first. It'd be so lame to add something to an emulator that doesn't exist in real life. I'm not sure why it stops bothering me with only a few protos, but yeah.

Quote:
It's capable of 60fps playback (no buffering of frames) and each frame is around 7kb in size(tiles+tilemap).
That's around 400kb per second already.


Yeah, problem is it's not "true" video, you have to do it all with sprites and such. Much more difficult, and less flexible. But it's really the only sane way to do it on the SNES ...

Quote:
I have never heard of that CD-player add-on. Do you have any details? Sounds interesting.


Unfortunately not. Nach is the one who told me about it, but he doesn't have any real info, either. For all I know, it doesn't even exist :/

It would be fairly easy to make, though. Just need to interface with the expansion bus somehow.

Quote:
Also, I'd be happy to run tests on my satellaview to help improve emulation. I've posted it before, but it seems to have gone unnoticed so far.


Ah, I appreciate the offer, but remote testing is just way too difficult. I usually run hundreds of tests in rapid succession to figure things out.

FitzRoy recently bought a BS-X unit that he offered to let me borrow, and another person offered me one via PM, but I haven't heard back from him just yet. Probably would help if I responded to PMs and e-mails faster, myself.

But yeah, hopefully I should be covered. I definitely wouldn't mind some RE help, though :D
Have your notes cached for when I start on it. Didn't mean to ignore them, sorry.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Sep 23, 2008 5:47 pm 
Offline

Joined: Wed Feb 09, 2005 9:31 am
Posts: 418
This is very impressive. Given enough ROM space, I bet d4s could port Final Fantasy 7 to the SNES :)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 24, 2008 3:51 am 
Offline
User avatar

Joined: Tue Sep 21, 2004 12:11 am
Posts: 377
Location: Karlshamn (Sweden)
d4s wrote:
I have never heard of that CD-player add-on. Do you have any details? Sounds interesting.


Probably referring to the infamous official SNES CD-ROM. Which I'm sure you've heard about at least one time on AG?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 24, 2008 7:19 am 
Offline

Joined: Thu Aug 28, 2008 1:17 am
Posts: 591
Quote:
The Sega Genesis's MC68000 CPU had the advantage here; it could run a slimmed-down version of Cinepak.


I'm pretty sure the 12.5mhz second 68000 in the SegaCD was taking care of the cinepak decoding. The SegaCD doesn't require the second CPU to poll the MCU of the CD unit, so it's free to do other tasks. Not to mention the SegaCD's ASIC chip could convert bitmap images to tiles extremely fast.


Can't you increase the DMA total bandwidth in vblank by turning off the display early? If so, clipping to 192 vertical res would almost double the transfer rate.


I still want to interface my Super CDROM2 CD addon unit for PCE, to the SNES at some point. I don't know much about the BUS for the external port on the bottom but if it's really only 256bytes, then that's more than enough to map the CD registers. Converting the PCE's system card routines should be doable. Is there an interrupt line available on the external BUS (B-BUS?)?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 24, 2008 1:32 pm 
Offline

Joined: Mon May 26, 2008 11:41 pm
Posts: 74
The bottom port on the snes, maps into the same address bus B region, 0x2100-0x21FF, however, you can not use 0x2100-0x213F, as that is used by the PPU, and you can not use 0x2140-0x217F, as this is used by the APU. (IIRC)

I might be incorrect on which range the PPU is using, but you do have to respect these ranges, and not attempt to use them yourself for any other purpose. If 128 bytes is not enough, then you will have to make an interface chip, and come up with some register addressing scheme through that chip.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 24, 2008 1:51 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21591
Location: NE Indiana, USA (NTSC)
Even 16 bytes of address space would be enough for, say, an ATA interface to a CF card or a CD-ROM drive.

_________________
Pin Eight | Twitter | GitHub | Patreon


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: Google Adsense [Bot], Kannagi 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