oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Mar 16, 2005 22:44:24 GMT -5
reason why its so tiny was so that execution could immediately run again right after a trap, so that you're not stuck. if i made a huge screen with register values, memory dumps, etc you're gaming screen is all messed up then
and also, basiegaxorz is basic, there's no way anyone's going to have any use for the 68k registers =D, since they mean absolutely nothing after a command has executed. you could argue about this for memory dumps, but i figured that you'd use gens debug screen to get your memory dump =P
|
|
|
Post by Tom Maneiro on Mar 17, 2005 11:15:39 GMT -5
Aww... i really love BSOD's, and BasiEgaXorz should have one.
Let's make something like this Option DEBUGGER, [no,errmsg,fullcrash] (default: errmsg)
"no" means no debug, if we found a exception, simply ignore it "errmsg" would be your "Illegal Instruction (START:reset)", for example. "fullcrash" would be my idea of "Dr. Watson 68K plus BSOD"
|
|
|
Post by Tom Maneiro on Mar 17, 2005 18:56:28 GMT -5
Here is another suggestion: an OPTION REGION for set the cart region in code.
It could be like this Option REGION,[TV type],[Unit type] (default: NTSC,USA)
..and use either the new or old Sega region code models for store that info on the ROM header. The reason? Let's say that i want to make a Euro-only release of certain game... so i should edit the header for set the default region, plus add the region detection code. We can skip the header step with that Option Region statement.
Why i want to make an Euro (or a Japan PAL) exclusive release? Some coders have their reasons...
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Mar 18, 2005 2:24:00 GMT -5
sorry, i don't make things for the love of it =)
i need a real concrete reason why an option like this needs to be incorporated, and how not having it threatens the pursuit of making your application
things to think about: - Mostly all the 68k error exceptions cannot resume execution after the exception has occured. the more common types: divide by 0, address error, illegal instruction, privelage, etc are not able to be recovered. if they were to be recovered, you're program's jacked anyways because i assume that the instruction that was run is crucial for execution - These 68k error exceptions don't occur very often in basiegaxorz. the only exception that will occur is "divide by 0" without using any low level routines - I don't think you want to use the "no" option to skip cpu traps, since these are purposely put there on purpose by the programmer =P - Registers d0-d7, a0-a7, flags, etc have no meaning to the basiegaxorz programmer. there'll be no way for anyone to interpret these values, unless you know what's going on in the assembly level of the program. d0-d1, d3-d4 are mainly used for expressions (d0: holding value, d1: compare value, d2: function value, d3: arguneric value, d4: logical value). there are some uses for the address registers, mainly for the heap (a3), local heap (a5), data pointer (a6), and stack (a7) - mainly refering to cpu traps, the registers, and flags have absolutely no meaning after a trap has been called
the header can be set to anything, there are still early mega drives out there, blah, and JUE is still going to stay, unless you wanna change it yourself. now for region detection....... like i said about v0.19, i'd rather have the programmer do this on their own rather than i do it. reasons for that are it'd be easier to bypass my region code, since source codes are released. and the second reason, making your own region detection code and error message is unique to your game or whatever
this goes back to your last suggestion about the debugger, i see no real reason why having these features makes your program any better, and i don't know why not having these features prevents you from making your program
|
|
|
Post by Tom Maneiro on Mar 18, 2005 10:52:34 GMT -5
I have a valid reason: What if i learn assembler, and found a bug on BasiEgaXorz? I could help to find a fix...
Also, let's suppose that a BIG company decides to use BEX to code an award-winning game. They will need things like these for achieve the lowest number of bugs.
And a third reason: What if somebody uses inline assembler statements, and they got a crash? A Illegal instruction or a Line xxxx Emulator error is not very specific. So here comes the dump screen: we got the registers and possibly the idea of how crashed our code. Of course that we can use Gens KMod or something, but... what happens if the coder has a nForce motherboard, WinXp, and the IDE SW driver (a deadly combination for Gens)?... so we need a on-ROM program to analyze the crash. The memory dump could be optional.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Mar 18, 2005 21:48:44 GMT -5
so when r u going to learn assembler?
|
|
|
Post by Tom Maneiro on Mar 19, 2005 9:03:28 GMT -5
Maybe before 2009...
Here are a couple more of suggestions: 1) Allow to Translate the error messages without have to hack the ROM? 2) Add a couple of functons for manage checksums: GetROMChecksum() would generate a checksum for the ROM GetHeaderChecksum() would extract the checksum stored in the header. So user should have 2 variables, store the respective checksums there, and compare... This is useful if you want to avoid people to mess with your ROM. Of course that checksum must be fixed AFTER compiling the ROM, but before running it on emulator.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Mar 19, 2005 19:01:43 GMT -5
=D, i guess i'll add the debugger maybe before 2009 =P
i don't get whatcha mean, can you explain this more?
checksum............ bah jou don't need no checksum
this checksum can be changed very easy too if i put it in the header, everyone knows where it is, and just use a checkum fixer, and now it will appear to your game that no one has hacked it. if i put the checksum stored in some "secret" location, you're program will never be able to find what that secret location is =D
i wouldn't worry about checksums. how many games have you seen that go apeshit on ya when you change the game data and checksum?
|
|
|
Post by Tom Maneiro on Mar 19, 2005 22:51:48 GMT -5
About the translations: translate the runtime error messages, like "Illegal instruction (START:reset)" to "Instruccion ilegal (START:resetear)" (that is in spanish). AKA "localizations", AKA i18n on *nix world.
And, about the checksums, yes, there are that risk.. but, at least a couple of functions will help for trace bad dumps, damaged files (yes, i got LOTS of damaged ROMs every day, it seems that my old Samsung drives seems to be getting ready to suicide), or for n00b users: i can imagine a RED SCREEN OF DEATH with the following text: "WARNING: THIS ROM HAS BEEN FUCKED. Please find a new copy at your favorite ROM site, or contact XXX to 1800xxxxxxx to get a replacement"
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Mar 21, 2005 17:09:21 GMT -5
uhm, i really see no reason why the end user has to see the message "Illegal Instruction!!" in the first place =P, unless its your plan to release a really buggy program =). and the checksum thing, don't worry about it, i don't think there will be such a thing as a basiegaxorz bad dump, since there are no games out there that were made with basiegaxorz and at the same time are on cartridges uhm, uhm, you're last set of suggestions were all, uhm, how do i say this, rejected . i don't wanna be the nazi, so i'll find a way for you to be happy, and make everyone else happy ;D. i dunno what i'm gonna do to implement everything, but i'll find a way =P! i always find a way
|
|
|
Post by Tom Maneiro on Mar 21, 2005 19:48:11 GMT -5
and the checksum thing, don't worry about it, i don't think there will be such a thing as a basiegaxorz bad dump, since there are no games out there that were made with basiegaxorz and at the same time are on cartridges think on cheapo pirate gamez on glop-top chips on pirate Genesis...
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Mar 22, 2005 11:00:34 GMT -5
if they can make a bad dump of a pirate game, then it's their fault =P and the checksum shouldn't save them =D
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Mar 24, 2005 11:20:26 GMT -5
btw, i have a solution for your suggestions
i'll add an option so that you can tell the compiler to run some script, or executable at the end of building the rom. doing this, you can use whatever you want, fix the checksum, patch the rom to be "Instruccion Ilegal", or patch the vector table to jump to a different exception so that you can display your handy dandy registers and memory
sounds good?
of course i can't go: OPTION RUNSCRIPT, "script.bat basic.bin" because you could also put OPTION RUNSCRIPT, "erase *.*" =P
|
|
|
Post by Tom Maneiro on Mar 24, 2005 13:29:28 GMT -5
Nice feature... more like MSVC Why not "Option RUNSCRIPT Format C:"?
|
|
|
Post by SegaLovv on Mar 25, 2005 23:54:07 GMT -5
Suggestions for BEX (hopefully .20 or .22)
1. Easier GUI 2. Quicker Accses to SGTD/Emulator/ImaGenisis 3. SEGA CD FMV\SGA movies 4. An Animated Sprite Code using LOADTILE. 5. Save Capability (PEEK&POKE) for SCD 6. A Tool for SCD Conversion 7. No Stinkin mscomctl
Uhh. Thats pretty much it
|
|