Need a beta tester for real SNES Hardware

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Need a beta tester for real SNES Hardware
by on (#142294)
Hello everyone, I'm still alive.

So on New Years Day 2015 I challenged myself to code 12 SNES demos in 12 months for the One Game Per Month Challenge.

So far I have finished two games:


However they haven't been tested on real hardware. I don't have any way to testing them atm.

I'm not 100% sure if First Person Tetromones will actually work on real hardware. There were a few bugs which caused the controller to stop working and the screen to cut out half way on snes9x, which worked fine on BizHawk 1.91 (bsnes v0.87 compatibility). But those went way after I added a Palette buffer AFTER setting the Mode 7 Matrix for some reason.

On higen v0.94-accuracy-64bit windows the game is rendered upside down for some reason. It works fine on the balanced/performance build so again, not sure what's happening.

Can anyone please test these two games and let me know what you think of them. Also any comments on the actual games would be wonderful, my brother hasn't been bothered to test them yet.
Re: Need a beta tester for real SNES Hardware
by on (#142295)
How would you feel about someone donating money so you could get a Super EverDrive and test it yourself on actual hardware?
Re: Need a beta tester for real SNES Hardware
by on (#142297)
First Person Tetromones works(did for the 5 minutes I played at least).
Elevator Madness DX just goes back and forth between the title screen and the controller instructions.
Re: Need a beta tester for real SNES Hardware
by on (#142298)
DoNotWant wrote:
First Person Tetromones works(did for the 5 minutes I played at least).
Elevator Madness DX just goes back and forth between the title screen and the controller instructions.


Thanks for the test. Its good to hear I got Mode 7 working :D . What did you think about the game?

I'm surprised about Elevator Madness DX, your supposed to press any button to start the game. I don't like to sound annoying, but did you do that?

I just realised I forgot to add a "Press any key" message to the splash screen.


koitsu wrote:
How would you feel about someone donating money so you could get a Super EverDrive and test it yourself on actual hardware?


I do have a Game Doctor SF7, but I have no working floppy disks. I'm going to order a floppy disk emulator from ebay later tonight, but its going to take three weeks to get here.

I'd just like some feedback about this ASAP so I don't loose my understanding of the code.
Re: Need a beta tester for real SNES Hardware
by on (#142300)
Of course I pushed buttons. xD
All of them several times.

I really like the tetris game. :)
Re: Need a beta tester for real SNES Hardware
by on (#142301)
DoNotWant wrote:
I really like the tetris game. :)


That's good to hear.


DoNotWant wrote:
Of course I pushed buttons. xD
All of them several times.


Darn, I'll have to go through the code and take a look at it tomorrow.
Re: Need a beta tester for real SNES Hardware
by on (#142308)
Welcome back undisbeliever!

For Elevator Madness DX, you press Start to play the game.

I can't test these games on real hardware. I have an actual SNES, but no cart capable of playing custom programs. I'm still glad to play with them via emulator, even if briefly.

I have successfully made real SNES music for almost half a decade now (since 2009, actually... and I've been using a compiled version of mukunda's SNESMod since 2011!). My G5 is retired due to hardware failure, so I have an Intel Mac running Mac OS X 10.6.8.

I've even been successfully converting some SNES RPG music from the SNESDev.net forums after doing some optimizations for the samples (and/or replacing them due to my changed ethics on which ones to use... although that's not always possible)! I fully intend on making a new sound driver so I can make the music interactive and be able to swap out data on the fly for the songs that are either too big to be practical in their original form due to combined sample size... or in one case, way too large period due to the sheer number of patterns I used (it's also interactive). I've even decided to make new tracks in the original style and then perform my optimizations (that's because the originals are now my master-quality samples).

These days, though, I'm in college, so I can't guarantee a soundtrack every month (well, I could do one track per game, but again, I can't guarantee that...). My schedule becomes more free starting mid-May (although in this case, it may only be brief... normally summers are open).

I have gained the ability to look up code in hexadecimal, though, using a hex editor. I've gotten very good at this because I invent music modifiers, and I do so with no debugger needed. This includes manipulating/looking up pointers (both on the SNES and SPC700 end), and reverse-engineering music data (again, both on SNES and SPC700 end, since some games send note data from the SNES side to the SPC700).
Re: Need a beta tester for real SNES Hardware
by on (#142324)
Thank you very much for the Tetris game. I've played a lot of Tetris and yours is one of the few variations on the game I've actually found enjoyable. It's challenging! All I need is save-piece and instant-drop buttons and I could have tons of fun with it.

I also wasn't able to make Elevator Madness start on my SNES and I tried mashing every button but mostly start for quite a long while, in both controller ports. It works fine in Bizhawk. I'm really curious how you programmed joypad input; unless it only has problems on certain console models this should be filed as a bug report against the emulator...
Re: Need a beta tester for real SNES Hardware
by on (#142329)
Khaz wrote:
I'm really curious how you programmed joypad input; unless it only has problems on certain console models this should be filed as a bug report against the emulator...



As far as I know it's just the standard AUTOJOY.

Initialisation
Code:
   LDA #NMITIMEN_VBLANK_FLAG | NMITIMEN_AUTOJOY_FLAG
   STA NMITIMEN


Then JOY1 is read by the Random__AddJoypadEntropy called by the main loop.
Code:
   LDX JOY1
   CPX prevJoypadState


Then JOY1 is read again and AND tested to see if a button is pressed

Code:
   REP #$30
.A16
   LDA JOY1
   AND #JOY_BUTTONS | JOY_START | JOY_SELECT
   SEP #$20
.A8



According to SNES9x 1.51 debugger the read occurs at HC:1160 VC:225. Which after re-reading the Anomie's timing document and doing the math[1] is during auto-joy read. Why did I initially think that autojoy is only half a scanline?. It does seam odd that higen doesn't catch this.


I've added the appropriate HVJOY test to the joypad read function, and moved it to the end of VBlank.


Ironically in First Person Tetromones, snes9x (but not BizHawk) did incorrectly read JOY1 when I set the Mode 7 registers during VBlank. I later add the HVJOY test, but forgot to back port it to Elevator Madness DX.


Khaz wrote:
unless it only has problems on certain console models this should be filed as a bug report against the emulator...


When I get my floppy disk emulator, I'll see if I have time to write up some tests.

Khaz wrote:
Thank you very much for the Tetris game. I've played a lot of Tetris and yours is one of the few variations on the game I've actually found enjoyable. It's challenging! All I need is save-piece and instant-drop buttons and I could have tons of fun with it.


I didn't come up with the idea, Someone else did. I only coded this one because I finally uninstalled flash, couldn't find a port of it and wanted to play it again.

Can you tell me the rules of save-piece. My google-fu is lacking and I can't get a good description of what is supposed to happen?

---
[1] 4224 master cycles / 1364 cycles per frame = 3 frames of autojoy.
Re: Need a beta tester for real SNES Hardware
by on (#142330)
Huh. Just tried the new version and I still can't start the game.

I do feel like I remember reading somewhere about the auto joypad read timing not being emulated properly, now that I think about it. Are you sure your vBlank takes enough time? That's the only idea I've got...

EDIT: Saving a piece is simple. You have a slot that's initially empty that you can press a button to send a piece to, and from then on press the same button to swap the current piece with the one in the slot. Generally speaking the piece will restart from the top again when swapped out, and therefore you only get to swap once per piece set down.
Re: Need a beta tester for real SNES Hardware
by on (#142331)
Khaz wrote:
Huh. Just tried the new version and I still can't start the game.

I do feel like I remember reading somewhere about the auto joypad read timing not being emulated properly, now that I think about it. Are you sure your vBlank takes enough time? That's the only idea I've got...


My bad, I accidentally sent you the wrong file. This build does check HVJOY and reads JOY1 at HC:0986 VC:238 (snes9x 1.51 debugger).

Which goes against both Anomie timing doc and the SNES dev manual (580 machine cycles, 3.38 scanning lines). Again I'll test when I get real hardware.


I've been looking at bsnes's step_auto_joypad_poll and it looks right. Still have no idea why its not working.

Khaz wrote:
EDIT: Saving a piece is simple. You have a slot that's initially empty that you can press a button to send a piece to, and from then on press the same button to swap the current piece with the one in the slot. Generally speaking the piece will restart from the top again when swapped out, and therefore you only get to swap once per piece.


Easy, I'll code it up tomorrow. Not sure where the slot will be on the screen tho.
Re: Need a beta tester for real SNES Hardware
by on (#142332)
Ahh there we go, it works perfectly now!
Quote:
Easy, I'll code it up tomorrow. Not sure where the slot will be on the screen tho.

That would be quite awesome of you, thanks!
Re: Need a beta tester for real SNES Hardware
by on (#142333)
The feature is called "hold piece", and as usual, Hard Drop describes it in detail. After hold is used, the hold piece is drawn "not available" until lockdown.Tetris products for Nintendo platforms (The New Tetris for Nintendo 64, Tetris Worlds for GameCube, Tetris DS, and Tetris Party for Wii) bind it to the L button.

If a game includes a delay between lockdown and when the next piece enters, pressing and holding L during this time should perform a hold just before the piece comes in. The same is true of pressing and holding L during line clear delay.
Re: Need a beta tester for real SNES Hardware
by on (#142350)
Sorry, i try it with my pal SNES (original PAL + switched one (NTSC/PAL) with my linker a SUPER UFO PRO 8.

Your original demo won't load on the linker, i don't make a deeper check of your SNES Header.
I try the same correct i make for some personal project.
Because i'm just starting the SNES dev since 2 weeks now.
but I think you setup of you SNES rom isn't "correct".

I've upload the zip with your original file.
UCON rep is the modified version with Ucon64 --pad --chk but if you check the new padding size the internal SNES Header you see that he don't modifie the header
UFO rep is the converted version of the UCON rep (for a try but SUPER UFO PRO 8 load actually all the format).
Lunar Expand is the correction method i use on my own personal project for expand my rom (this tools rewrite correctly the snes header too) + corrected checksum with IpsAndSum tool

Actually i can't load any rom (modified or orginial) on the linker.
It seem to make some verification of the rom before load it and your rom don't seem to pass it sorry -_-'
Dunno exactly why test the linker make (i need to know too to make a good rom directly from the compilation :P), with my own personal test i can correct my rom with correct rom size + header.

Error Loading :
Image

Some demo from this forum and user work like a charm directly ^__^
Image

Image

Image

Image

My first test : https://twitter.com/Aliandrana/status/571434918573690880


If some one know the correct methode to make a clean rom, i'm interesting too to know the good way to do it too ^__^
Re: Need a beta tester for real SNES Hardware
by on (#142388)
The next version of First Person Tetromones is done.

This version adds:
  • Instant drop (A)
  • Hold Piece (X)
  • ARE Delay of 12 frames

I initially set the instant drop button to anti-drop (up), but after pressing it for the Nth :evil: time and ruining my progress, I changed it to A.

tepples wrote:
If a game includes a delay between lockdown and when the next piece enters, pressing and holding L during this time should perform a hold just before the piece comes in. The same is true of pressing and holding L during line clear delay.


I'm not completely sure I have this bit right. It works during line clear animation, but its occasionally hit or miss on a normal lockdown. The timing window (12 frames) seams a little short, I've tried higher values but then it ruins the game-play experience for me. What do you guys think?

ThunderZ wrote:
Sorry, i try it with my pal SNES (original PAL + switched one (NTSC/PAL) with my linker a SUPER UFO PRO 8.

Your original demo won't load on the linker, i don't make a deeper check of your SNES Header.
I try the same correct i make for some personal project.
Because i'm just starting the SNES dev since 2 weeks now.
but I think you setup of you SNES rom isn't "correct".


I have no idea, I'm guessing that I didn't update the SNES checksum in those releases. I went over all the values again and couldn't find anything obvious. I spent about an hour last year going over the SNES dev manual trying to build that header correctly.

Thankyou for reminding me about ucon64. I've modified my Makefiles to use ucon64 to set the checksum as ca64 doesn't do it for me.


KungFuFurby wrote:
Welcome back undisbeliever!

...

I fully intend on making a new sound driver so I can make the music interactive and be able to swap out data on the fly for the songs that are either too big to be practical in their original form due to combined sample size... or in one case, way too large period due to the sheer number of patterns I used (it's also interactive). I've even decided to make new tracks in the original style and then perform my optimizations (that's because the originals are now my master-quality samples).


It's good to be back. I've haven't been social on the net for a while. This 1 game a month challenge should bring me out of it.

I've decided to just ignore sound for the moment. I'm going to wait a few months and see if anyone develops a sound driver that suits my needs (easy to use, supports sound effects, work in both an emulator and a real SNES) before tackling that challenge.

March's release is going to be a jump across falling platforms demo. It will involve me finishing my MetaSprite engine, creating an initial game loop and handling bounding box collisions.
Re: Need a beta tester for real SNES Hardware
by on (#142399)
Maybe SNESGSS will do the trick?

https://code.google.com/p/snesgss/

On my end, I don't use that sound driver (at least for its traditional use: through the application) due to a platform incompatibility. However, I have assisted with its implementation in Furry RPG, and I fooled around with the sound driver by hex-inserting a test song.
Re: Need a beta tester for real SNES Hardware
by on (#142418)
Tried out the new Tetris and it works perfectly. Thanks! Can't really comment on how the L-hold-delay feels though as I'm not used to that feature.

Looking forward to seeing the next game!