New version of New Rally-X for the BBC Micro

developing/porting a new game or gaming framework? post in here!
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

New version of New Rally-X for the BBC Micro

Post by tricky »

Latest version in https://www.stardot.org.uk/forums/viewt ... 72#p410372.

Since there weren't too many issues with the Pac Man testing, I have started on a prototype of a different way of doing New Rally-X.
The previous one, although much closer to the look of the arcade would not work on an LCD without a Pi2HDMI converter. This doesn't mean that I won't revisit it, but has lead me to an alternative that was inspired by Pac Man. I guess the original was too!

I am a little worried that the choice of palette may mean that the game might be hard for some to play.
These are my first pass at possible palettes and the idea is for the game to cycle through them each level.
palette_options.png
The palette codes in each option are: BLAC(K), (R)ED, (G)REEN, (Y)ELLOW, (B)LUE, (M)AGENTA, (C)YAN and (W)HITE.
I might swap the colour of the walls for black and see how it looks and may allow the user to set a fixed palette for the game.

Keys as usual: Z,X,/ and : or whatever your emulator maps them to.
Rally-X.ssd
(10.75 KiB) Downloaded 116 times
You can only drive around the first level for now and hopefully there are no bugs!
screenshot.png
screenshot.png (4.97 KiB) Viewed 9319 times
As the map is zoomed out, I have sped the movement up to try to compensate.
I'm also planning on better AI for the enemy as it should be much easier to avoid them.

PS I'm also happy to take suggestions for the name of the game, although I would like it to include "New Rally-X" or at least "Rally-X".
Last edited by tricky on Thu Dec 07, 2023 9:17 pm, edited 2 times in total.
User avatar
jms2
Posts: 3765
Joined: Mon Jan 08, 2007 6:38 am
Location: Derby, UK
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by jms2 »

Looks very good, and super smooth as always! =D>

I must admit I know nothing about New Rally-X (or the original version for that matter), so having downloaded this out of curiosity I had to do some research to see how this differs from the arcade version. The zoomed-out version seems fine to me, I guess it will make gameplay a bit easier because you can see further.
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

The demo .SSD for my previous demo is in this thread.
This is a dodgy video of that previous demo.
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Added movement to enemy cars, although, they only head straight for you and so will end up on top of each other quite quicky.
Use your superior cornering ability to get away from the chasing pack.
Lots more "AI" work to do.
Attachments
Rally-X.ssd
(11.25 KiB) Downloaded 117 times
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by Arcadian »

Can't believe how quickly you've got the enemy cars in. Play car seems to fit snuggly into the lanes now.

Playing nicely on the b2 emulator, scrolling on BeebEm 4.15 is rather broken though, and I can't get B-Em to play ball at all! :lol:
Please subscribe to the ABug YouTube channel!
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

beebem 403 and 414 are fine, so is b-em 22, beebjit 6.1.7601 and jsbeeb, although I only had a quick look.
I don't think I have hacked most of those emulators and it is fine on my Model B.
I haven't tested it much, so there may be some timing issues maybe!

PS Sorry, I misread your post. I expected b2 to be very good.
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

OK, wasted the morning trying to get info and VGM files for Rally-X.
The only port is to the MSX and that does have music, but it isn't great.
I have some midi files, so I'll give them a try but they aren't great.
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by Arcadian »

Ah, I just had a listen and didn't think it [the MSX theme] was too bad. Anyway, as it's a variant of 'New' Rally X you're going for now, did you know you already have the tune on the Beeb (in Caveman Capers?), though Capers only plays the first part of it sadly ...
Please subscribe to the ABug YouTube channel!
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

My musical appreciation is 0, but I thought that it sounded like a single channel, where it could be two or even three where ones drops out for some effects.
RobC
Posts: 3816
Joined: Sat Sep 01, 2007 10:41 pm
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by RobC »

Here's what Midi Beeper makes of it if it's any use!
rallyx-tune.ssd
(7.5 KiB) Downloaded 105 times
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Nearly whole day wasted down dead-ended rabbit holes :( so I have added a bit of polish that you need to record a video to see!
Enemy carns now skid into corners, which is my rationalisation as to why they trace right angle paths.
I have also added code to allow the enemy to spin around to get out of dead ends, something that I should be able to re-use for when they run into smoke.
I also noticed that in the arcade game, the smoke lasts until it goes off screen and can even loose part of a cloud (may be a mame bug).

Thanks RobC, that does sound quite close to the midi, but do you like it?
Attachments
Rally-X.ssd
(11.25 KiB) Downloaded 96 times
RobC
Posts: 3816
Joined: Sat Sep 01, 2007 10:41 pm
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by RobC »

tricky wrote: Wed Dec 30, 2020 5:06 pm Thanks RobC, that does sound quite close to the midi, but do you like it?
I only really did it to see what Midi Beeper would make of it but it's okay I guess. However, I have very little musical talent (apart from being able to sing) so I'm not a good judge! I think it might sound a bit better if the envelopes could be adjusted to sound like the correct instruments but my Python isn't strong enough to unpick what it's doing :(
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Sorry, I meant that the midi didn't sound right to my even less capable ears. The conversion sounds close, but maybe a better envelope would help.

I've never written a line of python!
I've never had a need, after 35 years of C, it's always easier to use c/c++ than install python!
RobC
Posts: 3816
Joined: Sat Sep 01, 2007 10:41 pm
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by RobC »

tricky wrote: Wed Dec 30, 2020 11:05 pm Sorry, I meant that the midi didn't sound right to my even less capable ears. The conversion sounds close, but maybe a better envelope would help.
Ah sorry - I'd only listened to the midi file. Listening to New Rally-X on Youtube, I can see what you mean.

It sounds as if the midi file is using the wrong instruments: an "alto sax" (0xc0 0x41 at 0x82) and an "electric guitar, muted" (0xc1 0x1c at 0x4bd) from a quick look at the midi file in a hex editor. I had a quick play at changing the instruments to some synths and it did sound a bit better. Maybe the Midi Beeper version would be okay if the envelopes could be sorted out?
tricky wrote: Wed Dec 30, 2020 11:05 pm
I've never written a line of python!
I've never had a need, after 35 years of C, it's always easier to use c/c++ than install python!
C is my preferred language too - I'm so used to thinking about how to tackle a problem in C that it's almost always quicker to use it.
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

I'll certainly give it another look, as it is either that or finish of the namco converter that I started, but it needs a VGM file and I can't seem to write one or be bothered to hack any modern MAME to do it.
Small progress, I've added 5 different "AI" strategies, although one involes the flags, which aren't properly positioned or drawn yet!
Attachments
Rally-X.ssd
(11.5 KiB) Downloaded 85 times
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

I didn't get much done yesterday, just added flags and rocks to the map.
They don't do anything yet, but it gives an idea of how well the "AI" works.
Attachments
Rally-X.ssd
(12 KiB) Downloaded 91 times
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Following on from Thursday night's ABUG Dev session, here are all the sounds that I have extracted from the game so far:
GameStartMusic - This is probably the worst conversion, but is as close as it is likely to get, it uses three tracks, triangle, saw and square waves.
InGameMusic
FuelBonus
NormalFlagGet
SpecialFlagGet
EmptyWarningSound
RoundClearMusic
ChallengingStageStart
I can't find the Challenging stage music, but may be able to get it another way.
I also need to add the crash sound and see if there is a game over music.
There may be one more tweak, but it only affects one of the minor sounds.
Attachments
vgm_test.ssd
(2 KiB) Downloaded 88 times
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

So, the intro is down to the usual problem with converting arcade games to the beeb; the beeb frequency doesn't go low enough.
My converter automatically moves the whole tune up, but in the case of the into, this means roughly doubling the frequency!
The alternative is to use periodic noise or play it like a sample by flipping the volume to get the low notes.
80% of the notes are in range, so this one just clamps the rest and will have to do for now.
What does anyone with any musical ability think?
Attachments
vgm_test.ssd
(1 KiB) Downloaded 89 times
User avatar
fwibbler
Posts: 763
Joined: Thu Jan 13, 2005 10:37 pm
Location: Essex
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by fwibbler »

I had a quick listen at both of those.
Personally I prefer the Intro music from the second upload.
The rest of the music sounds fine to me though.
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Thanks for taking a listen.
Do you mean second in this thread, that is, immediately above your post?
User avatar
fwibbler
Posts: 763
Joined: Thu Jan 13, 2005 10:37 pm
Location: Essex
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by fwibbler »

Yes, thats the one.
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

OK, better music question again: v2 or v3?
It's only the first bit of the music, the rest should be identical.
Attachments
TrickyArcadeRally-X3.ssd
(11.5 KiB) Downloaded 99 times
TrickyArcadeRally-X2.ssd
(11.5 KiB) Downloaded 88 times
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

And another version using periodic noise for the low notes in the third channel.
This will probably sound very different on each emulator.
It adds a sort of buzz, but this is in keeping with the namco "sound".

PS This is my favorite and the one I will be using for now ;)
Attachments
vgm_test.ssd
(1 KiB) Downloaded 101 times
User avatar
fwibbler
Posts: 763
Joined: Thu Jan 13, 2005 10:37 pm
Location: Essex
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by fwibbler »

Hi Richard,
I've had a listen to all three.
Personally, I don't like version x2
My favourite is x3 followed by the vgm_test.
Hope that helps a bit.
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Carol want keen on vgm_test either.
3 raises the frequency of notes too low to play and vgm_test plays them using periodic noise. It does give it a buzz, but to me, that makes it sound more like the original.
Vgm_test was different on each emulator that I tried, even after partially fixing their sound playback.
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by Arcadian »

Finally had a chance to listen to them all (a few times), x3 is definitely an improvement on _x2 - and would easily be passable as the final version that went in the game I reckon.

The vgm_test version sounded quite cool but I only tried it on BeebEm and I don't know how authenticly its emulating the buzzing sound compared to a real Beeb.
Please subscribe to the ABug YouTube channel!
cmorley
Posts: 1867
Joined: Sat Jul 30, 2016 8:11 pm
Location: Oxford
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by cmorley »

x3 sounds out of tune :/
x2 is nice and jolly but a bit gameboy or handheld LCD game from the 80s.
vgm_test is the best IMO, I like the bass.

(all tested on a real B not emulation)

So the winner is vgm_test for my 2p
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Thanks everyone, 3 is proud tune with itself and I guess test is just a matter of taste and maybe how much you like the buzzy type effect of the original.
chrisn
Posts: 980
Joined: Sat Apr 19, 2014 12:31 pm
Location: UK
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by chrisn »

From my point of view, as someone who is vaguely musical ... x2 is OK but lacks the bass notes, x3 the harmony isn't right (wrong notes), x4 (vgm_test) is the best of the three, and pretty good.

I suggest adding a delay after the end of the intro tune before the main game tune starts (x2 and x3) ... at the moment it follows in too soon.

The other thing that could be improved is the tempo - it's a bit too fast. I could have a look at changing that for you, if you want to share the source files? I don't know anything about VGM files, mind...
Atom / BBC B with Music 5000/4000/2000 / Electron / A3000 / Master 128
User avatar
tricky
Posts: 7699
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Possible new version of New Rally-X for the BBC Micro

Post by tricky »

Thanks chrisn, I agree with you.
If you really want to edit it, it would be the middle form, but I expect it would be more trouble than it is worth! I could try stretching the notes as described below.

It is automatically converted from the register writes from the arcade game run through an old version of MAME that I have hacked.
I'm not sure that the source files would be much help.
The first stage is a modified version of the text format of a VGM file:
The file starts off with the "clock" rate for the namco sound chip and then has a dump of the sample tables for the waveforms.
Wave7 is a square wave, so that is easy;), Wave0 seems to be a 3X faster than programmed wave with some subtleties that are beyond me. Wave4 seems to be a square wave + something at 16X but only on half the time. I try to auto convert these to a frequency and volume modifier to the nearest approximation for the beeb as my converter doesn't try anything more complicated.

Code: Select all

Loop .
Loop .
NAMCO Clock:            192000 Hz Sample rate 192000
VGMData: NAMCO Wave 0: 8,8,8,8,8,15,15,8,8,0,0,0,8,8,8,8,15,15,15,8,0,0,8,8,8,8,15,15,8,8,0,0
VGMData: NAMCO Wave 1: 8,8,8,0,8,15,15,15,8,8,8,0,8,8,8,0,0,0,0,8,0,0,8,8,8,8,0,0,0,8,0,0
VGMData: NAMCO Wave 2: 8,8,15,8,8,8,15,8,8,0,0,0,8,15,8,8,15,8,8,0,0,0,8,15,8,8,8,15,8,0,0,0
VGMData: NAMCO Wave 3: 8,8,8,0,8,8,15,15,0,0,8,8,8,15,15,15,0,8,8,0,15,15,8,8,8,8,15,8,0,0,0,8
VGMData: NAMCO Wave 4: 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
VGMData: NAMCO Wave 5: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0
VGMData: NAMCO Wave 6: 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,0,0
VGMData: NAMCO Wave 7: 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0x00000000: 00 00 00    NAMCO: channel 0 waveform 0 frequency 160 volume 0
0x00000000: 00 00 00    NAMCO: channel 0 waveform 0 frequency 2464 volume 0
0x00000000: 00 00 00    NAMCO: channel 0 waveform 0 frequency 6560 volume 0
0x00000000: 00 00 00    NAMCO: channel 0 waveform 0 frequency 6560 volume 8
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 6560 volume 8
0x00000000: 00 00 00    NAMCO: channel 1 waveform 0 frequency 160 volume 0
0x00000000: 00 00 00    NAMCO: channel 1 waveform 0 frequency 2464 volume 0
0x00000000: 00 00 00    NAMCO: channel 1 waveform 0 frequency 6560 volume 0
0x00000000: 00 00 00    NAMCO: channel 1 waveform 0 frequency 6560 volume 8
0x00000000: 00 00 00    NAMCO: channel 1 waveform 5 frequency 6560 volume 8
0x00000000: 00 00 00    NAMCO: channel 2 waveform 0 frequency 64 volume 0
0x00000000: 00 00 00    NAMCO: channel 2 waveform 0 frequency 1088 volume 0
0x00000000: 00 00 00    NAMCO: channel 2 waveform 0 frequency 1088 volume 8
0x00000000: 00 00 00    NAMCO: channel 2 waveform 7 frequency 1088 volume 8
0x00000000: 00 00 00    Wait: 8727 samples Abs: 1172369
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 6592 volume 8
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 7360 volume 8
0x00000000: 00 00 00    Wait: 2909 samples Abs: 1175278
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 7232 volume 8
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 4672 volume 8
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 8768 volume 8
0x00000000: 00 00 00    NAMCO: channel 2 waveform 7 frequency 1168 volume 8
0x00000000: 00 00 00    NAMCO: channel 2 waveform 7 frequency 2192 volume 8
0x00000000: 00 00 00    Wait: 8732 samples Abs: 1184010
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 8736 volume 8
0x00000000: 00 00 00    NAMCO: channel 0 waveform 6 frequency 11040 volume 8
0x00000000: 00 00 00    NAMCO: channel 1 waveform 5 frequency 6544 volume 8
0x00000000: 00 00 00    NAMCO: channel 1 waveform 5 frequency 5520 volume 8
The Wait: are in 44100Hz "VGM samples", the waveforms are the 32 entry mini samples that each channel plays and the frequencies are the amounts added to a counter, where the high 5 bits index the sample entries in the waveform table.
In the intro for vgm_test, I use periodic noise at freq * 15 for notes that are too low for the beeb. I think that this is correct, but not all the emulators do this correctly ;)
The first pass of the converter takes the register writes and converts them to events that will then be encoded in as small a way as the converter can manage to play back at 50Hz.

Code: Select all

ticks 182 changes 26 16 19 1 hz6809 0 hz764 0 hzT6W28 0 namco 192000
207 184 154 122 154 184 207 184 154 130 154 184 207 184 154 122 154 122 115 102 115 130 154 130 154 207 
207 246 311 207 261 311 207 246 311 207 261 311 348 415 330 311 
83 622 83 622 83 622 83 622 83 622 83 622 126 937 111 835 83 622 40 
51 
+........+..+........+............+..+...........+........+..+........+...........+..+...........+........+..+........+...........+..+........+..+........+..+........+..+........+..+
+....................+............+..............+....................+...........+..............+....................+...........+...........+..+........+..+........+..+........+...
+...........+............+...........+...........+...........+...........+...........+...........+...........+...........+...........+...........+........+..+........+..+........+..+
+.....................................................................................................................................................................................
4....................................................................................................................................................................................0
4....................................................................................................................................................................................0
1...........8............1...........8...........1...........8...........1...........8...........1...........8...........1...........8...........1........8..1........8..1........8..0
8...........0............8...........0...........8...........0...........8...........0...........8...........0...........8...........0...........8........0..8........0..8........0...
+........+..+........+.-.+........+..+...........+........+..+........+..+........+..+...........+........+..+........+..+........+..+........+..+........+..+........+..+........+..+
The format is ticks <number of 50Hz in the tune> channels <number of frequency changes in channel 0> <...1> <...2> <...3> clock frequencies for supported chips (non-zero is the one in the file)
<frequencies for channel 0>
<... 1>
<... 2>
<... 3>
+ tick where the next frequency for channel 0 takes effect, . no frequency change
+ tick where the next frequency for channel 1 takes effect, . no frequency change
+ tick where the next frequency for channel 2 takes effect, . no frequency change
+ tick where the next frequency for channel 3 takes effect, . no frequency change
. volume continues, 0..F new volume for channel 0
. volume continues, 0..F new volume for channel 1
. volume continues, 0..F new volume for channel 2
. volume continues, 0..F new volume for channel 3
"editing channel" + a frequency change happens in this column, . no changes this tick.
The converter will remove any columns that have a - in the editing channel and update the other entries accordingly. This is how I "edit" my music, either by moving .s and +s or by changing frequency numbers!

You can see a - on the last line about 25 character sin, this to me seems like a place where my auto frame rate code has allowed an extra beat in and so I have marked a column of dots for deletion. I cannot hear the difference, so it might be the wrong things to do, but pattern wise it looks correct.
I could slow it down, but it would be by adding extra ticks where nothing happened, probably one in each long section of dots, but I wouldn't know if it sounded better or worse, although I might notice that it was slower, but haven't noticed in the past when it was 2X the correct speed!

So to recap, my "music editing" process is auto convert from the VGM-text form to the "morse-code" form. Then hand edit the "morse-code", run the converter to tidy it up and make sure it is still valid and produce an assembler version to test before editing again.

The final generated ASM looks like:

Code: Select all

ALIGN &100 : .VOL_MACROs : EQUB 0 ; 21 bytes
.namco_MACRO8 : EQUB &14
.namco_MACRO6 : EQUB &54
.namco_MACRO7 : EQUB &24
.namco_MACRO2 : EQUB &14
.namco_MACRO4 : EQUB &34
.namco_MACRO0 : EQUB &64
.namco_MACRO3 : EQUB &14
.namco_MACRO1 : EQUB &14
.namco_MACRO5 : EQUB &14, &00
.namco_MACRO10 : EQUB &18
.namco_MACRO12 : EQUB &18
.namco_MACRO16 : EQUB &28
.namco_MACRO17 : EQUB &68
.namco_MACRO14 : EQUB &18
.namco_MACRO15 : EQUB &28, &00
.namco_MACRO11 : EQUB &11
.namco_MACRO9 : EQUB &21
.namco_MACRO13 : EQUB &91, &00
USING_VOL_OFFSETs = 0 ; 19 offsets
MULTI_PAGE_TRACKS = 0
.track0 : .namco0 ; 81 bytes
EQUB SET_SND_LEN + 9 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, SET_SND_LEN + 2 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO1 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 7, SET_SND_LEN + 9 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, SET_SND_LEN + 13 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO2 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 6, SET_SND_LEN + 3 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO4 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 7, SET_SND_LEN + 9 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, SET_SND_LEN + 3 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 7, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, 0, 0, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO4 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 3, SET_SND_LEN + 3 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO4 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 7, SET_SND_LEN + 9 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, SET_SND_LEN + 3 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 7, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, 0, 0, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO4 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 6, SET_SND_LEN + 3 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 6, 0, 0, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 4, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 5, 0, 0, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 4, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 3, 0, 0, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 3, 0, 0, SET_SND_LEN + 2 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO1 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 2, SET_SND_LEN + 1 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO5 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, END_TRACK ;; 81 81 bytes
.track1 : .namco1 ; 47 bytes
EQUB SET_SND_LEN + 20 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO6 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, SET_SND_LEN + 13 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO2 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 13, SET_SND_LEN + 15 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO7 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 8, SET_SND_LEN + 21 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO8 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO4 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 12, SET_SND_LEN + 15 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO7 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 8, SET_SND_LEN + 21 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO8 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO4 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 13, snd_namco + 8, SET_SND_LEN + 3 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 1, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 12, 0, 0, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 8, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 11, 0, 0, SET_VOL_ENV + (namco_MACRO3 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 10, SET_VOL_ENV + (namco_MACRO0 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 9, 0, 0, SET_SND_LEN + 2 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO1 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 8, END_TRACK ;; 47 47 bytes
.track2 : .namco2 ; 46 bytes
EQUB SET_SND_LEN + 11 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO9 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 16, SET_SND_LEN + 13 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO10 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 15, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO11 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 16, SET_VOL_ENV + (namco_MACRO12 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 15, SET_VOL_ENV + (namco_MACRO11 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 16, SET_VOL_ENV + (namco_MACRO12 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 15, SET_VOL_ENV + (namco_MACRO11 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 16, SET_VOL_ENV + (namco_MACRO12 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 15, SET_VOL_ENV + (namco_MACRO11 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 16, SET_VOL_ENV + (namco_MACRO12 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 15, SET_VOL_ENV + (namco_MACRO11 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 16, SET_VOL_ENV + (namco_MACRO12 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 15, SET_SND_LEN + 9 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO13 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 20, SET_SND_LEN + 3 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO14 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 19, SET_VOL_ENV + (namco_MACRO13 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 18, 0, 0, SET_VOL_ENV + (namco_MACRO14 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 17, SET_VOL_ENV + (namco_MACRO13 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 16, 0, 0, SET_SND_LEN + 2 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO15 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 15, END_TRACK ;; 46 46 bytes
.track3 : .namco3 ; 15 bytes
EQUB SET_SND_LEN + 24 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO16 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 21, SET_VOL_ENV + (namco_MACRO12 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 21, snd_namco + 21, snd_namco + 21, snd_namco + 21, snd_namco + 21, SET_SND_LEN + 12 * SND_LEN_DIV, SET_VOL_ENV + (namco_MACRO17 - VOL_MACROs) * VOL_ENV_DIV, snd_namco + 21, snd_namco + 21, SET_SND_LEN + 9 * SND_LEN_DIV, snd_namco + 21, END_TRACK ;; 15 15 bytes
.snd_reglo : .namco_reglo : EQUB 0, &0F, &0A, &02, &03, &06, &0A, &08, &07, &0A, &0F, &0C, &05, &06, &08, &0E, &03, &03, &0F, &09, &0E, &03
.snd_reghi : .namco_reghi : EQUB 0, &0C, &09, &08, &07, &06, &07, &0B, &13, &14, &19, &15, &10, &0F, &02, &26, &05, &34, &06, &3A, &07, &03
snd_namco = namco_reglo - snd_reglo
Which is about 200+ bytes, but most of these will get re-used by the other tunes in the game, that is any notes of the same frequency, any volume envelopes and any repeated "phrases" of frequency and volume envelope sequences. This simple intro doesn't generate any sequences, but there are plenty in the final tune.
Post Reply

Return to “new projects in development: games”