-
Content Count
2,924 -
Joined
-
Last visited
Posts posted by Wrathchild
-
-
I had some success with the first method, however timings
are very very tight! Updates are done in the VBI but if I add
a few more instructions in, a DLI occurs within another DLI
after doing the course scroll.
To get around this I have two options.
1) Leave the scrolling area until a little further down the screen.
2) Leave the course scroll until after the last lines are drawn
I'll try 2 first and post up the code so far.
My version currently scrolls up (e.g. like scrolling instructions)
but I try to add a down mode as well (e.g. shoot-em-up)
Regards,
Mark
-
A couple of thoughts on the course scrolling method required,
i.e. once the fine scrolling does its 8 lines...
1) (the easier) use a 6th font to scroll into, then when that's
exhausted re-use font 1 which is not displayed, and just keep
cycling around the fonts.
2) (slightly less memory used) once a line has been scrolled
adjust the dlist pointers foward one line in memory, but place
the line 1 chars after line 3. An alternative could be to hold 3
separate dlists and cycle though those. The course scroll
routine should then copy the char-data from font n to font n-1,
but only for the first line, e.g. 320 bytes
Looking at method 2, a 32 char wide playfield would permit
all 128 chars in a font to be used on 4 lines. The copy routine
would only be required to move 256 bytes of data per line,
speeding up to time taken to update the screen.
I may have an experiment with this at the weekend.
Mark.
-
how about this...Because of the multiple fonts, using a v-scroll reg complicates things.
Can you not use scroll-registers and have a single 'blank' dlist entry at
the top of the screen with the DLI bit set.
When you want to scroll, change the number of blank lines displayed.
In the DLI, set the colors to background and then WSYNC a number
of times (e.g. 8-# blank lines) and then switch the colours on.
You'll need a similar DLI on the last line to set the colours to background.
Hence the fine scrolling is controlled by the dynamic blank dlist entry
and the viewing 'window' is maintained by turning on and off the picture
at the correct time.
Regards,
Mark
-
Time to focus on these is the problem for me these days.
I'd looked into both Winter Olympiad 88 and Gauntlet a little
while back after doing The Eidolon and Koronis Rift.
These look straight forward enough to modify into any
switchable cart model, flash, xegs and mega.
Regards,
Mark
-
Thanks! One last change, just to the code, not the tune
The notes.inc file now uses midi note names, i.e. Middle C = C5
Unfortunately for this player's code, the range of notes is
only a window of 64 notes, so I've settle for E3 -> G8
There may be a few more FF3 tunes I can pull out like this
Regards,
Mark
-
I've calculated a new frequency table and this
effectively dropped everything down an octave.
Sounds a lot better now!
Mark
-
For me, the NES version of Paperboy is the most playable
-
What's the "notation-range" exactly?In midi terms - g#3 -> c8
Are you using the same wave on the whole notation?Maybe this will help (the latest message).
Yes' date=' I'll take a look (& listen)
In that thread I am trying to explain, how to optimize POKEY sounding, because sometimes the unwanted sounding isn't POKEY's fault, it is a fault of "physics". To compensate those faults, there are still some workarounds to do.Belonging to your problem, it is necessary to change the "wave"-manipulation in parallel to the heigth of the notation. But I don't know one music creating program doing so...
From what I can see that is possible, possibly with multiple lookup tables depending on if you're in 16 bit or 8 bit mode and what clock freq that channel is tied to. Within the confines of a generic playback routine this work is a bit of an overhead.
but' date=' maybe it will sound OK when transposing the melody a whole octave down?[/quote']I may give that a go. It will mean extending the current freq tab though
and I need to see how far that goes down. It maybe better to have a second freq tab, clocking that with 64 KHz instead of 1.79 MHz.
BTW: Are you really using 16 Bit and the Sound output from Channel 1 * 3?The joined generator is using channel 2 and 4. But the "high resolution" for generator "A" is on channel 1 and 3 .
Erm, AudCTL is $78 if that helps?
Thanks,
Mark
-
Here's a nice Final Fantasy tune done using two 16 bit channels.
However the higher frequencies seem to go astray.
Can someone take a look at see what a solution may be?
I took the 'Storm' engine and made it two voices instead of 3.
I also added in a small wave to the frequency. I understand that,
as the the frequency gets higher, the effect of the mod is more
audible, but it seems to help out the lower frequencies.
Thanks,
Mark
-
For those that may not have know, an update to this work
was not so long ago uploaded to the Wolf3D page.
It runs on ST/STe/TT/Falcon and on emulators such as Steem.
-
I think an updated 'Rainbow Walker' could
quite easily take advantage of the better graphic
effects provided by today's cards... e.g. the
sunset/rise and night elements could cast shadows
on the rainbow which itself could glow/sparkle etc.
Retain the existing gameplay that would make
a great game!
-
Hi,
Are there any sites that detail the techniques/algorithms
behind drawing roads/tracks in old 8-bit games such as
Pole Position, Outrun, Overlander, Elektragilde etc?
I'm interested in how these evolved, e.g. adding hills,
and how different display architectures, e.g. raster,
tile based or (Atari) display-lists can be exploited.
Thanks,
Mark
-
I think my next enhancement maybe to try and add the abilibty
to import a label file, e.g. from LD65's output. This way the
translated dissassembly could be a bit more understandable
when attempting the afore-mentioned debugging

-
Here is a replacement emulator V4 exe that:
1) enables the debugger and
2) permits tracing execution to a named file.
E.g. here's an example of something I'd do...
Load emulator, booting to self-test.
Press F8 to enter monitor and type:
read sentinel.bin D00 A300
break D91
setpc 3F00
cont
This runs code until the breakpoint is hit and the debugger
is entered, then type:
break D99
tron a800trc.txt
cont
Again, execution continues until the breakpoint is hit:
troff
The tron/troff code also includes some protection, e.g.
you must type "troff" before typing "tron" a second time.
If "tron" has no argument then you trace to the monitor (as before).
I've attached the source diffs, however some explaination required
as I was using VC++6 not and not .NET to build the exe:
File "sio.c" : no in Windows
File "fileservice.cpp" : too many args - dropped OPENFILENAME_SIZE_VERSION_400
(Where does that get defined? Part of .NET I guess)
File "display_win.c" : used Get/SetWindowLong instead of Get/SetWindowLongPtr
(Odd one this, compiles fine but no library holds the functions, so linking fails)
Files "cpu.c" and "monitor.c" contain the tracing changes.
However, #ifdef TRACE becomes #ifdef MON_TRACE
(TRACE is already a defined macro in Windows)
File "config.h" : MONITOR_BREAK enabled and added MON_TRACE
There is also a slight tidyup to the monitor 'help'.
Previously the 'Press return to continue' didn't wait
I hope that's of use to somebody... will FlashCart support be
added incorporated into the V4 source at some point?
Regards,
Mark
-
Does anyone know of an old type in game from
the UK's Computer and Video Games?
It was called something like 'Show Jumping'
and basically had a nice horse&rider sprite
and right 2 left scrolled some fences at you at
different speeds which you had to jump.
It was 16K type in listing, but I recall my 600XL
at the time crashing often after running the game.
-
I had an opportunity to look into the drawing corruption.
It boiled down to the Atari's OS VBI routines updating some
zero-page registers I was using. Serves me right for using
mapping the C64 zeropage usage 1:1
So, this one draws correctly and I've added in the top view too.
Press and release a console key once a screen has drawn
to see the other view.
I think for a future demo I could cycle through all of the C64
holes, drawing the tee view and then the top view each.
(plus tidy up the text areas)
I'm away over the weekend, but promise to get back to the
Combat conversion next week.
Regards,
Mark
-
There's going to be a balance there, how many channels to use
for the music versus how many to use for effects.
With 2&2 you should be OK although that would just give you
8-bit frequencies for the music. The music channels can typically
be made sound like more instruments, eg. by interspercing
drums and cymbal sounds in the bass line.
I think you would need 2 voices for the effects, e.g. a pulsing ambient
sound on one channel. Shots and explosions on the other. Or perhaps
one voice each for player and ememy.
The routines are normally interlinked. E.g. often you can change
a byte or two in a SID or SAP file and then hear the effects rather
than the tune.
Regards,
Mark
-
Doesn't the Atari Artist cart that comes with the touch tablet
load/save this sort of image? The emulators support the tablet
so you could do the work on a PC.
-
excel????????????????? hahahahahaha....
desparate case of improvisation I know!I shouldn't really mention the 'Barbarian' and 'Sentinel' screenshots
I also did in Excel just before the Millennium?!
Thank heavens that G2F came along to save us all

-
1
-
-
Same principle of previewing in Excel.
Maybe someone can use these to test thier software
or multiplexing hardware sprite routines?
Mark
PS: sticky = sticking

-
1
-
-
Here's an example for all to see...
img.c = the decompression program, takes a filename as an argument.
nm50 = original image file from C64
nm50.txt = Output produced by "img nm50 > nm50.txt" contains:
1) Trace of the decompression, the figures in brackets are the Y and X
pixel positions for the byte (e.g. divide X by 4 for the char offset).
2) Data in raster format for later compiling

3) Data in CSV format with two character patterns for each colour.
nm50.xls = Coloured version in Excel
Regards,
Mark
PS. hopefully sticky this type of source out here
may inspire some more people to tinker in this way :wink:
-
1
-
-
I just used Antic 14 for the display in this simple demo. The graphics
mode for the BT intro method was done in 5 colour char mode
and so this is what the game would use too, therefore yes they
could be made a little more colourful. The problem at the moment
was that I hadn't figured out where the C64 gets the palette from.
Sprite under/overlays could be used but more hassle than its worth
IMHO. They will be used for the duration spells icons. The demo
also includes the images uncompressed wheras the C64 uses some
weird RLE and interlaced compression format to hold these images (basically most of the NMxx files on the disks).
Regards,
Mark
-
Hi all,
Here's a simple demo you can run in an emulator,
it comes as an XEGS 64K ROM image.
The graphics, 65 images in all over 8 screens of 8 images
and the last screen with a single image, come from the
C64 version of Bard's Tale but are in the 3 color (plus background)
of the Atari for now, but it gives you an idea of what they could
be like.
Enjoy,
Mark
-
1
-
-
Are you able to convert sid music data to txt format, which RMT imports ?Its not answered if RMT uses this kind of format? It might.
If a mapping can be produce then I guess we could write
a convertor. When a human reads the C64 output you can
often make out the intructions for the instruments (because
you heard them too). Hence you can substitute it with an
A8 equivalent. Once a collection of these is made then a
stock A8 instrument library can be defined which every
song would then use (or draw upon, i.e. include those mapped).
You still have to understand each original C64 playback routine,
which typically requires its disassembly etc, although there can
be quite a lot of commonality between routines.
Regards,
Mark
Ps. Anyone have a disassembly of the Last Ninja 3 intro
player routine (Reyn Ouwehand) before I do one?
Ps2. Can I get a relocated Atari SIDplayer as the LN3 tune has
Load: $5900-$CE65, Init: $CE50, Play: $CDD0

Vertical Scrolling example
in Programming
Posted
OK, this code, for the Atari 8-bit, demonstrates one technique
of scrolling a Graphics 12 area without using HW scroll registers.
It predefines 7 fonts with the same pattern for each character.
The screen is arranged as 24 lines of 32 characters wide.
This means that 6 fonts are visible initially, 4 lines each giving
the 4*32 = 128 characters of the font. As this scrolls, the 7th
font becomes visible and then when the 1st font disappears
off the top, it re-appears from the bottom.
Hence the technique can be expanded upon by using a tile
expanding routine to place graphics in the font memory.
To demonstrate that I setup a small piece of mainly code
to animate the 1st character of fonts 1 and 2 by rotating
them down and up respectively.
There in lies a mystery. Earlier this worked OK, but in this
last incarnation the pattern is not rotating constantly.
Therefore I must be overextending an interrupt somewhere?
With the alternative method I suggested of copying the first
line of data from font to font, I'm a little worried that it would
steel too many cycles, therefore indicating that it could only
be used when using a smaller window in the vertical.
I haven't got time to try that at the moment though :wink:
Hope that helps.
Mark
scroll_test.zip