Jump to content
NHL'94 Forums


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by chaos

  1. The Save States and Logging league games is really only necessary for playing in leagues, hence why it isn't part of the Getting Started. Purpose of Getting Started is getting the install done and controller set up, playing on your own, which is what I would figure 80% of people want to do. The links about save states and logging games should be provided to you by the league commissioner or should at least be explained to you by whoever is helping you confirm your setup. In Classic league, which is the usual beginner league, all this information is given in a forum post every year. Unfortunately, no one seems to read it! I'm guessing a video showing a how-to might be better. I plan on revamping the Getting Started page soon and add some stuff to the front page of nhl94online. I 100% agree with you about the controller config thing, and every time I send it to someone I say to myself "I have to change this so it's easier to see", and then forget 5 min after. If anyone is willing to help make videos on some of these things, it would be excellent. I can link them on the Getting Started page.
  2. Hey bud, these are on the forums already: Also, link to a video showing set up - Though, it should be in spots more readily accessible. I think that's the gist of this thread.
  3. @CoachMac I think he edits the save state, then loads it again.
  4. FYI : GPGX OFFSET: 9320. But, every 2 bytes are swapped. So, subtract 9320, then subtract 1. Not in cases where the data is 2 bytes, the first is LSB (Least Significant Bit), second is MSB (Most Significant Bit), and in that case, no need to subtract 1. Player Data is listed as player offset: 01 00 03 02 05 04 ... I also have written a stat extractor in Python. You can look at that if you'd like to write your own code. Below is the link. It's an old version though. I also attached here the source code for the version that works with RA save states. I haven't added it to that post yet because I wanted to add batch save states functionality to it. Also, I don't think the SNES side works yet either. If you have any questions, let me know. Code - Stat Extractor v05.zip
  5. @clockwise - you need one of these bud - Intergraph InterView 28HD96 - 1080p CRT Widescreen Monitor. Rare as hens teeth
  6. @Drunken_1 you were able to decompress SNES graphics? We can’t figure it out in NHL94 for SNES (Genesis version we have decompressed them). I wonder if the compression is the same as TSB3. btw great job on this ROM so far. Love TSB3!
  7. What about getting the 2.4g controller and one of these? RetroUSB You plug the controller adapter into the RetroUSB adapter, which plugs into USB on your PC.
  8. Have you tried using the wayback machine on archive.org? It takes screenshots of pages over time, there may be screenshots of the stuff you are looking for.
  9. Also, the most important thing is your local FPS (or frame rate). This should be very close to 60Hz, usually bouncing around in the 59-60Hz range. If you do not see this type of frame rate, check the troubleshooting thread! You can check the frame rate by using the F3 key (or Shift-F3, or Fn-F3, depending on your keyboard). You will see an FPS display in the top right of RetroArch. I recommend leaving this running all the time, so you can monitor it.
  10. There are 2 major forms of latency (or lag, whichever you'd like to call it): Input Latency - The delay from pressing a button, to the display of that button action on the screen. Network Latency - The delay in communication from one computer to another. In our case, the amount of time it takes to for one player's button press to show up on the other player's screen. Latency is usually displayed in ms (milliseconds). An emulator displays video by frames. Most emulators use an ~60Hz refresh rate (similar to the consoles they emulate), which means it displays 60 video frames per second. The video on the screen refreshes every 16.7ms (1 second / 60 frames = 16.7ms). So, the fastest an emulator can show a change on the screen is 16.7ms. This may seem like very little time, but in regards to computer processing, this is a ton of time. A lot of things happen within those 16.7ms, one of which is preparing for the next video frame. Input Latency The emulator checks for controller input during a specific time during a frame. If the input arrives before that time, it will update the video on the screen. How soon you see a reaction to your input is called the input latency. Many things can factor into this: Controller - Your USB/Bluetooth/wireless controller polls the button inputs every couple of ms. Some poll quicker than others (2-4 ms), some take longer than others (11-16ms). This contributes to input lag. On top of that, the PC will poll the controller, which also contributes to input lag (though this is usually 1-2 ms). So, when you press the button, the controller polls the buttons to see what was pressed, and then the PC polls the controller to get the input. This is not instant. Emulator - Depending on how well the emulator is coded, some of them can contribute to input lag. It can receive the input from the PC, but it may take a frame or 2 before it updates the video to show the input. Display - Depending on your monitor or TV, there could be a delay added. HDTVs especially, since there is some upscaling of the video involved in order to display it (this can add a few frames). Computer monitors are usually lag-free. Regardless of all the latency added above, the emulator still checks for input every 16.7ms. So if you press the button, if it gets to the emulator in time, it will display it. The problem is this: It only checks every 16.7ms. So, if you press the button mid-frame (8ms), and your input latency adds up to 10ms, the total is 18ms (10ms latency, 8ms to press the button), and you will miss the frame. Your input has to wait for the next frame to show up. The best way to think of the above is this way: Imagine you need to get on the bus. A bus comes by every 16.7ms to pick people up. It takes 10ms for you to get to the bus stop from your house (your latency). Depending on the time you leave your house (press a button), will depend on what bus (frame) you make. If you are curious as to the input lag of your controller (the first part of above), you can look it up on the internet. A lot of people have done tests of controllers. For example, the wired retro-bit controllers come in around 10ms, where as a wired 8bitdo M30 2.4g has about 3-4ms. Network Latency Network latency is the amount of time it takes for communication between 2 PCs. This comes into effect during Netplay, when 2 PCs are sending inputs back and forth. Latency increases with distance (the further the signal has to travel, the more latency there most likely will be), but there are many other factors that can cause latency: Wifi - A wireless signal from a PC to a router can be affected by many things. Walls, interference from microwaves (microwaves use the same frequency as most Wifi routers), interference from wireless landline phones (same frequency), distance from PC to router, devices on Wifi, etc. You can have the fastest internet and Wifi router in the world, but it will not make a difference. Wifi adds lag, and since it isn't consistent lag, it makes it even worse. Jitter - Your internet speed is not important when it comes to gaming. You can have 1GBit download and upload speeds, but what matters most is jitter, or stability. Input lag is usually consistent, in other words, stable. Your eye can easily adjust to it after a minute or so. Network jitter causes instability, where the network lag constantly changes. There are many things that can cause this, though most are out of your hands. You can check your network jitter using online tests such as speedtest.net. Note, this will change (you will get different results every time you run it), but the goal is to have jitter that is less than 8ms or so. One of the only ways you can control jitter is by using a wired connection for internet, between your PC and router. Other than that, you are at the mercy of your Internet Service Provider (ISP). Local Network Load - This is a problem again you may have some control over. The amount of devices using internet on your local network can cause a load on the router, where the router has to decide what devices to let through at a given time. Sometimes, your PC will be at the top of the list, sometimes on the bottom. The router decides what is most important. Sometimes, some routers have settings that give priority to gaming. Usually, this isn't much of a problem, but it could be. ISP Network Load - You have no control over this. This depends on how many people are using the internet at a given time. In a case when a pandemic is going on, internet usage goes up, causes a network load, and everything slows down. Peak times (after work hours) will also cause issues with network traffic. Some people just have crappy internet service providers, and it might be their only option. In these cases, you just have to limit what you can. Again, speed doesn't matter, this game could be played using a 1200 baud modem no problems. The amount of data passed between PCs is just inputs, and occasionally save states. The most important thing is stability. If the Network Latency is constant, it can be dealt with easier than if it is constantly changing. Both Input Latency and Network Latency are added together when it comes to Netplay. So if we use our bus analogy: Imagine you need to get on the bus. A bus comes by every 16.7ms to pick people up. It takes 10ms for you to get to the bus stop from your house (your input latency). But now, there's traffic along the way (your network latency). Depending on the time you leave your house (press a button), and depending on how bad the traffic is at that time (network latency), will determine what bus you get on (what frame). RetroArch Netplay Like I said above, your Input Latency (which is local to you) and Network Latency (between you and your opponent) affect your Netplay experience. RetroArch netplay, the way it works in a nutshell, is it checks frame by frame to see if it receives an input from the opponent. It also keeps track of what frame you and your opponent are on, and compares. When you connect to each other, it starts frame counting. So, when you press the B button on Frame 123, it sends that information to your opponent. When your opponent is on Frame 123, it receives your B button press, and shows it on the screen on the next frame (124), just when it would show on yours as well. In a perfect world, every button press on a frame would be registered on the same frame for your opponent, without problems. But, what happens when you press your B button and it's showing your pass on Frame 123, but it doesn't get to your opponent until Frame 125? This is the effect of latency. What RA does in this case, is rewind to Frame 123, show your B button press, and continue. Now in this case, there is 2 frames of lag (which is ~33ms). The rewind may go unnoticed in this case. But, lets say the frame difference was 10 frames. That's 166.7ms. That may be noticeable to the player. In this case, what they see is a skip, or "rubber-banding" where the skaters rewind back 10 frames, then continue. (Note: more goes on than just rewind, just keeping it simple here) The short frame rewinds make it seem like input lag. Many players complaining about input lag are probably experiencing this. The larger frame rewinds are more noticeable and look like skips. In other emulators, what would happen in this case, is the game would stutter and hang until one side caught up to the other. If the frame difference was large, the game would de-sync. Input Latency Frames and Run-Ahead RetroArch can deal with latency in 2 ways - Input Latency Frames (used to help with network latency) and Run-Ahead (used to help with input latency). Remember, Netplay expect the input from each player to arrive on the same frame. This is unrealistic. In some cases, when people playing against each other are very close geographically, this is possible (as long as all latency equals to less than a frame - 16.7ms, this works). In cases when playing across North America, expect network latency to be in the 20-80ms range. Adding Input Latency Frames allows some time for Netplay to expect the input. If we add 2 Input Latency Frames, for example, when we press B on Frame 123, it sends the press on Frame 123, but delays showing it until Frame 126 (pressed on 123, would originally show on 124. 124 +2 frames = 126). This way, the opponent's PC can wait for the input on Frame 125, showing it on 126, giving it 3 frames total of travel (Frame 123, 124, 125). Gens Kaillera Netplay and ZSNES both add 2 input latency frames automatically. Gens adjusts by adding more if needed (depends on ping). By default, Input Latency Frames is set to 0 in RA. Run-Ahead works locally, by removing input latency frames. By turning Run-Ahead on, you remove at least 1 frame of input latency (you can set it higher if you'd like). It's one of best features of RA. By default, it's turned off. TL;DR: So how can we use these to help improve Netplay experience? We can add Input Latency Frames, and remove some of them locally using Run-Ahead, to give us a near lag-free (in most cases) experience. Example: If we set Input Latency Frames to 2, and set Run-Ahead to 1, we essentially add 1 frame of input latency locally (2 input frames - 1 run-ahead frame = 1 total). This gives the network 2 frames to play with as far as receiving data, but we only see a difference of 1 frame while playing. This is not noticeable. Even 2 frames is hard to notice. NOTE: Adding Run-Ahead frames becomes CPU intensive. You can experiment with it, but 1 or 2 frames should be more than enough. NOTE: When it comes to adding Input Latency Frames, both players have to have this set to the same value. Confer with your opponent beforehand as to how many you will set. Run-Ahead is local only, so this doesn't matter if the values are different between players. Setting Input Latency Frames Start RetroArch Discuss with your opponent how many latency frames you'll be using (I recommend starting with 1 or 2, that should be enough in most cases). Once decided, go to Netplay->Network. Set Input Latency Frames to the value decided (2 as shown below). NOTE: Leave "Input Latency Frames Range" to 0. Only set the Input Latency Frames. Also, the Input Latency Frames setting is saved when exiting RA. So make sure you check it before playing, if you'd like to change it again. Enabling Run-Ahead Start RA. Go to Settings-Latency Turn "Run-Ahead to Reduce Latency" to ON. I recommend using 2 Input Latency Frames, and 1 Run-Ahead Frame as a starting point. Switch to 1 Input Latency Frame when playing someone who is closer to you. Again, confer with your opponent, as it's important that your Input Latency Frames are the same value!
  11. To those who copied over your Retroarch.cfg file from 1.8.5 to 1.8.8: There is a new setting that needs to be changed once you load RetroArch - Save State Compression. Please set this to "Off" in the Settings-Saving menu. If it is on, the save states will not upload to the site. You will have to turn this off, set the State Slot to one higher than the state number (ex: use State Slot 2 if you are going to load .state1) then load the state, and save it again. It will rewrite the save. If you are using the retroarch.cfg from RetroArch-1.8.8 package (it will have an orange border), this is already off by default. If you have a border color that is not orange (would be green, blue, or red) this will need to be checked.
  12. SUMMER CLASSIC 2020 This season, we are having 4 Genesis leagues (GENS-A, GENS-B-East, GENS-B-West, GENS-C) and 4 SNES leagues (SNES-A-East, SNES-A-West, SNES-B, SNES-C). Admins - chaos, halifax, kingraph To see your schedule, head over to the nhl94online.com site. On the front page, use the league drop down on the nav-bar and make sure "Classic '94-2020 Summer" is selected. On the left had side of the page will show the list of coaches in the selected league and league level. This section will be available on most of the pages on the site. Here, you will choose the league level (GENS-A, GENS-B-E, GENS-B-W, GENS-C, SNES-A-E, SNES-A-W, SNES-B, SNES-C) and the list of coaches and teams will change. Once you've selected your league level, click on your team's name. This will open the Coach Page. On the coach page, you will see your schedule. This schedule is just a list of all your games, and does not need to be played in any specific order. You will be able to see how many games you have Away and at Home against a specific team. Once you have played a game and made the save (more on this later), you will use this page to upload the game ("Log a Game" link). Once a game is uploaded, you can also use this page to look at the game's box score at anytime. At the top of the page, is an area that shows some basic team stats. Also, there is a link to see your Roster Stats. On the right side, there is an area that has coach information and the standings for your division (along with a link for the full standings). You can click on any team on the left side of the page and see their stats, box scores, etc. You are not limited to just your Coach Page (but you need to use your page to log games). Here are some helpful links for navigating around the site: HOW TO: Netplay over RetroArch HOW TO: Create a Save State in RetroArch RetroArch Save State Uploading HOW TO: Log a Game with a Save State on NHL94Online.com NHL94Online.com Stat Pages - how to navigate to and display the different Season stat pages. The stats are collected from the save states that are uploaded. Teams and Schedules Page - displays the coach names and Discord usernames (update yours if you have not yet) for the coaches in your division. Again, if you have not joined Discord, you need to - Discord Invite Some important links for new coaches: League Website - http://www.nhl94online.com Getting Started - Getting Started Rules - http://www.nhl94online.com/html/rules.php Registration (for coaches who missed initial registration, and wish to be replacements) - Registration Waiting List - http://www.nhl94online.com/html/waiting-list.php Edit User Profile (if you wish to change any of your information) - http://www.nhl94online.com/html/updateuser.php (Use to update your Discord Username, change your password, etc) All of the above links can be found from navigating the NHL94online.com navigation bar. For those of you who have forgotten how the site works, or for the new coaches in the league, a game is played and logged as follows: 1. Contact the coach you would like to play on Discord. You can find their Discord Username by going to the nhl94online.com site. Choose the Classic '94-Fall 2019 league from the drop-down "League Selection" menu on the navigation bar. Choose the "League Level" you were assigned in the left-hand column and click on your Team. Your "Coach Page" should come up, and you can see which teams you have games remaining against. Click on that opposing team's name in the left-hand column, which should load that team's coach page. On the right hand side of the page, there is an area which contains the coach's Discord Username. You can contact them via the specific league channels on the Discord server, or via direct message. You can also choose the "Teams & Schedules" page from the menu bar and this will list all the coaches in the league and their Discord Usernames. 2. Play the game. Play the game against the selected coach. When playing a game against a coach, the decide beforehand who will be hosting and uploading the games. In Genesis, the hosting coach is usually Player 1 (Home), and the coach connecting is Player 2 (Away). This can be switched in game by using the "i" key - (look at this post). SNES it doesn't matter, as this can be switched in game after selecting teams. Once the game is complete, and you get to the "Three Stars" screen or the Final screen, a save state must be taken and uploaded to the site (either coach can do this, please decide who will perform the upload beforehand). Please check out the threads on creating a Save State linked at the top of this thread post. Once the Save State has been made, the game can be uploaded to the site. This is done on the "Coach Page" that displays your schedule. By clicking on your team's name in the left-hand column, you access your "Coach Page". Games that need to be played will have a "Log a Game" link next to it. Choose the game that has been played, and upload the file. It is common that you can upload the games one at a time after playing your series. Type in your password (that you used when you registered for the nhl94online.com site) to log the game. Once this is done, the game is uploaded and the stats on the site will update. NOTE: If an incorrect save state was uploaded and has already been processed by the site (both coaches didn't realize the score was wrong and it was confirmed), please PM Kingraph, Halifax or me. We will need to correct it. EXTRA NOTE: Do not upload a save state that was taken during display of "Highlights from the game". It will take data from that game that is being displayed. Best place to take a save is when the Three Stars screen pops up, or wait till the highlight is done and you are back at the Final screen. Also, the schedule does not need to be played in order. It is encouraged to get all your games in with an opponent at the same time. Also, realize there is a delay when uploading the save. Wait until you see the message "Game has been uploaded" before backing out from the Log a Game screen. Checkpoints There will be WEEKLY CHECKPOINTS. 8 GP / week. 8 GP - end of Sunday, July 26th 16 GP - end of Sunday, August 2nd 24 GP - end of Sunday, August 9th 32 GP - end of Sunday, August 16th 40 GP - end of Sunday, August 23rd If you miss a checkpoint, you will risk the chance of being replaced. Coaches who are confirmed on the Waiting List will be used for replacement. If you cannot find a coach and would like to try to schedule a time to play, please use the "Schedule a Game" forum on this site, send them a message on Discord (preferred), or use the forum PM. Please make an effort to reach your checkpoints! Also, the 8 games a week is a minimum . Feel free to play more games than that. For example, if you play 16 games in the first week, then you already satisfy the first 2 checkpoints. It's easy to get to this 8 game point, since most coaches you play multiple games against, and everyone likes getting all the games against a single coach in at the same time. It normally amounts to playing 2-3 coaches a week. If there are issues making these checkpoints, please let an admin know. We are accommodating, as long as you let us know. Regular Season The regular season consists of 40 games. Playoffs Playoff series will be best-of-7. Also, NP (negative points) will be applied to missed games at the end of the season. This could hurt your chances of making the playoffs! If you weren't able to play certain games vs. your opponent you will be given NPs. You will lose two points for every unplayed game. So play early if you can and play often! NOTE: There will be no re-seeding in the playoffs. GENS-A Playoff Format: 8 teams make the playoffs. The conference winners will be the top 2 seeds. The next 6 (by pts.) will be seeded by Win %, GENS-B East and West Playoff Format: 8 teams make the playoffs. The conference winners will be the top 2 seeds. The next 6 (by pts.) will be seeded by Win %, GENS-C Playoff Format: 10 teams make the playoffs. The conference winners will be the top 2 seeds. The next 8 (by pts.) will be seeded by Win %, SNES-A East and West Playoff Format: 8 teams make the playoffs. Conference winners are top 2 seeds, next 6 best teams (by pts.) make the playoffs, seeded by Win %. SNES-B Playoff Format: 8 teams make the playoffs. Conference winners are top 2 seeds, next 6 best teams (by pts.) make the playoffs, seeded by Win %. SNES-C Playoff Format: 8 teams make the playoffs. Conference winners are top 2 seeds, next 6 best teams (by pts.) make the playoffs, seeded by Win %. That's about all. Good luck to everyone and lets hope for another successful season! If there are any website problems or questions about the site, or the league in general, please PM me (chaos), email me (chaos@nhl94.com), or Discord (chaos).
  13. bandwidth is not important. You can play this game with a 14.4k modem with AOL as your service provider. The most important thing is "jitter", or stability. Ping should be stable, not changing. As far as ping, we've had success playing across the country not using any input latency frames. Input latency frames allow for higher pings by delaying inputs, and allowing the other player's inputs time to get to your computer. Though we prob should be using 1 frame at least as a buffer, we haven't had many problems.
  14. I haven't tried the Fbneo core for genesis. In FbAlpha it was a work in progress. Not sure how good the core does with genesis. Worth a try!
  15. The final burn neo core is available on RetroArch too. Also, the Genesis Plus GX and SNES9x core supports 4 players, netplay supports spectator mode, hot swapping of player positions. If there's a problem hosting, someone else can host the game, go into spectator mode, and the 2 people can join and play each other. I'm up for trying something new, just don't like you can't do custom roms on there (I wonder why they would do that). The interface is really nice though.
  16. It does work for netplay, read the third comment in the reddit post, he explains it. it reads the netplay input frame delay setting, then the runahead setting, and subtracts the latter from the former. (Input - runhead). You can have frame delay set to 0, and runahead set to 1, and you would have a -1 frame delay (just pure runahead). I remember Fightcade not being able to run custom roms, which I thought was weird.
  17. Retroarch also has runahead you can use for input lag. I haven't messed with it though. Some communities I've seen will use 1 input delay frame for netplay, then use 1 runahead frame (so they cancel out). This helps connection wise. But it's one of those things I haven't tested
  18. I'll have this up sometime this weekend. I have to switch over to a different excel exporting module, so have to rewrite some of the code. After I'm done, you should be able to export multiple games into one spreadsheet, and hopefully I can add a totals sheet too.
  19. The FXPAK Pro used to be called SD2SNES. You can prob find them on eBay for much cheaper now.
  20. Yeah Mario Kart uses the DSP chip. The Super Everdrives had a spot on the board where you can solder one on to. Mario Andretti's racing also has the DSP chip, and goes for like $5 on eBay, so you could take the chip out of there and put it in the Everdrive and can play games like Mario Kart. I don't think theres a spot on the new versions to do that though.
  21. I love my everdrive. It’s caused me to sell most of my game collection. One thing you’d notice playing on real hardware compared to a software emulation box (rPi) is input lag. This is extremely noticeable in platformers. Real hardware just performs much better. Everdrives can add up in price. My new special toy is a MiSTer. It’s $150 for the de10 board, and all the emulators (cores) for it are open source and free. It is an FPGA based solution (like the Analogue products) and instead of emulating with software like the rPi does (or any PC emulator), the cores emulate with hardware. It uses the FPGA and programs it to act like the real hardware. The results are great. There’s a lot of different cores (the usual consoles, and even better, arcade cores!). Check it out. Playing the arcade version of games like SF2 are great. And more cores are still in development. one thing about everdrives, is they don’t have the special chips for some games (like super fx for star fox). So there are some games that are incompatible with it.
  22. Yeah I guess the hot/cold variation won't make too much of a difference. Though how is a guy like Makarov get a 97 if he's supposed to be 4? There are other examples of attributes being close to 99, I just took this one screenshot.
  • Create New...