Tonight I started my new homebrew project...

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
How do you obtain the Xevious code. Can you decompile or is that just available somewhere?
I've spent many hours reverse-engineering the code myself. It is my all-time favourite arcade game, and ever since I got into emulation in the early 90's I've wanted to RE Xevious just to see how it worked - and to reveal all its secrets. I started a few years back but stalled, only more recently making a more determined effort to finish it off. I plan on releasing the listing(s) when it's complete.

Fun fact; there's a sol tower (citadel) in the map that doesn't appear in the game due to a bug. I found it when I decoded the map data, thinking I'd found one that no-one else had documented, but alas it's not in the game. Tracked down the bug and it's essentially unfixable without changing where it appears.

I could probably at least double the detail in the Namco Wiki entry on Xevious too...

The RE is about 97% complete; I couldn't help myself and started coding before I finished it. The rest will probably be done on an as-needed basis as I do the transcode. Just yesterday I came across a few routines that I hadn't done that I needed for the Neo Geo.
 

sirlynxalot

Genjuro's Frog
Fagit of the Year
Joined
Apr 10, 2019
Posts
1,134
Cool. Someone was remaking classic xevious on the atari Jaguar a few years ago as well, I think it was new custom code and ripped graphics. It was demoed at a convention and looked pretty good but hasnt been publicly released. Just mentioning since you're a xevious fan.
 

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Cool. Someone was remaking classic xevious on the atari Jaguar a few years ago as well, I think it was new custom code and ripped graphics. It was demoed at a convention and looked pretty good but hasnt been publicly released. Just mentioning since you're a xevious fan.
Thanks, I tried to get on the pre-order list for that when I found out about it (a few years back but still late to the party). I doubt it'll ever see the light of day - I'm guessing IP issues killed it?!? I did try to contact the author a few weeks ago, but according to the forum, he hasn't read my message yet.

I'm not planning a physical release - just release the ROM/CD dumps - so hoping to stay under the radar and not run into IP issues myself...
 

sirlynxalot

Genjuro's Frog
Fagit of the Year
Joined
Apr 10, 2019
Posts
1,134
Thanks, I tried to get on the pre-order list for that when I found out about it (a few years back but still late to the party). I doubt it'll ever see the light of day - I'm guessing IP issues killed it?!? I did try to contact the author a few weeks ago, but according to the forum, he hasn't read my message yet.

I'm not planning a physical release - just release the ROM/CD dumps - so hoping to stay under the radar and not run into IP issues myself...
Ip issues might have played into it. I forget precisely who the author was, but one of the notable people over there at atari age actually died right before the pandemic and I'm wondering if he might have been the main guy working on this. That killed off a few other interesting projects that had substantive development already put into them, such as recreating the unreleased Jaguar duo console from schematics that had been found, as well as the atari 7800 expansion module, which was kind of like a sega 32x style upgrade device for your atari 7800.
 

Hattori Hanzo

AEShole
1 Year Member
Joined
Sep 14, 2018
Posts
2,814
Conventions & physical release is a problem. Those lawyers normally don't spent their time in pretty dead video game forums but social media or YouTube.
 

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
After 3 days of frustration I finally found a cut 'n' paste bug to get sprites working on Xevious! The 'sparkle' on the logo is a Xevious sprite. It's a significant milestone because it means the hardware emulation layer is all-but-complete. From here-on in, there's a lot of handle-cranking transcoding to be done. Tedious, but that's actually a good thing!
 

Attachments

  • 0021.png
    0021.png
    9.2 KB · Views: 6

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
What would you say is the meg count for xevious 😉
LOL, well currently the ROMS are sitting at 3.75MB (with C-ROMS and P-ROM padded to 1MB), and it certainly won't hit 4MB before sound is added!

As an aside, progress is going well. You can bomb things now, and a few of them actually blow up and score points.
 

sirlynxalot

Genjuro's Frog
Fagit of the Year
Joined
Apr 10, 2019
Posts
1,134
You can always pump up the meg count like ngdev team by having the music be giant pcm files 😉
 

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Good luck with the project!
FTR transcoding the main CPU code is now around 50% complete, whilst the SUB CPU (mainly responsible for rendering the map and adding objects to the game at the right place/time) is around 95% complete. I started this project about 5 weeks ago. Given the time of year, it almost certainly won't be complete until sometime in the new year. I've still got a small amount of RE to complete as well. But I'd have to say it's progressing better than I could have hoped.

It bodes well for future 68K (Neo Geo) projects I have in mind!
 

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Quick update; the path-following Domograms have been implemented! Almost finished the ground-based objects for Areas 1-2.
 

Attachments

  • 0025.png
    0025.png
    30.9 KB · Views: 4

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Since when was Xevious a bullet-hell shooter? Since the firing logic wasn't transcoded correctly... 😜
 

Attachments

  • 0032.png
    0032.png
    22.7 KB · Views: 3

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Another interesting bug; when you destroy the core of the mothership, you get the allotted 4,000 points plus the points for the last object to occupy slot #15 in the object table! For example in Area 9, you get an additional 200 points for the last Zolbak in Area 8. This is also why the Easter Egg is worth 10 points...

Ground-based objects, mothership, plus a few flying enemies complete. Next on the list are the rest of the flying enemies, which incorporate the adaptive AI that the game is famous for. Interestingly, none of the ground-based objects use adaptive AI; their potency is fixed every game.
 

Attachments

  • 0044.png
    0044.png
    80.9 KB · Views: 4

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
As the Neo Geo port nears completion, I have finished the RE portion of the exercise. All the logic associated with the enemy behaviour and game difficulty progression has been understood and annotated.

On the Neo Geo side of things, all the game objects have been implemented, though a few have some minor bugs that need sorting. I also need to implement the destruction of the flying enemies, and also that of the Solvalou, That will then leave just some housekeeping functions such as high score entry, bonus Solvalou based on points etc. The final phase (before sound) is optimising the Neo Geo portion of the transcode.

I will probably release a beta version of the core before I add sound. Would be good to get some play-testing by others.

As an aside, I had the idea to port to the Sharp X68000 as well. Seems like it could handle it!?! The Amiga is going to struggle I think...
 

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Xmas Eve update; I've finished the transcode. I do need to go back and tidy up a few things, but there's no functionality that hasn't been coded to run on the Neo Geo now. You can coin up and play a full game, add your name to the high score list, etc etc. A few minor bugs to be fixed too.

Then in the New Year I'll have to start on optimisation for the Neo Geo. It's pretty much 100% playable in MAME, but slows down (I'd guess 50%) on real hardware (AES). That's not unexpected because I have some pretty brain-dead code in the Neo Geo layer. Once it gets close to running actual speed on real hardware I'll release an alpha/beta ROM before I start to add sound. I'll likely release the Z80 RE listings at the same time.

The core is platform-agnostic and is around 7,000 lines of 68K ASM, split into 2 files; MAIN and SUB for the respective CPUs/ROMS. Currently the Neo Geo code - completely delineated by a hardware abstraction layer of sorts - is 1,000 lines. I'm working with another developer on an Amiga port, and I'm also looking at the feasibility of attempting an X68000 port and a SEGA Mega Drive port myself.
 

Attachments

  • 0055.png
    0055.png
    11.7 KB · Views: 7

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
In the optimisation phase of the project now and I'm pleased to say that it now runs at 100% on my AES. I still have a few bugs to sort, and a few more optimisations to make, but I think it's safe to say that the final result will run very well on real hardware indeed!

The Amiga port is also running the core code and showing the foreground tile layer. You can coin up and start a game.
 

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Not a lot of progress lately due to real life commitments but it is progressing. The Neo Geo component is all-but-optimised and a few transcode bugs have been identified - to be fixed after the Neo Geo portion is finalised. It's looking pretty good on the AES right now, and certainly playable! I'm hoping to knock over the Neo Geo portion in the next week or so, and then start on a full audit of the transcode, incorporating some of the bug fixes.

Likewise Amiga progress has been gradual but gains are being made. It will be a challenge for sure, but ultimately it'll be running on some variant of Amiga hardware, if not the stock A500.

Once the game is running on both platforms, I'll look at the sound. I've never done sound on the Neo Geo before, so it'll be... interesting!
 

tcdev

NEST Puppet
Joined
Aug 22, 2002
Posts
168
Popped by to see what was new so I thought I'd post a quick update while I was here.

I'm still very much actively working on Xevious, it's just that my work situation has changed and I don't get anywhere near as much time as I did last year. However I'm still managing to find a little time most days. The Neo Geo bits are implemented and optimised. I'm now going through the core code to tidy it up and complete any bits I missed and/or took shortcuts with, and fix the few gameplay bugs that persist. Currently more than 25% through the MAIN CPU ROM.

[An aside; it probably won't surprise you to learn that the 68K is spinning in an idle loop for more than half the frame, so performance on the Neo Geo is definitely not an issue].

Once that's done I can look at the sound. The guy doing the Amiga port based on my core has already started ripping sounds that I should be able to use. But I will have to come up to speed with sound on the Neo Geo as I've never done it before. IIUC it's a matter of taking a well known driver and hacking that?!? Or maybe there's a suitable driver with source in the homebrew community? Would appreciate any pointers in that regard!

As I mentioned, when it's done it'll be a freeware release for MVS/AES and (to be tested) NGCD, distributed as digital download.

FYI the next project in line is finishing off my Donkey Kong transcode from about 10 years ago. It needs to be re-architectured a little to create a platform-agnostic 68K core like I did with Xevious, but the transcode itself is currently 50% complete. All the title/attract stuff is there, levels are drawn and can be "played" through with Mario climbing to the top but no enemies/barrels/items yet.
 
Top