Jump to content

raz0red

Members
  • Content Count

    85
  • Joined

  • Last visited

Everything posted by raz0red

  1. I think most of that is correct with the exception of WSYNC. A WSYNC operational will halt the processor until the horizontal blank, so the CPU wouldn't get any cycles after the WSYNC on that scanline. However, I am by no means an expert on the 7800 hardware. I would definitely look to GroovyBee or Greg Stanton for specific hardware details. --Raz.
  2. Well, it would probably be possible to get One on One to run a reasonable speed. The issue is that it is consuming too many CPU cycles per frame by not taking into consideration the count of cycles consumed by Maria. So, if you reduce the number of CPU cycles it should run at a decent speed. However, not taking into consideration the amount of Maria versus CPU cycles per scanline will lead to various other issues (graphical glitches and probably worse). Also, what happens when a WSYNC is performed? Seems that will be an issue as well. Also, unless you are able to control what is occurring per scanline, I don't think it will be possible to implement the lightgun support as the timing of the lightgun detecting the beam is critical. --Raz.
  3. The current version of ProSystem does not save RIOT state information w/ the save game. Thus, when you attempt to restore a save game it will act odd or completely lock up since the timer won't be operating as it should. Games that I noticed this behavior included Commando (PAL), Xevious (PAL), and Beef Drop. --Raz.
  4. Just released 0.2. http://www.wiibrew.org/wiki/Wii7800 Thanks to all those who provided great information, help, and testing: gdement, GroovyBee, mimo, PacManPlus, and Curt Vendel. It should also be noted that while I believe I improved the accuracy of Maria cycle counting, it is still not hardware accurate. Recently Greg Stanton posted that he was working on a new version of the ProSystem emulator that would have accurate cycles (including slowdown for TIA/RIOT memory accesses). As soon as that awesome update is released, the Wii version will be updated to incorporate those changes. With that said, all of the games that I have tested (with the exception of MIA) do work with the 0.2 version of Wii7800 (with Maria cycle counting and VSYNC enabled). Here is the list of changes for Wii7800 0.2: - Lightgun support - High score cartridge support - Increased accuracy of Maria cycle timing, games now run at close to their intended speed (One on One, Tower Toppler, Summer Games, KLAX, Karateka, etc.) - Increased compatibility for PAL games (Ballblazer, Commando, and Food Fight now work) - Audio now sounds as it should regardless of frequency (PAL games and custom frame rates) - Timers now properly take into consideration cycles generated via Maria and during WSYNC - Changes to ProSystem database format - Maria cycles are now enabled by default (option 0x1 now disables Maria, the opposite of before) - Ability to adjust the lightgun crosshair offset per game - All games now have Maria cycles and WSYNC enabled in the ProSystem database (with the exception of MIA) - Console switch defaults updated to work with the majority of games - Additions to debug output (Maria vs. CPU cycles, timer info, etc.) - Other games improved by various changes - Kung Fu Master no longer has the lines in the upper left corner of display and the Fuji logo appears as it should (if using BIOS) - Midnight Mutants has less graphical glitches - Summer Games has less graphical glitches - Plutos has slightly less graphical glitches - Fixed save/restore state issue for games that use RIOT timers. --Raz.
  5. Use the one found in this thread (use the NTSC version): http://www.atariage.com/forums/index.php?s...0466&st=100 As an aside, what is the process to update the software list with working carts? --Raz.
  6. Any PAL versions are way off in the current release (0.1). I have that fixed for 0.2. It is actually a bug in the Windows version as well. It doesn't adjust the sample rate when the system frequency changes. Most NTSC games should sound decent. Although, I think it is still a little bit off, but it shouldn't be distorted. --Raz.
  7. Unfortunately, it doesn't at this time. I am able to play all the levels by using the difficulty switch to select the level, and with "god" mode I can clear them. However, when you die or clear a level, the game goes wacky and you need to select the level again. --Raz.
  8. Yeah, I have the same problem. If you initialize the Cart with another game (Asteroids, etc.) then the high score entry screen in Centipede works fine. The "initialize" screen in Centipede doesn't appear to pick up button presses to advance the cursor. Possibly a one/two button issue or just something wrong with the way it initializes the joysticks for that particular screen. Yeah, once I get this release ready for testing I will take a look at it. --Raz.
  9. I did some experimenting w/ both Asteroids and Xenophobe. Here is what I came up with: Asteroids: 0x3FEE ~ Never executed 0x3FF1 ~ Never executed 0x3FF4 ~ Never executed 0x3FF7 ~ HSCSTAT, executed a few times, during game, also at high score screen, etc. I am guessing it is grabbing the score for display. 0x3FFD ~ HSCENTER, executed 0x3FEB ~ HSCSETRS, executed 0x3FFA ~ HSCATRCT, executed SRAM (0x1000 - 0x177F): Small number of writes as you would expect. Xenophobe: 0x3FEE, etc. ~ None of these were executed SRAM (0x1000 - 0x177F): Writes continuously during gameplay, 50k writes during a single game. It seems I could use the execution of those entry points to determine whether or not to store the cart state on exit. --Raz.
  10. Not really sure, I haven't looked into MESS or EMU7800 too much. If you download the latest ProSystem (1.3), "Kung Fu Master" is 0x2 by default. [f57d0af323d4e173fb49ed447f0563d7] title=Kung Fu Master type=0 pokey=false controller1=1 controller2=1 region=0 flags=2; Flag 0x2 tells the emulator to ignore WSYNCs. That is why when you load Kung Fu Master the Atari Logo does not scroll the colors through it (as the bios code uses WSYNC to change the color for each scan line), and why there are some lines in the upper left corner of the game screen. If you set the flags to 0, the Atari Logo will look fine, but the colors in the game screen will be messed up. That is one of the things I fixed. The other fixes relate to the changes I made to Maria cycle timing. Just to be clear on what the flags mean in the current version of ProSystem and what my changes do: 0x1 ~ Include Maria Cycle count times. As you can see by looking in the ProSystem.dat file, very few games use this setting. The reason is that the count is so high that it causes compatibility issues. For example, enable it for Ms. Pac-Man and the game won't be playable. My adjustments to the Maria Cycle count code make it compatible with all the games I have tested with some of the improvements I listed previously. 0x2 ~ Ignore WSYNCs. When the game requests WSYNC, completely ignore it and pretend it didn't happen (continue execution on the same scan line). I actually fixed two different bugs related to this so that it should never be necessary to use it. Also, just to be clear, these are changes that are being made to the upcoming 0.2 release of Wii7800, not in the current 0.1 version. --Raz.
  11. Yes, those are issues with the current Windows version of ProSystem. The reason Kung Fu Master works now is that it ignores WSYNCs (via the ProSystem.dat file). If you use the bios you will note the fuji logo doesn't have any colors, also during gameplay there are some horizontal stripes at the top of the game display. These are the result of ignoring WSYNC. Yeah, I had the same issue w/ EMU7800. However, I found that if I kept hammering on the fire button it would start once the intro sequence began... Yeah, the frontend (actually, for all my emulator ports) is just temporary. I already have the start on a Wii-based GUI w/ Wiimote IR support, etc. I probably won't get back to it until I am happy with the state of the emulators. Once I do resume work on it I will definitely add both of those features. --Raz.
  12. Very cool, thanks for the great info. I will add those locations to my standard debug output and report back later tonight. I hadn't seen that thread yet, I will take a look and check out your disassembly. Thanks for all the help. --Raz.
  13. Yeah, that is the way it is working now. I agree the HSC ROM image should be updated to support both. Not sure what to say about Xenophobe though. It might be a bug in the emulator implementations (my changes to ProSystem and EMU7800), I will try to figure out what is going on later tonight. I will just say it is annoying to play a different game and have your previous high scores wiped... --Raz.
  14. That is the odd part about the current state of the ProSystem emulator, it ignores cycles that would be consumed by Maria giving all possible cycles to the 6502. This appears to work most of the time due to the fact that games rely on VSYNC and Display List interrupts. However, after I reworked the cycle code and forced Maria to always be on I noticed a lot of games seem to be running at more normal speed and a lot of the graphical glitches have cleared up. Some examples that I have noted include: Commando - The graphical glitches at the title screen don't appear anymore Klax - Now runs at a more suitable speed (too fast before) Midnight Mutants - Less graphical glitches Ms. Pac-Man (and variants) - When the playfield is initially drawn it renders from the outside in (a subtle display effect) One on One - Now runs at a more normal speed (too fast before) Plutos - Less graphical glitches (some still appear though) Summer Games - You can control the diver now (too fast before), no longer has minor graphical glitches Tower Toppler - Now runs at a more normal speed (too fast before) I am sure there are more examples, but these were fairly pronounced. To me, the default should be to always have Maria Cycles and WSYNC enabled (as it is in the actual hardware). As I mentioned in a previous post, in the current code of ProSystem, the number of cycles being consumed was so great that it made a lot of games unplayable. Anyway, so I am thinking about swapping the meaning of the 0x1 flag for my Wii release. Meaning, Maria cycles are on by default and it can be disabled on a per cart basis. I also added the ability to override the Cart settings in the GUI so that you can quickly see the effect of switching the flags on/off. Also, after my fixes for WSYNC, "Kung Fu Master" now works as it should (Atari Fuji Logo displays as it should at startup, and the game looks correct). So, I don't think any carts will ever use that flag (it seems very bad to ignore a WSYNC). --Raz.
  15. Definitely. I was going to get the Wii version tested and released, and then add those changes to the PC version. I have quite a number of other changes in addition to High Score Cart support. It will probably be a week before the Wii version is released, and then at least a couple of days before I get the PC version updated and out. Curiously, I think I may have found a bug with High Score Cart support. I found that if I register a high score, then go play Xenophobe (you have to actually start a game) it wipes the high score data. I confirmed this with my implementation as well as EMU7800 (haven't tested MESS). Also, PAL versions of cartridges that support the HSC can cause some odd behavior in the high score screen (Dig Dug). So, I was thinking of adding an additional flag to the ProSystem.dat file to indicate which games to enable the cart for. --Raz.
  16. With Maria cycle stealing it slows it down to a much more reasonable speed. That is actually in the current build of ProSystem, you have to turn on "cycle stealing" in the .dat file. However, as I mentioned in the previous post, there is a bug that occurs when a WSYNC occurs prior to DMA occurring (it incorrectly adds the Maria time after the WSYNC) which is causing some graphical corruption. Also, the amount of cycles being calculated for Maria for the current version of ProSystem seems inaccurate (seemingly too high). For example, if you try to run Ms. Pac-Man it won't run due to the fact that too many cycles are being consumed by Maria. There are a couple of documents describing cycle count for Maria, unfortunately they are inconsistent. http://www.atarimuseum.com/ahs_archives/ar...maria_specs.pdf http://www.atarimuseum.com/ahs_archives/ar...tware_guide.pdf The current ProSystem's numbers are quite different from those described in the documents above. It adds 31 cycles per scan line and doesn't account for zone shutdown times or NMIs. --Raz.
  17. One on one is running fine with my current tweaks. I did find a pretty major bug in ProSystem that was causing the graphical glitch when maria cycle stealing was enabled (for One on One, etc.). It occurs when a WSYNC occurs within the first 28 cycles. It was incorrectly adding the maria cycles to the 456 value (based on a WSYNC) which was causing a large number of lost cycles on the following scanline resulting in the graphical glitch. I haven't looked at the MESS code, does it correctly account for the 28 cycles (which should possibly be 34) prior to Maria startup? --Raz.
  18. Yeah, that is actually the core emulator. Unfortunately, the way the emulator currently processes frames is quite inaccurate. It relies heavily on the ROM utilizing VSYNC and WSYNC versus the actual cycle counts unless you have Maria cycle stealing enabled (which is also somewhat inaccurate). I have been messing with these issues recently and my current changes seem to improve Midnight Mutants quite a bit (very few graphical glitches). Hopefully will have an updated release in a week or so. --Raz.
  19. Yeah, some of the ROMs on that page do not work (at least w/ the ProSystem emulator), but there are working versions available. I am guessing they don't work on the Windows version either. I created a page to show the hashes of valid ROMs. So, Turn on debug info (in advanced) and ensure your cartridge hash matches the listed working hash on this page. http://www.wiibrew.org/wiki/Wii7800/Cartridge_Compatbility As far as Ballblazer goes, did you change the ProSystem.dat file? You may have replaced the installed one with one that turns off pokey sound for that cartridge. Or, you may have a version that isn't in the database and has Pokey disabled in the header (or no values in the header at all). In any case, turn on debug (in advanced) and check out what it says when the cartridge is loaded. It will report on whether Pokey is enabled in the header and/or the database (the database value will always override). It also sounds like the ProSystem.dat file might be missing altogether or corrupt. So, I would try copying it back out to the /wii7800 directory. --Raz.
  20. Heh. I just added High Score Cart support (for 0.2). Light gun support will be a challenge, but I will definitely look into it. --Raz.
  21. Version 0.1 of Wii7800 (Wii ProSystem emulator) is released, you can get it here: http://www.wiibrew.org/wiki/Wii7800 Thanks to all of those you took the time to test the pre-release versions. A special thanks to mimo who suggested adding dual-analog support for Robotron (I didn't even know it supported that option). I am truly addicted... --Raz.
  22. Heh, it will be out very soon. I am just making a pass through all of the ROMs, doing some final testing and tweaking. I will have something posted by the end of the week. If anyone wants an early build just PM me. Thanks. --Raz.
  23. I tried to reproduce this, but was unable to (played for 10 minutes). Please let me know if you are still having the issue. Thanks. --Raz.
  24. Yeah, it is sort of hard to explain textually how the roll mode works. It is based on Bit Trip Beat, but not sure how many people have played that (although it is an excellent game). There are also settings to adjust its sensitivity. I actually like it quite a bit more sensitive than the default. People at my work preferred it quite a bit over the analog-joystick paddle mode. Totally agree, that is definitely something I want to add in the next release. --Raz.
  25. Absolutely, I have quite a number of changes to the WiiXL emulator including incorporating the code you sent (thanks again!). I will be posting it shortly after I release the initial version of Wii7800. Ah yes, that will be a blast. --Raz.
×
×
  • Create New...