It is currently Wed Nov 22, 2017 11:36 am

All times are UTC - 7 hours



Forum rules


Related:



Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Sun Oct 01, 2017 1:43 pm 
Offline

Joined: Sun Oct 01, 2017 1:38 pm
Posts: 3
Hey folks,

I'm a total noob to SNES-Development, so please excuse my very basic question. Some googling didn't help me, so I thought this might be a good place to ask.

When programming for the SNES, is there any way to output text to something like a console, that can then be displayed to the screen? If not, what is the easiest way to output text? Some examples would help me a lot,

thanks in advance,

Boland


Top
 Profile  
 
PostPosted: Sun Oct 01, 2017 1:56 pm 
Offline

Joined: Fri Feb 24, 2012 12:09 pm
Posts: 534
On hardware: draw it yourself, in one of the SNES videomode of your choice.
On emulators: some might support separate console windows, eg. in no$sns: 21FCh.W Write ASCII character to Debug Message Window


Top
 Profile  
 
PostPosted: Sun Oct 01, 2017 2:35 pm 
Offline
User avatar

Joined: Mon Jan 23, 2006 7:47 am
Posts: 75
You can also write text to a specific RAM section and watch that in an emulator's memory viewer if it doesn't have a Debug Message Window.


Top
 Profile  
 
PostPosted: Mon Oct 02, 2017 4:29 am 
Offline

Joined: Sun Oct 01, 2017 1:38 pm
Posts: 3
@creaothceann and @nocash, thank you very much for your help!

Regarding the video/text mode, are there any code examples you could point to?


Top
 Profile  
 
PostPosted: Mon Oct 02, 2017 2:48 pm 
Online
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 1828
Location: DIGDUG
SNES doesn't have a 'text mode'.

You probably want Mode 1. BG layer 0 will have 16 colors, 4 bits per pixel (bpp). You write text by placing the appropriate letter tiles in the correct order on the BG.

You could modify one of the 'hello world' examples out there (I wrote one) and change the data.

You can make CHR-ROM (graphics) with most tile editors. If you use YY-CHR, you can write any font in Photoshop or GIMP, flatten image, change image mode to indexed, 15 or 16 colors, cut. Paste into YY-CHR, set to 4bpp mode. Save CHR, replacing the graphics from the example code.

Changing the data (BG tile map) will require some actual SNES knowledge. It's 2 bytes per tile*. Read the wiki. I would be lousy at explaining it.

*quote from wiki...

Each entry in the tilemap is 2 bytes, formatted as (high low):
vhopppcc cccccccc
v/h = Vertical/Horizontal flip this tile.
o = Tile priority.
ppp = Tile palette. The number of entries in the palette depends on the Mode and the BG.
cccccccccc = Tile number.

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Top
 Profile  
 
PostPosted: Mon Oct 02, 2017 3:42 pm 
Offline
User avatar

Joined: Sun May 27, 2012 8:43 pm
Posts: 1311
SNES sort of has a text mode - in that tile graphics modes can be traced back to classic computer text modes, just with more attribute bits, custom characters, and fine scrolling.

An easy way to print is to place the ASCII charater set in VRAM, and have it line up to ASCII values - e.g. tile 0x41 contains an 'A' character.

Then it's a matter of writing a really simple copy loop, with a source string pointing towards a VRAM destination.


Top
 Profile  
 
PostPosted: Mon Oct 02, 2017 9:59 pm 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3114
Location: Nacogdoches, Texas
mikejmoffitt wrote:
An easy way to print is to place the ASCII charater set in VRAM, and have it line up to ASCII values - e.g. tile 0x41 contains an 'A' character.

Then it's a matter of writing a really simple copy loop, with a source string pointing towards a VRAM destination.

This is exactly what I did for my history presentation ROM (I don't know where I posted it). I actually wrote the text in Microsoft Word, and then pasted it into the ASCII window of HxD and added spaces when necessary. I made sure to have my VRAM upload routine only write to the low bytes of VRAM, because that's where the tile selection data is.


Top
 Profile  
 
PostPosted: Tue Oct 03, 2017 7:28 am 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2365
The backgrounds layers are made out of 8x8 blocks positioned in a grid. So you need to make blocks with letters and numbers on them, and spell words with the letter blocks. It's the same reason why in Super Mario World, the blocks all look the same and are in a fixed grid.


Top
 Profile  
 
PostPosted: Wed Oct 04, 2017 7:52 am 
Offline
User avatar

Joined: Tue Apr 05, 2016 5:25 pm
Posts: 146
dougeff wrote:
Changing the data (BG tile map) will require some actual SNES knowledge. It's 2 bytes per tile*. Read the wiki. I would be lousy at explaining it.

My SNES framework, which will have its first release in a couple weeks should be released once I work out some rough edges, includes a raw tilemap editor. Stay tuned.

_________________
SNES NTSC 2/1/3 1CHIP | serial number UN318588627


Last edited by HihiDanni on Wed Nov 01, 2017 4:30 pm, edited 3 times in total.

Top
 Profile  
 
PostPosted: Wed Oct 04, 2017 10:07 am 
Online
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 1828
Location: DIGDUG
Quote:
My SNES framework, which will have its first release in a couple weeks, includes a raw tilemap editor. Stay tuned.


Cool.

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Top
 Profile  
 
PostPosted: Wed Oct 04, 2017 12:45 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2365
HihiDanni wrote:
dougeff wrote:
Changing the data (BG tile map) will require some actual SNES knowledge. It's 2 bytes per tile*. Read the wiki. I would be lousy at explaining it.

My SNES framework, which will have its first release in a couple weeks, includes a raw tilemap editor. Stay tuned.


Nice. Is this going to use tiles or metatiles?


Top
 Profile  
 
PostPosted: Wed Oct 04, 2017 4:55 pm 
Offline
User avatar

Joined: Tue Apr 05, 2016 5:25 pm
Posts: 146
Well, I said it was a raw tilemap editor. So it just makes plain static, low level tilemaps for use in title screens and other single screen use cases. Metatiles will come later when I write a level format.

_________________
SNES NTSC 2/1/3 1CHIP | serial number UN318588627


Top
 Profile  
 
PostPosted: Mon Oct 30, 2017 2:13 pm 
Offline

Joined: Sun Oct 01, 2017 1:38 pm
Posts: 3
Wow, thanks for all your input! I'm glad this place exists, so much helpful stuff!


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

All times are UTC - 7 hours


Who is online

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