tag:blogger.com,1999:blog-1235714562632087542.comments2023-07-14T17:48:00.016+10:00Retro Portstcdevhttp://www.blogger.com/profile/02245101571269922064noreply@blogger.comBlogger200125tag:blogger.com,1999:blog-1235714562632087542.post-19191439644299313362023-02-28T11:19:54.216+11:002023-02-28T11:19:54.216+11:00Cool - thanks! Fun read!Cool - thanks! Fun read!tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-69735321755770452022023-02-28T05:32:11.280+11:002023-02-28T05:32:11.280+11:00You may find this 1986 interview Xevious creator M...You may find this 1986 interview Xevious creator Masanobu Endo conducted with Shigeru Miyamoto interesting.<br />https://shmuplations.com/miyamotoxendo/xothttps://www.blogger.com/profile/14880833353896145943noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-597632845211981602023-02-25T13:37:31.630+11:002023-02-25T13:37:31.630+11:00is this game funny?
OSRS Goldis this game funny?<br /><a href="https://www.buymmog.com/runescape/osrs-gold-old-school" rel="nofollow">OSRS Gold</a><br />BMGhttps://www.blogger.com/profile/07861187131410052421noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-75000725953396904052023-02-18T23:34:01.925+11:002023-02-18T23:34:01.925+11:00Turns out I was half right about when the BIOS wil...Turns out I was half right about when the BIOS will load from BRAM. It actually loads at several different points, including when a new slot is selected on a multi-slot board. On a single slot, it gets loaded when the BIOS first initialises.<br /><br />This means I can set the header info and have it load automatically for Xevious, even though it takes over demo mode and never returns. I just need to save it explicitly, whenever the high sore table is updated.tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-48021887958549669202023-02-18T08:43:17.470+11:002023-02-18T08:43:17.470+11:00Interesting; thanks for the info. Makes sense to ...Interesting; thanks for the info. Makes sense to avoid the Neo Geo system structure in a port. Just extra complication for no real benefit.gp2000https://www.blogger.com/profile/02992652811452483354noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-86912521394397987472023-02-16T15:03:25.980+11:002023-02-16T15:03:25.980+11:00The BIOS will load data from NVRAM (automatically)...The BIOS will load data from NVRAM (automatically) as per the header information you mention when the player starts a game and the system enters 'game mode', and then save back to NVRAM (automatically) when the player exits the game and the system is executing in 'system mode'.<br /><br />That works for native Neo Geo games that have been written 'properly' to integrate with the select, title, demo and game modes defined in the BIOS.<br /><br />Because Xevious is a transcoded arcade game, it grabs control of the system in demo mode, and never returns. FWIW I followed the lead of some other homebrew Neo Geo games in this regard. Otherwise I'd have to restructure the entire top level of the arcade code...<br /><br />I have identified the routines in the BIOS that do the actual read/write to NVRAM. I am yet to understand how the NVRAM block is first allocated to a game; once I look at that I'm sure it'll be trivial to add support for it.tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-77958666728306570632023-02-16T09:35:11.752+11:002023-02-16T09:35:11.752+11:00There's a pointer and length in the cart heade...There's a pointer and length in the cart header that will have the BIOS automatically load that memory with data from the battery backed RAM on startup. I don't know how it gets saved back but presumably there's some BIOS call to do so.gp2000https://www.blogger.com/profile/02992652811452483354noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-78997991930661848782022-12-07T11:44:39.447+11:002022-12-07T11:44:39.447+11:00Thanks! It's getting harder and harder to find...Thanks! It's getting harder and harder to find the time to work on it as we approach the holidays...tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-87563525786865738922022-11-22T16:58:08.326+11:002022-11-22T16:58:08.326+11:00No, not as far as I remember ... but it has been s...No, not as far as I remember ... but it has been several years since I tinkered with it, so I can't say for sure.Sokurahhttps://www.blogger.com/profile/16124321128955499859noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-36754318090444069112022-11-22T11:11:47.816+11:002022-11-22T11:11:47.816+11:00Nice! Interesting board; RAM-based tilemaps which ...Nice! Interesting board; RAM-based tilemaps which have to be fudged in MAME. Reminds me of when I was porting MSX2 Lode Runner to the TRS-80 Model 4... is the Taito L System character set large enough to cover the entire screen with unique characters for a pseudo bitmap mode like the V9938 in the MSX2?tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-59248455191327051682022-11-22T10:12:12.110+11:002022-11-22T10:12:12.110+11:00The board(s) is the Taito L System arcade hardware...The board(s) is the Taito L System arcade hardware. You can find my two arcade games under "Spectrum" here: http://tardis.dk/wordpress/<br />I'd like to do more for it, but my time is limited.Sokurahhttps://www.blogger.com/profile/16124321128955499859noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-15284687866759885772022-11-20T23:39:53.051+11:002022-11-20T23:39:53.051+11:00Thanks, appreciate the feedback!
May I ask which ...Thanks, appreciate the feedback!<br /><br />May I ask which board, and which games? I'm always interested in other projects along the same lines!tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-26183108870757958602022-11-19T22:30:56.834+11:002022-11-19T22:30:56.834+11:00Good to see you're making progress. Oh yeah, a...Good to see you're making progress. Oh yeah, and although you may not get many comments on your posts, you should know that I always enjoy reading about your "RE Adventures" 😄<br /><br />Btw, a friend of mine has RE'd an arcade board, and I have used his findings to port 2 of my ZX Spectrum games to that arcade hardware, and I totally agree that MAME definitely isn't super accurate - only enough to emulate what's needed of it. Try to write original code for arcade hardware and suddenly you'll see the "holes" in the emulation.<br /><br />Keep on coding 😎Sokurahhttps://www.blogger.com/profile/16124321128955499859noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-67464126065780002762022-09-30T00:42:47.135+10:002022-09-30T00:42:47.135+10:00Not sure why I can't see gp2000's comment ...Not sure why I can't see gp2000's comment here (notified by email) but here's part of what he had to say...<br /><br />"I find I can only take static analysis so far and I'm much better off getting in there and tracing data and looking at what data is consumed to produce a certain result. There's also something to be said for altering the data and seeing what happens."<br /><br />Definitely an approach I commonly use in RE'ing. In fact just last night I was using it on another part of the program - the object table that defines all the air and ground-based objects in the game.<br /><br />And as I alluded to in my response to Sokurah, I'll extract the map by feeding coordinates into the emulated latches and ROMs, even without a full understanding of how the map is stored.tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-31297605123862191732022-09-30T00:30:17.780+10:002022-09-30T00:30:17.780+10:00I originally did want to understand how it's s...I originally did want to understand how it's stored, but in retrospect it will be enough to extract the map via the same mechanism the game uses; I'll port the relevant extracts from MAME driver and simply feed in coordinates in the correct order.<br /><br />The game builds the map one row (32 tiles) at a time in the background video ram block(s). That logic I've already RE'd and can use to drive the map generation.<br /><br />If you do ever come across your code though, I can read Pascal! ;)tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-77763833316646890352022-09-29T17:47:05.113+10:002022-09-29T17:47:05.113+10:00A loooong time ago I wanted to remake Xevious and ...A loooong time ago I wanted to remake Xevious and I extracted the map from the ROMs and made it scroll. I remember data being stored sideways, or at least horizontally instead of vertically, so I also had to turn it all on the side before showing it. I did all this in Pascal 7.0, which is not exactly suited for that 😆 I don't believe I would've deleted my code, but I couldn't find it last night either. The curse of having too much storage, lol. I have no plans to pick that project up again, but I'm looking forward to following your experiences with it.Sokurahhttps://www.blogger.com/profile/16124321128955499859noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-67182369270955325862022-09-28T23:49:24.419+10:002022-09-28T23:49:24.419+10:00I got an email from Ville (thanks!) suggesting the...I got an email from Ville (thanks!) suggesting there could be some form of meta/macro tile mechanism in place. That is certainly a possibility and something I had considered as well.<br /><br />However, if there is such a mechanism, I can't see it atm. Perhaps that logic is implemented in the two devices that munge the address latches to generate the address in the 3rd device... it's possible. I'll continue on with this in mind. Thanks again Ville!tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-54569946162140643552022-03-12T22:14:50.875+11:002022-03-12T22:14:50.875+11:00I have started! Only to be temporarily halted by a...I have started! Only to be temporarily halted by a dead hard disk.tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-4207006353005487402022-03-12T16:07:48.756+11:002022-03-12T16:07:48.756+11:00do itdo itebadgerhttps://www.blogger.com/profile/09832894411309540643noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-25247097160635970132021-05-08T17:18:19.511+10:002021-05-08T17:18:19.511+10:00Congratulations. First milestone reached. Keep up ...Congratulations. First milestone reached. Keep up the good work. I'm looking forward to seeing what you do with it from here.Sokurahhttps://www.blogger.com/profile/16124321128955499859noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-54551954950878488032021-05-08T09:15:26.055+10:002021-05-08T09:15:26.055+10:00Great work!Great work!xothttps://www.blogger.com/profile/14880833353896145943noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-11583579400816022032021-05-07T13:45:06.153+10:002021-05-07T13:45:06.153+10:00Congrats on hitting this milestone!Congrats on hitting this milestone!xothttps://www.blogger.com/profile/14880833353896145943noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-48163004643395235352021-04-29T09:54:33.066+10:002021-04-29T09:54:33.066+10:00Good idea George! I'll breakpoint it and patch...Good idea George! I'll breakpoint it and patch my score - easy as!tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-4560872135734724352021-04-29T09:52:49.407+10:002021-04-29T09:52:49.407+10:00Pretty easy to test the code in MAME using the deb...Pretty easy to test the code in MAME using the debugger. Once you hit game over just stop and change your score. Or even just breakpoint the high score insert routine and change it then. Which can be easier if it ends up in a registers.<br /><br />Or just jump to the high score routine and test it directly. That's a bit more of a pain. If you use the natural flow of the game then it'll "print" the high scores for you rather than digging through the data yourself.gp2000https://www.blogger.com/profile/02992652811452483354noreply@blogger.comtag:blogger.com,1999:blog-1235714562632087542.post-13603412397679859362021-04-25T13:37:17.232+10:002021-04-25T13:37:17.232+10:00Wow, that's awesome! I'm definitely intere...Wow, that's awesome! I'm definitely interested in your progress on the Apple II port. I'm yet to tackle anything to the Apple, other than Asteroids which was alrady 6502, but my first major transcode was Lode Runner to 6809.<br /><br />I agree it's a significant challenge to get the Apple scrolling and running at full speed.<br /><br />I've been thinking of how to port this to horizontal displays and your layout on your website interests me. Sockmaster did a trasncode of Donkey Kong arcade to the CoCo3 using 7x8 blocks and it turned out amazing; you wouldn't know the difference unless you knew to look for it.<br /><br />Will you be faithfully translating the Z80 code to 6502 or simply using it as a guide?<br /><br />Good luck and feel free to ask questions etc if I may be able to help. I'm going to release the C code for this one fairly early on in the process, but TBH Scott's disassembly is so good the C code probably won't offer any more insight.<br /><br />Once you get a 6502 core a C64 port would be nice! If possible try to keep a generic 'core' that can be ported to other platforms... that's what I'm doing with the C code.tcdevhttps://www.blogger.com/profile/17906878237742487968noreply@blogger.com