|
Post by Mairtrus on Feb 26, 2010 8:29:23 GMT -5
I think you will need to deal with a Z-axis, or something. In other words, save the sprites's info into a buffer with the Z-axis value of the current character(main, enemy, whatever), then draw the sprites from the lowest to the maximun Z(suposing that the lowest Z is the most far from the "camera")
|
|
|
Post by Mairtrus on Feb 25, 2010 17:10:20 GMT -5
In fact, both are wrong. The PSG can be used to play 4-bit samples at a maximun of 11Khz approximately (super low quality), and the YMH2612 plays 8-bit samples. It's atached a file with the proof of that. Use (A) to play at 8-bit or (B) to play at 4-bit the SEEEEGA sound (open it in Gens, in Fusion sounds kinda distorted when you play it in 4-bit mode) Attachments:
|
|
|
Post by Mairtrus on Feb 24, 2010 7:46:24 GMT -5
It should be not too complicated. Tiido made a sort-of eeprom programmer for his homemade Genesis cartridge. One day, he gave me the circuit's plane, but I think I lost it
|
|
|
Post by Mairtrus on Feb 22, 2010 20:09:25 GMT -5
In fact, there is a way to get more than 512 colors, like GiGaBiTe said. Using the Shadow/Highlight mode (stuff that we, the BasiEgaXorz, still don't have. It can be accesed via ASM, however) you can get a lot more colors, in a very rare way. Here is a example made by Tiido: www.hot.ee/tmeeco/DWNLOADS/960PAL.RARSome years ago, existed one like this in the SpritesMind forums, but it's rapidshare link it's down now
|
|
|
Post by Mairtrus on Feb 20, 2010 10:34:26 GMT -5
There is a terrible bug in the command LOADTILES, as well as the command LOADSCD (when used to load tiles). The [Tile Source Offset from Label] argument isn't coded properly (I think it was since the first version of BEX).
The problematic code is:
move.l #Tile Source Offset from Label,d0 lsl.[b]w[/b] #5,d0 move.l #__DATA_PTile Data Label,a0 add.l d0,a0 But it should be:
move.l #Tile Source Offset from Label,d0 lsl.[b]l[/b] #5,d0 move.l #__DATA_PTile Data Label,a0 add.l d0,a0
|
|
|
Post by Mairtrus on Feb 20, 2010 10:08:39 GMT -5
In fact, some games use the 256-pixels mode for full screen "videos" without wasting to much VRAM (like the initial scene in Sonic3D Blast, plus raster effects).
In the double interlaced mode, each tile is 8*16 pixels, instead of the classic 8*8, so with the same amount of tiles in screen (tipically, 40*28 in NTSC, 40*30 in PAL) you have a resolution of 320*448/320*480 in NTSC/PAL. The bad part is that you have less number of tiles to use.
|
|
|
Post by Mairtrus on Feb 20, 2010 9:34:21 GMT -5
I asked myself the same question like one million times, but seems that nobody ever released a table with the true colors.
Some programs, like PalEd and SGTD, uses this values:
MD value PC value 0 31(1F) 2 63(3F) 4 95(5F) 6 127(7F) 8 159(9F) A 191(BF) C 223(DF) E 255(FF)
|
|
|
Post by Mairtrus on Feb 20, 2010 9:00:40 GMT -5
It's not exactly the same bug, but if you are working for the SegaCD, and you have added at least one file with ADDSCD, the "SegaCD Cluster Map" will give you a "Runtime Error 5: Invalid procedure call or argument".
|
|
|
Post by Mairtrus on Feb 2, 2010 7:38:06 GMT -5
What about to cut the LOADSCD into two commands, one for load the data into a buffer, and one to transfer it?
|
|
|
Post by Mairtrus on Jan 30, 2010 18:28:43 GMT -5
Hi! there is a way to use the 768kb of ram that the Megacd have? I want to make some kind of "loading screen" and put 768kb of tiles, then with DrawTile, read from this memory First, you need to know you can not use the whole 768kb of RAM by one reason: Like ALL the CD based consoles, on the Sega CD you need first to load the code that will be executed in an internal RAM memory specifically designed for that purpose. BasiEgaXorz loads a program to control the SegaCD's features into the Program RAM (512Kb PRAM), and your program into the Word RAM (256kb WRAM, although the documents say that this is impossible...). So, lets say that you have the WRAM, minus the space ocuppied by your code, to load data, tiles, maps, whatever you want. Can you showme and example or a link, to how to load tiles from a CD cluster? sorry, im reading the help and searching the forum, but im a little lost. If you don't know how to add a scd cluster, check the ADDSCD command in the BEX help. If you will only load graphics from a cluster, you just can add the .bin file wich contains the tiles. For load data from a cluster, you must do this: For load graphics: LoadScd <Cluster number HERE>,VRAM,<Offset inside the cluster HERE>,<Number of tiles to load HERE>,<Tile destination in video memory HERE> For load data into the genesis RAM: LoadScd <Cluster number HERE>,ARRAY,<Offset inside the cluster HERE>,<Variable's name HERE> For load data into the Word RAM: LoadScd <Cluster number HERE>,POINTER,<Offset inside the cluster HERE>,<Offset INSIDE the WRAM HERE>,<Number of bytes to copy HERE> I don't remember correctly, but I think the last 2 arguments in this LoadSCD command are inverted. I really don't remember... Where I wrote <Offset INSIDE the WRAM HERE> you need to put an offset between &h200000-&h23FFFF.
|
|
|
Post by Mairtrus on Jan 17, 2010 9:24:26 GMT -5
I saw this some time ago, but I was wondering if it really works as a real Genny. Seems that now I have no reason to don't get one of those things. For intensive tests, try some of the tech demos on Tiido's webpage. All of them are really awesome.
And about your other question, try to get SEGADASM. For me, is the best sega genesis disassembler.
|
|
|
Post by Mairtrus on Jan 5, 2010 18:43:29 GMT -5
It worked! IT WORKEEEEED!
Nah, I'm just kidding ;D . I have all the components now, except that I need to see if I can fix some of my FIVE Game Genie cartridges. I just can not remember why I have to many GG brokens. I have them since years...
|
|
|
Post by Mairtrus on Jan 5, 2010 18:35:56 GMT -5
I also have some problems to run BasiEgaXorz correctly every time I reinstall XP. Try these 2 things: 1) Install an older version, eg 1.00 or 1.20, and then install version 1.28 over it. 2) Try to install it in a folder whose name does not exceed 8 characters or has no spaces. In the C: for example. This was a problem in very old versions, but I noticed that, sometimes, in my Dev PC this gives me problems.
|
|
|
Post by Mairtrus on Dec 23, 2009 19:39:39 GMT -5
One unit of <Tile Destination.....> is equal to one 8*8 tile, and the destination starts at 0 and end at 1343. So, the video memory can hold 1344 simultaneous tiles (43008 bytes of VRAM) This text is in help, in loadtiles section. Why only use 43008 bytes, if the megadrive vram is 64kb in the specs..? Thanxs! If you see near to the end of the help, you will see this: [i]Default VRAM Map[/i]
Scroll B = $E000 - $FFFF [8192 Bytes] Scroll A = $C000 - $DFFF [8192 Bytes] Patterns (Tiles 1520-1535) = $BE00 - $BFFF [1856 Bytes] Window = $B000 - $BDFF [2240 Bytes] Patterns (Tiles 1396-1407) = $AE80 - $AFFF [384 Bytes] Sprites = $AC00 - $AE7F [640 Bytes] H Scroll = $A800 - $ABFF [1024 Bytes] Patterns (Tiles 0-1343) = $0000 - $A7FF [43008 Bytes] As you can see, the VRam is not only to store tiles. All the info for create the current screen (except for the colors and the V Scroll), is stored here.
|
|
|
Post by Mairtrus on Dec 21, 2009 8:32:09 GMT -5
kram1024, great work!!! This is a good way to use more sound hardware then Shiru's TFM does!!! I have got real SMD system with flash cart and can test it on real hardware. But I have PAL machine Can somebody explain me how to speed up song a little for a 50Hz hardware? You should have no problems, since the Z80 SMPS does not depend on the verticals interruptions to play music. Anyway, the bytes 4-5 changes the playback speed. Byte 5 changes the speed a little, while the byte 4 changes the speed a lot. In the Sonic 2 music format, since $00-$7F denote the note lengths, what is the byte value used for a quarter note, a half note, whole note, triplet, etc.? There is no real equivalence, but since $00 is the maximum length and $01 the minimun (yep, it's 01,02...7F,00), I like to use the following equivalent list: 00: Whole 40: Half 20: Quarter 10: Eighth 08: Sixteenth 04: Thirty-second 02: Sixty-fourth A triplet can be done by dividing the note lenght by 3 and fixing the values to get, by addition, the length of the original note. For example: To make a quarter triplet, you can do 32/3=10.66, so you will have 11+10+11 ($0B+$0A+$0B). I do it this way and gives me really acurate results.
|
|