Jump to content

Roy

Members
  • Content Count

    59
  • Joined

  • Last visited

Everything posted by Roy

  1. There is an old program HERE that I used for my wip game. Maybe it can export in a format you can use? I had to manually enter my graphic information into a binary and include it into the assembly due to using a different assembler...
  2. You specify where Maria looks for it by writing to the appropriate register. Maria equates BACKGRND = $20 ;Background Color P0C1 = $21 ;Palette 0 - Color 1 P0C2 = $22 ;Palette 0 - Color 2 P0C3 = $23 ;Palette 0 - Color 3 WSYNC = $24 ;Wait For Sync P1C1 = $25 ;Palette 1 - Color 1 P1C2 = $26 ;Palette 1 - Color 2 P1C3 = $27 ;Palette 1 - Color 3 MSTAT = $28 ;Maria Status P2C1 = $29 ;Palette 2 - Color 1 P2C2 = $2A ;Palette 2 - Color 2 P2C3 = $2B ;Palette 2 - Color 3 DPPH = $2C ;Display List List Pointer High P3C1 = $2D ;Palette 3 - Color 1 P3C2 = $2E ;Palette 3 - Color 2 P3C3 = $2F ;Palette 3 - Color 3 DPPL = $30 ;Display List List Pointer Low P4C1 = $31 ;Palette 4 - Color 1 P4C2 = $32 ;Palette 4 - Color 2 P4C3 = $33 ;Palette 4 - Color 3 CHARBASE = $34 ;Character Base Address P5C1 = $35 ;Palette 5 - Color 1 P5C2 = $36 ;Palette 5 - Color 2 P5C3 = $37 ;Palette 5 - Color 3 OFFSET = $38 ;Unused - Store zero here P6C1 = $39 ;Palette 6 - Color 1 P6C2 = $3A ;Palette 6 - Color 2 P6C3 = $3B ;Palette 6 - Color 3 CTRL = $3C ;Maria Control Register P7C1 = $3D ;Palette 7 - Color 1 P7C2 = $3E ;Palette 7 - Color 2 P7C3 = $3F ;Palette 7 - Color 3 DPPH & DPPL.
  3. Just for giggles, try this at the bottom of the assembly: .byte $FF ;Region verification .byte $47 ;ROM start $4000 .word NMI .word START .word IRQ Where the NMI, START, and IRQ point to addresses with the same name. I'm not sure if the emulators require it, but you need to also initialize the 7800 at the START label. As you may know, the 6502 on startup looks for these vectors at the bottom of ROM. ex: START: sei ;Disable interrupts cld ;Clear decimal mode ;Atari recommended start-up procedure lda #$07 sta INPTCTRL ;Lock into 7800 mode lda #$7F sta CTRL ;Disable DMA lda #$00 sta OFFSET sta INPTCTRL ldx #$FF ;Reset stack pointer txs ;INSERT CLEAR RAM CODE HERE loop: jmp loop NMI: RTI IRQ: RTI Excluding code to clear ram, this may be all you need plus the header. Hope this helps some, I'm by no means an expert. Oh, and be sure to also have the hardware addresses defined: ​ INPTCTRL = $01 ;Input control AUDC0 = $15 ;Audio Control Channel 0 AUDC1 = $16 ;Audio Control Channel 1 AUDF0 = $17 ;Audio Fr=ency Channel 0 AUDF1 = $18 ;Audio Fr=ency Channel 1 AUDV0 = $19 ;Audio Volume Channel 0 AUDV1 = $1A ;Audio Volume Channel 1 INPT0 = $08 ;Paddle Control Input 0 INPT1 = $09 ;Paddle Control Input 1 INPT2 = $0A ;Paddle Control Input 2 INPT3 = $0B ;Paddle Control Input 3 INPT4 = $0C ;Player 0 Fire Button Input INPT5 = $0D ;Player 1 Fire Button Input ;Maria equates BACKGRND = $20 ;Background Color P0C1 = $21 ;Palette 0 - Color 1 P0C2 = $22 ;Palette 0 - Color 2 P0C3 = $23 ;Palette 0 - Color 3 WSYNC = $24 ;Wait For Sync P1C1 = $25 ;Palette 1 - Color 1 P1C2 = $26 ;Palette 1 - Color 2 P1C3 = $27 ;Palette 1 - Color 3 MSTAT = $28 ;Maria Status P2C1 = $29 ;Palette 2 - Color 1 P2C2 = $2A ;Palette 2 - Color 2 P2C3 = $2B ;Palette 2 - Color 3 DPPH = $2C ;Display List List Pointer High P3C1 = $2D ;Palette 3 - Color 1 P3C2 = $2E ;Palette 3 - Color 2 P3C3 = $2F ;Palette 3 - Color 3 DPPL = $30 ;Display List List Pointer Low P4C1 = $31 ;Palette 4 - Color 1 P4C2 = $32 ;Palette 4 - Color 2 P4C3 = $33 ;Palette 4 - Color 3 CHARBASE = $34 ;Character Base Address P5C1 = $35 ;Palette 5 - Color 1 P5C2 = $36 ;Palette 5 - Color 2 P5C3 = $37 ;Palette 5 - Color 3 OFFSET = $38 ;Unused - Store zero here P6C1 = $39 ;Palette 6 - Color 1 P6C2 = $3A ;Palette 6 - Color 2 P6C3 = $3B ;Palette 6 - Color 3 CTRL = $3C ;Maria Control Register P7C1 = $3D ;Palette 7 - Color 1 P7C2 = $3E ;Palette 7 - Color 2 P7C3 = $3F ;Palette 7 - Color 3 ;Console Equates SWCHA = $280 ;P0, P1 Joystick Directional Input SWCHB = $282 ;Console Switches CTLSWA = $281 ;I/O Control for SCHWA CTLSWB = $283 ;I/O Control for SCHWB ​ (sorry, not sure how to use spoilers.) ​
  4. Roy

    Bullet Festival

    Hey, I was about to start a thread! Heh, just kiddin', thanks everyone! Things are coming along nicely since the last time I made an update, though I have to apologize for my slow pace. Been tackling my weakest area in programming here lately: sound engines. I have one working and in place now, but ironing out the kinks. I hope to make one light weight enough that it wont interfere with drawing to the screen, but offer just enough for some neat effects. Other than tweaking some graphics and getting the sound working, the last few things that need addressed are collisions and a scoring system. After that simply adding content and features until code runs out of the seams. Everything else is in place though.
  5. Yeah, progress is still slow. Lately I have been trying to fix a bug that scrambles my screen once and a while. Like I said previously, my timeframe is getting pushed back due to current issues at home and school. I'm also in the middle of learning C programming, since knowing only assembly sort of limits what I can work with! You guys will see this completed, don't worry! ​​ Ninja edit: OK, lemme catch you guys up real quick. Recently I fixed all my graphics issues, everything displays as it should. I also have the menu in place, but only start game works properly. I have also added a introduction cutscene thing showing the ship launching. For now, I have completely stripped out the collision since it was not working as it should. This Sunday after I tweak a few routines, I'll post another ROM. You won't see too much more compared to last time, since most changes are under the hood. More to come later! Second ninja edit: Ok, the ROM is attached. Tested and works on real hardware and MESS. Again, not bumping due to lack of content. I'm having issues with writing to the pokey chip in my sound engine that I'm working on, so that's ripped out along with a broken collision routine. In this, you can see that I'm playing with the idea of background pieces moving when you bank left and right. Biggest addition is the intro sequence. The final version will be extended and sped up(and slightly changed to remove flickering in the center background piece) and I'll draw some more text. (Probably like GET READY! or something.) Last thing changed is the title. In the end, I want this to be a more light-hearted shooter with a festival-like theme. Still undecided on the title though. If you see this before my next thread bump, thanks for the interest! I hope to have this done as soon as possible. Bullet Festival.a78
  6. Neat! I'll be sure to play around with that code, see what happens. Edit because I don't want to bump this thread yet: I have taken some time from this project to learn some modern programming. (C#, etc...) Once I do this, I'll be able to make myself some better tools and have a stronger grasp at programming in general. I still frequent this site and have every intention to finish it! This may push back my timeframe I wanted, but I really need to do this and go to school while I'm at it. I'll keep checking in and provide any updates I make!
  7. OK, I'll take a look later tonight. Maybe I somehow wrote to the wrong register.
  8. Thanks Trebor for the videos and for the kind words everyone. After I get collisions working, I'll add in some effects that should really make this project "pop". Also have a question: I would like to be able to modify my palette data, but every time I write to the palette registers, it corrupts my game. For example if I wanted to flash the background color from black to whatever color. I think I read somewhere I should do so during a DLI, but when I did it messed up. Anyone have some examples how this should be done?
  9. Going to upload the current build. I have not had as much time as I would like here lately, been trying to snag a new job! This build has working player bullets, framework for the menu taking shape, changed the wall graphics (how's it look?), added a new enemy type, and a bunch of boring under the hood changes. One thing I cannot decide on is how I am going to color everything. I want to keep a contrast between the background, enemies, and bullets because you gotta see what's about to kill you right? Anyone want to throw in suggestions? The bullets in this build do not collide with anything. (This is going to be a chore checking so many things.) Begin the game by pressing a fire button on the main screen and holding both buttons will rapidly reset the game. I was debating between holding the fire botton for rapid fire or having a "pump" based system, but remembered most 7800 controllers are not quite suited for long sessions of rapid button mashing. Rapid fire it is! SHMUP 7800.bin SHMUP 7800.a78
  10. Small update: I don't have any ROM to post at the moment, since there's not much to show since last time, but there have been many under the hood additions. Mostly I had to double the display list capacity to accommodate for player and enemy bullets. Testing a firing routine for the player glitched parts of the screen. I have a bit more room if I need to increase capacity again. Most of the framework for both enemy and player bullets are in place, but I'm working through problems related to managing so many bullets. I have a few more goodies to show off, but that'll have to wait till next time. I don't want to spoil too many things, so some things will be disabled until final release! Though I still have one huge problem! I have zero knowledge on how sound engines work. Composing is no issue. I can take a tracker and make something that almost resembles music, but programming a feature rich sound engine for a game... I currently have Ms Pacman's sound engine hacked into my program, but it can't use pokey and feels very constrained. Any help or suggestions on this front would be appreciated.
  11. Roy

    Dust Cover

    Cool! Did you use HDPE plastic or something similar?
  12. Thanks everyone, I'll definitely do my best! @Bruce: Yeah, that's something that's been haunting me since the start, hence the limitations I set.(save for the background, but I think it would be really boring without one! ) I'll definitely try to push as close to the limit as I can in future games. CPUWIZ's cart is a god send, every revision is tested!
  13. Ah forgot about that, thanks! I'll do so for the next one.
  14. Good to hear! Man, hearing that title music makes me cringe every time. I may disable sound altogether until I have some decent music! Also, if you stick around for 16 enemies, you'll see one of the bosses slide in from the side. As you saw, holding both fire buttons resets the game. This is actually to boot me back to CPUWIZ's devcart bios. Handy for hardware testing, but annoying in emulators. Since posting, I have already fixed all my background glitching. Turns out moving the scrolling routine into the display interrupt makes a world of difference! Off to add features now. Edit: Attached a ROM that I feel is a better showcase of the current project. More stability, ram properly cleared. (d'oh!) This one tested in Prosystem Emulator, the most up-to-date MESS, and actual hardware. 7800demo.bin
  15. Another update! This time I have a lot of the underlying structure in place. I can spawn waves of ships by altering a few bytes of data, specify when a boss shows up, and added a scrolling background that needs a little graphical glitching worked out. (you'll see it near the top when enemies pass through) Still no custom music, but replaced that horrible noise from before with Ms Pacman music again as placeholder. Up next, once I have some glitches ironed out, I'll add the ability to shoot and get shot at, add a collision system, EXPLOSION routines, change the background for the boss, make a better title screen, and a bunch of other standard features. (pausing, score system, etc...) Let me know if you have any problems displaying the game, I think I have the headers right this time. 7800demo.bin
  16. Got my package yesterday and finally installed it. Worked right off the bat, and looks great. Pics soon once I mount everything. Thanks for the kit!
  17. Roy

    detect proline

    Here's some info from THIS link: (Page 17 of the PDF) You can read single-button joystick button state from these TIA registers: Register Button Bit ----- -------- ----- INPT4 player 0 d7=0 if pushed INPT5 player 1 d7=0 if pushed If your game requires both joystick fire buttons, you need to turn on two-button mode by performing this initial setup: LDA #$14 STA CTLSWB ;set bits 2 and 4 of PORT B for output LDA #0 STA SWCHB ;output 0 on bits 2 and 4 of PORT B After which, the joystick button state can be read from these TIA registers: Register Button Bit ----- -------- ----- INPT0 player 0, right button d7=1 if pushed INPT1 player 0, left button d7=1 if pushed INPT2 player 1, right button d7=1 if pushed INPT3 player 1, left button d7=1 if pushed Reading in two button mode when the console has a one button joystick plugged-in isn't recommended, and may be harmful to the console if done for an extended period. A two button game should check for one button presses via INPT4/5, and if detected the game should turn off two button support for that joystick by setting the appropriate SWCHB bits high. (D2=player 0 joystick, D4=bit 2, player 1 joystick) Is this what you are looking for? I'm not sure how this is handled if you are looking for 7800Basic info. All I know is that this is how games handle it.
  18. Awesome! This turned out great, thanks for making this!
  19. Thanks for the reply! Ah, my bad. The recent one was being put directly to the Dev cart, so I forgot to add the header. I think, not at home at the moment... Strange, could have sworn the nodli rom had the header. Must have been me tearing into the code and messed something up in an early test.
  20. Just felt the need to post an update regarding my program... First, which is still confusing, I don't know why the DLI fixed my issue with the graphics. I have merely accepted that it is fixed and I'll find out why in the near future. Next, I have a lot of under the hood routines in place for handling sprites and "waves" of enemies. This was one of the harder things to program, and it's still only a quarter(ish) of the way done! I have to also thank CPUWIZ again for helping me with other issues here and there and getting my program to work better with the MCP Dev cart. I also implemented a protection routine to detect single or double button pushes after learning of the danger of hardware damage. Finally, I have all my needed visual assets finished. Here is the scope of my little project: This will be a simple shoot em' up that features few enemy types and 4 bosses. So far, I have been only using direct graphics mode, so i don't think I'll have any backgrounds to keep you entertained. The focus is on mechanics anyway. I want to stick to using only 32KB and assuming I have any space left, I'll try to implement some crappy pokey music. I really don't like announcing and showing off unfinished projects, as many of us have seen threads eventually die from the programmer losing interest. However, I'm working with a friend who is helping with sound, which is taking off a huge workload for me. Considering everything here, I feel this will be finished sometime during the summer, since I only work on this in spare time. Once this is done, I'll keep expanding on the game and making something better. (XM!) :drools: What I have attached is not much of an upgrade visually from my previous post, but is far more elegant (using this word very loosely. I have spaghetti code. ) under the hood. Pressing a fire button on the main screen takes you to the play-field where you will see a swarm of enemies. No collision yet. Pressing both buttons will just rapidly reset the game. It's purpose is to take me back to the MCP BIOS screen to be reprogrammed. Oh, I also totally screwed up the music, so please turn down your volume. It's worse than last time. Thanks for reading my long-winded post! I'll have some more exciting things to play with next time. 7800POKEYdemo.bin
  21. I just picked up one of these kits as well, and I have to ditto everything MAC-42 said. The whole kit is very easy to use. I was probably up and running within a few minutes. Previously I had to assemble my program, test it in MESS, go to burn some EPROMS, realize I have no empty EPROMS, wait 10 or so minutes to erase said EPROMS, burn them for real, then finally test on the console to find out my small change fails on real hardware. Now I'm just assembling and throwing it into the dev kit software to immediately burn to the cart. Without sounding like an infomercial, in the small time I have had this it is already has proven incredibly useful. That and it has some really cool pokey music on the splash screen. Huge props to CPUWIZ!
  22. Roy

    Pacmanplus

    Bob, I may have had limited contact with you through a thread and PMs, but in that short time I could tell what a great person you were. You were the first to get me going in 7800 development (and inspired me in the first place) and for that I thank you. Screw those haters, you have an army of people behind you who know what you are really made of. Good luck in resolving your real life issues!
  23. Woah, very cool to hear. Can't wait to see what people do with these beasts!
  24. Roy

    Shoot the UFO 2015

    Tried it on my 7800 eprom cart. No issues. Thanks for sharing!
  25. Here's mine. This one is my first Atari.
×
×
  • Create New...