Jump to content

Photo

Nonogram - game released

game assembler cartridge

128 replies to this topic

#1 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 3,989 posts
  • Location:Denmark

Posted Fri Apr 1, 2011 3:34 AM

Game downloads (EA5 just below) in post #97

Cartridge (game and bonus material) on sale at arcadeshopper.com

Short manual in post #99

Binary image for cartridge including bonus material in post post #121


Attached File  mine.ea5.bin   5.38KB   21 downloads

 

nonogram.gif

 
- - - - -
 
 
 
We'll make up a game based on Nonogram.
 

 
:)

Edited by sometimes99er, Wed Aug 10, 2016 4:14 AM.


#2 matthew180 OFFLINE  

matthew180

    River Patroller

  • 2,413 posts
  • Location:Castaic, California

Posted Fri Apr 1, 2011 8:42 AM

Heh, never heard of that game, but it looks like it would be fun. Are you planning on using GM2? According to the Wiki page it was invented circa 1995, so it will also be a unique game to the 99/4A! :-)

#3 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Fri Apr 1, 2011 12:04 PM


Are you planning on using GM2?

 

Earlier this year I was looking around for something suitable with the Basic on Cart Contest (BoCC), and this (Nonogram) is one of those (ideas stored for later). This is an experiment from back then and obviously using GM1.

nonogram0002.png

This was loosely based on a my memory of the arcade Logic Pro and still photos of Picture Sudoku. Today I've looked at and played versions for GameBoy, Sega Master System, Flash and Java including one for my mobile phone.

icon_smile.gif


Edited by sometimes99er, Sun Aug 30, 2015 5:58 AM.


#4 adamantyr ONLINE  

adamantyr

    Stargunner

  • 1,190 posts

Posted Fri Apr 1, 2011 12:35 PM

A superb entry for the contest! I can't wait to see it going.

Adamantyr

#5 JonnyBritish OFFLINE  

JonnyBritish

    Moonsweeper

  • 420 posts
  • Location:Montgomery, IL

Posted Fri Apr 1, 2011 3:14 PM

A superb entry for the contest! I can't wait to see it going.

Adamantyr


almost starting to feel guilty at not cranking TI99/4a code...

#6 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Sat Apr 2, 2011 1:16 AM

More experiments with main game graphics. For now I'll stick with BM1 (standard graphic mode). Cursor being 3 double sized sprites - of which 2 should move along the axes (helping you out). Notice board shadow on the second one.

nonogram0005.gif

Most often I see board sizes in multiples of 5. We could have a few 5x5 for starters, then 10x10 and maybe 15x15, which by definition would need all characters on screen in height (15 cells, a max of 8 numbers and bottom line). Think I'll stick with 10x10 all through.

icon_smile.gif


Edited by sometimes99er, Sun Aug 30, 2015 5:59 AM.


#7 matthew180 OFFLINE  

matthew180

    River Patroller

  • 2,413 posts
  • Location:Castaic, California

Posted Sat Apr 2, 2011 10:48 AM

Looks cool! A few thoughts that come to mind when I look at it and think about the game-play:

* The drop shadow adds a little extra flare, but is common... but that "reflection" trick you do so well might look sweet!?

* Since the biggest pattern would be 15x15, that would easily fit in one 16x16 sprite, so it might be nice to display a "pixel size" version of the puzzle as you work on it.

* If you were to use GM2, maybe spice up the play field "Konami" style with 3D looking tiles (two colors each and a light-hint in the corner), etc.

* Have some music playing, and maybe sound effects.

* I wonder if there is some way to add short term rewards in the game, like the pattern matching games (think Bejeweled, etc.) where you get a "reward" every time you match 3 or more tiles. In a lot of books on games I have read, a common theme is to give the player short-term (every 10 to 30 seconds, which would be like getting a power up, matching 3 or more tiles, shooting the 5 enemies in front of you, etc.), medium-term goals (end of the level), and long-term goals (end of game).

Anyway, it is looking nice and I think it will be fun to play. Like I said above, I had never heard of the game, and I'm going to wait and play yours first.

#8 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Sun Apr 3, 2011 2:11 AM

Thanks for feedback. icon_smile.gif

Yeah, the drop shadow looks rather common, not all that slick, a bit retro actually, I even went and checked out the old "A-maze-ing" cartridge (PHM 3030), but that's something else.

nonogram0008.png

Eh, "reflection" like in mirror/water reflection ?

nonogram0009.png

Yep, some of the games I've looked at have a tiny version (image) displayed, and at a later stage in the individual puzzle, will often suggest what the hidden image might be - like if it's an umbrella or a house.

I think I'll try and stick with something simple and maybe/hopefully slick instead of something at first impressive, but maybe a bit distracting to the eye while playing. Well, actually the grid itself takes one color, so I think that would only leave room for vertical gradients. On the other hand, the grid could be left out, if all 3 "states" (free, taken and marked) help create the grid illusion. Again the cursor only moves in a grid. The "free" could be all one color, no grid. Alignment could then be a minor issue, feature or challenge. Might be an idea for different "sets" of colors and graphics.

I would definitely like some jolly music. Soundeffects might be an option. First priority though will be to get the game playable (at least meeting the deadline). Have to take a look at Tursi's music to soundlist tool (my own projects in this respect have stalled somewhat).

I think I might be adding a "time bar". When time runs out the puzzle will clear, and you have to start all over - very annoying. I could use the 9901 timer, but will use the frame update rate. This will have the effect of stressing 60Hz users more than 50Hz. Love that.

Other than that at least an end-of-game "show" would be nice.

icon_smile.gif


Edited by sometimes99er, Sun Aug 30, 2015 5:59 AM.


#9 Tursi OFFLINE  

Tursi

    River Patroller

  • 4,850 posts
  • HarmlessLion
  • Location:BUR

Posted Mon Apr 4, 2011 12:04 AM

I think I might be adding a "time bar". When time runs out the puzzle will clear, and you have to start all over - very annoying. I could use the 9901 timer, but will use the frame update rate. This will have the effect of stressing 60Hz users more than 50Hz. Love that.


There's a nice easy trick for this that works quite well -- code your game for 50hz, and if running at 60hz, just skip every 6th interrupt. This way you still run 50 times a second, and it's actually reliable enough even for audio playlists to sound correct.

The trick I've not seen on the TI is how to reliably detect which console you are on. I can only think that you'd have to count cycles between vertical blanks or something like that. :/

#10 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Mon Apr 4, 2011 3:17 AM

The trick I've not seen on the TI is how to reliably detect which console you are on. I can only think that you'd have to count cycles between vertical blanks or something like that. :/

Thanks for inputs. :)

I think it's automatically done in Spectra2 at startup - counting the cycles and making the information available for the game programmer. Very cool.

I like my twist on 60Hz users, but also I would like music to sound the same ...

:)

#11 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Mon Apr 4, 2011 3:34 AM

I've changed the colors a bit. Here is a snapshot of the graphic files:

nonogram0010.png

 


Edited by sometimes99er, Sun Aug 30, 2015 6:02 AM.


#12 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Mon Apr 4, 2011 3:50 AM

There's a nice easy trick for this that works quite well -- code your game for 50hz, and if running at 60hz, just skip every 6th interrupt. This way you still run 50 times a second, and it's actually reliable enough even for audio playlists to sound correct.

I suspect I'm not going to have sprites or scrolls moving nicely at exactly 1 pixel per frame in this game, and under any circumstance this trick is a very nice one. Once you know what you're running on (50 or 60Hz), it's a very nice and simple trick - surely one to remember. Also since we've got a nice share of 50Hz developers here at AtariAge/in Europe. - Myself though is only running emulation. I'd love to test on the iron, but sometimes you have to make choices. Wife would explode in my face if I bought one. She's smart and knows stuff - or I tell her too much ...

:)

Edited by sometimes99er, Mon Apr 4, 2011 3:55 AM.


#13 marc.hull OFFLINE  

marc.hull

    Stargunner

  • 1,119 posts
  • Location:Oklahoma CIty.

Posted Mon Apr 4, 2011 11:33 AM

I think I might be adding a "time bar". When time runs out the puzzle will clear, and you have to start all over - very annoying. I could use the 9901 timer, but will use the frame update rate. This will have the effect of stressing 60Hz users more than 50Hz. Love that.


There's a nice easy trick for this that works quite well -- code your game for 50hz, and if running at 60hz, just skip every 6th interrupt. This way you still run 50 times a second, and it's actually reliable enough even for audio playlists to sound correct.

The trick I've not seen on the TI is how to reliably detect which console you are on. I can only think that you'd have to count cycles between vertical blanks or something like that. :/


You could conceivably detect which console you are using by utilizing the 9901 timer since it's rate is based on the system clock. It should be possible to wait for a VDP interrupt trigger, load the 9901 timer with a large number such as 2000, wait for another interrupt event and read out the timer. The 50 hertz machine should yield a smaller (the timer counts down) number in the 9901 register than the 60 hertz machine.

Your test has to use a cut off point that is approximate as the odds of nailing the edge of the event right every time are slim.

IIRC one 60 hertz VDP interrupt equals about 782 9901 clock ticks which would yield a readout of around 1218 (2000-782 ticks.) A 50 hertz cycle should yield a final result of around 1062 (2000-938.) Those numbers are far enough apart for a conclusive result in practical use. Using 1140 as the cut off point one could safely assume that a final timer result less than 1140 would indicate a 50 hertz machine and greater than 1140 would indicate a 60 hertz machine.

I don't think this method would be any better than counting cycles in a tight loop bound by the interrupts (which is what I think Retro did.) I also don't know for certain if this would work as I have never seen a 50 hertz machine but it oughta. ;-)

You could conceivable just shit can the VDP interrupt and use the 9901 timer all together. The SID player does this to avoid all the 50/60 conflict among other reasons.



I could post some code later if someone with a 50 hertz machine wants to test this theory out.

Edited by marc.hull, Mon Apr 4, 2011 11:37 AM.


#14 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Mon Apr 4, 2011 2:03 PM

Using 1140 as the cut off point one could safely assume that a final timer result less than 1140 would indicate a 50 hertz machine and greater than 1140 would indicate a 60 hertz machine.

I could post some code later if someone with a 50 hertz machine wants to test this theory out.

Thanks for the values. Much appreciated. Would be nice if someone could test the very plausible theory. :)

#15 Tursi OFFLINE  

Tursi

    River Patroller

  • 4,850 posts
  • HarmlessLion
  • Location:BUR

Posted Mon Apr 4, 2011 2:21 PM

There's a nice easy trick for this that works quite well -- code your game for 50hz, and if running at 60hz, just skip every 6th interrupt. This way you still run 50 times a second, and it's actually reliable enough even for audio playlists to sound correct.

I suspect I'm not going to have sprites or scrolls moving nicely at exactly 1 pixel per frame in this game, and under any circumstance this trick is a very nice one. Once you know what you're running on (50 or 60Hz), it's a very nice and simple trick - surely one to remember. Also since we've got a nice share of 50Hz developers here at AtariAge/in Europe. - Myself though is only running emulation. I'd love to test on the iron, but sometimes you have to make choices. Wife would explode in my face if I bought one. She's smart and knows stuff - or I tell her too much ...


Even for movement, it works better than you'd think. I used this trick on all of my Playstation 1 demos and never noticed anything (I run at 60hz, so I would be the one affected). ;) Classic99 can emulate 50hz and 60hz, but to be honest I don't know if 50hz still works. ;) At any rate, since 60hz definately does work, you can try it under emulation and still see what it looks like. :)

#16 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Tue Apr 5, 2011 1:47 AM

Classic99 can emulate 50hz and 60hz, but to be honest I don't know if 50hz still works.

I don't use it (50Hz in Classic99). Funny things happen to sound here at my end. I have a temporary example for you at YouTube ... /watch?v=t6_Kmt5IJBE

;)

Edit: Video removed.

Edited by sometimes99er, Wed Apr 6, 2011 4:13 AM.


#17 Tursi OFFLINE  

Tursi

    River Patroller

  • 4,850 posts
  • HarmlessLion
  • Location:BUR

Posted Wed Apr 6, 2011 3:26 AM

Classic99 can emulate 50hz and 60hz, but to be honest I don't know if 50hz still works.

I don't use it (50Hz in Classic99). Funny things happen to sound here at my end. I have a temporary example for you at YouTube ... /watch?v=t6_Kmt5IJBE

;)


hehe.. so I see!! oi! It sounds like the audio code is expecting a 60hz tick, rather than checking how much audio to generate. That doesn't surprise me, I intended the timing around that core to be temporary, but it has lasted much longer than I expected. I also considered just removing 50hz, but I think it will all work right when the fabled "timing rewrite of the VDP" happens. ;)

#18 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Sat Apr 9, 2011 12:40 AM

Just a bit of progress in the graphical department.

nonogram0014.gif

Notes
- Title added.
- Timer added.
- 10x10 board itself centered horizontally.
- Room for 5 numbers at the top and to the left.
- Colors adjusted.

Maybe I should just leave the cursor and aligners white instead flashing ...

icon_smile.gif


Edited by sometimes99er, Sun Aug 30, 2015 6:03 AM.


#19 InsaneMultitasker OFFLINE  

InsaneMultitasker

    Stargunner

  • 1,743 posts

Posted Sat Apr 9, 2011 1:00 AM

Maybe I should just leave the cursor and aligners white instead flashing ...

:)


Or you could cycle the flash rate and hypnotize the players into sending fairware donations to you via PayPal. ;)

#20 Tursi OFFLINE  

Tursi

    River Patroller

  • 4,850 posts
  • HarmlessLion
  • Location:BUR

Posted Sat Apr 9, 2011 6:19 PM

Your graphics never fail to blow me away, Sometimes99er!

#21 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Thu Apr 14, 2011 1:54 AM

Hehe, thanks Tursi. With this one I'm not trying to be impressive but rather a bit minimal and hopefully then also a bit slick. Not completely satisfied with color palette as is. Settled for a font. 0222 from the collection and modified somewhat. Light green on dark green for now. Think I will have something called Level and not Stage or Problem. Since cartridge format is not an option in this Rainy Day Game Contest, I changed my present setup to output EA3.

icon_smile.gif
 


Edited by sometimes99er, Sun Aug 30, 2015 6:06 AM.


#22 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Wed Apr 20, 2011 6:11 AM

Palette changed mainly to get better contrast on numbers and grid. That's black numbers on dark green changed to black on light yellow, and painted areas changed from dark blue in black to dark green in black. Text was light green on dark green, but that has changed to black on light yellow.

icon_smile.gif

nonogram0017.png


Edited by sometimes99er, Sun Aug 30, 2015 6:07 AM.


#23 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Thu Apr 21, 2011 4:14 AM

Title slightly changed. Top unchanged. Middle raised. Bottom more fat. I think the letter R looks better now.

nonogram0018.png

Preliminary routines

  • VDP registers, patterns, colors and lists.
  • Title draw.
  • Board clear.
  • Board details, tube and fluid fill.

:)


Edited by sometimes99er, Sun Aug 30, 2015 6:07 AM.


#24 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Sat Apr 23, 2011 12:30 AM

Only implemented cursor flash routine. It's 6 frames of black, 3 frames of grey, 6 frames of white, 3 frames of grey and then looping. 4-2 is too fast. Object code attached.

Game

There are different approaches. A wrong move could give penalty on the timer. Others only check for the solution and no clue is given whether you're on right track or not. You might then end up in a situation with a solution you think is right but nothing happens. Your solution is then wrong, and often you would want to start all over. A reset option would be nice. Some adds time when you make a correct move. Some games have a progress percentage. Oh, and I should not forget the "pixel size" version suggested by matthew180 in post #7.

Puzzles

Maybe I should rename level and call it puzzle. I guess I'll store a puzzle in 10 words. Don't know if I'll name the puzzles - only revealed when completed. If you can't make out what the puzzle/image looks like, then the name should help you recognise. Instead of being able to go to any level, maybe you could enter the name, and then go to that puzzle or in fact the puzzle right after - a way of coming back to the game without a game state save (I don't want to save/update from assembler - too lazy - and I'm trying to keep an 8K cartridge output open as a after contest option).

Memory

I guess I'll keep the board state in VDP - on screen. A complete check against the solution - for whatever game options (see top) - would be like reading 10 rows from VDP - 100 bytes. Does not sound very efficient, but then I guess we have more than enough CPU time. Keeping in mind that I'd like to keep variables in ScratchPad (the 8K cart option). Maybe I should just keep the board state in ScratchPad ...

:)



Place NO in DSK1. E/A-cart, 3 Load and run, file name DSK1.NO, program name S.

Edited by sometimes99er, Sat Jan 7, 2012 6:59 PM.


#25 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • Topic Starter
  • 3,989 posts
  • Location:Denmark

Posted Sun Apr 24, 2011 3:47 AM

You can move the cursors around using joystick and/or keyboard. If you hold a direction or key it will start auto repeating. Auto wrapping too (move right all the time and you will reappear on the left). Keys are E, S, D and X ... Should I change that to W, A, S and D ?

Please test in both emulator(s) and on the real iron (I'm emulator only). And please do report any strange behavior. icon_ponder.gif

Routines added

  • Joystick and keyboard reading
  • User input repeat delay
  • Update cursors

icon_smile.gif

 


Edited by sometimes99er, Sun Aug 30, 2015 6:07 AM.






Also tagged with one or more of these keywords: game, assembler, cartridge

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users