Jump to content
IGNORED

Legend of Silverpeak RPG


Recommended Posts

ZeroPage Homebrew is playing Legend of Silverpeak on tomorrow's stream LIVE on Twitch, hope you can join us!

 
Games:

(WATCH AT 1080P60 FOR BEST QUALITY)

 

  • Like 2
Link to comment
Share on other sites

Wow. This looks incredibly awesome! ?

I am not exactly aware of all the 7800er hardware-extensions that we have as of now. But will we ever be able to load this up into my 7800-Hardware for example as a RAM-extended Cartridge? 

Oh, and also I would also like to add: "TAKE MY MONEY!!! <3"

  • Like 1
Link to comment
Share on other sites

On 7/10/2022 at 3:33 AM, gambler172 said:

Now Steve needs to solve the SAVE feature ?

I'm going to take a look at that sometime soon.  Thanks to Walter, I confirmed that the correct menu.txt file settings for Legend of Silverpeak on the Cuttle Cart 2 are 78POK512 and 78BIOS.  For those that have a Cuttle Cart 2, you'll also need the correct bankswitching file (attached), 78POK512.BNK.  Place that file in the "BANKING" folder on your memory card.  I've confirmed that it works, the game loads up fine.

 

Regarding the load/save options, with a quick glance the options look correct.  Maybe I'm trying to save/load too many variables at once with the same "savememory" and "loadmemory" commands?  I'll have to try a few things and do some testing.

 

Edit:  I have two separate sections of load/save code, and they are in different banks.  It may just be adding a "return otherbank".  I'm going to look it over in more detail.

 

This code (bank 13)...

      if titleypos=142 && joy0fire then gosub load_game 
      if titleypos=153 && joy0fire then gosub save_game

Calls this code (bank 11)...

save_game
   gamedifficulty=0
   savememory STR INT VIT DEX HP HPMax mana manamax LevelHi LevelMed LevelLo GoldHi GoldMed GoldLo XPHi XPMed XPLo magic_val hpotion_val ring_val sword_val ring_val armor_val key_val shield_val
   gamedifficulty=1
   savememory rope_val rodoflife derame sephmond ugutz room key xpos ypos crystal1_flag crystal2_flag crystal3_flag crystal4_flag crystal5_flag crystal6_flag crystal7_flag
   return

load_game
   gamedifficulty=0
   loadmemory STR INT VIT DEX HP HPMax mana manamax LevelHi LevelMed LevelLo GoldHi GoldMed GoldLo XPHi XPMed XPLo magic_val hpotion_val ring_val sword_val ring_val armor_val key_val shield_val
   gamedifficulty=1
   loadmemory rope_val rodoflife derame sephmond ugutz room key xpos ypos crystal1_flag crystal2_flag crystal3_flag crystal4_flag crystal5_flag crystal6_flag crystal7_flag
   return

 

78POK512.BNK

Link to comment
Share on other sites

9 minutes ago, gambler172 said:

I hope RevEng can help with this?

I was thinking that too.  @RevEng, any suggestions?  I tested with the savememory and loadmemory commands in the same bank as the gosub call, and divided it into four loads/saves with "gamedifficulty=<0...3>", it didn't work.  I still get the blank yellow screen when saving.  I'll look at the documentation and scan the forums again for any additional info.

Link to comment
Share on other sites

I remember a while ago I was also trying to load/save with a game I was working on using the save/loadmemory code and Vox module.  The module would make weird noises/voices altering the pitch when saving/loading.  I thought I better not use the code as it could damage the module.

Link to comment
Share on other sites

13 minutes ago, frankodragon said:

I remember a while ago I was also trying to load/save with a game I was working on using the save/loadmemory code and Vox module.  The module would make weird noises/voices altering the pitch when saving/loading.  I thought I better not use the code as it could damage the module.

Today is the first time I've tried using a save game with Legend of Silverpeak on real hardware and I'm using a savekey, not an AtariVox.   My AtariVox just makes an awful screeching sound whenever an audio source is plugged in to it now regardless of what game is being played, and it started doing that well before I tried any load/save testing with it.  I can't verify what you experienced with my testing, but agree that could be a concern.

Link to comment
Share on other sites

3 hours ago, Atarius Maximus said:

Today is the first time I've tried using a save game with Legend of Silverpeak on real hardware and I'm using a savekey, not an AtariVox.   My AtariVox just makes an awful screeching sound whenever an audio source is plugged in to it now regardless of what game is being played, and it started doing that well before I tried any load/save testing with it.  I can't verify what you experienced with my testing, but agree that could be a concern.

I can't remember exactly but it made similiar noises to what you've encountered.  It also 'spoke' some of the load/save commands.   

Link to comment
Share on other sites

Mentioned this in PM with Steve, but just for the sake of other eyeballs... I'm looking into this. I'll first try to replicate it with a simpler program, and depending on those results, move on to the silverpeak issue. Since savekey isn't emulated I can't use my usual debugger tricks to track down issues, so this may take a bit longer than usual.

  • Like 2
Link to comment
Share on other sites

3 hours ago, RevEng said:

Mentioned this in PM with Steve, but just for the sake of other eyeballs... I'm looking into this. I'll first try to replicate it with a simpler program, and depending on those results, move on to the silverpeak issue. Since savekey isn't emulated I can't use my usual debugger tricks to track down issues, so this may take a bit longer than usual.

We count on you ?

  • Like 1
Link to comment
Share on other sites

I put together a basic test that saved, cleared, and then loaded memory under 2 difficulties, just to be sure that some underlying bug hadn't crept in since I first released these functions. Quick summary is that it works as expected.

 

saveloadmemory.bas

saveloadmemory.bas.a78

 

So it may be some difference in the way Silverpeak is laid out, or some other more obscure bug. Still digging...

Link to comment
Share on other sites

22 minutes ago, RevEng said:

I put together a basic test that saved, cleared, and then loaded memory under 2 difficulties, just to be sure that some underlying bug hadn't crept in since I first released these functions. Quick summary is that it works as expected.

 

saveloadmemory.bas 1.54 kB · 2 downloads

saveloadmemory.bas.a78 32.13 kB · 1 download

 

So it may be some difference in the way Silverpeak is laid out, or some other more obscure bug. Still digging...

Happy to hear your testing went well, I'm not sure what might be different in the LoS code.  I can look that over too but I'm going to be tied up for most of this evening.

Link to comment
Share on other sites

Ok, I believe I've found it. You've done an "inline 7800vox.asm" in bank 1, which sticks the AtariVox read/write code in that bank. When you call loadmemory/savememory in other banks, it can't reach the vox code, and instead winds up at some random bit of rom in the current bank.

 

7800basic won't auto-swap banks for you to reach assembly code you've inlined. (doing so would be problematic for some game designs) When you inline assembly it either needs to go in a permanent bank, or you need to stick the statements that will call the inline assembly in the same temporary bank that you inllined it to.

 

[edit] this behaviour is covered in the feature modules part of the 7800basic docs. 

  • Like 3
Link to comment
Share on other sites

1 hour ago, RevEng said:

Ok, I believe I've found it. You've done an "inline 7800vox.asm" in bank 1, which sticks the AtariVox read/write code in that bank. When you call loadmemory/savememory in other banks, it can't reach the vox code, and instead winds up at some random bit of rom in the current bank.

 

7800basic won't auto-swap banks for you to reach assembly code you've inlined. (doing so would be problematic for some game designs) When you inline assembly it either needs to go in a permanent bank, or you need to stick the statements that will call the inline assembly in the same temporary bank that you inllined it to.

 

[edit] this behaviour is covered in the feature modules part of the 7800basic docs. 

?‍♂️

 

I should have known better.  I'm looking at code I wrote 5 years ago now though, and that just didn't occur to me.  Thanks so much for taking the time to look at it.   I'll make the change, test, and post an updated version probably tomorrow.

 

  • Like 5
Link to comment
Share on other sites

Saving, Loading, and erasing games on real hardware has now been tested and is working.  

 

Title Screen:

Load:  It will Load and start the game from the last save, and take you to the exact screen and player position where you left off.  I did not test what would happen if you try and load from a SaveKey for the first time that does not contain any save data, it likely wouldn't work well as many variables would be filled with zeros or otherwise incorrect values.

Erase:  It will save the default game values to the Save Key.  Not really a true erase, it's really saving the default settings to the save key so if you try and load after an erase it doesn't break the game.

 

Status Screen:

Save: It will save all current data to the SaveKey.  Pressing the button will cause the screen to flash and be garbled for a moment.  That's how you know it's working. :)

Load:  Same as loading from the title screen.

 

As this is the first time I've played on real hardware, I noticed many of the colors are pretty dark - especially the HP and MP values on the status bar.  I updated the colors for those to make them brighter.  This may be because of my setup, I'm using a 7800 with an RF Connection through an RF Modulator, it might look better for others depending on their hardware setup.  Other than those two minor color changes, the only change made was to fix the load/save/erase functionality.  If you attempt to load or save in emulation, it simply won't do anything.  Use save states. :)

 

Note that I'm using $44, $44 on the SaveKey, which I did not officially reserve.

 

LoS_1.01.bin LoS_1.01.a78 LoS_1.01.bas

  • Like 7
Link to comment
Share on other sites

1 hour ago, gambler172 said:

Hi Steve

Checked the actual version on my CC2

Works perfect ?

But on my Dragonfly, it does not work. I know in the past , you changed something?

 

Greetings Walter

Karl G posted a fixed version that works with the Dragonfly, however I don't know what he did to fix it so I'm not sure what to change for Dragonfly compatibility.

Link to comment
Share on other sites

As part of my testing earlier today, I wrote a utility that will display the SaveKey values that Legend of Silverpeak saves to memory.  It's not of much use in emulation, but will allow you to check the save game (to verify your level, amount of gold, etc) should you ever want to.

 

Steve

LoS_SaveKey.jpg

LoSsk.bas LoSsk.bin LoSsk.a78

  • Like 7
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
On 1/1/2018 at 11:06 AM, Atarius Maximus said:

Happy New Year!

 

I've been working on an RPG title since October, and I thought I'd start off the new year by sharing my progress. It's a fairly expansive title, with a large overworld with towns and dungeons to explore and plenty of turn-based level grinding fun. While the game's basic objectives are in place and the game is playable (and winnable) there is still much work to be done. I'm aware of a few minor issues here and there that still need to be worked out. The most notable area that isn't completed is the planned boss battles in each dungeon, some objects in the game don't do anything yet, how you level up and progress in the game will likely be changed/tweaked, and the graphics are my first attempt and may be changed. The battles at the beginning of the game are very easy, and later on they are probably too difficult. Hundreds of hours of work have already gone into this already, and many design and gameplay choices were made based on compromises related to available hardware resources (especially the attack sequence). I thought it would be a good time to take a short break from it, share my progress, and hopefully hear some feedback.

 

Saving and Loading your game to the Atarivox is implemented but untested on real hardware. Actually I haven't tried it at all on real hardware yet, just in Mame. The game is 512K, and is currently actually using around 280K of that space. In emulation you'll have to use Mame, Mess, or A7800, and while the AtariVox saves aren't supported in those emulators you can use Mame's save states, which I tested and that seems to work fine. At any time when you're not in the middle of a battle you can press the right fire button to bring up a detailed status screen. There you can save your game, use an item in your inventory, see your location on the overworld map, and review your statistics. In battle, use the left button to attack, and the right button to switch back to the menu at the top to choose alternate options or use items.

 

Here's the story...

 

You are Azémar Rehn, a simple woodsman from Mountain Home Grove, a beautiful patch of forest just east of the Silver Mountains. You set out from your homeland to reunite with your Uncle after your father's death. Unfortunately, upon your arrival, your Uncle is no where to be found. A short note is left in the Cabin, but it's not as helpful as you'd like it to be.

 

You'd heard of the war, and how all the most virtuous crystals that were revered by the people of Midlothia were captured and scattered into the deepest dungeons. They are fiercely guarded by powerful men who are determined to crush the will and spirit of the people. Without their beloved symbols of virtue, the entire realm had been taken over by mercenaries and theives, bent on taking whatever they can for their own selfish gain. No power or virtue of man could ever have deserved that, what has been fated should not have taken place. Feelings of hopelessness and misery abound, and no one has risen to the challenge of ridding the land of these thieves.

 

No one with good intent, that is. One powerful warrior, who calls himself Nonnag, who's mere prescences strikes fear in the hearts of men, has spread his evil throughout the realm. He created the the Crystal of Wrath, which serves as a beacon for those who serve his evil purposes. It must be captured and destroyed in order to bring peace, light, and life back to Midlothia. The common people are waiting for a hero to emerge. Once who can vanquish the evil, recapture the crystals, and restore the rod of life. Only this man is worthy of being crowned the next King of Midlothia. Great crisis produce great men and great deeds of courage.

 

The Midlothian army has long disbanded. With their tragic losses and lack of leadership, hope was lost. Soldiers are citizens of death's grey land, drawing no dividend from time's tomorrows. It is now up to Azémar to restore order, to agree to the ultimate sacrifice for the sake of his homeland. As soon as sacrifice becomes a duty and necessity to mankind, there is no limit to the horizon which opens before him. It's time to fulfill your destiny.

 

I'll leave some additional details for later. :)

LoS.a78 512.13 kB · 783 downloads

LoS.bin 512 kB · 490 downloads

post-2143-0-11844400-1514822330_thumb.png

post-2143-0-12763200-1514822332_thumb.png

post-2143-0-34775400-1514822333_thumb.png

post-2143-0-70043700-1514822334_thumb.png

post-2143-0-35567100-1514822336_thumb.png

post-2143-0-50776200-1514822337_thumb.jpg

Props to the great gfx! How are you doing this? It looks like 160A but it has more than 4 colors per row. Are you using multiple indirect mode sprites?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...