Jump to content

postpostdoc

Members
  • Posts

    21
  • Joined

  • Last visited

Everything posted by postpostdoc

  1. The Intellivision Music Synthesizer plays Breakout! The keys act as absolute position inputs, so if you want to go the rightmost position on the screen, then you press the rightmost key on the synthesizer. The black keys move the paddle a little bit higher up the screen, and the white keys move the paddle back down to their original height. The graphic along the bottom of the screen shows which key (or pair of keys) you are pressing at any moment. I'd call this a "work in progress" but it is more of a quick demo that I wanted to share before heading to PRGE. The .rom is available to download, but be warned that I haven't tried it on real Intellivision yet and the footage is done with jzintv. I'll also attach a .rom that you can use to test an Intellivision Music Synthesizer to see if it has any issues with the keys. The source code for both projects is mostly written in IntyBASIC, and the source code for the testing program is attached and is also available here. Thank you to @intvnut for posting the basis for this project (including IntyBASIC callbacks) in this post. BreakoutSynthVideo.mp4 breakout_demo.rom synth_kt.rom synth_test.zip
  2. Maniac is a 10 episode mini-series that premiered on Netflix on September 21st, 2018. Although seemingly set in modern times, the technology in the show has an interesting retro (and often dystopian) aesthetic as discussed here. Tonight I was watching Episode 9 and spotted an Aquarius Mini Expander and 4K Memory Cartridge! The image of the Mini Expander also has a second (unknown) cartridge and the tips of two controllers. A couple of pictures and a short clip are attached, and I'll include a little bit of additional information in spoiler text below. There seems to be another thread on AtariAge about Maniac, but I thought that it would be more fun to post this small detail in this forum. ManiacClip.mov
  3. While the Intellivision Neural-Net Super-Computer is processing the contest results, I have had some time to continue working on the flip phone menu. The animated gif shows that the songs and volumes can be changed from the new music menu. The player can even save time by using the INTY phone's "media keys" (ie keypad buttons 1, 3, 7, 9) and these keys work regardless of which state the phone is in. The phone also flips open and closed and scrolls on and off the screen, although it seems that there are still a few graphical glitches that I need to sort out. This is probably the last update I'm going to make to this little side project before integrating it into the main MazezaM game ... unless someone can convince me that the flip phone needs to have a version of Snake for authenticity The attached rom features three songs that have been converted from other old-school games using decle's MusoCheat. Bonus points if you can identify any of the three songs Flip.rom
  4. In the spirit of anxiously checking the time, here is a quick update on cell phone usage in MazezaM. Instead of a standard in-game menu, our hero Hannah will pull out her trusty INTY flip phone and make selections on it. In a classic case of over-engineering, the phone also keeps track of the time throughout the game, as well as its battery charge, and the reception. The attached video shows the time sped up to 1 minute per second, so that you can watch the icons updating more quickly. Thank you to nanochess for the IntyColor application that has helped speed up these cell phone developments. I'm still working on the music menu, but a big thank you in advance to decle's MusoCheat which helped me create some adequate in-game music. A friend of mine with actual musical talent has also been doing some musical compositions for the game, and I'll save all of those updates for next time.
  5. In the spirit of Intellivision's "telephone" controllers, I have been working on simulating cell phone texting using IntyBASIC. The animated preview below is a reimagining of the first storyboard in MazezaM. In the above clip Otto types out an SOS on his touch screen phone -- complete with accurate thumb typing time delays! -- and the main character Hannah replies. In later cut scenes I'm hoping that Hannah's T9 flip phone will also make an appearance. This will all take a little while longer to work into the actual MazezaM game, but I thought I'd share a little preview in the meantime. Source code and .rom are also attached. PS You can also speed up Otto's typing by pressing any of the controller buttons once or twice. texting.rom texting.zip
  6. A manual is attached below as manual.txt. If you visit the git repository then the manual will be rendered nicely as a markdown file. A screen capture of the main controls is also given as an image below for convenience. The latest rom is Version 1.1 and it has a few minor fixes. The manual includes the basics that you would expect (e.g. story and controls) as well as some less likely material, including the history of MazezaM and its computational complexity. At the risk of getting too nerdy (maybe not an issue on this subforum?!?) the puzzle is PSPACE-complete. PSPACE is a complexity class of decision problems that are "solvable in a polynomial amount of space with respect to the size of the input" and PSPACE-complete means MazezaM is among the hardest problems in this complexity class. In particular, it is likely to be harder than all puzzle games that are NP-complete, where NP means "solvable in polynomial-time using non-determinism". Links to a couple of papers on the subject are included, and feel free to post here or send me a message if you have any questions about that. In particular, this paper will help anyone stuck on the later SOS levels . As some personal background, I teach courses in theoretical computer science at a small college, and MazezaM is a puzzle that I had previously studied before implementing it for this contest. I should also mention that I haven't finished at least 10 of the puzzles in this game, so kudos if you do! And my apologies for not including a manual earlier -- the game is already hard enough! manual.txt MazezaM_V11.rom
  7. You can also find the update under V0.10 in the Releases tab of the corresponding git repository https://src-code.simons-rock.edu/git/awilliams/MazezaM_SOS.
  8. Thanks guys, that totally makes sense! re: link to source code. The link should be back up now https://src-code.simons-rock.edu/git/awilliams/MazezaM_SOS. We run our own git server at our college, but the uptime is much lower than 100% largely due to my incompetence in the area
  9. Here is a slightly squished version of the MazezaM.rom file down to 34kb from 42kb. This is related to a post about .rom size I just made on the IntyBASIC compiler v1.2.9: The good things are now better! thread. I also took the opportunity to fix a few small bugs and make a few small improvements. MazezaM_V10.rom
  10. I have a question about .rom size. Near the end of the IntyBASIC Programming Contest my MazezaM.rom file started getting close to 42k and it wouldn't load in jzintv. When this happened I would usually try to trim some code or move the various "asm org" commands around until it would work with jzintv again. After the contest I returned to this issue and started getting a bit confused. In my program I only used the following segments: Segment 0 (by default) (8kb) Segment 1 (asm org $A000) (8kb) Segment 2 (asm org $C040) (approx 16kb) But these segments have a total size of 32kb and yet my .rom file was 42kb and seemed to work. Was my .rom file clobbering other areas of memory? Would it have worked if I had put it only a flash cart (like LTO Flash)? I was only working with jzintv and never seemed to have a problem, but now I am a bit suspicious that I wasn't really creating a valid .rom file. The manual for IntyBASIC does give a pointer on how to investigate the memory locations that are used: However, I'm still a bit of a noob and don't really know what I'm looking at when I open the resulting .list file . I also skimmed through Oscar's new book (so good! ) but that didn't seem to resolve my confusion. PS This issue also motivated me to start squishing the MazezaM.rom file and I'll post a new 34kb version on the MazezaM thread.
  11. Before the deadline I was able to add a twist that I had been planning for a little while. In a "MazezaM SOS" level the player must rescue another player who is trapped inside of maze. Then the player must bring themselves and the rescued party to the exit. In these levels you control the trapped player using the keypad, so it takes advantage of the Intellivision controller. In total I added 5 SOS levels to go along with the original set of 30 Classic levels. The motivation for SOS levels came from everyone's comments on developing a story. I tried to think of a theme that could fit an abstract puzzle like MazezaM, and search and rescue seemed appropriate. The fact that "SOS" is a palindrome was an added bonus To go along with the SOS theme I added a more complete story to the game. Every 6 levels you will confront an SOS level and more of the story will be revealed. I'm not particularly pleased by the presentation of the story, but I ran out of time. Speaking of time, there were still a number of things that I wished I was able to do before the deadline (e.g. sound!), but I'm sure that is true for all of the other contestants too. Thank you for a great contest! PS The source code for my submission can be found at https://src-code.simons-rock.edu/git/awilliams/MazezaM_SOS (click on Releases and then Version 0.9 for the version submitted via email). MazezaM_V9.rom
  12. re: sound. Yes, I definitely intend to add some sound. re: story. Stay-tuned! Thank you for your continued feedback!
  13. re: HUD. I agree that the count-down counter is not the most intuitive, but I do like the general idea of showing the number of moves remaining for each accomplishment. The HUD could be easier to parse if I remove the stone pattern from the top row, so I may end up doing that. Although it looks like there is a lot of empty space on the screen, this actually isn't true on the later levels. Some of the later levels are quite tall. For example, Level 17 has 11 rows. If you add the bottom and top rows of the wall, then that puts you at 13 rows which is one too many since my graphics are all card-based (except on the Level Select screen which uses color squares mode). On Level 17 I don't display the bottom wall, and the top wall is covered by the HUD. Some of the later levels are quite wide. The maximum width is 16 columns. If you add the left and right walls, then that puts you at 18 columns which only leaves two blank ones.
  14. re: controls. When you are playing a level you can reset your progress with the bottom-left button (i.e. B1). Then if you press the same bottom-left button again (i.e. B1 again) then you are returned back to the Level Select screen that you mentioned. I should have explained that in my previous post, so thank you for mentioning the issue!
  15. I have been working pretty consistently on the game for the past week and have two big updates. The level unlocking and achievements are now implemented. The player earns 0, 1, 2, or 3 stars on each level depending on how many moves they make. Move counters have been added to the heads-up display. A password system that saves your achievements is now implemented. You can also press one of the top buttons (i.e. B0) during any level to bring up a "pause" screen. This screen will give you information on the achievement requirements for the given level, and your current password for all of your achievements. You current password can also be found in the new Password option off of the main menu. To navigate through the various screens you can generally use the bottom-right button (i.e. B2) to move forward and the bottom-left button (i.e. B1) to move backwards on either controller. On my installation of jzintv this means Ctrl to move forward and Alt to move backward with Shift to access the pause menu. And you can use the keypad for entering the passwords, where the B0 button toggles between numbers 0-9 and letters A-J. I have a couple of other big ideas that I'd love to implement. Most notably I've done some planning for an "SOS" mode where you rescue another playable character. However, due to the time constraints, I'll probably switch into polishing mode now (e.g. sound, nicer graphics on the various screens, more consistent controls, etc). And more importantly I need to catch up on playing the other entries! MazezaM_V7.rom MazezaM_V7.zip
  16. Just a quick note that the game play will be pretty similar to the previous version. So if you are constrained for time, then feel free to save some for the next version. Thanks again!
  17. Thank you for explaining in more detail. Yes, I can see how the yellow bar has a nice balance between discrete steps and quick continuous motion between them. The Boulder Dash run cycle is also quite nuanced despite staying within the grid boundaries. Thank you for those examples and I'll see what I can do for the next update!
  18. The biggest bug that I created for myself on this project was related to the size of the .rom. I didn't realize that I was pushing up against the size limit (of the first segment) and at various points in development the game wouldn't load into the jzintv emulator. I say "load" now, but at the time I thought that the .rom was "crashing" the emulator, so I was looking in all the wrong places for the bug. I spent many hours adding and removing and rewriting and moving code around, but I was always thinking about what the code was doing, rather than how big the code was. I have definitely learned my lesson now, and in retrospect I should have paid more attention to the discussion of "asm org" in the contest rules. But I also think that other developers could run into this issue without realizing what their problem is. Would it be possible for future versions of IntyBASIC to issue a "size warning" to the programmer when the .rom won't work due to segment size issues?
  19. Thank you DZ-Jay for the thorough and thoughtful evaluation! I agree that MazezaM is a deeper and more difficult game than it initially looks. But you are also correct that appearances can be very important in a game. So in this update I have improved the graphics in several ways. There are now tiles for the boxes that you push, and a stone brick pattern surrounding the levels. The tiles use different background colors, so this addition was a nice way for me to wrap my head around the color stack, so it was worth it just for that education. As you suggested I used IntyColor (thanks @nanochess!) to spruce up the title screen. I positioned the letters carefully to promote tile reuse, so it is currently only using 39 / 64 bitmaps, so there is more room for improvement there as well. HannaH also has some new animations for running into each level, as well as a small celebration animation when she finishes a level. Those things seem to give the game some more personality, so thank you for that suggestion. On the other hand, I don't plan to further address the "jerky motion" that you mentioned. When HannaH is inside of an individual level, it is important that she has discrete card-by-card movements. Why? There are two different reasons. Notice that if HannaH moves partway through a card, then the boxes in the row that she is pushing will also need to move partway through a card. Since entire rows move at the same time, it probably isn't possible to do this type of movement with the limited number of sprites (e.g. HannaH uses four MOBs and the remaining four MOBs can't create a box pattern that spans the width of the screen.) The effect could be accomplished with some additional programming by creating shifted versions of the background cards. The more important reason is that this change could actually make the game play much worse. The puzzles are played on a card-by-card grid and if gets confusing if the animations make it look like the rows can be pushed in smaller increments. In other words, the player can see the rows being moved outside of the grid, but they can't actually get the rows to stop there. For an illustration of this issue, take a look at the ColecoVision port of the game (here is a clip from Gamester81's video on it https://youtu.be/ofKYW2mAYD0?t=3m30s). Overall, it is a really beautiful port by alekmaul and they managed to make it look just as good as their SNES port (which won a retro coding contest back in 2012). But for me, the game play is ruined due to the additional animation. So there are good reasons for the "jerky motion" and hopefully they are explained well enough above. I also appreciated your comments about adding a deeper story. I have a great idea for a small but significant addition to the classic MazezaM formula that would really play well into a more detailed story. A lot of the code rewriting I have been doing is in preparation for this upgrade (called "MazezaM SOS"). I hope to be able to get it working before the new deadline. I had also intended to add some sound effects and a HUD to this version, but ran into a couple of big development issues, which I'll mention in a separate post. MazezaM_V5.rom MazezaM_V5.zip
  20. Thank you all for your feedback. I am in agreement with almost all of the suggestions that were made, and I will do my best to implement them. One exception is the addition of a timer or 'lives'. Some implementations of MazezaM do include these types of constraints, but I find these puzzles to be hard enough on their own. One implementation with 'lives' is available on Rockbox, which is an alternate operating system for mp3 players that some of you may enjoy checking out. In response to DZ-Jay: Yes, there is an update! Version 3 is now ready. The main additions are the following: Level selection screen (using color squares mode ). Levels are now centered on screen. There are sprites for walking and pushing. There is a basic storyline involving the character HannaH. An image of the level selection menu is attached. This version of the game allows you to select any of the 30 levels from that menu. However, that feature will eventually be removed, and you will need to clear levels in order to unlock future ones. In the next version I'm hoping to add undo, the ability to save your progress, the minimum number of moves per level, and better navigation between the various menus. I'll also add as much in the way of graphics, sound, and story as I can. This version of the game also has a main menu stub for a new 'quest' with new levels, but I haven't designed any yet, so that may not come to fruition. I will mention that it is fairly easy to add new levels to the game, so if anyone feels like trying out their level design skills, then I can post a version of the game with those levels included. Thank you again for your feedback and keep it coming! PS In case you are wondering about the version numbering, I didn't post Version 2 of the game since it was mostly a code rewrite without any external features. MazezaM_IntyBASIC_V3.zip MazezaM_V3.rom
  21. Hey, first-time AtariAge poster here. I came across this contest over the weekend and decided to give IntyBASIC a try. I found it to be well documented and also very easy to use, and I was surprised at how quickly that games can be prototyped with it. (In contrast, I have previously tried my hand at writing NES games, and found it to be much more difficult to get set up.) So thank you to the creators of IntyBASIC and this contest for getting me started on something that I had been wanting to try for quite some time! This is also my first time looking into the Intellivision and find the system to be quite fun to work with. For my first program prototype I chose to port the puzzle game MazezaM which was invented by Malcolm Tyrrell. The game is similar to Sokoban in the sense that you push boxes and cannot pull them. However, there are several differences: The goal is to escape the maze (as opposed to putting the boxes in particular locations). The boxes cannot be moved vertically. Horizontal pushes causes all boxes in that row to move simultaneously Malcolm first implemented the game for the ZX Spectrum in 2002 and released it under the GPL. Since then it has been ported to over 30 platforms by various programmers. This includes commercial releases on the ColecoVision and SNES (and on Android under the name 'Rote'), but as far as I can tell it has never appeared on the Intellivision. The following link includes an overview of the previous releases, and a link to a version of the game that you can play online in HTML5 using the PuzzleScript game engine: https://sites.google.com/site/malcolmsprojects/mazezam-home-page This first draft includes the 30 levels that shipped with Malcolm's 2010 release of the game. Overall, these puzzles are very challenging, and don't be surprised if you get stuck on one of the early levels for 10 minutes or more. You can restart a level by pressing any button (at least that is what the implementation is supposed to do). I have attached the .rom file and also a .zip file containing the source code (which is quite rough at this point). As mentioned above this has just been a weekend project thus far, so there are many ways in which I'd like to improve the game before the contest ends. However, I'd also like to hear your thoughts. Thank you for reading this somewhat long post and please enjoy! MazezaM_IntyBASIC_V1.zip MazezaM_V1.rom
×
×
  • Create New...