Wrathchild Posted May 29, 2022 Share Posted May 29, 2022 Some loaders might utilise the stack area (page 1) and this game is using page 1 for many checks. I'd recommend @godlikemouse adds a bit of initialisation code that sets the area of page 1 used to zero. Or you could do something like LDA #0, TSX, LOOP: STA $100,X, DEX, CPX#$FF, BNE LOOP For example, even using and running an exomizer self-extracting conversion of the binary results in corruption: exomizer sfx $600 -n -t 168 -Di_table_addr=$500 -Di_load_addr=$5000 -o a.xex dungeoneer.xex If, in Altirra, I set a breakpoint at $600 and then run the command "f 100 LF8 0" to zero $100 to $1F7, then the option screen is shown correctly. a.xex Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted May 29, 2022 Share Posted May 29, 2022 Just checked on Github, so variables (memory.asm) are between $C0 and $13D, so this should suffice: LDA #0 TAX LOOP: STA TILEPTR,X INX BPL LOOP Quote Link to comment Share on other sites More sharing options...
CMR Posted May 29, 2022 Share Posted May 29, 2022 I still see the glitched screen pop up a split second before the option screen appears. The option screen is no longer scrambled and everything works perfectly though. I tried it on the mister core as well as my original and unmodded 800XL loading from sddrivemax. It's the same on both of them. Quote Link to comment Share on other sites More sharing options...
darwinmac Posted May 30, 2022 Share Posted May 30, 2022 I do not see the graphical problems with the updated version. However, I will defer to @Wrathchild regarding what needs to be done to make it compatible with as many loaders as possible. Again, great game. I finally got past level 3. ? Bob C Quote Link to comment Share on other sites More sharing options...
pps Posted May 30, 2022 Share Posted May 30, 2022 15 hours ago, Wrathchild said: Just checked on Github, so variables (memory.asm) are between $C0 and $13D, so this should suffice: LDA #0 TAX LOOP: STA TILEPTR,X INX BPL LOOP Maybe it would be better to just change location of it all and begin at $80. So you won't touch stack area anymore. Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 17 hours ago, Wrathchild said: Just checked on Github, so variables (memory.asm) are between $C0 and $13D, so this should suffice: LDA #0 TAX LOOP: STA TILEPTR,X INX BPL LOOP Thank you for taking the time to check out the github repo and provide feedback/code review for this. I'll try refactoring the memory location to use $80 upward hopefully that will fix the issue. Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 3 hours ago, darwinmac said: I do not see the graphical problems with the updated version. However, I will defer to @Wrathchild regarding what needs to be done to make it compatible with as many loaders as possible. Again, great game. I finally got past level 3. ? Bob C Thank you for the feedback. I'm glad you got past level 3 Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 1 hour ago, pps said: Maybe it would be better to just change location of it all and begin at $80. So you won't touch stack area anymore. Thank you for the suggestion. I'll try refactoring the memory location to begin at $80. Hopefully, this will solve the issue. I didn't realize this is the stack location for the Atari. Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted May 30, 2022 Share Posted May 30, 2022 1 minute ago, godlikemouse said: hopefully that will fix the issue. Still advisable to ensure its initialized properly too Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 1 minute ago, Wrathchild said: Still advisable to ensure its initialized properly too Thank you, I will try implementing the initialization you proposed first. Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 Thank you everyone for taking the time to try out my game and provide feedback. I'm humbled by the comments, suggestions and code reviews given here. To address some of the loader issues discussed I've added an initialize zeropage procedure based on the above feedback from @Wrathchild. Please feel free to try again using the attached (dungeoneer.xex) xex file and let me know if this solves the issue. Thanks again everyone for your help on this. On a side note, once this issue is resolved I plan on adding more levels to the game and I've begun work on implementing a custom RLE for compressing the map graphics in memory. So far, the compression ratio looks very promising. dungeoneer.xex 2 Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 7 hours ago, CMR said: I still see the glitched screen pop up a split second before the option screen appears. The option screen is no longer scrambled and everything works perfectly though. I tried it on the mister core as well as my original and unmodded 800XL loading from sddrivemax. It's the same on both of them. Hi @CMR, if you happen to have the bandwidth. I would love to see what you're seeing in terms of the glitched screen for a moment. I wish I had the ability to reproduce what you and others were seeing, it would make fixing this issue a bit less like guesswork If you could post a pic or a video of what you're seeing I can try and fix the issue. Thanks again. Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted May 30, 2022 Share Posted May 30, 2022 30 minutes ago, godlikemouse said: Please feel free to try again using the attached (dungeoneer.xex) xex file and let me know if this solves the issue. The exomize'd version still corrupts. This is down to the zp,x wrapping back to address zero: So the solution would either (as earlier suggested) move the variables to start from $80, or adjust the procedure: ; ; initialize zeropage ; resets zeropage .proc initialize_zeropage lda #0 tax loop sta $C0,x sta $100,x inx cpx #$40 bne loop rts .endp Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 9 minutes ago, Wrathchild said: The exomize'd version still corrupts. This is down to the zp,x wrapping back to address zero: So the solution would either (as earlier suggested) move the variables to start from $80, or adjust the procedure: ; ; initialize zeropage ; resets zeropage .proc initialize_zeropage lda #0 tax loop sta $C0,x sta $100,x inx cpx #$40 bne loop rts .endp Thank you for testing this @Wrathchild and providing a solution. I've implemented the requested changes. Please let me know if the attached (dungeoneer.xex) xex file works as expected. Thanks again, sincerely dungeoneer.xex 2 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted May 30, 2022 Share Posted May 30, 2022 36 minutes ago, godlikemouse said: works as expected Yes, all good now. dungeoneer_exo.xex 1 Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 3 minutes ago, Wrathchild said: Yes, all good now. dungeoneer_exo.xex 8.02 kB · 0 downloads Fantastic! Thank you so much for your help on this, it was truly invaluable. I will push a new version out to github with this change after fixing another issue. Thanks and have a good one. 1 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted May 30, 2022 Share Posted May 30, 2022 The final test will be with these two versions on @TGB1718's setups 1 Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted May 30, 2022 Share Posted May 30, 2022 2 hours ago, godlikemouse said: Thank you for testing this @Wrathchild and providing a solution. I've implemented the requested changes. Please let me know if the attached (dungeoneer.xex) xex file works as expected. Thanks again, sincerely dungeoneer.xex 26.79 kB · 4 downloads This works fine now, many thanks 1 Quote Link to comment Share on other sites More sharing options...
Beeblebrox Posted May 30, 2022 Share Posted May 30, 2022 Just had a 5min 1st play via Altirra using cursor keys. I could obviously do with some more practice, (or extra lives), as keep dying on level 3. ? Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted May 30, 2022 Share Posted May 30, 2022 20 minutes ago, Beeblebrox said: Just had a 5min 1st play via Altirra using cursor keys. I could obviously do with some more practice, (or extra lives), as keep dying on level 3. ? Same here, more lives would be nice Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 30, 2022 Author Share Posted May 30, 2022 Thank you both for playing Dungeoneer ( @Beeblebrox @TGB1718 ). There are actually more lives you can earn at 400, 800, etc.. Level 3 is supposed to prepare you for the rest of the game. If you need a hint, look carefully at the green liquid and sand positions. A lot of the time those are laid out to help you find the right angle. Also, look for secret passages, etc.. Those can help Thanks again. 2 Quote Link to comment Share on other sites More sharing options...
zzip Posted May 31, 2022 Share Posted May 31, 2022 On 5/29/2022 at 1:44 AM, godlikemouse said: Thank you for giving my game a try. I'll look into the glitched title screen and find out what's going on there. I mainly use the Atari800 emulator being that I'm on Linux. I haven't seen the corrupt title screen, but I'll try to reproduce it and fix it if I can. FYI- Altirria works extremely well on Linux under Wine if you want a second emulator to test things against. Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 31, 2022 Author Share Posted May 31, 2022 7 minutes ago, zzip said: FYI- Altirria works extremely well on Linux under Wine if you want a second emulator to test things against. Thanks @zzip, I actually already run Altirra under wine. For some reason though, I never saw the glitched menu screen. Not really sure why. Might be a configuration setting or something? Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted May 31, 2022 Share Posted May 31, 2022 @godlikemouse I sort of ignored the slight corruption during the load as it did go straight to the menu screen which it didn't for me before. But here is what some people are seeing:- dungeoneer.mp4 Quote Link to comment Share on other sites More sharing options...
godlikemouse Posted May 31, 2022 Author Share Posted May 31, 2022 28 minutes ago, TGB1718 said: @godlikemouse I sort of ignored the slight corruption during the load as it did go straight to the menu screen which it didn't for me before. But here is what some people are seeing:- dungeoneer.mp4 Thank you @TGB1718 for sharing that with me. Now I can at least see what's being discussed. Do you have any idea of how I could get something similar to happen with either Atari800 or Altirra? I've been trying to reproduce this issue but have been so far unsuccessful. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.