kramlat
Moldy Popcorn
got slack?
Posts: 42
|
Post by kramlat on Dec 15, 2009 8:34:59 GMT -5
how about an option for Nemesis compression in LoadTiles (would obsolete kramlib nemesis compression) I have gotten NemDec to work in the current release, so why not add an extra parameter like NEM for NemDec to be called. TSDC would allow graphics to be compressed, or SGTD can be linked with Nemesis.dll and the output have an optional Compress option
|
|
|
Post by TheMVRules on Dec 19, 2009 12:48:06 GMT -5
Adding command line would also make BEX work better on vista.
|
|
|
Post by walker7 on Apr 22, 2010 1:39:33 GMT -5
Here are some new features for the next version of BasiEgaXorz:
A code tester. The tester will display RAM, registers, and even stuff like VRAM, VSRAM and CRAM, and a screen window, basically everything you really need when programming a Sega Genesis game, and have its own built-in all-purpose emulator. You can modify and add code as you are testing it, as well as color-code any registers. To add code, just simply type it in, and after you type ".b", ".w", or ".l", it should automatically tab to 8 characters (or you can choose the tab length). The code and registers are always there, but CRAM, VRAM, VSRAM, etc. can be hidden if needed; additionally, you can view the sequence of the last instructions executed (similar to the NES FCEUD emulator). When you get to a place where you would need to wait for a VBlank or HBlank, there should be some buttons on there to click on, so you can get out of there easily.
Commenting by putting a ";" could automatically put spaces up to a certain point, then putting the ";", and you can choose where the comment-tab point goes.
Code folding should also be possible, as well as a VDP calculator and many other features. Another feature would be adding decorative bars (solid colors or designs) with text in any large font, be it text or Sega-Genesis-style graphics (such as the Gaslight-like font in Sonic 2 for the Sega Genesis and more), to separate the sections of your code. The individual sections can be used for code folding, and each data set or subroutine can be made into a single [+]/[-] code folder, and you can color each of your sections. For instance, a section with math routines might look like:
1 MATH ROUTINES [+] Multiply_32 ($004B8E) [+] Divide_32 [+] Multiply_64 [+] Divide_64 [+] Sine [+] Cosine [+] Tangent
The "1" would be bigger than the characters. You can use any font, or make your own font using Sega-Genesis-style characters (like the Gaslight-like Title Card font in Sonic 2 for the Sega Genesis). Another thing, the Math Routines header above might be encased in a long, thick colored bar of your choice, like, for example, a blue one. You get to pick the RGB values for each of these routines (24-bit True Color or 9-bit Sega Genesis format). You could also use patterns, stored as GIFs or PNGs for example. You can add lines (of various styles) in between sections of a subroutine to make it easier to understand.
When you click one of those [+] symbols, the code appears, and you can have the "Asm" and "End Asm" put there automatically if you choose. The "($004B8E)" is just an example; it is the ROM address of the routines. This will be updated every time you compile the ROM. You can compile individual routines temporarily for debugging using the code tester.
You could also make a display of RAM addresses (variables) and ROM addresses (labels), which you can copy to a clipboard.
There could also be a feature to "commonize" code; after compiling, if a certain amount of contiguous code is exactly or essentially the same, it could be "commonized" into one piece of code ending in an RTS.
You could also configure the $200-byte header, as you wish, with a gray dialog box at the very beginning of the BasiEgaXorz file. You could also make your own tilesets and have them display as tilesets or hex, and you can use the four different kinds of compression and decompression (Kosinski, Nemesis, Enigma, and Saxman). In the image editor, you can edit individual tiles or put them together, and you could swap color indices (usually if you import graphics, you might want to change their color indices in their 16-color palette).
|
|
|
Post by TheMVRules on Apr 22, 2010 4:34:24 GMT -5
BEX uses ':s for comments. The section systems would mean WAY much work for DevSter. You can edit the header with an specific OPTION. You can link to emulators and there's an button on the IDE to run the emulator such as Gens KMod. BEX already optimizes code. (Use the ASM output option and look at your basic.s file) ROM viewer/sections with adresses would probably be hard to implement and even it succeed, it will be slow. (having to recompile and assemble each time you made an edit) Variable viewer display already exist.' And if you want bars: '=============================================================== Your suggestions are fantasy.. And for adding code while testing it, it would crash (remember the PC)
I doubt some of your suggestions are possible... Too much work for DevSter. Remember that BasiEgaXorz is an BASIC compiler, not an assembly editor.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Apr 22, 2010 13:28:05 GMT -5
Yes, I already have a lot on my plate to work with You can make very decent stuff without all those features - I mean "back in the days", people use to do it all the time. I still use a plain old text editor with Yellow/Blue colors to do all my assembly coding I haven't even touched the source, or hooked up my dev computer to work on BEX. I was in the middle of a new ImaGenesis on my main computer, and then paused it for a little bit
|
|
|
Post by walker7 on Apr 22, 2010 14:24:46 GMT -5
To start off, you could just do the code tester, which could just be a separate application, and as for adding code, if you would go past the end of the code, it would just stop there; when you add more code while using the code tester, it will automatically compile and it can continue. For adding comments, you can add the ' or ; symbols; you can choose the point where the tab would go to. To add labels, you can put things such as @1, @2, etc., or a label name. You can make it output the code like it would appear in BasiEgaXorz (similar to the way it works in ImaGenesis), be it in Basic or Assembly format, which you can copy to the clipboard and paste in your BasiEgaXorz project.
|
|
|
Post by Tom Maneiro on Apr 22, 2010 21:07:06 GMT -5
Why just don't open-source the whole thing? Yes, i asked this about 5 years ago, but... Since the community is more active than ever, i think that it would be a good oportunity right now. BEX is already "mature", but there is some room for third-party improvements
|
|
|
Post by TheMVRules on Apr 23, 2010 10:26:20 GMT -5
Code tester would mean lots of work, and DevSter would have to find a decent emulator to build off. (If DevSter chose Gens, then BEX would have to be open-source).
|
|
|
Post by sega16 on Jan 16, 2011 19:18:15 GMT -5
|
|
|
Post by memorydump on Feb 4, 2011 3:28:38 GMT -5
I agree with open source, would help things. Not to mention ImaGenesis, that thing just keeps giving out completely wrong palettes and screws up my tiles no matter what all the time. Really needs an update since there's no other alternatives out there at the moment, that I know of anyway.
|
|
|
Post by sega16 on Feb 8, 2011 18:10:21 GMT -5
Imagenesis does not screw up your tiles,I think it is something you are doing.
|
|
|
Post by memorydump on Feb 9, 2011 1:24:29 GMT -5
Well, I switched to GetArt now so I don't have to worry about it anymore thankfully
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jun 26, 2011 14:22:50 GMT -5
Suggestion: DrawTiles with 16 bit integer support Reasons: DrawTiles as it is cannot use all 1343 available tiles as opposed to the DrawTile or ReadTile command. Since DrawTiles is robust enough to use different sets of tiles to draw this limits its potential greatly. Limiting it to the first 256 tiles also means you'll be fighting with the ASCII font for useable tiles. Workaround: Allow "palettes" of tiles such that palette 2 would have tiles from 256-511. I really, really don't want to recreate the DrawTiles command wtih a huge, complicated for .. next loop. I don't think I could duplicate all the features (much less the speed) anyway
|
|
|
Post by memorydump on Jul 19, 2011 22:55:47 GMT -5
Hey devster, I'm just wondering, are there plans to ever release another version of BEX with more features?
I know you probably have other projects plus are busy in real life, so I understand how there hasn't been a new one YET, but I'm just wondering if you do at least intend to try to get to it someday, or are you satisfied with the compiler staying in its present state and anyone wanting more moving on to C or ASM?
|
|
kramlat
Moldy Popcorn
got slack?
Posts: 42
|
Post by kramlat on Apr 6, 2012 3:04:28 GMT -5
here are my suggestions: BLOAD command (like the Apple II counterpart, but instead for sega cd games, loads a a file off of a cd like a data command) example: BLOAD Level1.bin
ON ... GOSUB ..., ... (that is an old basic classic, a branch that dynamically branches to a subroutine based on what the output of a variable is, i.e if it is one, branch off to the first label in the command, if it is 2, use the second one, ...) example: ON GameScreen& GOTO SegaScreen, TitleScreen, PasswordScreen, Demo, Level the asm way to do the exact same thing is this:
cmpi.l #0, __LONG_GameScreen bne.s OnGosub bra.s Continue
OnGosub: moveq #0, D0 move.l __LONG_GameScreen, D0.w sub.w #1, D0 add.w D0, D0 add.w D0, D0 move.w D0, A0 jsr list(PC,A0) jmp Continue
list: dc.l __LABEL_SegaScreen dc.l __LABEL_TitleScreen dc.l __LABEL_PasswordScreen dc.l __LABEL_Demo dc.l __LABEL_Level
Continue:
ON ... GOTO ..., ... (just like the ON ... GOSUB thing above, but with GOTO instead) example: ON ItemType GOTO ExtraLife, Heart, TenPoints
allow reload/restore to use offsets, i.e. Foo+5 meaning to move the data pointer 5 elements over from the label itself, very useful when loading level init data since you no longer need to allocate an array in memory and waste space. example: RESTORE Song+MusicOffset%
WHILE...WEND if you dont have that one already, please add it, that allows loops that continue while a condition is true. example: WHILE Lives > 0 GOSUB Level WEND GOTO GameOver
BREAK command that leaves a loop on command. useful if a variable that is not the loop's main variable is set to a certain value and you need to exit the loop because of that. should function a lot like the RETURN command, just for loops.
|
|