Author Topic: Something on my free time  (Read 8840 times)

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 636
  • Karma: +43/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Something on my free time
« on: September 10, 2023, 04:24:02 am »
[image removed from imgur]
Just something i've been working on on my free time,
The script editor i'm using still has some bugs,
and still need to hammer out how i'm going to handle the strings too,
with things like new lines being use by the ¥ symbol.
It recalculates all the jump points too, so you can overwrite the dialogue and not break anything.

Then how i'm gonna write a patching program.

Also made a simple audio player, only because I wanna hear the audio clips along with the dialogue lines


edit: since imgur removed it, gonna attach it to the post
« Last Edit: September 11, 2023, 07:13:26 pm by 黒い灯影 »
BlackShadow

Rai

  • Serious VIPER Fanatic
  • ***
  • Posts: 301
  • Karma: +20/-0
    • Favorite Sogna Game:
      ・VIPER-M1
Re: Something on my free time
« Reply #1 on: September 10, 2023, 07:05:52 pm »
Outstanding. RSR translated has been a long time coming.

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 636
  • Karma: +43/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Something on my free time
« Reply #2 on: December 01, 2024, 05:52:50 am »

So far, chapters 1-3 are done..  with some text errors in the scripts.
I need some testers, though.
to report any thing wrong with the texts.
Anyone want to volunteer?
BlackShadow

Saika

  • Engaged VIPER Fan
  • **
  • Posts: 199
  • Karma: +4/-0
    • Favorite Sogna Game:
      ・Viper CTR, Viper RSR
    • Now Playing:
      ・Street Fighter 3rd Strike Online and EDOPro
Re: Something on my free time
« Reply #3 on: December 02, 2024, 03:06:01 am »
I wanna stop being a poser and wanna play this games so bad!!!!!

Also good job, I had no idea after 30+ years there is still no translation over all on this games.... making a guess here.
Miki,#1 girl in VIPER CTR

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 636
  • Karma: +43/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Something on my free time
« Reply #4 on: December 02, 2024, 03:46:25 am »
haha, thanks... 22 years, at this point
BlackShadow

Saika

  • Engaged VIPER Fan
  • **
  • Posts: 199
  • Karma: +4/-0
    • Favorite Sogna Game:
      ・Viper CTR, Viper RSR
    • Now Playing:
      ・Street Fighter 3rd Strike Online and EDOPro
Re: Something on my free time
« Reply #5 on: December 02, 2024, 01:55:39 pm »
Aren´t all Viper Games are from the 90s??????????
Miki,#1 girl in VIPER CTR

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 636
  • Karma: +43/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Something on my free time
« Reply #6 on: December 02, 2024, 02:11:58 pm »
The earlier ones were...
their games span release dates from 1993- 2003

The 22 years number was for Viper RSR.
BlackShadow

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 636
  • Karma: +43/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Something on my free time
« Reply #7 on: December 07, 2024, 01:07:30 pm »
Things i've learned since going through Viper RSR's scripts:
-The game starts you off at level 2...  even though there's resources that shows the menu at lv1.
-In chapter 2, the game sets Alfa's level to 3, but you can level up as normal.
-chapter 4, sets your level to level 4, but you can't level up. (so you never see all of Cala's moves set, even though there are resources for them, all the way to level 10, graphical and audio)
rest of game is normal, you can level up to level 10.
But to get to level 10, you have to complete 580 battles.  I made a chart for the level requirements.  i think 580 battles is really high for a game like this.
« Last Edit: December 07, 2024, 01:12:50 pm by 黒い灯影 »
BlackShadow

Rai

  • Serious VIPER Fanatic
  • ***
  • Posts: 301
  • Karma: +20/-0
    • Favorite Sogna Game:
      ・VIPER-M1
Re: Something on my free time
« Reply #8 on: December 07, 2024, 04:17:22 pm »
Yeah, I remember figuring out all those intricacies with the level system when messing around with save editing. It seems like for a minute they had something more ambitious in mind with the game design, enough to record voice lines for all those spells Alfa and Cala never get to learn normally. Even though Elan could get all the way up to Explosion, the grind to 580 is ridiculous. When I figured out how, I would just manipulate the battle counter and level indicators in the save registry to get everyone to max by the last chapter. Or ultimately I would just make all four character slots Lvl.10 Jota because without the voice lines, her attacks go so much faster than everyone else's.

Another quirk about the leveling I see in my old notes is that if you do intend to grind, make sure you wait until Chapter 3. Level 4 and onward is locked out in Chapter 1, but the battle counter keeps going, so it's possible to miss levels for Elan if you do 40 fights or more that early.

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 636
  • Karma: +43/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Something on my free time
« Reply #9 on: December 07, 2024, 08:02:41 pm »
i think when you miss levels, it sets you to the next tier, because the battle script just check how many battles you'd had, and if it reaches one of the numbers on the chart, it sets it to that level.


Code: (BattleCount check) [Select]
@JUMP014
0x01A9: 0x0D_OP RESET_EACH_ANM_PROPERTY()
0x01AA: 0x04_OP UNLOAD_ANM(0)
0x01AC: 0x04_OP UNLOAD_ANM(1)
0x01AE: 0x04_OP UNLOAD_ANM(2)
0x01B0: 0x04_OP UNLOAD_ANM(3)
0x01B2: 0x04_OP UNLOAD_ANM(4)
0x01B4: 0x04_OP UNLOAD_ANM(5)
0x01B6: 0x04_OP UNLOAD_ANM(6)
0x01B8: 0x04_OP UNLOAD_ANM(7)
0x01BA: 0x1F_OP STOP_PCM_ON_NEXT_REFRESH()
0x01BB: 0x32_OP READ_REGISTER(50)
0x01BD: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(1,@JUMP022)
0x01C2: 0x35_OP INC_REGISTER(48)              <--- Increase Battle count
0x01C4: 0x32_OP READ_REGISTER(48)            <--- Then read battle count
0x01C6: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(20,@JUMP015)   <-- jump, if not equals 20
0x01CB: 0x25_OP GO_SUB_JUMP(@JUMP567)   <-- only goes here if battle count==20
0x01CE: 0x34_OP WRITE_TO_MEM(53,3)            <--- write 3 to level register
0x01D2: 0x14_OP JUMP_TO(@JUMP022)
 @JUMP015
0x01D5: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(40,@JUMP016)
0x01DA: 0x25_OP GO_SUB_JUMP(@JUMP567)
0x01DD: 0x34_OP WRITE_TO_MEM(53,4)
0x01E1: 0x14_OP JUMP_TO(@JUMP022)
 @JUMP016
0x01E4: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(80,@JUMP017)
0x01E9: 0x25_OP GO_SUB_JUMP(@JUMP567)
0x01EC: 0x34_OP WRITE_TO_MEM(53,5)
0x01F0: 0x14_OP JUMP_TO(@JUMP022)
 @JUMP017
0x01F3: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(140,@JUMP018)
0x01F8: 0x25_OP GO_SUB_JUMP(@JUMP567)
0x01FB: 0x34_OP WRITE_TO_MEM(53,6)
0x01FF: 0x14_OP JUMP_TO(@JUMP022)
 @JUMP018
0x0202: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(220,@JUMP019)
0x0207: 0x25_OP GO_SUB_JUMP(@JUMP567)
0x020A: 0x34_OP WRITE_TO_MEM(53,7)
0x020E: 0x14_OP JUMP_TO(@JUMP022)
 @JUMP019
0x0211: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(320,@JUMP020)
0x0216: 0x25_OP GO_SUB_JUMP(@JUMP567)
0x0219: 0x34_OP WRITE_TO_MEM(53,8)
0x021D: 0x14_OP JUMP_TO(@JUMP022)
 @JUMP020
0x0220: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(440,@JUMP021)
0x0225: 0x25_OP GO_SUB_JUMP(@JUMP567)
0x0228: 0x34_OP WRITE_TO_MEM(53,9)
0x022C: 0x14_OP JUMP_TO(@JUMP022)
 @JUMP021
0x022F: 0x33_OP JUMP_IF_LAST_READ_NOT_EQUAL(580,@JUMP022)
0x0234: 0x25_OP GO_SUB_JUMP(@JUMP567)
0x0237: 0x34_OP WRITE_TO_MEM(53,10)

Code: (Level up animation) [Select]
@JUMP567
0x53D1: 0x03_OP LOAD_ANM(0,"ANM\LVUP")
0x53DC: 0x07_OP LOAD_PALETTE_FROM_ANM(0)
0x53DE: 0x0A_OP SET_BUFFER_PROPERTIES(0,0,0,0,128,0,0,[{1:1}])
0x53EB: 0x0C_OP UPDATE_BUFFER_PROPERTY_0C(0)
0x53ED: 0x1D_OP PLAY_PCM(0,"PCMSE\RSR202")
0x53FC: 0x05_OP FADE_IN_VIEWPORT_GRAYSCALE(255,12)
0x5400: 0x13_OP SLEEP_MILLISECONDS(200)
0x5403: 0x06_OP FADE_OUT_VIEWPORT_GRAYSCALE(255,12)
0x5407: 0x1F_OP STOP_PCM_ON_NEXT_REFRESH()
0x5408: 0x26_OP RETURN()

it specifically writes the level number when it reaches a certain threshold. with "WRITE_TO_MEM"

yeah, chapter 2 saves Elan's level elsewhere, Register 100, and then in Chapter 3, it moves it back from Register 100 to 53.
I can see you can screw yourself if you manage to rack up over 580 battles in ch 2 or ch 4, it will not trigger any of the WRITE_TO_MEM opcodes.
« Last Edit: December 07, 2024, 08:15:27 pm by 黒い灯影 »
BlackShadow

Rai

  • Serious VIPER Fanatic
  • ***
  • Posts: 301
  • Karma: +20/-0
    • Favorite Sogna Game:
      ・VIPER-M1
Re: Something on my free time
« Reply #10 on: December 09, 2024, 02:18:22 am »
Maybe that's what my note about missing levels meant, though I can't imagine I ever thought someone would actually grind to 580 battles in chapter 1. I sort of remember testing out the theory by getting the battle counter past 40 early and seeing if the next levelup in a later chapter put Elan at Level 4 or 5. It was long enough ago that I'm not sure what the actual result was.

Though my notes also say that setting the battle counter back to, say, 19, and getting into one more battle repeatedly would continue to raise Elan's level, so I would think that means it's just incrementing the level whenever a levelup is set to occur and not tying the battle counter value to a specific level. Or does it just do that between chapters? I also have a note that says "the game resets the level to where it's supposed to be" sometimes, but can't recall the details of that statement.

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 636
  • Karma: +43/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Something on my free time
« Reply #11 on: December 09, 2024, 01:04:56 pm »
im gonna use chapter 5 for reference, when you control Elan for the rest of the game.

Code: (EV05.WIN - this code runs after the opening dialogue.. and loads you into the town map) [Select]

@JUMP061
0x22D9: 0x34_OP WRITE_TO_MEM(17,5)
0x22DD: 0x03_OP LOAD_ANM(0,"ANM\505")
0x22E7: 0x07_OP LOAD_PALETTE_FROM_ANM(0)
0x22E9: 0x10_OP CLEAR_SCROLL_PROPERTIES(1)
0x22EB: 0x12_OP SET_BASIC_SCROLL_PROPERTIES(0,20,1,0,0)
0x22F3: 0x34_OP WRITE_TO_MEM(250,11)
0x22F7: 0x25_OP GO_SUB_JUMP(@JUMP131)
0x22FA: 0x4E_OP ENABLE_BUFFER_PROPERTIES_SYNC()
0x22FB: 0x0A_OP SET_BUFFER_PROPERTIES(0,0,0,0,128,1,0,[{1:3}{1:3}{1:3}{1:3}{1:3}])
0x2310: 0x0A_OP SET_BUFFER_PROPERTIES(1,0,0,2,128,0,12,[{1:3}{2:3}{3:3}{4:3}{5:3}])
0x2325: 0x4D_OP DISABLE_BUFFER_PROPERTIES_SYNC()
0x2326: 0x05_OP FADE_IN_VIEWPORT_GRAYSCALE(0,1)
0x232A: 0x0C_OP UPDATE_BUFFER_PROPERTY_0C(0)
0x232C: 0x0A_OP SET_BUFFER_PROPERTIES(0,0,0,2,128,0,12,[{17:3}{18:2}{19:2}{16:3}{17:3}{18:2}{19:2}{16:10}])
0x2347: 0x0C_OP UPDATE_BUFFER_PROPERTY_0C(0)
0x2349: 0x4E_OP ENABLE_BUFFER_PROPERTIES_SYNC()
0x234A: 0x0A_OP SET_BUFFER_PROPERTIES(0,0,0,0,128,1,0,[{1:3}{1:3}{1:3}{1:3}{1:3}{1:3}{1:3}{1:3}{1:3}{1:3}{1:3}])
0x236B: 0x0A_OP SET_BUFFER_PROPERTIES(1,0,0,2,128,0,12,[{6:3}{7:3}{8:3}{9:3}{10:3}{11:3}{12:3}{13:3}{14:3}{15:3}])
0x238A: 0x4D_OP DISABLE_BUFFER_PROPERTIES_SYNC()
0x238B: 0x0C_OP UPDATE_BUFFER_PROPERTY_0C(0)
0x238D: 0x5E_OP FADE_OUT_MIDI(12)
0x2390: 0x06_OP FADE_OUT_VIEWPORT_GRAYSCALE(0,12)
0x2394: 0x25_OP GO_SUB_JUMP(@JUMP162)
0x2397: 0x0D_OP RESET_EACH_ANM_PROPERTY()
0x2398: 0x34_OP WRITE_TO_MEM(17,1)
0x239C: 0x34_OP WRITE_TO_MEM(18,1)
0x23A0: 0x34_OP WRITE_TO_MEM(20,0)
0x23A4: 0x34_OP WRITE_TO_MEM(24,736)  <---  sets x and y position upon loading map (i forget which is which)
0x23A8: 0x34_OP WRITE_TO_MEM(25,1360) <---  sets x and y position upon loading map
0x23AC: 0x34_OP WRITE_TO_MEM(26,10)
0x23B0: 0x34_OP WRITE_TO_MEM(27,2)
0x23B4: 0x34_OP WRITE_TO_MEM(28,0)
0x23B8: 0x34_OP WRITE_TO_MEM(29,1)
0x23BC: 0x34_OP WRITE_TO_MEM(30,0)
0x23C0: 0x34_OP WRITE_TO_MEM(31,0)
0x23C4: 0x34_OP WRITE_TO_MEM(32,1)
0x23C8: 0x34_OP WRITE_TO_MEM(33,12)
0x23CC: 0x34_OP WRITE_TO_MEM(34,0)
0x23D0: 0x34_OP WRITE_TO_MEM(35,0)
0x23D4: 0x34_OP WRITE_TO_MEM(38,0)
0x23D8: 0x34_OP WRITE_TO_MEM(50,1)
0x23DC: 0x34_OP WRITE_TO_MEM(60,2)
0x23E0: 0x34_OP WRITE_TO_MEM(70,0)
0x23E4: 0x34_OP WRITE_TO_MEM(80,0)
0x23E8: 0x34_OP WRITE_TO_MEM(47,0)
0x23EC: 0x34_OP WRITE_TO_MEM(49,0)
0x23F0: 0x58_OP COPY_REG_TO_FROM(53,100)   <--  copy from Register 100 to 53,  the game saves Elan's level to Reg100 before controlling Alfa or Cala.
0x23F3: 0x34_OP WRITE_TO_MEM(63,4)
0x23F7: 0x34_OP WRITE_TO_MEM(73,0)
0x23FB: 0x34_OP WRITE_TO_MEM(83,0)
0x23FF: 0x4A_OP LOAD_WIN("MAP5")

There is no other reference to Register 53, in the EV05.WIN script,
MAP05.WIN has no reference to 53 (level), or 48 (battle count)

Here's the game's op codes if you want to go through them, work out the logic.
BATTLE5.WIN
EV05.WIN
MAP5.WIN

BlackShadow