Danno Posted January 17, 2007 Share Posted January 17, 2007 Which is strange, considering Greg's original Windows version runs them just fine. I wonder it the bugs were sorted out with the windows display code vs. the emulator core...? Quote Link to comment Share on other sites More sharing options...
Hackmann Posted January 17, 2007 Share Posted January 17, 2007 Those games only seem to work correctly if the emulator can read the data from the ProSystem.dat database. There's a (very stupid) bug in my SDL port that keeps the database from working properly. I suspect that the PSP port either doesn't use the database, or has a similar bug. Quote Link to comment Share on other sites More sharing options...
Danno Posted January 18, 2007 Share Posted January 18, 2007 So, after poking around in the source code, I can't really find where it's supposed to call out the Prosystem.dat file to get the proper rom info. Where is this done, so I can try to apply it to the PSP port? You're right though. in the Windows port, if the Prosystem.dat file isn't in the same directory as the prosystem.exe, I get the exact same compatibility errors. This SHOULD be an easy fix. Quote Link to comment Share on other sites More sharing options...
Hackmann Posted January 18, 2007 Share Posted January 18, 2007 In the Windows version, the console_Open(std::string) function in Win/Console.cpp does the following: if(cartridge_Load(filename)) { sound_Stop( ); display_Clear( ); database_Load(cartridge_digest); ... } That database_Load() call is the important one. Since that code is part of the OS-dependent layer, you'll have to look for the equivalent block in the PSP-specific code. (In the SDL port, it's in the Console::open(const std::string &) method in sdl/Console.cpp.) My code had a bug where it didn't actually initialize the database until after the cartridge was loaded, so the database_Load() call always failed. It's possible (but unlikely) that the PSP port has a similar problem. Quote Link to comment Share on other sites More sharing options...
Danno Posted January 18, 2007 Share Posted January 18, 2007 That was it. He's got it working properly in the PSP port. compatibility is now the exact same as the Windows version. I'll make a new topic when it available for public release. Quote Link to comment Share on other sites More sharing options...
Ze_ro Posted January 19, 2007 Share Posted January 19, 2007 My code had a bug where it didn't actually initialize the database until after the cartridge was loaded, so the database_Load() call always failed. It's possible (but unlikely) that the PSP port has a similar problem. The fact that you keep using past tense here leads me to believe that you've already solved the bug? If so, can you please post a diff or something? I'd like to try porting your code to the GP2X, seeing as my attempt to port Abuse to the system has somewhat stalled --Zero Quote Link to comment Share on other sites More sharing options...
Hackmann Posted January 19, 2007 Share Posted January 19, 2007 My code had a bug where it didn't actually initialize the database until after the cartridge was loaded, so the database_Load() call always failed. It's possible (but unlikely) that the PSP port has a similar problem. The fact that you keep using past tense here leads me to believe that you've already solved the bug? If so, can you please post a diff or something? I'd like to try porting your code to the GP2X, seeing as my attempt to port Abuse to the system has somewhat stalled --Zero I was planning on releasing another snapshot this weekend, which would include the database bug fix among other fixes and enhancements. If you want to hack on the code as-is, you can replicate the database bug fix by finding the configuration->load(...); statement in Console::open(), and moving it so that it's right after the configuration = new Configuration(...); statement in Console's constructor. (Like I said: very stupid bug.) Quote Link to comment Share on other sites More sharing options...
Danno Posted January 19, 2007 Share Posted January 19, 2007 Here is the final version: PSP7800 v. 1.0.4: http://forums.qj.net/f-zx-81s-homebrew-rel...lity-91052.html This is now fully compatible with all roms. In fact, it's the ONLY 7800 emulator that allows you to play One on One correctly, since you can set the FPS limit to 30 fps, which brings the shot clock down to the normal speed. Quote Link to comment Share on other sites More sharing options...
Urchlay Posted January 19, 2007 Share Posted January 19, 2007 (edited) Here is the final version: PSP7800 v. 1.0.4: http://forums.qj.net/f-zx-81s-homebrew-rel...lity-91052.html Silly forum software ate your URL... the path got turned into "f-zx-81s-homebrew-rel...lity-91052.html". which can't be right (404 not found). Correct URL seems to be http://forums.qj.net/f-zx-81s-homebrew-rel...lity-91052.html ...but it requires you to register at the site. Could you possibly just post the archive here in this thread? Edited January 19, 2007 by Urchlay Quote Link to comment Share on other sites More sharing options...
Danno Posted January 19, 2007 Share Posted January 19, 2007 (edited) Sorry 'bout that. Here's Zx-81's website: http://zx81.zx81.free.fr/serendipity/ You'll notice, this release is on the first page. Edited January 20, 2007 by Danno Quote Link to comment Share on other sites More sharing options...
kenfused Posted January 24, 2007 Share Posted January 24, 2007 If some one were to update the code in RIOT.CPP to set INTFLG ($285) (high bit I think) in the code when the RIOT timer expires, Beef Drop might work. Not sure if it gets cleared after read or when a new timer is set. --Ken Quote Link to comment Share on other sites More sharing options...
kenfused Posted January 27, 2007 Share Posted January 27, 2007 If some one were to update the code in RIOT.CPP to set INTFLG ($285) (high bit I think) in the code when the RIOT timer expires, Beef Drop might work. Not sure if it gets cleared after read or when a new timer is set. --Ken Ok, I finally looked it up in the datasheet. After the timer reaches 0, on the next count, it should wrap around and at the point the high bit of INTFLG should get set. The timer countdown interval then changes (not relevant to make Beef Drop work). When the INTFLG is read, it should be set to 0. Beef Drop does a LDA INTFLG BMI TimerExpired If the flag never gets set, the game play will essentially be frozen. --Ken Quote Link to comment Share on other sites More sharing options...
gambler172 Posted January 28, 2007 Share Posted January 28, 2007 Hi i have problems to use joysticks.I can choose them,but the do not work. greetings Walter Quote Link to comment Share on other sites More sharing options...
eegt97 Posted January 29, 2007 Share Posted January 29, 2007 Hi i have problems to use joysticks.I can choose them,but the do not work. greetings Walter If you updated from a previous version, you might want to try deleting "Prosystem.ini" and then start the program and set up the controllers again. Also, make sure you are setting the "Part / Key" for all. -Brian Quote Link to comment Share on other sites More sharing options...
PacManPlus Posted March 22, 2007 Share Posted March 22, 2007 I have a request (actually 2): In order to use this with a frontend, is there any way: 1) To have the status of the Menu Bar (on / off) stored each time the emulator is run? This way when it is run in full screen mode and you hide the menu bar by hitting 'ESC', it is stored that way so it doesn't come up each time the emulator is run? 2) To be able to configure a different keypress for the Menu Bar on or off so that we can configure the 'ESC' key to exit out of the emulator (again for frontends)? Thanks for your time... Bob Quote Link to comment Share on other sites More sharing options...
eegt97 Posted March 23, 2007 Share Posted March 23, 2007 I have a request (actually 2): In order to use this with a frontend, is there any way: 1) To have the status of the Menu Bar (on / off) stored each time the emulator is run? This way when it is run in full screen mode and you hide the menu bar by hitting 'ESC', it is stored that way so it doesn't come up each time the emulator is run? 2) To be able to configure a different keypress for the Menu Bar on or off so that we can configure the 'ESC' key to exit out of the emulator (again for frontends)? Thanks for your time... Bob I'll try to take a look at those soon... -Brian Quote Link to comment Share on other sites More sharing options...
jcrouse Posted March 27, 2007 Share Posted March 27, 2007 I have a request (actually 2): In order to use this with a frontend, is there any way: 1) To have the status of the Menu Bar (on / off) stored each time the emulator is run? This way when it is run in full screen mode and you hide the menu bar by hitting 'ESC', it is stored that way so it doesn't come up each time the emulator is run? 2) To be able to configure a different keypress for the Menu Bar on or off so that we can configure the 'ESC' key to exit out of the emulator (again for frontends)? Thanks for your time... Bob I'll try to take a look at those soon... -Brian I also agree these would be great additions for us cabinet users. Also, maybe a commandline switch for fullscreen mode, such as -fs. Thanks for the efforts, John Quote Link to comment Share on other sites More sharing options...
eegt97 Posted April 4, 2007 Share Posted April 4, 2007 If some one were to update the code in RIOT.CPP to set INTFLG ($285) (high bit I think) in the code when the RIOT timer expires, Beef Drop might work. Not sure if it gets cleared after read or when a new timer is set. --Ken I've implemented the INTFLG, but I've run into a problem. It appears the timer is never getting set. What does Beef Drop do (if anything) to setup the timer? I'm wondering if Prosystem doesn't initialize something or if the timer is just not implemented correctly. I'm sure I'll figure it out eventually, but any ideas to help would be appreciated. Thanks, Brian Quote Link to comment Share on other sites More sharing options...
eegt97 Posted April 14, 2007 Share Posted April 14, 2007 (edited) Try this executable out. It attempts the following: * Command Line switches * Implement INTFLG (Beef Drop) * Allow changing menu and exit keys Let me know how it works and if it breaks anything. I'm not sure if I implemented the timer correctly to make Beef Drop work, so I'll continue to look at it. If everything works right I'll send to Greg for posting on his site. Thanks! -Brian EDIT: I also meant to add that it should save the state of the menu bar as well... Prosystem12.zip Edited April 15, 2007 by eegt97 Quote Link to comment Share on other sites More sharing options...
PacManPlus Posted April 15, 2007 Share Posted April 15, 2007 EXCELLENT!!!! Great Job - I thank you, and my Arcade Cabinet thanks you Quote Link to comment Share on other sites More sharing options...
Danno Posted April 16, 2007 Share Posted April 16, 2007 Try this executable out. It attempts the following: * Command Line switches * Implement INTFLG (Beef Drop) * Allow changing menu and exit keys Let me know how it works and if it breaks anything. I'm not sure if I implemented the timer correctly to make Beef Drop work, so I'll continue to look at it. If everything works right I'll send to Greg for posting on his site. Thanks! -Brian EDIT: I also meant to add that it should save the state of the menu bar as well... Prosystem12.zip beef drop now runs, but runs too fast. Quote Link to comment Share on other sites More sharing options...
eegt97 Posted April 16, 2007 Share Posted April 16, 2007 EXCELLENT!!!! Great Job - I thank you, and my Arcade Cabinet thanks you Cool, good to here those additions worked for you. I'll be sending out for release once I decide what to do about... beef drop now runs, but runs too fast. I'm not suprised. I'll study a little more. Thanks, Brian Quote Link to comment Share on other sites More sharing options...
supercat Posted April 17, 2007 Share Posted April 17, 2007 I just started playing around with 7800 development and it seems the emulator does something nicely which unfortunately the real hardware does not. In the emulator, when using write mode 2, pixel colors of xyy00, where yy<>00, are not transparent, even when Kangaroo mode is off. That's how the hardware logically SHOULD behave, but it's not how it actually DOES behave. Quote Link to comment Share on other sites More sharing options...
+Mitch Posted April 17, 2007 Share Posted April 17, 2007 I just started playing around with 7800 development and it seems the emulator does something nicely which unfortunately the real hardware does not. In the emulator, when using write mode 2, pixel colors of xyy00, where yy00, are not transparent, even when Kangaroo mode is off. That's how the hardware logically SHOULD behave, but it's not how it actually DOES behave. The real hardware also does some things that the emus do not. Figuring out what they are is the hard part. Mitch Quote Link to comment Share on other sites More sharing options...
eegt97 Posted April 17, 2007 Share Posted April 17, 2007 I think I know what the problem was. Try this for Beef Drop... -Brian Prosystem_1.2.zip 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.