Advertisement
Nightseeker

Sonic the Hedgehog 3 (Nov 3, 1993 prototype)

Nov 17th, 2019
700
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. https://hiddenpalace.org/Sonic_the_Hedgehog_3_(Nov_3,_1993_prototype)
  2.  
  3. https://tcrf.net/Proto:Sonic_the_Hedgehog_3
  4.  
  5. https://www.youtube.com/watch?v=WCL-GZucUxA
  6.  
  7. https://forums.sonicretro.org/index.php?threads/sonic-month-2019-sonic-3.38936/
  8.  
  9.  
  10. Interestingly, there are some source code bits for Star Trek: The Next Generation – Future's Past in this proto.
  11.  
  12. 0xAFF0E
  13. ,WhichMessage
  14. Bra @DoneInput
  15.  
  16. @InComingHail:
  17. Move.w #3,WhichMessage
  18. Bra @DoneInput
  19.  
  20. @ImpulseDamaged:
  21. Move.w #4,WhichMessage
  22. Bra @DoneInput
  23.  
  24. 0xBFAB4
  25. the screen.
  26.  
  27. DMAScrollArrows:
  28. Subq.w #1,ArrowDelay ; Determine if arrow buffers or blanks should
  29. Bne.s @NoTogg ; be DMA'ed this makes the arrows flash.
  30.  
  31. Move.w #15,ArrowDelay ; Reset delay between flashes.
  32. Eor.w #1,ArrowToggle ; Toggle between blanks and arrows.
  33.  
  34. @NoTogg:
  35. Tst.w ArrowToggle ; Branch to relevent bit.
  36. Beq.s @ArrowsOff
  37.  
  38. ; ====== Arrows on, DMA the buffers. ======
  39.  
  40. Lea UpArrowBuffer,A0 ; Source.
  41. Lea ScrollBBase+(27*2)+(21*64),A1 ; Destination.
  42. Move.w #1,D0 ; Number of words.
  43. Move.l #VDP_VRAMWrite,D1 ; Set to write to VRAM.
  44. Moveq #2,D2 ; Auto increment.
  45. Jsr PushDMA ; Move characters to VRAM.
  46.  
  47. Lea DownArrowBuffer,A0 ; Source.
  48. Lea ScrollBBase+(27*2)+(26*64),A1 ; Destination.
  49. Move.w #1,D0
  50.  
  51. 0xCF970
  52.  
  53. Lea ScrollBBase+($b*64)+(27*2),A1
  54. Jsr Word_2GVRAM
  55. Move.w #AsciiOffset+CHR_Palette0+CHR_HighPri,D5 ; Color is different if in impulse.
  56.  
  57. Bra @DoneSeperators
  58.  
  59. @NotImpulse:
  60. Move.w #AsciiOffset+CHR_Palette3+CHR_HighPri+'.',D0 ; Place decimal points and '/' seperators.
  61. Lea ScrollBBase+($5*64)+(28*2),A1
  62. Jsr Word_2GVRAM
  63. Lea ScrollBBase+($7*64)+(27*2),A1
  64. Jsr Word_2GVRAM
  65. Lea ScrollBBase+($d*64)+(28*2),A1
  66. Jsr Word_2GVRAM
  67. Move.w #AsciiOffset+CHR_Palette3+CHR_HighPri+'/',D0
  68. Lea ScrollBBase+($9*64)+(27*2),A1
  69. Jsr Word_2GVRAM
  70. Lea ScrollBBase+($b*64)+(27*2),A1
  71. Jsr Word_2GVRAM
  72. Move.w #AsciiOffset+CHR_Palette3+CHR_HighPri,D5 ; Set up character color.
  73.  
  74. @DoneSeperators:
  75. Move.w CurrentDistance,D7 ; Get whole part of DISTANCE.
  76. Moveq #3,D6 ; Three characters.
  77. Moveq #'$',D2 ; Lead with a spaces.
  78. Lea ScrollBBase+($5*64)+(25*2),A1 ; Screen destination.
  79. Jsr PrintVal ; Print it.
  80. Move.w CurrentDistance+2,D7 ; Get fractional part of DISTANCE.
  81. Moveq #2,D6 ; Two digits.
  82. Move.w
  83.  
  84. 0xDFEF3
  85. _No1,VIEW_NOT_FLIPPED,VIEW_SIZE_6
  86. Dc.b VIEW_PLANET10,VIEW_PAL_NoA,VIEW_FLIPPED,VIEW_SIZE_6
  87.  
  88. Dc.b VIEW_PLANET4,VIEW_PAL_NoC,VIEW_FLIPPED,VIEW_SIZE_7
  89. Dc.b VIEW_PLANET10,VIEW_PAL_No1,VIEW_NOT_FLIPPED,VIEW_SIZE_7
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement