Jump to content


+AtariAge Subscriber
  • Content Count

  • Joined

  • Last visited

  • Days Won


mksmith last won the day on July 6 2019

mksmith had the most liked content!

Community Reputation

2,090 Excellent


About mksmith

  • Rank
  • Birthday 02/01/1971

Contact / Social Media

Profile Information

  • Custom Status
    The covid capital
  • Gender
  • Location
    Melbourne, Australia

Recent Profile Visitors

3,267 profile views
  1. A minor updated has been made to the SKIPCHECKFORPOKEY routine to better handle $450 detection (mainly for A7800) when building a Concerto beta specific build. Thanks @playsoft 👍
  2. All of the originals run the pokey @ $4000 with all the modern ones running @ $450. Fred initially indicated base support was @ $4000 with the return to development and I think he and Mike may have discussed the move by modern homebrews to the new location and preliminary support was added. The initialisation routine in 7800basic has caused some issues and a bypass has been determined (Darryl has manually implemented for Popeye currently). I'm trying to add it into our pokeysound driver but testing has been very slow at my end 😓 (so busy!!)
  3. Hi @GoogleBot! Have you been able to get up and running ok?? Apologies everyone I'm getting smashed with work, school holidays and activities ATM as my wife is working - looking forward to school going back for the kids! I need to get an update out for the new Stella release too! Thanks @Karl G 👍
  4. In relation to 160A/B definitely the background is best to stay as 160A as that is covering the full screen. The bomberman would be fine at 160B - being the main character using the full range of colors would really pop (Millie & Molly does this). The enemies if you can get away with 160A would be ideal but you could certainly try 160B with those.
  5. mksmith


    Hi guys, still on the list at this point as the way the rendering engine works in VS Code make's it almost impossible. It been 10 months since I opened an item in Github and VS Code has made some changes (I believe) around rendering so they may have some enhancements in this area (there has been a lot of feedback to allow this sort of thing). I'll take another look shortly and see if it might be possible.
  6. Sounds good mate - reach out anytime 👍
  7. 7800 Pokey Engine Welcome to the 7800 pokey engine for music and sound effects playback on the Atari 7800 Console. This engine was initially developed (based on the disassembly and reverse engineering of Ms. Pac-man by Atari) by Perry Thuente (tep392) and Bob DeCrescenzo (pacmanplus) for the purpose of providing pokey sound playback for the Pac-man Collection. The engine has since been enhanced and is now also being used for other homebrew titles such as Millie & Molly 7800 (Matthew Smith), Popeye (Darryl Guenther) and Danger Zone (Lewis Hill) thanks to the awesome music abilities of Bobby Clark. The 7800 pokey engine has been kindly open-sourced by the contributors and is freely available to the AtariAge community for use within any project. The source is currently maintained by Matthew Smith (mksmith) and is available to download from Github. Contributors The following people have contributed to the pokey engine: Perry Thuente @tep392 Bob DeCrescenzo @PacManPlus Bobby Clark @Synthpopalooza Mike Saarna @RevEng Matthew Smith @mksmith Paul Lay @playsoft Titles using the pokey engine The following titles are using variants of the pokey engine: Pac-man Collection Millie & Molly 7800 and Arkanoid Popeye Danger Zone Music development Bobby Clark is the first and foremost expert in developing music and sound effects using this engine and has produced some outstanding compositions. I'm sure he would be happy to help you if you ask! Changelog v1.01 (24 Jan 2021) v1.01 - updated SKIPCHECKFORPOKEY process to better handle $450 detection (playsoft) v1.00 - open sourced to Github (mksmith) v0.11 - added queue scheduling (playsoft) and SKIPCHECKFORPOKEY flag Concerto issue). Added RESETPOLYON and CHANNLRESETON table flags (mksmith) v0.10 - removed number of channels (not required) and added a tune-by-tune reset table (mksmith) v0.9 - removed SKCTL set and added ability to set number of channels to activate (mksmith) v0.8 - added MUTEMASKRESTFLG const so rest value can be customised (mksmith) v0.7 - re-implemented MUTEMASK change (reveng) v0.6 - fix 16-bit mode, SKCTL, or any mode requiring one channel be silenced and stops popping noises (sythnpopalooza) v0.5 - 7800basic Pause Support (mksmith) v0.4 - 7800basic PAL Support (mksmith) [suggestion on how to implement by reveng] v0.3 - Reset poly support (sythnpopalooza) v0.2 - Added PLAYPOKEYSFX enhancements, STOPPOKEYSFX (mksmith) v0.1 - Initial version provided by pacmanplus and sythnpopalooza Using the pokey engine in 7800basic The engine itself is reasonably straight forward to integrate into 7800basic and there is a detailed example for how to properly setup and configure your game to use it. Saying that it can be tricky at the beginning as you will need to determine the required features to be activated and also configure and locate the music itself potentially across various banks. The basic process is as follows: copy file pokeysound.asm into the base root folder of your game. 7800basic will automagically replace the base file in 7800basic during compilation. inline pokeyconfig.asm into your game source (this should be the end of the last shared bank so it can be accessed at all times) inline your musicxxx.asm file(s) into your game source. There can be one of more of these spread across multiple banks depending on how you game is structured but in reality as with bank sharing the tune data MUST be available to be currently active bank. Other changes to your source The following changes are required to be made to your 7800basic source: 1. Insert the following vars: dim POKEYADR = $450 ;$450 (modern homebrew) or $4000 dim TUNEAREA = $2200 ;range $2200-$2246 (46 bytes) dim SOUNDZP = y.z ;all pointers must be located in zeropage Note: The TUNEAREA location or SOUNDZP vars can be changed to suit your requirements. 2. Include the following to service the player each frame (this should be in the last shared bank so it can be accessed at all times): topscreenroutine rem call the pokey servicing routine asm jsr SERVICEPOKEYSFX end return Examples example1.78b - basic implementation showing how to integrate the 7800 pokey engine into 7800basic including adding pokeyconfig and music data assembly files via the inline feature, calling and playing multiple different tunes and sound effects. Additional notes tunes can be moved into RAM and played from there if required (example coming soon) an release for assembly users will be added soon Need some help? Contact Matthew Smith (mksmith) if need any assistance implementing this engine into your game.
  8. Hope all is well with your daughter Anthony! Using a sprite based process is quite a good way to do it (Mike did a great job coming up with the process). Millie & Molly uses (12x24pixels - but effectively 3x 12x8) and Arkanoid (12x8) tiles - Marco appears have that covered with the above and you loss that stretchiness that comes with 16 wide. So the process works like this: the background is configured by plotting the tiles (I use data tables to do that) then from there Mike's code takes over and you effectively update pointers to change tile images or palettes - nice and quick. For Millie & Molly I overlay a sprite for the girls but everything else is done using Mike's code. Animating tiles is very easy using this process as well - effectively no different to animating a sprite now just replace the plotsprite call with a call to Mike's code. You can mix 160A and 160B for backgrounds but it can be a fair bit of work to make sure it is setup correctly and the images are in the correct gfx blocks (The Doh level in Arkanoid is does this but it was very tricky!). I would definitely recommend 160A only for the backgrounds - your moving overlaid sprites could be 160B if required but you still have potential to run out of render time very easily even with this method. More information about this process is here: 7800basic, under the hood - Atari 7800 Programming - AtariAge Forums Doing larger data tables: 7800basic Tips, tricks and examples - Page 2 - Atari 7800 Programming - AtariAge Forums I'm more than happy to help in anyway if you need a hand to setup this process to see how it goes 👍
  9. @PacManPlus @Synthpopalooza Sent you guys a message in regards to the latest player code.
  10. I'm check-over the changes from Darryl for the MUTEMASK/RESETPOLY (one of those!) and I'll send you the latest source Bobby. Nice work again Bob!
  11. @Muddyfunster Congrats Lewis - well deserved mate!! @SlidellMan Thank you - that is so very kind. I got so much help when I started that I want to always offer any help where I can but that's why we have such a great community here at AtariAge!
  12. Awesome Bob! Thank you - looking forward to playing this!
  • Create New...