Jump to content

SpiceWare

+AtariAge Subscriber
  • Posts

    18,545
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by SpiceWare

  1. A lot of things about the Atari were figured out back in the day via the Stella Mailing List. The site MiniDig links to a lot of useful info found in the mailing list. MiniDig's Tricks page has a link to @DEBRO's explanation of @Thomas Jentzsch's SkipDraw routine, which y'all might find helpful. Note: Users are notified if you @ them like I did above for Dennis and Thomas. They might be able to provide more information.
  2. you still get some movement, Brad Mott (originator of Stella) did an analysis back in 1998 when he was trying to figure out why Stella wasn't displaying He-man's title screen correctly - it used a cycle 74 HMOVE. Issue with those PAL consoles is their later revision of TIA does not do the same amount of movement for non-standard HMOVEs as the earlier TIA versions do. So here's a table which summaries the information I gathered by hitting HMOVE at various cycles after WSYNC. The table starts at cycle ten since that was the smallest delay my program allowed, however, by wrapping around to 86 I end up with all of the values :-) ... It looks like hitting HMOVE at cycle 73 or cycle 74 should be fairly useful in creating a playfield where no HMOVE blanks occur. HMPx values 0 1 2 3 4 5 6 7 8 9 a b c d e f Cyc 10 0 -1 -2 -2 -2 -2 -2 -2 8 7 6 5 4 3 2 1 ** HBLANK 11 0 -1 -1 -1 -1 -1 -1 -1 8 7 6 5 4 3 2 1 HBLANK 12 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 HBLANK 13 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 HBLANK 14 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 ** HBLANK 15 2 2 2 2 2 2 2 2 8 7 6 5 4 3 2 2 HBLANK 16 3 3 3 3 3 3 3 3 8 7 6 5 4 3 3 3 HBLANK 17 4 4 4 4 4 4 4 4 8 7 6 5 4 4 4 4 HBLANK 18 4 4 4 4 4 4 4 4 8 7 6 5 4 4 4 4 ** HBLANK 19 5 5 5 5 5 5 5 5 8 7 6 5 5 5 5 5 HBLANK 20 6 6 6 6 6 6 6 6 8 7 6 6 6 6 6 6 HBLANK 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . . 53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 -1 -2 0 0 0 0 0 0 0 0 57 0 0 0 0 0 -1 -2 -3 0 0 0 0 0 0 0 0 58 0 0 0 0 0 -1 -2 -3 0 0 0 0 0 0 0 0 ** 59 0 0 0 0 -1 -2 -3 -4 0 0 0 0 0 0 0 0 60 0 0 0 -1 -2 -3 -4 -5 0 0 0 0 0 0 0 0 61 0 0 -1 -2 -3 -4 -5 -6 0 0 0 0 0 0 0 0 62 0 0 -1 -2 -3 -4 -5 -6 0 0 0 0 0 0 0 0 ** 63 0 -1 -2 -3 -4 -5 -6 -7 0 0 0 0 0 0 0 0 64 -1 -2 -3 -4 -5 -6 -7 -8 0 0 0 0 0 0 0 0 65 -2 -3 -4 -5 -6 -7 -8 -9 0 0 0 0 0 0 0 -1 66 -2 -3 -4 -5 -6 -7 -8 -9 0 0 0 0 0 0 0 -1 ** 67 -3 -4 -5 -6 -7 -8 -9 -10 0 0 0 0 0 0 -1 -2 68 -4 -5 -6 -7 -8 -9 -10 -11 0 0 0 0 0 -1 -2 -3 69 -5 -6 -7 -8 -9 -10 -11 -12 0 0 0 0 -1 -2 -3 -4 70 -5 -6 -7 -8 -9 -10 -11 -12 0 0 0 0 -1 -2 -3 -4 ** 71 -6 -7 -8 -9 -10 -11 -12 -13 0 0 0 -1 -2 -3 -4 -5 72 -7 -8 -9 -10 -11 -12 -13 -14 0 0 -1 -2 -3 -4 -5 -6 73 -8 -9 -10 -11 -12 -13 -14 -15 0 -1 -2 -3 -4 -5 -6 -7 74 -8 -9 -10 -11 -12 -13 -14 -15 0 -1 -2 -3 -4 -5 -6 -7 ** 75 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK 76 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK 77 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK 78 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK 79 0 -1 -2 -3 -4 -5 -6 -7 8 7 6 5 4 3 2 1 HBLANK 80 0 -1 -2 -3 -4 -5 -6 -6 8 7 6 5 4 3 2 1 HBLANK 81 0 -1 -2 -3 -4 -5 -5 -5 8 7 6 5 4 3 2 1 HBLANK 82 0 -1 -2 -3 -4 -5 -5 -5 8 7 6 5 4 3 2 1 ** HBLANK 83 0 -1 -2 -3 -4 -4 -4 -4 8 7 6 5 4 3 2 1 HBLANK 84 0 -1 -2 -3 -3 -3 -3 -3 8 7 6 5 4 3 2 1 HBLANK 85 0 -1 -2 -2 -2 -2 -2 -2 8 7 6 5 4 3 2 1 HBLANK 86 0 -1 -2 -2 -2 -2 -2 -2 8 7 6 5 4 3 2 1 ** HBLANK 87 0 -1 -1 -1 -1 -1 -1 -1 8 7 6 5 4 3 2 1 HBLANK 88 0 0 0 0 0 0 0 0 8 7 6 5 4 3 2 1 HBLANK 89 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 HBLANK 90 1 1 1 1 1 1 1 1 8 7 6 5 4 3 2 1 ** HBLANK 91 2 2 2 2 2 2 2 2 8 7 6 5 4 3 2 2 HBLANK 92 3 3 3 3 3 3 3 3 8 7 6 5 4 3 3 3 HBLANK 93 4 4 4 4 4 4 4 4 8 7 6 5 4 4 4 4 HBLANK Notice that 10 + 76 = 86 and the table is repeating...
  3. Change was done 5 days ago that lets you control the GUI via D-Pad and buttons. The latest Release is still from 2 weeks ago though, so does not include it. It looks like you can get current build by clicking on a run under Actions, top run is currently clear screen when loading rom and has 2 files: red-viper.3dsx 205 KB red-viper.cia 363 KB I used my iPhone to figure out what file the QR Code installed: So I downloaded it then figured out I needed to run FBI -> Remote Install -> Receive URLs over the network on my 3DS, as well as a program to run on my computer to send over the cia file. I found Mac specific program 3DS-FBI-Link: And sent it over. It replaced the version of Red Viper that I launch from my 3DS's main screen, and I can now maneuver thru the file dialog using the D-PAD and buttons. Much better than before!
  4. A PAL 7800 and a PAL light sixer, don't know how widespread it is just that Alex had them. The issue's probably related to specific versions of TIA in those consoles, though I don't have that info. I just used Stella's developer options to try the different TIA versions it knows of, but it always picks $B0 so this TIA variant isn't emulated yet. Alex hasn't been on AtariAge in a while, though he is active in the git issue Thomas created for this. Maybe Alex would work with you on this issue if you contact him via git.
  5. Alex tested on 5 PAL systems. He experienced an alignment issue on a 7800 and a light sixer, his other 3 consoles worked as expected. I initially modified the program so a difficulty switch would select between 2 values for HMP0. With that we determined was that the 7800 and light sixer needed $C0 written to HMP0 value to achieve the same 8 pixel movement that the other 3 consoles get when writing $B0. I then wrote a routine that runs once as part of the init. It: initializes GRP0 and PF1 with a set pattern positions player0 using a cycle 73 HMOVE clears collision registers draws 1 scanline uses collision results in CXP0FB to determine which HMP0 value to use for this machine
  6. This might be relevant - when I was creating the 128 pixel BUS Stuffing demos @alex_79 had an issue where things didn't line up, and I think his systems were PAL. We figured out that using different values for HMP0 on those systems would fix the player alignment issue, emphasis added: Looking at the code this is the auto-detect routine: alex_79: ; most systems use $B0 in HMP0 for the player arrangement to work ; alex_79 has 2 systems, a Light Sixer and 7800, which require the ; use of $C0 for the alignment to work. This is most like the same ; reason that stars generated by the HM trick don't look the same on ; all systems. ; ; to test for alex_79's system, we'll position player0 using the $C0 ; value and see if it collides with a pattern in PF1. If it does not ; collide then it's a system like his so we need to use $C0 ; if it does collide then we'll assume it's a normal system. It's ; possible other TIA variations exist, such as one that needs to use ; $A0. If so, we can add additional tests sta WSYNC ; 0 lda #$C3 ; 2 2 sta HMP0 ; 3 5 - uses upper nybble sta NUSIZ0 ; 3 8 - uses lower nybble for player0 lda #%00110011 ; 2 10 sta PF1 ; 3 13 lda #%11111111 ; 2 15 sta GRP0 ; 3 18 jsr SLEEP12 ;12 30 jsr SLEEP12 ;12 42 jsr SLEEP12 ;12 54 jsr SLEEP12 ;12 66 SLEEP 4 ; 4 70 sta HMOVE ; 3 73 sta RESP0 ; 3 76/0 sta CXCLR ; 3 3 - clear collisions sta WSYNC ; 3 6/0 - let the scanline get drawn ldy #$B0 ; assume a normal system (timing from here is not critical) bit CXP0FB ; bit 7 holds results for P0 PF bmi .normal ; ldy #$C0 .normal: sty HMvalue ldy #0 sty HMP0 sty NUSIZ0 sty PF1 sty GRP0 SLEEP12: rts and this is the relevant section of the kernel with the HMOVE @ 73 and the detected value stored into HMP0: MainLoop: ; 11 stx NUSIZ0 ; 3 14 - now 3 close stx NUSIZ1 ; 3 17 - now 3 close sta.w GRP0 ; 4 21 - blank out Stella copy of P0 (not seen on hardware) sty GRP1 ; 3 24 @0-41 datastream 5 ldx HMvalue ; 3 27 sty GRP0 ; 3 30 @??-30 datastream 1 - ??=0 for real hardware sty GRP0 ; 3 33 @33-35 datastream 3 stx HMP0 ; 3 36 sty GRP0 ; 3 39 @39-54 datastream A ldx #L8_3_MEDIUM; 2 41 - 3 Copies medium & left 8 (early HMOVE) sty GRP1 ; 3 44 @44-46 datastream 7 sta RESP0 ; 3 47 @47 sty GRP1 ; 3 50 @49-51 datastream 9 sta RESP0 ; 3 53 @53 stx NUSIZ1 ; 3 56 - now 3 medium sta GRP0 ; 3 59 @57-59 - blank out sty GRP1 ; 3 62 @55-62 datastream D sty GRP0 ; 3 65 @63-65 datastream E EntryEven: ; 65 ldx #L8_3_CLOSE ; 2 67 stx HMP1 ; 3 70 sta HMOVE ; 3 73 @73-74 - move left 8 <-- HMP0 must have HMvalue sta RESP0 ; 3 76/0
  7. You can find links to the ROMs for each of my games in my signature at the bottom of this reply. If you have signatures turned off you can also find the links towards the bottom of the About Me page in my profile. And @Thomas Jentzsch is correct, RC8 is the final version - the link in my About Me page actually brings you to this topic.
  8. How current are you on the emulator? Reading this discussion at GitHub it looks like the 3D could not originally be adjusted, it was either on or off. Last week they made a change that lets you adjust the 3D using the 3D slider. After that an additional change was done so you can pick between 2 different modes for adjusting 3D. 3DS Slider mode: IPD slider mode:
  9. Forgot to mention - I find the ROM picker to be very touchy. You have to swipe up/down to scroll the list, but inevitably I'll accidentally launch a ROM while swiping. It might work better with the stylus, but it's trapped in my 3DS by the handles.
  10. A while back I did a jail break on my 3DS after learning that @wavemotion's awesome port of Stella for the Nintendo DS, could run on it. It even runs games that use coprocessors in the cartridge like Stay Frosty 2! I have a Virtual Boy that I'd picked up new in box when they were being cleared out in '96. I think I paid $30 for it, and $7 per game for the 11 games they still had in stock. While I kept the main box, sadly I did not keep the game boxes. It's still in working condition: Last week I learned about Red Viper, a Virtual Boy emulator for the 3DS, thanks to a status update by @Jess Ragan. I decided to try the "remote install" method, hadn't used it before: Install went without any problems. To install the ROMs I ran FTPd on the 3DS and used FileZilla on my Mac. This is more convenient than removing the handles on my 3DS so I can remove the SD card and pop it into the Mac. You can find information about this process in this reply of the StellaDS topic. Games fired right up and the 3D looks great, though the 3D effect doesn't photograph well: If you're tired of red you can also change the color: Turning off 3D makes for much clearer photos:
  11. Ran across Sunday Slays Cosplay who did an impressive Rivet & Clank cosplay at LA Comic Con in December. She's posted a number of videos and shorts about it on her channel, here's a few to pique your interest:
  12. You might like to check out @Thomas Jentzsch's Amidar DS hack, which speeds it up.
  13. Good Luck! You might find my Collect tutorial helpful, covers writing a 2K game from scratch.
  14. Went to the 3DS Hacks Guide, they had this: I checked Luma's version and it was 11.0, so I would have been OK to do Nintendo's System Update. I'd installed Luma on October 18, 2022, so since I was there I decided to review the update Luma link. It had this: I went there and saw the current release of Luma3DS is 13.0.2, so followed the steps to update Luma. I then did Nintendo's System Update. Tests with Draconian: StellaDS 6.5 level 1 - fluctuates around 55 frames level 3 - stress test, flying up then down thru the stations, dipped down to 42 frames Stella 7.2 level 1 - mostly 60 frames with occasion dips down to 58 level 3 - stress test only dipped down to 49 frames A noticeable improvement!
  15. I thought Nintendo had discontinued support for the 3DS, but I've seen a system update message pop up a couple times since it started working again. Checking Nintendo's site for 3DS System Update History I see they released Ver 11.17.0-50U on May 22, 2023. Yep, it's been a while since I'd last used it. I've cancelled it each time as I don't want to risk the update breaking the jailbreak. I plan to do some more research on this, but that'll be later as I'm heading over to my folks - they were at the ER last night and didn't get home at 5 this morning. They're wiped out, so I'm picking up lunch.
  16. It is possible to change the color of the playfield mid-scanline. You can see that in Congo Bongo, the section circled in cyan draws the playfield in 3 different colors : In Stella's Debug Color Mode the playfield is drawn in purple. it is, however, a rather advanced technique and subject to timing limitations, so I wouldn't recommend it. What you could do is use RAM to store how the playfield is drawn. By modifying the values in RAM as the player moves around you'd be able to reveal the maze. This would be similar to how Surround uses the playfield to draw the trails left behind each player:
  17. Article on MSN: You can now watch movies on an Atari 2600, because why not
  18. That's the plan, just need to remember how to update the emulators! I found notes on my computer which document how I installed the custom firmware: It ends with this: All Done. [custom firmware is now installed] Key combos to know: Holding (Select) on boot will launch the Luma3DS configuration menu. Holding (Start) on boot will launch GodMode9, or if you have multiple payloads in /luma/payloads/, the Luma3DS chainloader. By default, pressing (Left Shoulder) + (Down D-Pad) + (Select) while in 3DS mode will open the Rosalina menu, where you can check system information, take screenshots, enable cheats, and more. This can be changed from the Rosalina menu. Holding (Start) + (Select) + (X) on boot will make the notification LED show a color for debug purposes. See the changelog for a list. What to do with custom firmware: https://3ds.eiphax.tech/tips.html To run Stella, Install TWiLight Menu++ https://wiki.ds-homebrew.com/twilightmenu/ For Stella: StellaDS.nds - put in root of SD card, put ROMs into /roms/a2600/ though I added the [] bit after pasting it here. I do recall installing an FTP server so I could put files on the SD card without having to remove it from the 3DS and plug it into the computer. I plan to review this topic this weekend then update the emulators. I also want to check out the new Red Viper emulator and see how well it compares to my Virtual Boy.
  19. Before getting rid of it I decided to plug the 3DS in one last time - glad I did as this time the indicator lights came on. The power LED was red, so the battery was very low. I pressed the power button and it turned on. It came up with a text menu complaining about the date and time being wrong - I think that screen was part of the jailbrake, but not sure and I didn't think to take a photo. So I set the date & time to the correct values, reboot, and the normal main screen came up. The date & time were still wrong though, so I went thru system settings to set them again. Power cord went in straight: Though can be moved to the left. It does not move like this to the right. When moved the screen still shows the battery is charging. I don't remember it having wiggle room like this before I dropped it. Have no idea as to why the power lights weren't working on the 13th, nor why it wouldn't turn on. I did take it apart, and removed the battery, after I dropped it to see if I could spot anything so perhaps messing with the battery was a factor.
  20. I don't know if there's a simple way or not. MiniDig has a disassembly for Adventure, I suggest taking a look at it to see how it processes register CXBLPF, which is a collision between the ball and playfield.
  21. You'll want to learn how Stella's Debugger works to figure this out. Compile your code after making the cpy #17 and cpx #17 fixes, then load your ROM into Stella: Press the ` key on your keyboard (next to 1, above tab, below ESCape) to enter the debugger: In the prompt type break Character then hit RETURN: Hit ` again, your program will run and then reenter the debugger when it gets to Character: At this point hit the Step button in the upper right to single step through your code. Repeatedly hit Step while watching what the code does, as well as the registry values, the current Scanline and the Scan Cycle position. What I see when stepping thru the program is that after GRP0 is updated the program will do a loop which updates PF0, PF1, and PF2 over multiple scanlines before it does the next update to GRP0. This is what's causing your player to be so tall. You might also like to take a look at my Collect tutorial, which covers writing a complete 2K game from scratch.
  22. I took a quick look and this jumped out at me: Character cpy 17 bpl No_Drawing ldx sprite_draw cpx 17 beq No_Drawing The cpy 17 and cpx 17 are comparing against the value retrieved from address 17, which is a mirror of TIA register CXM1P So you're not comparing against 17, but against the collision detection results of missile1/player0 and Missile1/player1. cpy #17 and cpx #17 will compare against the number 17.
  23. The Ranger EV? I hear you - having read this book about the early days of SpaceX, that's not something I'd want to do either. If I was younger that'd probably be a different answer. Way cool! Yep. It's not there yet for everyone, such as I wouldn't recommend one for someone without charging at home or work, but it's definitely getting there with the rollout of fast chargers at places like grocery stores. If you can charge up enough for your regular usage while getting your groceries then it's already more convenient than also having to stop for gas after buying your groceries. These are grocery stores I've personally charged at over the past 6 years: Edwards Food Giant (Brinkley, AR) Festival (Oshkosh, WI) Festival (Sheboygan, WI) - photo below HEB (Katy, TX) Hy-Vee (Dubuque, IA) Hy-Vee (Madison, WI) Hy-Vee (Olathe, KS) Meijer (Bolingbrook, IL) Meijer (Champaign, IL) Meijer (Evergreen Park, IL) Meijer (Howard, WI) Meijer (Rolling Meadows, IL) Woodman’s (Kenosha, WI)
  24. Another example would be Barnstorming - the body of the plane is drawn using the playfield. Barnstorming: Colors Stella uses to draw objects in Debug Color Mode: Barnstorming in Debug Color Mode, purple is the playfield - there's 3 shades of purple to show which of the 3 playfield registers are used to draw which part of the screen: I'm not familiar enough with bB to know if there are any examples of bB using the playfield like this.
  25. I second the 2 Line Kernel suggestion, commonly referred to as 2LK. You might like to check out Collect, my tutorial for writing a 2K game from scratch. It uses a 2LK so it can draw both players, both missiles, the ball, as well as the playfield using PF0, PF1, and PF2. Collect in action: In Stella's debug color mode, which makes it clear which red block is the ball: These are the colors Stella uses for each object in Debug Color mode: Note: there are 3 shades of purple to clearly show the 3 PF registers. Same occurs with the other objects, as seen by the 3 shades of yellow and green in Combat to show the 3 copies of player 1 and missile 1:
×
×
  • Create New...